Camelia, the Perl 6 bug

IRC log for #parrot, 2011-02-15

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:05 plobsing my naive statistics would suggest we use something like a Normal CDF centered around the GC threshold for triggering the collection. did I mention I don't know much stats?
00:14 vmspb left #parrot
00:21 nwellnhof why not simply run a GC with a certain probability?
00:21 Tene nwellnhof: what's the probability that will be best for all possible programs?
00:22 nwellnhof for debugging the best probability would be 1, but that's too slow.
00:25 bacek_at_work (158.26 - 88.26) / 158.26 * 100
00:25 aloha 44.2310122583091
00:26 nwellnhof the problem with a random approach is to reproduce failures. we'd need a random seed that's dumped somehow in case of errors.
00:28 plobsing you're already in a "looking for errors" mode. dumping that seed to stderr, or creating a file in $CWD isn't too much of a stretch
00:30 nwellnhof and dump the hash seed as well
00:35 kid51 is now known as kid51_at_dinner
00:42 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9598) fulltest) at 3_0_0-941-g8601021 - Ubuntu 10.10 i386 (g++-4.5)
00:43 mikehh cotto_work: dukeleto: there is a Community section in NEWS - I think the GCI info for parrot can go there
01:02 cotto joined #parrot
01:05 cotto ~~
01:07 cognominal joined #parrot
01:07 nwellnhof left #parrot
01:09 mikehh hey cotto
01:19 cotto hi mikehh
01:19 cotto left #parrot
01:28 dmalcolm left #parrot
01:30 cotto joined #parrot
01:32 Themeruta joined #parrot
01:33 NotFound left #parrot
01:38 bacek_at_work (1671 - 1243) / 1671 * 100
01:38 aloha 25.6134051466188
01:41 bacek_at_work (1725 - 1271) / 1725 * 100
01:41 aloha 26.3188405797101
01:46 bacek_at_work (33 - 20) / 33 * 100
01:46 aloha 39.3939393939394
01:47 bacek_at_work 0.48 * 545
01:47 aloha 261.6
01:48 rdesfo left #parrot
01:49 bacek_at_work 261 / 1271 * 100
01:49 aloha 20.5350118017309
01:49 bacek_at_work nice. 20% of rakudo spectest spent in startup...
01:51 kid51_at_dinner left #parrot
02:05 contingencyplan joined #parrot
02:05 contingencyplan left #parrot
02:05 contingencyplan joined #parrot
02:15 whiteknight what are those numbers?
02:18 plobsing bacek_at_work: how much is that different before/after?
02:19 plobsing also how much of rakudo spectest is spent parsing? or is that part of startup?
02:44 cotto bacek_at_work, ping
02:45 bacek_at_work plobsing, 0.48 is rakudo startup time. It's not dominated by GC
02:45 bacek_at_work cotto, pong
02:45 bacek_at_work plobsing, /usr/bin/time ./perl6 -e ''
02:46 cotto bacek_at_work, what if after the 3.1 release we merged in gen_gc, but made gc_ms2 the default in 3.2 and 3.3 unless Parrot was configured to use gen_gc?
02:46 bacek_at_work cotto, how HLL's can use it than? There is no way (afaik) to switch GC
02:47 bacek_at_work alternative - made it compile time selectable. Via Configure.pl
02:47 cotto that's what I was thinking
02:47 bacek_at_work wfm
02:47 cotto ok
02:48 cotto I'll bring it up at #ps and see if anyone can think of something better, but I'm glad it satisfies your concerns.
02:54 plobsing I also think Configure.pl-time is the best option. The costs required to make gen_gc work would otherwise be applied to ms2 equally.
02:55 whiteknight left #parrot
03:14 dalek parrot/gen_gc2: 36211cc | bacek++ | include/parrot/settings.h:
03:14 dalek parrot/gen_gc2: Wrap defining of PARROT_GC_DEFAULT_TYPE under ifndef to make it overridable
03:14 dalek parrot/gen_gc2: via compiler flags.
03:14 dalek parrot/gen_gc2: review: https://github.com/parrot/parrot/commit/36211cc08b
03:14 dalek parrot/gen_gc2: 5f22a84 | bacek++ | include/parrot/gc_api.h:
03:14 dalek parrot/gen_gc2: Remove TMS GC. It doesn't exist anymore. GC MS2 is TriColour.
03:14 dalek parrot/gen_gc2: review: https://github.com/parrot/parrot/commit/5f22a849ab
03:14 dalek parrot/gen_gc2: ad15628 | bacek++ | src/gc/api.c:
03:14 dalek parrot/gen_gc2: Rework initialization of GC
03:14 dalek parrot/gen_gc2: review: https://github.com/parrot/parrot/commit/ad15628b98
03:15 bacek_at_work cotto, Configure.pl --ccflags="-DPARROT_GC_DEFAULT_TYE=MS2" should work now.
03:15 bacek_at_work afk
03:16 cotto bacek, thanks
03:18 plobsing ah. if we're just setting default, in stead of availability, it might be better to put that as a flag on pbc2c
03:18 plobsing or exe or whatever that's called
03:33 hudnix left #parrot
03:35 hudnix joined #parrot
03:43 cotto plobsing, do you have an estimation of how much overhead having a pluggable gc costs us?
03:51 plobsing not off the top of my head. chromatic mentioned some numbers at one point. I think it was between 5 and 10 percent (of what I do not know).
03:52 plobsing but the cost I am refering to is the dissabled optimizations currently required to make gen_gc work
03:52 cotto That sounds like what I remember.
04:04 bacek joined #parrot
04:13 bacek ~~
04:17 dukeleto ~~
04:21 cotto has anyone trolled #ps for news items?
04:22 dukeleto cotto: i haven't
04:22 dukeleto cotto: but i will add GCI to community now
04:27 drake1 joined #parrot
04:28 drake1 hello
04:28 drake1 how far is the i/o system of parrot?
04:29 drake1 the one compatible with stdio
04:33 cotto drake1, what would you like to do?
04:33 dalek parrot: f180827 | cotto++ | NEWS:
04:33 dalek parrot: bulk up NEWS a little
04:33 dalek parrot: review: https://github.com/parrot/parrot/commit/f1808272ff
04:33 drake1 to fwrite and fread, fopen and fclose
04:33 drake1 and fseek
04:34 bacek drake1, it's all implemented.
04:34 drake1 in rakudo too?
04:36 bacek drake1, of course.
04:36 dukeleto drake1: yep, all that is well-tested and implemented
04:36 dukeleto drake1: but asynchronous I/O is not there yet
04:37 drake1 by the way, is list context simmd optimized? -bacek: where are the documentation / example files?
04:38 drake1 dukeleto: meaning concurrent freads aren't possible?
04:38 bacek drake1, for rakudo? In Perl6 spec. For parrot - best example is t/pmc/filehandle.t
04:38 drake1 for rakudo, yes
04:38 drake1 thanks
04:39 dukeleto drake1: src/io/*.c
04:39 bacek dukeleto, wrong answer :). src/pmc/filehandle.pmc
04:39 dalek parrot: 483f6ec | dukeleto++ | NEWS:
04:39 dalek parrot: [doc] Beef up NEWS
04:39 dalek parrot: review: https://github.com/parrot/parrot/commit/483f6ec69e
04:39 drake1 i only want to know the: open, close, print, <> equivalents
04:40 dukeleto drake1: our object (PMC) api is in filehandle.pmc, but OS-specific stuff is in src/io/*.c
04:40 drake1 use filehandle; ok
04:40 bacek drake1, check http://perlcabal.org/syn
04:40 dukeleto drake1: in which language? From C, PIR, NQP, Perl 6 ?
04:40 bacek S32 IO
04:40 dukeleto drake1: what are you trying to do?
04:41 * dukeleto added some beef stew to NEWS
04:41 drake1 dukelto: some parallel redirection
04:42 drake1 the language is uinspecified
04:42 drake1 unspecified*
04:44 drake1 the stream itself is plain ascii
04:45 bacek drake1, still not clear in which language you are trying to implement it :)
04:45 drake1 in perl6
04:47 dukeleto drake1: we can help you with implementing it in Rakudo Perl 6, but you may also want to ask these questions on #perl6 on freenode
04:47 dukeleto drake1: are you wanting to do this in Rakudo?
04:47 dukeleto drake1: Rakudo is Perl 6 on Parrot
04:47 dukeleto drake1: but there are other Perl 6 implementations
04:48 drake1 dukeleto: how is the SSE support in Rakudo?
04:49 dukeleto drake1: Rakudo doesn't know about SSE
04:49 dalek parrot/gen_gc2: ecd3869 | bacek++ | config/gen/makefiles/root.in:
04:49 dalek parrot/gen_gc2: Inline alloc_resources compilation. It's always required anyway.
04:49 dalek parrot/gen_gc2: review: https://github.com/parrot/parrot/commit/ecd38696a7
04:49 dalek parrot/gen_gc2: e0a4faf | bacek++ | / (4 files):
04:49 dalek parrot/gen_gc2: Change auto::gc step to do something useful: actually switch GC in compile time
04:49 dalek parrot/gen_gc2: review: https://github.com/parrot/parrot/commit/e0a4faf701
04:49 drake1 but perl is the qualified language
04:49 dukeleto drake1: there is no custom ASM in Parrot, so that is essentially up to the compiler, as far as I know
04:50 drake1 the C compiler?
04:50 dukeleto drake1: yes
04:50 drake1 (C isn't qualified)
04:50 * plobsing wonders if Lorito should try to make SSE/CUDA/etc easier (not specify API, just make it possible)
04:50 dukeleto drake1: Parrot strives for portability, so we don't generally do asm
04:51 dukeleto plobsing: not a bad idea
04:51 dukeleto plobsing: CUDA is very interesting
04:51 dukeleto plobsing: i think we can get at it through NCI to an already existing C library
04:51 drake1 dukelto: like C is a lot more compatible
04:51 dukeleto drake1: oh, don't we know it.
04:51 drake1 dukelto: yes, sure
04:52 drake1 should be easy to redirect some calls
04:52 dalek parrot/gen_gc2: ef3e968 | bacek++ | config/auto/gc.pm:
04:52 dalek parrot/gen_gc2: Set gc_flag to empty string to use "default" GC.
04:52 dalek parrot/gen_gc2: review: https://github.com/parrot/parrot/commit/ef3e968e63
04:52 plobsing drake1: if you want full SSE support from something already implemented, look at parrot-linear-algebra. it uses BLAS (an optimized linear algebra package).
04:52 cotto plobsing, it's interesting to think about how we could make that possible.
04:53 plobsing cotto: exactly. I'm not sure we can, but we should think about that.
04:53 drake1 plobsing: perfect
04:53 dukeleto plobsing: i think it just comes down to having good FFI/NCI support from M0
04:54 drake1 I was thinking that ( a * b, a * c, a * d) in perl could utilize the whole set of ALUs
04:55 dukeleto drake1: what is your interest in Parrot? are you doing scientific computing stuff?
04:55 plobsing drake1: what are you doing that has the ALU as the bottleneck?
04:56 drake1 dukelto: just how good you do
04:56 drake1 plobsing: matrix operations in regular perl
04:56 bacek msg whiteknight (numbers) It was timing of "make spectest" and "./ops2c --core" on master vs gen_gc2.
04:56 aloha OK. I'll deliver the message.
04:57 cotto Trying to find submission deadlines for conferences makes me crabby.
04:57 dukeleto drake1: what are you using? Math::MatrixReal ?
04:57 plobsing Perl typically uses too much memory to worry about such things. Perl 6 allows for implementations to get close enough to worry about things like that in special cases, but none of the implementations are there yet.
04:57 dukeleto cotto: which confs?
04:57 cotto Linuxfest NW in this case.
04:57 dukeleto cotto: i think we should build a system that notifies everyone
04:57 drake1 dukeleto: just regular list context
04:58 dukeleto drake1: have you tried Math::GSL::Matrix ?
04:58 drake1 no
04:59 dukeleto drake1: http://search.cpan.org/dist/Ma​th-GSL/lib/Math/GSL/Matrix.pm
04:59 plobsing in my opinion, we'll likely see a P6DL. far easier to swap out complicated hot paths to native code than to build an optimizer that handles the general case as well as existing C compilers.
04:59 drake1 im more curious about the core object
04:59 dukeleto drake1: it is a wrapper to the GNU Scientific Library, which is C
04:59 drake1 ok
04:59 dukeleto drake1: matrix math will be much faster for large matrices, and memory use will be much less
05:00 drake1 than regular perl?
05:00 dukeleto drake1: yes.
05:00 dukeleto drake1: i wrote Math::GSL :)
05:00 drake1 i code yacc, and could probably come up with something faster
05:01 dukeleto drake1: i would like to hook up Parrot to GSL sometime soon, but haven't found the tuits
05:01 drake1 for math only
05:01 drake1 ok... does rakudo specify a binary interface too?
05:02 bacek .oO( Where is our branching guide? )
05:02 cotto docs/project/git_workflow.pod?
05:03 dukeleto https://github.com/parrot/parrot/blob​/master/docs/project/git_workflow.pod
05:03 dukeleto bacek: that links to our branch merge guide
05:03 dukeleto drake1: what do you mean by "binary interface" ? can you make rakudo binaries?
05:04 dukeleto drake1: the answer to that is "yes" and they are called fakecutables
05:04 dukeleto drake1: because they just embed parrot bytecode into a C array
05:04 drake1 dukeleto: like how to link in some binary objects
05:04 drake1 dukeleto: and call from within rakudo -
05:04 dukeleto drake1: such as calling functions from C librarys?
05:04 plobsing drake1: check out NativeCall (Zavolaj)
05:04 drake1 yes
05:05 drake1 thanks
05:05 plobsing it is a million times more awesome than XS
05:05 dukeleto drake1: it is called NCI (Native Call Interface), we use libffi for that stuff, if it is on the system
05:05 bacek dukeleto, I don't like "username/foo" naming. It implies Bus Number equals to 1
05:05 drake1 dukeleto: from the parrot site?
05:05 cotto It does encourage the idea that a person owns a branch.
05:05 plobsing I agree with bacek on the username naming.
05:05 dukeleto bacek: you don't have to follow it. It is a suggestion, but I like it for say "this is my personal branch", but then I invite people to hack on it
05:06 plobsing cotto: that's equivalent to saying it implies ONE person owns a branch. which is a stones throw away from discouraging collaboration.
05:06 dukeleto i like the fact that *just by the branch name*, i know who created it and who the likely goto person is for it
05:06 dukeleto yes, we moved to git to discourage collaboration...
05:07 cotto plobsing, I'm agreeing with you.
05:07 plobsing dukeleto: well, if I don't have to share my commits with anyone else (because I can keep them local), why should I? ;)
05:07 dukeleto but, for instance, i want everyone to hack on the 'lorito' branch, so i didn't call it 'leto/lorito'
05:07 Tene dukeleto: you could also check the commit log to find out who to contact about a branch
05:07 dukeleto Tene: yes. That takes time and effort.
05:08 drake1 (might be the zavo* branch)
05:08 Tene 'k
05:09 bacek dukeleto, lets rephrase git_workflow than. To something like "Name your branch as username/foo if it's your little playground for some crazy ideas. Name is just foo if you want more attention"
05:09 dukeleto bacek: if you are volunteering to change it, then i am +1 ;)
05:10 bacek dukeleto, no problems. In which one of my first three languages?
05:10 plobsing drake1: https://github.com/jnthn/zavolaj
05:10 bacek :)
05:10 drake1 thanks
05:11 plobsing drake1: you can probably also get it through whatever rakudo is calling their package system these days. ask on #perl6@freenode for details.
05:11 cotto bacek, very rude Russian.  That way most of us won't know.
05:11 cotto You can even say that it's very polite Russian and trick us.
05:11 drake1 plobsing: ok
05:13 bacek cotto, it will bring almost same flame was as of README.ru. "No-no-no. This is not rude enough. You should use more shits and fucks"
05:13 bacek s/was/war/
05:14 bacek (216 - 141) /216 * 100
05:14 aloha 34.7222222222222
05:14 bacek aloha, aloha?
05:14 aloha bacek: aloha is simple Bot::BasicBot::Pluggable hosted on https://github.com/bacek/aloha
05:15 plobsing aloha, ahola?
05:15 aloha plobsing: No clue. Sorry.
05:16 cotto aloha, git workflow is https://github.com/parrot/parrot/blob​/master/docs/project/git_workflow.pod
05:16 aloha cotto: Okay.
05:16 plobsing aloha: ahola is ahola/kecab/moc.buhtig//:sptth no detsoh elbaggulP::toBcisaB::toB elpmis
05:16 aloha plobsing: Okay.
05:16 plobsing :D
05:16 bacek LOL :)
05:17 dukeleto aloha, git workflow ?
05:17 aloha dukeleto: No clue. Sorry.
05:17 dukeleto sad little bot
05:18 plobsing aloha, ahola?
05:18 aloha plobsing: ahola is ahola/kecab/moc.buhtig//:sptth no detsoh elbaggulP::toBcisaB::toB elpmis
05:18 plobsing only remembers useless information
05:18 * bacek should add trimming of questions
05:18 cotto aloha, git workflow?
05:18 aloha cotto: git workflow is https://github.com/parrot/parrot/blob​/master/docs/project/git_workflow.pod
05:18 cotto space
05:18 dukeleto ah, the space before the ?
05:18 dukeleto that is a bug that needs fixin'
05:18 bacek msg bacek_at_work Don't forget to fix trimming of questions in aloha.
05:18 aloha OK. I'll deliver the message.
05:20 bacek dukeleto, feel free to fix it :)
05:20 bacek dukeleto, https://github.com/bacek/aloha/blob/master/l​ib/Bot/BasicBot/Pluggable/Module/Infobot.pm
05:21 drake1 what hashes do rakudo use?
05:21 drake1 err parrot
05:21 bacek drake1, NIH implementation
05:21 drake1 hmm
05:21 drake1 ok
05:22 drake1 just wrote on in asm for standard directory trees :-)
05:22 dukeleto bacek: your delegation powers are useless against me!
05:23 dukeleto msg bacek_at_work please fix infobot whitespace trimming : https://github.com/bacek/aloha/blob/master/l​ib/Bot/BasicBot/Pluggable/Module/Infobot.pm (The Beer is in the mail)
05:23 aloha OK. I'll deliver the message.
05:23 cotto The National Institute of Health has an excellent hash implementation.
05:23 bacek dukeleto, congratulations! You just volunteered to fix aloha! :)
05:23 drake1 the specific hash of choice
05:24 dukeleto bacek: do i have a commit bit?
05:24 bacek cotto, they probably just fix consequences of using it
05:24 cotto That's the CDC.
05:24 bacek dukeleto, yes. For a long-long time. Like 5 minutes already.
05:25 drake1 how many extern libs do parrot need?
05:26 plobsing drake1: need? or can use to provide more functionality (that most people want)?
05:26 drake1 the stdio range of libc?
05:27 drake1 plobsing: in the minimal case
05:27 plobsing drake1: (simplification) Parrot targets POSIX (of which stdio is a part)
05:28 drake1 oh. that's not much
05:28 plobsing of course, you'll probably want libicu (fairly sure Rakudo *requires* this) and libffi.
05:28 drake1 just wrote the new fopen man: http://www.gangsterfreak.com/fopen.c
05:30 cotto What was wrong with the old one?
05:32 drake1 the macro tokens were wicked and the stream implementation unspecified
05:32 dukeleto bacek: who wrote this code? ;)
05:32 bacek dukeleto, Infobot.pm? Not me. I just copied it from Bot::BasicBot
05:33 plobsing drake1: 'F.open'???
05:33 dukeleto bacek: i read the source and I have decided to let someone else figure that ou
05:33 dukeleto out, rather
05:33 drake1 plobsing: with pronounciation keys
05:34 dukeleto drake1: parrot needs at least perl 5.8, make and a decent C compiler, and then detects everyting else and enables features if your system supports them
05:34 bacek dukeleto, line 93
05:34 dukeleto drake1: perl is just for the build system
05:34 bacek just chomp $body
05:34 drake1 dukeleto: alright. can you share a list of extern references?
05:35 dukeleto bacek: why would that work?
05:35 dukeleto drake1: what do you mean? I don't quite get your question
05:35 dukeleto bacek: feel free to fix it, my brain is in other places
05:35 cotto drake1, the README should document that
05:35 cotto If not, let us know and we'll fix it.
05:36 drake1 dukeleto: like a list of undefined symbold before the system link ie. ( nm $(OBJ) | grep '[[:space:]]U[[:space:]]
05:39 plobsing drake1: build it and check
05:39 drake1 i also try the README
05:39 drake1 plobsing: yeah
05:40 plobsing drake1: might also want to ldd to get an overview
05:41 drake1 nm accounts for that too
05:55 cotto What kind of segments will M0 bytecode need?
05:58 dalek parrot/gen_gc2_smart_ops2c: 01bcdf1 | bacek++ | / (2 files):
05:58 dalek parrot/gen_gc2_smart_ops2c: Add Op.need_write_barrier. Alos switch test to use Parrot's Test::More instead of NQP builtin
05:58 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/01bcdf1e00
05:58 dalek parrot/gen_gc2_smart_ops2c: bb45335 | bacek++ | t/compilers/opsc/03-past.t:
05:58 dalek parrot/gen_gc2_smart_ops2c: Add failing test for setting need_write_barrier.
05:58 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/bb453350a2
05:58 dalek parrot/gen_gc2_smart_ops2c: 0dcf6ef | bacek++ | compilers/opsc/src/Ops/Op.pm:
05:58 dalek parrot/gen_gc2_smart_ops2c: Implement Ops::Op.need_write_barrier
05:58 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/0dcf6efb18
05:58 dalek parrot/gen_gc2_smart_ops2c: 29ff1a6 | bacek++ | / (2 files):
05:58 dalek parrot/gen_gc2_smart_ops2c: Insert Write Barrier into op when needed
05:58 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/29ff1a6fde
06:06 dalek parrot/gen_gc2_smart_ops2c: e6865f0 | bacek++ | compilers/opsc/src/Ops/Compiler/Actions.pm:
06:06 dalek parrot/gen_gc2_smart_ops2c: Fix missing comma
06:06 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/e6865f0067
06:09 rurban_ joined #parrot
06:09 bacek meh... semicolon
06:10 drake1 pretty sad the new convention is that read and write are the standard in out functions. does parrot use fwrite and fread instead?
06:12 rurban left #parrot
06:12 plobsing new? don't they predate their f- counterparts?
06:12 rurban_ is now known as rurban
06:12 drake1 no
06:12 drake1 they are the original
06:12 drake1 from C implementations
06:15 drake1 my implementation does a #define read(fd,buf,size) fread(buf,1,size,_fp+fd) alike POSIX read write
06:16 plobsing your implementation? are you writting an OS?
06:16 drake1 no. that's long ago
06:17 drake1 just the read / write POSIX functions
06:18 drake1 only linux they seem to be the parent functions which slow down the entire stream capability
06:18 drake1 s/only/on
06:20 plobsing what evidence do you have of this?
06:20 drake1 and what kind of parent would not allow the stream to consist of cache line compatible atomic items?
06:20 drake1 plobsing: several C books
06:26 sorear the standard in out functions are fread and fwrite
06:26 plobsing somehow I find it hard to beleive that basing fread() on read() (which is little more than a wrapper for a syscall) makes it slower. the most costly thing in read() is the syscall.
06:26 drake1 yes
06:27 sorear if you don't beleive me, try to find "write" in http://flash-gordon.me.uk/ansi.c.txt
06:27 sorear also, go find any Intel manual and look at the timings for INT
06:28 sorear system calls are expensive, so there is userspace code which batches requests
06:28 sorear mindlessly replacing fread with read will make your code a LOT slower
06:29 sorear in addition to making it not work on non-Unix platforms
06:29 plobsing well yes. but basing fread() on read() does not inherently make it slower.
06:30 drake1 but muc worse for asynchronous interleaved streams
06:30 drake1 much
06:31 sorear You are not being very understandable.
06:31 plobsing read() means "I'm know how to handle buffering (or lack thereof) myself." If you fail to do so, that's your own damned fault. There is nothing fundamentally superior about fread().
06:32 plobsing other than the portability aluded to above
06:33 drake1 suppose you have two process, each producing items of size s; non interleaved packing would require only one atomic item to be sent at a time, which slows down the transmission plan
06:39 plobsing OK you've lost me. You'll have to elaborate. For example, why do you go out of your way to define variable s and then never mention it again?
06:39 drake1 since it's the object size argument
06:39 plobsing OK, and that matters how?
06:40 drake1 it's the whole basis for an object oriented protocol
06:41 plobsing OK, then there is a lot of implicit subtext which you are not making clear. at no point prior to this were you talking OO.
06:41 drake1 implementation defined of course
06:42 drake1 no POSIX requirement
06:47 drake1 only telling it's the only true parent for an objected oriented platform
06:48 sorear What's your preferred language?
06:48 drake1 english
06:48 drake1 for code
06:49 drake1 and drawings
06:50 drake1 then translated by obscure m4 tokens to assembly or C
06:50 sorear I mean natural languages.
06:51 plobsing fread() is merely implemented in terms of whatever platform primitives are available for that functionality. there is nothing magical about it. nothing (besides complexity and reinventing the wheel) stops anyone from implementing different code that accomplishes the same effect.
06:51 drake1 sorear: that depends
06:51 bacek aloha, 216 / 2
06:51 aloha bacek: 108
06:51 bacek 134 - 108
06:51 aloha 26
06:51 sorear drake1: your English argument skills are making a very bad impression
06:52 cotto +1
06:52 bacek hmm... I have to shave another 26 seconds from compiling rakudo's core.pm to make GMS twice faster than MS2
06:52 cotto bacek, sounds like a fun game
06:53 KaeseEs bacek: what do you think the low hanging fruit wrt. speeding up gms is?
06:53 bacek cotto, indeed :)
06:53 bacek KaeseEs, I already captured few of them
06:53 contingencyplan left #parrot
06:53 KaeseEs well, the remaining fruit :v
06:54 drake1 soear: you mean you don't likw the answers?
06:54 dalek parrot/gen_gc2_smart_ops2c: ffc751c | bacek++ | src/ops/core_ops.c:
06:54 dalek parrot/gen_gc2_smart_ops2c: Rebootstrap ops
06:54 sorear drake1: no, I mean I can't tell what you're trying to say.
06:54 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/ffc751cd8f
06:54 dalek parrot/gen_gc2_smart_ops2c: b760e35 | bacek++ | include/parrot/context.h:
06:54 dalek parrot/gen_gc2_smart_ops2c: Re-enable direct access to registers. We have write barriers inside ops now
06:54 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/b760e3540c
06:54 dalek parrot/gen_gc2_smart_ops2c: 9e325f8 | bacek++ | src/call/context_accessors.c:
06:54 dalek parrot/gen_gc2_smart_ops2c: Remove Write Barrier from pcc_set_pc. We don't change anything GC related in it.
06:54 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/9e325f800e
06:54 dalek parrot/gen_gc2_smart_ops2c: 039db7d | bacek++ | src/call/context_accessors.c:
06:54 dalek parrot/gen_gc2_smart_ops2c: Remove WB from set_constants. We are not marking them in CallContext.mark anyway.
06:54 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/039db7d5ac
06:54 dalek parrot/gen_gc2_smart_ops2c: a861ec0 | bacek++ | include/parrot/context.h:
06:54 dalek parrot/gen_gc2_smart_ops2c: Reenable direct access to CallContext to get stuff out in optimized builds. Didn't test debug build and it can be broken
06:54 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/a861ec0e1a
06:54 plobsing drake1: more like we're (or at least I'm) having trouble understanding the answers.
06:55 bacek plobsing, you'll be happy after my latest commit to gen_gc2_smart_ops2c :)
06:55 plobsing bacek: I saw that. Very happy indeed.
06:56 nopaste "bacek" at 192.168.1.3 pasted "plobsing++ test for md5sum" (10 lines) at http://nopaste.snit.ch/32179
06:56 drake1 was that a sharp bang?
06:57 plobsing bacek: and there was much rejoicing
06:57 cotto bacek++
06:59 bacek 124 seconds for core.pm
06:59 bacek 16 seconds to go...
06:59 bacek hmm.
07:00 cotto !
07:00 bacek KaeseEs, low-hanging fruit for GenGC is profiling. Any benchmark will be helpful
07:01 KaeseEs ah-ha
07:04 bacek yay... segfault...
07:05 cosimo_ left #parrot
07:08 drake1 however, the POSIX read write has hole support, which could transmit in variable size, it still doesn't grid the in/out.
07:09 plobsing bacek: looks like your new ops2c WB code only handles cases where inout arg is last
07:10 plobsing convention has most comming first
07:10 bacek no
07:10 bacek t/compilers/opsc/03-past.t
07:10 bacek last 3 tests
07:11 plobsing Parrot_add_p_p_p() (in ffc75) needs WB but doesn't have one. that could explain the segfault.
07:11 bacek yes.
07:11 bacek but...
07:12 bacek How I can miss it?...
07:13 bacek plobsing++
07:20 dalek parrot/gen_gc2_smart_ops2c: 4148c46 | bacek++ | / (2 files):
07:20 dalek parrot/gen_gc2_smart_ops2c: Fix calculating write barriers for ops. plobsing++
07:20 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/4148c46810
07:21 plobsing and your segfault?
07:22 dalek parrot/gen_gc2_smart_ops2c: 77b7aba | bacek++ | src/ops/core_ops.c:
07:22 dalek parrot/gen_gc2_smart_ops2c: Rebootstrap ops
07:22 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/77b7aba907
07:22 bacek rebuilding with rebootstrapped ops
07:30 drake1 i think i want to embed some parrot machine in a webserver, where do i start?
07:30 bacek drake1, google mod_parrot
07:30 drake1 ok. thanks
07:30 bacek or read include/parrot/ember.h
07:30 bacek embed.h
07:31 drake1 nice
07:31 bacek plobsing, md5 test up from 1.02 to 1.10 seconds. Still faster than maser with 1.20
07:31 cotto It's been a while since mod_parrot worked.  If you go that route, prepare for some hacking.
07:32 drake1 and -lparrot in $(LDFLAGS) ?
07:32 drake1 mod_parrot is apache, right?
07:32 cotto yes
07:32 drake1 i have some other system
07:32 cotto it's for apache
07:32 bacek plobsing, any ideas where to get more speed?
07:32 cotto then prepare for more hacking
07:33 drake1 for complete parrot integration with document objects etc. rather than plain files
07:34 * bacek lost 3 second on "core.pm benchmark"... :-/
07:35 bacek (216 - 127) /216 * 100
07:35 aloha 41.2037037037037
07:37 cotto drake1, the dom is a client-side thing.  are you talking about parrot on the server or in the browser?
07:37 drake1 yes
07:37 drake1 in this server
07:38 drake1 where the document object model is implemented in another format
07:41 drake1 one object could be written in rakudo and executed server size, another one could wait to be executed on the client side... that model
07:41 drake1 s/size/side
07:42 theory left #parrot
07:44 bacek 126 - 108
07:44 aloha 18
07:46 drake1 parrot runs without pthreads, right?
07:47 mtk left #parrot
07:51 drake1 stupid question
07:53 mtk joined #parrot
08:05 fperrad joined #parrot
08:21 lucian joined #parrot
08:22 lucian left #parrot
08:36 bacek oookey. 2 seconds. 16 to go.
08:36 dalek parrot/gen_gc2_smart_ops2c: af2e687 | bacek++ | src/gc/fixed_allocator. (2 files):
08:36 dalek parrot/gen_gc2_smart_ops2c: Add accessors to PoolAllocator memory boundaries
08:36 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/af2e687c43
08:36 dalek parrot/gen_gc2_smart_ops2c: 8862fbb | bacek++ | src/gc/gc_private.h:
08:36 dalek parrot/gen_gc2_smart_ops2c: Add accessors to get memory boundaries from GC Subsystem.
08:36 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/8862fbb113
08:36 dalek parrot/gen_gc2_smart_ops2c: 8801f0c | bacek++ | src/gc/system.c:
08:36 dalek parrot/gen_gc2_smart_ops2c: Pass interp to boundaries-getting functions
08:36 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/8801f0c0e7
08:36 dalek parrot/gen_gc2_smart_ops2c: 199dfb3 | bacek++ | src/gc/system.c:
08:36 dalek parrot/gen_gc2_smart_ops2c: Integrate with GC_Sys to get memory boundaries.
08:36 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/199dfb390d
08:36 dalek parrot/gen_gc2_smart_ops2c: a6bc49b | bacek++ | src/gc/gc_gms.c:
08:36 dalek parrot/gen_gc2_smart_ops2c: Expose memory boundaries from GMS
08:36 dalek parrot/gen_gc2_smart_ops2c: review: https://github.com/parrot/parrot/commit/a6bc49b047
08:37 bacek 0.70 * 544
08:37 aloha 380.8
08:37 bacek 1983 - 0.70 * 544
08:38 aloha 1602.2
08:38 bacek 2758 - 0.70 * 544
08:38 aloha 2377.2
08:38 bacek (2377 - 1602) / 2377 * 100
08:38 aloha 32.6041228439209
08:56 bacek (216 - 126) /216 * 100
08:56 aloha 41.6666666666667
08:59 * bacek out of ideas how to make GenGC faster...
09:01 drake1 *action* moves a page pointer
09:07 dalek Heuristic branch merge: pushed 18 commits to parrot/gen_gc2 by bacek
09:46 dalek Heuristic branch merge: pushed 27 commits to parrot/gen_gc2 by bacek
09:46 arnsholt left #parrot
09:48 fperrad left #parrot
09:49 fperrad joined #parrot
09:55 bacek fperrad, ping
09:56 p6eval left #parrot
09:56 p6eval joined #parrot
09:57 drake1 how much larger is a perl6 image with eval capability?
09:57 moritz there's one with eval?
09:57 fperrad pong, bacek
09:57 bacek drake1, about 14M afaik
09:57 drake1 ok
09:58 bacek fperrad, can you test Lua on gen_gc2 branch? I tested it on my box, but want confirmation that I didn't brake it
09:59 bacek fperrad, and does Lua have any "standard" benchmarks? So we can test Lua-on-parrot vs Lua-on-Lua?
10:00 tadzik there is a spectest
10:02 fperrad bacek, ok I'll do a test with gen_gc2
10:04 bacek fperrad, I suspect lua will need few write barriers
10:04 bacek most likely in lua_function.pmc
10:04 bacek But I don't understand code in it at all.. :(
10:05 bacek hmm. Not luafunction.pmc.
10:06 bacek luatable.pmc I think
10:09 drake1 if you always want to use a /usr/bin translator - in a separate process - how to adjust the framework?
10:10 drake1 for eval
10:10 fperrad bacek, have you seen http://github.com/fperrad/​lua/tree/master/t/shootout
10:11 bacek fperrad, looking
10:12 bacek fperrad, yes. It was what I'm looking for! Great, thanks.
10:15 drake1 that's a perl6 question
10:16 tadzik drake1: I don't understand the question
10:17 fperrad bacek, have you seen http://nopaste.snit.ch/30777 : a tentative of rewrite LuaFunction without multi inheritance
10:17 drake1 if you don't want the translator ( from x to parrot ) embedded in the same process image
10:18 bacek fperrad, yes. But it's not related to GenGC.
10:18 bacek fperrad, anyway, I don't think it's worthwhile to put any effort to rewrite it without multiple inheritance for now.
10:19 bacek fperrad, I hope we'll have 6model incorporated into parrot core. And than properly reimplement multiple inheritance based on it.
10:29 bacek fperrad, luaio is failing. Looks like due error string change.
10:29 bacek #                   file.rm: stat failed: No such file or directory
10:29 bacek #     doesn't match '^file.rm: No such file or directory'
10:31 bacek meh....
10:31 bacek libos.t
10:32 fperrad bacek, try:
10:32 fperrad $ ./setup.pir update
10:33 bacek fperrad, ah, ok
10:33 drake1 eval `env_pop time`, might be to dirty
10:34 drake1 at least the girls insist in perl
10:35 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9646) fulltest) at 3_0_0-943-g483f6ec - Ubuntu 10.10 i386 (g++-4.5)
10:35 mikehh gonna start cutting the release
10:35 mikehh Please do not commit to master in the interim
10:35 bacek mikehh++ # Hooray!
10:36 moritz ++mikehh
10:36 tadzik read that as: "Hooray! I'll be permitted to merge gen_gc2 soon!" :)
10:37 bacek tadzik, it will not be enabled by default.
10:37 jnthn bacek: I suspect in Rakudo's --gen-parrot we'll configure Parrot with gen_gc by default
10:37 mikehh gonna call it Budgerigar - a small Australian parrot - also known as Budgie
10:37 tadzik wouldn't it? I thought that would be the one enabled by default, with a possible fallback to gc_ms2
10:37 bacek jnthn, it's doable now :)
10:38 bacek tadzik, "Deprecation Policy"
10:38 tadzik ah, misread the email
10:38 bacek fperrad, Lua test passed with parrot's debug build. Will retest with optimized.
10:38 tadzik The default for
10:38 tadzik non-release builds would be the generational gc,
10:39 bacek tadzik, yes.
10:40 tadzik bleh
10:42 bacek fperrad, why t/shootout is disabled?
10:43 bacek fperrad, t/libregex segfaulted... Sigh.
10:46 fperrad bacek, t/shootout is disabled because some tests consumes all the memory
10:46 bacek fperrad, ouch...
10:46 bacek fperrad, we need some GC expert.
10:47 bacek OH, WAIT
10:47 bacek :)
10:47 fperrad bacek, only LuaTable PMC uses mem_allocate,
10:47 fperrad the critical section in rehash() is protected by Parrot_block/unblock_GC_mark
10:48 bacek fperrad, we need PARROT_GC_WRITE_BARRIER to play nicely with GenGC.
10:48 drake1 capital aid slash cops, call for the junk; might solve the gc
10:51 bacek fperrad, ok. I can reliably crash luaregex.t. We'll look at it tomorrow.
10:52 fperrad bacek, ok, good night
10:53 bacek fperrad, night
10:57 bacek fperrad, can I have commit bit to Lua?
11:00 fperrad bacek, done
11:00 bacek fperrad, thanks
11:01 nopaste "bacek" at 192.168.1.3 pasted "prove t/shoutout.t" (32 lines) at http://nopaste.snit.ch/32247
11:02 bacek fperrad, looks like it works. Freaking slow however...
11:07 dalek lua: ef33938 | bacek++ | t/shootout.t:
11:07 dalek lua: Specify 'binary' encoding for loaded files.
11:07 dalek lua:
11:07 dalek lua: Fix loading of mandelbrot test data.
11:07 dalek lua: review: https://github.com/fperrad/lua/commit/ef33938253
11:09 drake1 might be too hard to look at the surface, instead of through everything
11:16 Topic for #parrot is now Parrot 3.0.0 Released | http://parrot.org | Log: irclog.perlgeek.de/parrot/today | Goals: Fix ipv6-related failures | Help testing/fixing Lua on gen_gc2 branch
11:22 mikehh ok - anyone know how to handle git_describe
11:22 moritz waht about it?
11:22 mikehh how do you update it to 3.1.0 rather than 3.0.0
11:23 moritz have you tagged the release yet?
11:23 moritz after you did, and reconfigure parrot, it should be fixed automatically
11:23 drake1 i give up. it's all to complicated. good luck guys. take care
11:23 drake1 left #parrot
11:24 mikehh 'k thanks moritz
11:24 moritz was drake1 a conversation bot?
11:25 moritz reading some of the last lines ... I got the impression it was too bizarre to be produced by a human :-)
11:29 tadzik (:
11:37 arnsholt joined #parrot
11:51 bacek left #parrot
12:58 dalek parrot: 154ab50 | mikehh++ | / (3 files):
12:58 dalek parrot: increment version number to 3.1.0
12:58 dalek parrot: review: https://github.com/parrot/parrot/commit/154ab50d4e
12:58 dalek parrot: 72ed55c | mikehh++ | docs/p (2 files):
12:58 dalek parrot: change history and release docs
12:58 dalek parrot: review: https://github.com/parrot/parrot/commit/72ed55c9f6
12:58 dalek parrot: e524519 | mikehh++ | / (3 files):
12:58 dalek parrot: update NEWS, CREDITS and ChangeLog
12:58 dalek parrot: review: https://github.com/parrot/parrot/commit/e524519ca4
12:58 dalek parrot: 59be83a | mikehh++ | / (2 files):
12:58 dalek parrot: update core ops
12:58 dalek parrot: review: https://github.com/parrot/parrot/commit/59be83af50
13:00 ttbot Parrot 72ed55c9 i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/12982
13:00 ttbot Parrot e524519c i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/12981
13:00 ttbot Parrot e524519c i386-linux-thread-multi make error http://tt.taptinder.org/cmdinfo/13006
13:04 ttbot Parrot e524519c i386-freebsd-64int make error http://tt.taptinder.org/cmdinfo/13029
13:13 darbelo joined #parrot
13:14 nwellnhof joined #parrot
13:14 nwellnhof ~
13:17 Coke left #parrot
13:17 Coke joined #parrot
13:19 mikehh phew taptinder had me worried there - it's ok now
13:20 mikehh pk - you can commit away
13:20 mikehh ok
13:40 whiteknight joined #parrot
13:45 dalek parrot-test: f2e185c | Whiteknight++ | tap_harness/ (3 files):
13:45 dalek parrot-test: several fixes/rewrites
13:45 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/f2e185cb5c
13:45 dalek parrot-test: 0735120 | Whiteknight++ | tap_harness/ (6 files):
13:45 dalek parrot-test: rename files for consistency
13:45 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/07351201f7
13:45 dalek parrot-test: 770d2e4 | Whiteknight++ | / (4 files):
13:45 dalek parrot-test: fixes so the tap harness lib builds and runs
13:45 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/770d2e4a3c
13:45 dalek parrot-test: 13c88ab | Whiteknight++ | .gitignore:
13:45 dalek parrot-test: tap_harness temporaries in .gitignore
13:45 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/13c88ab887
13:45 dalek parrot-test: 0cbc0bf | Whiteknight++ | tap_harness/ (2 files):
13:45 dalek parrot-test: +support for PIR test files
13:45 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/0cbc0bffa6
13:45 dalek parrot-test: 2a19b9e | Whiteknight++ | tap_harness/ (3 files):
13:45 dalek parrot-test: change the way we handle max filename length. Add in an option to spawn subcommands for the tests, instead of compiling and executing them in-place. A few other changes.
13:45 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/2a19b9ec2a
13:45 dalek parrot-test: 0f2d38c | Whiteknight++ | tap_harness/Harness.nqp:
13:45 dalek parrot-test: Add a function to insert a new test loader. Give access to load in tests to a new loader by name. Cleanup initialization code. After we run, immediately reset the harness to be able to run more tests. showing test results clears the output, otherwise we aggregate subsequent runs
13:45 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/0f2d38cc43
13:45 dalek parrot-test: 85ad970 | Whiteknight++ | tap_harness/ (3 files):
13:45 dalek parrot-test: calculate max_file_name at once after the fact. Fix the way we load files from a dir, and add in the option to recurse directories
13:45 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/85ad970af2
13:45 dalek parrot-test: 95543c0 | Whiteknight++ | tap_harness/Loader.nqp:
13:45 dalek parrot-test: refactor test to see whether a file is a valid test file. Now we can subclass just that portion
13:45 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/95543c0616
13:45 dalek parrot-test: 6c20b48 | Whiteknight++ | tap_harness/Harness.nqp:
13:45 dalek parrot-test: refactor test to see whether a file is a valid test file. Now we can subclass just that portion
13:45 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/6c20b481bd
13:45 dalek parrot-test: 8d3f65e | Whiteknight++ | tap_harness/Harness.nqp:
13:45 dalek parrot-test: add option to specify line length
13:45 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/8d3f65ec39
13:45 dalek parrot-test: c056875 | Whiteknight++ | / (3 files):
13:45 dalek parrot-test: refactor some of the console outputting stuff to a separate class
13:46 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/c0568759f5
13:46 dalek parrot-test: 681b1fd | Whiteknight++ | tap_harness/Output.nqp:
13:46 dalek parrot-test: add the outputter file
13:46 dalek parrot-test: review: https://github.com/Whiteknight​/parrot-test/commit/681b1fd9ba
13:46 whiteknight ...
13:46 whiteknight ...where's the rest of it? damnit dalek
13:47 * Coke notes his taptinder client is sitting idle.
13:48 dalek parrot-linear-algebra: 1ae0670 | Whiteknight++ | setup.nqp:
13:48 dalek parrot-linear-algebra: fix PLA setup.nqp to not use nqp-setting. This avoids the method conflicts we were seeing, and allows us to submit smoke reports again
13:48 dalek parrot-linear-algebra: review: https://github.com/Whiteknight/parr​ot-linear-algebra/commit/1ae06706a9
13:48 whiteknight and there it is
13:48 whiteknight good morning, #parrot
13:49 Coke http://tt.taptinder.org/bu​ildstatus/parrot/master/4
13:49 Coke did those get reported here? (the c++ build failures?)
13:50 Coke (wow, my client machine has been busy.)
13:51 Coke (oh, they were errors in main job also...)
13:52 mikehh how do you get the files to  ftp-osl.osuosl.org - I ssh'ed in and tried using the scp as in the Release Manager guide and it asks for a password
13:53 moritz somebody needs to give you an account, I think
13:53 mikehh I got one I think - it allowed me to get in using ssh using parrot as user name
13:54 moritz then use the same for scp
13:54 mikehh it called up my keyring to get in
13:54 moritz scp parrot-3.1.0.tar.gz parrot@host:/path/to/store
13:55 mikehh but scp asks for a password which I don't have
13:55 moritz even if you use the same username as for ssh?
13:55 mikehh aye
13:55 moritz that's weird then
13:56 moritz because scp uses ssh under the hood
13:56 mikehh let me try again
13:56 Coke if you can ssh in with no password, you should be able to scp also, no problem.
14:00 lucian joined #parrot
14:02 Coke msg bacek gen_gc2 branch fails more partcl tests than master.
14:02 aloha OK. I'll deliver the message.
14:04 Coke (a lot more)
14:04 Coke msg bacek t/cmd_if.t segfaults. t/cmd_expr.t has a parsefail somewhere. (this is in partcl-nqp)
14:04 aloha OK. I'll deliver the message.
14:08 mikehh Coke: nope - as soon as I use scp is asks for a password. when I ssh in it goes to my Ubuntu keyring, but it does not for scp, just asks for password
14:09 rurban_ joined #parrot
14:10 moritz mikehh: try sftp
14:11 rurban left #parrot
14:12 rurban_ is now known as rurban
14:14 plobsing left #parrot
14:22 whiteknight in NQP, if I have two methods foo(*@args) and foo(@args), will MMD correctly dispatch between them?
14:23 * PerlJam doubts it
14:23 PerlJam (but then I don't really know :)
14:24 moritz does NQP even have multi dispatch?
14:25 arnsholt If it's NQP-rx, it won't work
14:25 whiteknight okay
14:25 whiteknight I wont try it, then
14:25 arnsholt A sub in -rx just generates a PIR .sub, and last time I checked Parrot's :multi stuff wasn't exposed either
14:25 arnsholt (Although that last might have changed)
14:26 mikehh moritz: thanks, that seems to work
14:26 moritz hm, at least multi subs seem to be implemented
14:33 Coke I thought nqp-rx had multi, yes.
14:33 Coke ugh. partcl-old was never updated to deal with CodeString going away.
14:34 whiteknight ouch
14:34 M_o_C joined #parrot
14:43 jnthn whiteknight: In new NQP, I could implement that arity handling.
14:43 jnthn whiteknight: Didn't yet. But it's very possible.
14:43 PerlJam jnthn: are you teasing him?  :)
14:44 jnthn Would I? ;-)
14:54 cotto ~~
14:55 cotto whiteknight, how do you feel about my idea of making the default gc a configure-time option?
14:56 mikehh hi cotto
14:57 cotto good morning, mikehh
14:57 moritz to me that sounds like overkill
14:57 moritz how long is it going to be maintained?
14:57 cotto 3.3 according to our policy
14:57 bluescreen joined #parrot
14:57 mikehh ok Release is progressing - files uploaded, downloaded and sha256sum ok
14:59 mikehh for some reason I could not get in with shh/scp - I used sftp which was ok
14:59 nwellnhof maybe access is limited to sftp?
14:59 plobsing joined #parrot
14:59 mikehh ssh was ok but scp failed (asked for password)
15:00 mikehh ok now to do the announcements
15:01 cotto mikehh, that's wacky but I'm glad you got around it.
15:04 Coke can you rename a repository on github?
15:04 Coke or do you fork-then-delete?
15:04 * cotto works
15:04 Andy joined #parrot
15:08 whiteknight msg cotto I'm less unhappy about that. I am still very frustrated to be in this kind of position, however. The temporary fix doesn't address the larger issue
15:08 aloha OK. I'll deliver the message.
15:10 M_o_C left #parrot
15:19 rdesfo joined #parrot
15:23 cotto_work ~~
15:30 M_o_C joined #parrot
15:30 whiteknight cotto_work: I just msg'd you under "cotto"
15:31 cotto_work No worries. I backscroll and blink on cotto.
15:31 M_o_C left #parrot
15:32 moritz Coke: renamng works
15:32 moritz though all references to the old one will stop working
15:35 sri left #parrot
15:35 cotto_work whiteknight: how would you articulate the larger issue?
15:35 Themeruta is now known as NotFound
15:39 sri joined #parrot
15:41 plobsing msg bacek the largest problem I can see from the md5sum test is now that FixedIntegerArray getting unecessary (AKAICT) WBs. It isn't exactly a dominating cost. Perhaps, if we find a case where this would make a significant difference, a manual_wb flag in pmc2c would help.
15:41 aloha OK. I'll deliver the message.
15:41 sri left #parrot
15:42 sri joined #parrot
15:51 bluescreen left #parrot
15:54 mikehh All tests PASS (pre/post-config, make corevm/make coretest, smoke (#9675) fulltest) at 3_1_0 - Ubuntu 10.10 i386 (g++-4.5)
15:55 mikehh git_describe just says RELEASE_3_1_0 is that right? I suppose no commits after the tag
15:56 cotto_work If it's the release, that sounds accurate.
15:56 mikehh The test was on the devel version
15:57 mikehh anyway I have to go to a doctor's appointment - will complete the announcements etc when I get back
15:57 cotto_work wfm
15:58 mikehh still haven't figgured out a decent quote yet
15:58 moritz mikehh++ # release
15:59 mikehh my tuits are all gone :-}
15:59 contingencyplan joined #parrot
15:59 cotto_work mikehh: don't let that hold up the release.
16:02 plobsing left #parrot
16:07 whiteknight mikehh: you don't need a quote or anything fancy
16:08 benabik joined #parrot
16:08 whiteknight does NQP-rx have constructors that I can pass arguments to?
16:09 benabik Good morning, #parrot
16:11 cotto_work hio benabik
16:15 whiteknight looking at the code for P6protoobject, I'm guessing the answer is "no"
16:16 cotto_work That's what I'd guess from looking at the nqp-rx test suite.
16:16 jnthn Pretty sure the ansewr is no.
16:16 jnthn *answer
16:17 plobsing joined #parrot
16:17 Patterner left #parrot
16:18 Psyche^ joined #parrot
16:18 Psyche^ is now known as Patterner
16:19 whiteknight what is the Perl6ism for constructors, CREATE?
16:19 whiteknight it seems like that would be trivially easy to add to P6protoobject
16:19 jnthn CREATE isn't for constructors
16:19 whiteknight so what is for constructors?
16:19 jnthn It's just for the actual allocation of the object
16:20 jnthn Depends. Either BUILD or a custom new. moritz++ has an excellent blog post on those.
16:20 jnthn I'm looking at putting some of that into new nqp, but you could probably backport it.
16:20 cotto_work whiteknight: you could look at what opsc does.
16:21 jnthn I've mostly been structuring things in such a way that when there's a new that does the Right Thing, it'll be easy to just delete my special one.
16:21 jnthn And rely on the default one
16:24 whiteknight do you happen to have a link to moritz' blog? or that post in particular?
16:26 jnthn whiteknight: http://perlgeek.de/blog-en/perl-6/ is the blog
16:27 jnthn hmm, struggling to find the post...
16:27 jnthn whiteknight: aha
16:27 jnthn http://perlgeek.de/blog-en/perl-6/objec​t-construction-and-initialization.html
16:29 arnsholt My solution to the custom constructor problem in nqp-rx was just a class method that did it for me, FWIW
16:30 jnthn When I started writing ClassHOW yesterday I got to the point of "gah, I really need to fix construction" :)
16:35 arnsholt Cool. When do you think would be a good time to move from old nqp to new nqp, BTW?
16:35 arnsholt Now?
16:37 theory joined #parrot
16:39 jnthn arnsholt: Depends. It's obviously got a lot of code in it that's newer and thus less mature than that in nqp-rx, and is still being quite actively developed in some areas. On the other hand, if you're interesting in implementing a language with OO features, things are much nicer in nqp since you've got all the meta-programming bits to hand.
16:40 jnthn arnsholt: There's much more in common than is different though. You may well find that your nqp-rx code just works already without changes in nqp. For grammars and action classes this will be the common case.
16:41 jnthn And if it doesn't work, I'll be curious to hear about it. :)
16:42 arnsholt I'll certainly do that
16:43 jnthn I expect a lot of kinks to be ironed out in the next 1-2 weeks as I start re-working Rakudo to run on top of it all :)
16:43 arnsholt Of course, I don't need much in the way of OO (Prolog may be many things, but OO ain't one of them) but I would like to check out the new and shiny NQP
16:43 jnthn *nod*
16:43 jnthn Should be some memory improvements too, fwiw. There'll be even more in the pipeline.
16:44 jnthn Cursor is already rather lighter, for example.
16:45 arnsholt That is something I want, OTOH
16:45 jnthn :)
16:45 arnsholt In my testsuite, I suspect that parsing the code takes up more than it needs to
16:46 arnsholt It's also possible I could improve the grammar as well, mind
16:46 jnthn Cursors are malloc-free now, and entail anything from 1 to 3 garbage collectable objects less.
16:46 jnthn Match objects are in for a similar treatment when I get around to it.
16:46 jnthn Or somebody else gets around to it, if I'm lucky. :)
16:46 arnsholt Kewl
16:58 lucian left #parrot
17:03 benabik left #parrot
17:05 lucian joined #parrot
17:07 ttbot left #parrot
17:07 rdesfo left #parrot
17:07 ttbot joined #parrot
17:16 nwellnhof left #parrot
17:16 plobsing left #parrot
17:17 dmalcolm joined #parrot
17:20 lucian left #parrot
17:22 lucian joined #parrot
17:23 ambs joined #parrot
17:25 dukeleto ~~
17:33 lucian_ joined #parrot
17:36 bacek joined #parrot
17:37 lucian left #parrot
17:53 bacek left #parrot
17:55 dalek TT #2014 created by doughera++: t/tools/mk_language_shell.t might use an old installed parrot
17:55 dalek TT #2014: http://trac.parrot.org/parrot/ticket/2014
18:04 dmalcolm left #parrot
18:12 * Coke sees that his taptinder is tinding.
18:13 cotto_work mikehh: ping
18:13 bacek joined #parrot
18:15 dalek parrot: 968cc50 | cotto++ | NEWS:
18:15 dalek parrot: add Daniel Kang to list of gci students in NEWS
18:15 dalek parrot: review: https://github.com/parrot/parrot/commit/968cc50aea
18:15 cotto_work msg mikehh One of the gci students was missed in NEWS.  I added him.
18:15 aloha OK. I'll deliver the message.
18:21 Coke ... isn't the release already cut?
18:21 cotto_work It's in process.
18:26 Coke k.
18:26 plobsing joined #parrot
18:38 dukeleto ~~
18:39 dukeleto cotto_work: the list of GCI students in the NEWS were grand prize winners
18:39 dukeleto cotto_work: i don't think Kang got the grand prize, but he was a parrot student?
18:43 dalek website: mikehh++ | Parrot 3.1.0 "Budgerigar" Released!
18:43 dalek website: http://www.parrot.org/news/2011/Parrot-3.1.0
18:43 cotto_work dukeleto: he's on the list in that blog post and he contributed as jumpyshoes
18:43 cotto_work at #7
18:44 cotto_work https://github.com/parrot/parrot/commit/6c1531e4
18:45 whiteknight mikehh++
18:46 dukeleto cotto_work: works for me
18:46 dukeleto cotto_work: nice catch
18:46 dukeleto is the release tagged yet?
18:46 mikehh cotto - I already released the files to the site and just hadn't announced
18:46 cotto_work too late for the release announcement, though
18:47 dukeleto cotto_work: we can edit the release announcement
18:47 dukeleto cotto_work: at least our blog post about it
18:47 dukeleto mikehh: have you sent out release announcement emails?
18:47 cotto_work mikehh: can you update the email announcement?
18:47 mikehh I am about to
18:47 cotto_work great
18:48 mikehh I had to go to the doc, bunch of vampires, they took my blud
18:50 whiteknight BLUD!
18:51 cotto_work release seems to be out.  Let's break some stuff.
18:52 dukeleto cotto_work: are you updating the blog post re: student name?
18:52 cotto_work or maybe wait until mikehh says so
18:52 cotto_work dukeleto: I can
18:54 mikehh I am doing it now
18:54 cotto_work done
18:54 gerd joined #parrot
18:54 cotto_work mikehh: ^
19:02 dukeleto typo in our release announcement: allow implementation of try .. catch construcs in C extensions.
19:02 dukeleto "construcs"
19:03 dukeleto A repository for a new NQP version which has a new object model is
19:03 dukeleto created at http://github.com/perl6/nqp
19:03 dukeleto the tense is a bit wonky in that sentence
19:03 jan joined #parrot
19:04 mikehh dukeleto: just copied it from NEWS :-}
19:08 dukeleto mikehh: yes, NEWS needs to be spell/grammar checked :)
19:09 mikehh who all do I send the email to - parrot-dev@lists.parrot.org, parrot-users@lists.parrot.org, but what are the addresses of the other lists -  perl6-language, perl6-announce, perl5-porters
19:09 mikehh dukeleto: never got around to that ;-{
19:10 dukeleto mikehh: that list should be in the release manager guide somewhere
19:10 cotto_work mikehh: it's important
19:10 dukeleto mikehh: if it isn't, please add
19:10 mikehh I am sure I had them somewhere but can't find them
19:10 mikehh dukeleto: just the lists, not their addresses
19:13 mikehh let me send it to parrot, I can send to the others later
19:15 gerd it is:  ...@perl.org
19:15 whiteknight mikehh: is this your first release?
19:15 whiteknight ...of parrot?
19:15 cotto_work second, apparently
19:23 mikehh I submitted that from a different computer, and I don't have all the backups from that one
19:24 mikehh ok - how do you set the release to be the one you download
19:26 PerlJam mikehh: you mean the  tarball?
19:26 PerlJam (or zip file)
19:27 mikehh if I go to downloads, on parrot.org, click on downloads, developer release and it is pointing to 3.0.0
19:27 whiteknight a drupal admin might need to change that
19:27 cotto_work I can fix that.
19:27 jnthn mikehh++ # quote win
19:27 mikehh jnthn: ;-}
19:28 dmalcolm joined #parrot
19:29 cotto_work done
19:29 mikehh cotto_work: can you also upload the latest make html files
19:30 cotto_work mikehh: sure.  Do you have a tarball somewhere?
19:31 mikehh just run make html in the latest #parrot and replace them on docs.parrot.org
19:34 dukeleto we need to automate some of that stuff
19:35 mikehh dukeleto: I'll look into it
19:35 mikehh got to work with kid51 to sort out removing make docs and more gtml cleanup
19:36 mikehh html
19:36 cotto_work done
19:37 cotto_work dukeleto: +1.  it's annoying and pretty amenable to scripting
19:41 nwellnhof joined #parrot
19:41 nwellnhof ~
19:41 mikehh bah, just noticed another error in the announcement - subversion is mentioned - the perils of copy pasting. fixing
19:43 Coke cotto_work: did you update docs.parrot.org ?
19:45 Coke (someone keeps changing one of the symlinks that doesn't need to be changed.
19:45 Coke oh, it was cotto, since everyone is forced to login. ;)
19:45 darbelo left #parrot
19:48 Coke cotto_work: latest should always point to devel.
19:48 Coke msg cotto_work: latest should always point to devel on docs.parrot.org
19:48 aloha OK. I'll deliver the message.
19:50 atrodo dukeleto> ping
19:59 cotto_work ~~
20:00 benabik joined #parrot
20:01 zby_home joined #parrot
20:01 cotto_work Coke: ok
20:01 dukeleto atrodo: pong
20:02 atrodo dukeleto> Do you know what the state of security is in parrot?
20:02 atrodo dukeleto> After I pinged you, i wondered why i thought you would know that
20:03 dukeleto atrodo: it is very poor
20:03 atrodo dukeleto> That's what I was afraid of
20:03 dukeleto atrodo: i do know about it, because PL/Parrot needs various security features that Parrot doesn't currently have
20:04 cotto_work e.g.?
20:04 atrodo dukeleto> Ah, yes, that's why I was thinking you would know
20:05 dukeleto Disabling groups of opcodes, not requiring the 1st ever created interp to be passed to Parrot_new to create more interps, disabling loading of bytecode, many things
20:05 NotFound dukeleto: what's the problem with Parrot_new ?
20:06 dukeleto Being able to say "this PIR can create network connections, but it can't have filesystem access"
20:06 dukeleto NotFound: you have to pass the 1st ever created interp to it to create more interps
20:06 dukeleto NotFound: i have trusted and untrusted interps in PL/Parrot, but they mingle and that is bad for security
20:06 NotFound dukeleto: that's a feature, not a problem ;)
20:06 dukeleto NotFound: no, it is not a security feature, it is a security problem waiting to happen
20:07 dukeleto each interp should know nothing about any other interp, unless you want it to
20:08 NotFound dukeleto: so the problem is that you want completely separated interpreters?
20:09 mj41 msg bacek gen_gc2 is online, see http://tt.taptinder.org/ ... will look on ttbot tomorrow
20:09 aloha OK. I'll deliver the message.
20:10 cotto_work It'll probably be merged tomorrow.
20:16 dukeleto NotFound: yes.
20:16 dukeleto MERGE BABY MERGE
20:17 NotFound dukeleto: I think there are several internals that must be changed to be able to do that.
20:17 dukeleto NotFound: yep.
20:20 mikehh #ps in 10
20:20 tcurtis joined #parrot
20:38 donaldh joined #parrot
20:39 Coke interpreters should have a hierarchy of parent interps.
20:39 Coke (back to the main interp)
20:42 dukeleto Coke: no.
20:44 Coke fine. "should be able to"
20:45 dukeleto Coke: sure.
20:45 Coke but if you want to create a new interp, it seems reasonable that you have to pass in the original interp at least once.
20:45 dukeleto Coke: the security professional in me screams bloody murder at the implications of that
20:46 dukeleto Coke: i am fine with it being optional, such that passing in old interps reuses some junk and provides memory savings, but there should be a way to create totally standalone interps
20:46 cotto_work dukeleto: +1
20:54 Coke that might be a problem with our /implementation/, but I don't think it's a problem with child interpreters per se.
20:55 whiteknight it is certainly a problem with our current implementation
20:56 * Coke hurls: http://www.tcl.tk/man/tcl8.5/TclCmd/interp.htm for what tcl needs for support.
20:56 whiteknight and by "our current implementation", I mean "our current threads system implementation
20:56 whiteknight '"
20:56 atrodo So if we rip out threads, problem solved?
20:57 whiteknight basically...yes
20:57 whiteknight that's one of the big reasons why I wanted to rip them out
20:57 whiteknight but no, having a system which barely works for even trivial toy programs and causes other serious design problems is better than not having it
21:00 perlite left #parrot
21:01 perlite joined #parrot
21:05 vmspb joined #parrot
21:23 benabik left #parrot
21:24 benabik joined #parrot
21:25 Andy left #parrot
21:30 Tene whiteknight: I'm the only person that I've actually seen object to ripping out threads, so i can't speak for anyone else, but I can speak for myself.
21:30 dalek nqp/match-nom: 6314c26 | moritz++ | src/Regex/Match.pir:
21:30 dalek nqp/match-nom: first shot at moving Regex::Match to 6model. Does not even compile yet
21:30 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/6314c26040
21:30 dalek nqp/match-nom: a5a8a85 | moritz++ | src/Regex/Match.pir:
21:30 dalek nqp/match-nom: fix stupid thinko
21:30 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/a5a8a85555
21:30 dalek nqp/match-nom: a66d699 | moritz++ | src/Regex/Cursor.pir:
21:31 dalek nqp/match-nom: fix new_match
21:31 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/a66d699b94
21:31 benabik_ joined #parrot
21:31 whiteknight left #parrot
21:31 Tene whiteknight: I don't have a clear, well-supported reason to keep the current threads impl.  My hesitation is a vague discomfort with feeling like we're "moving backwards", and a vague fear that ripping it out would make adding a good threads system somehow less likely to happen, or more difficult, etc.
21:32 Tene Oh, ENOWHITEKNIGHT
21:33 Tene aloha: msg whiteknight I don't have a clear, well-supported reason to keep the current threads impl.  My hesitation is a vague discomfort with feeling like we're "moving backwards", and a vague fear that ripping it out would make adding a good threads system somehow less likely to happen, or more difficult, etc.  I don't feel confident that I'd actually know if that's the case.  If you can reassure me about these points, I'd support ...
21:33 aloha Tene: OK. I'll deliver the message.
21:33 Tene ... ripping out threads.
21:33 Tene bah, close enough
21:35 benabik left #parrot
21:35 benabik_ is now known as benabik
21:35 ambs left #parrot
21:39 cotto_work msg cotto You should look at PyCon for your conf todo list.
21:39 aloha OK. I'll deliver the message.
21:40 dalek nqp/match-nom: b863609 | moritz++ | src/Regex/Cursor.pir:
21:40 dalek nqp/match-nom: remove 3-arg setattribute from Regex::Cursor.MATCH
21:40 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/b863609bf0
21:42 donaldh left #parrot
21:43 fperrad left #parrot
21:50 donaldh joined #parrot
22:05 dalek nqp/match-nom: edbb70c | moritz++ | src/Regex/Cursor.pir:
22:05 dalek nqp/match-nom: get rid of some boxing
22:05 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/edbb70c8b2
22:05 dalek parrot: ce8e12d | cotto++ | api.yaml:
22:05 dalek parrot: remove "fast-tracked" from api.yaml.  A better solution was found at #ps
22:05 dalek parrot: review: https://github.com/parrot/parrot/commit/ce8e12dbb4
22:06 dalek parrot: 5cc4b35 | cotto++ | api.yaml:
22:06 dalek parrot: deprecations are eligible in 3.4, not 3.3
22:06 dalek parrot: review: https://github.com/parrot/parrot/commit/5cc4b35bef
22:06 KaeseEs left #parrot
22:09 rurban_ joined #parrot
22:10 tadzik is there anyone interested in bringing Close back to life?
22:11 nwellnhof Tene: the current thread implementation simply doesn't work and has a bus number of zero, so i don't see why we should keep it. from what i've seen it suffers from the same problems than perl5 threads. what i'd like to see is a shared everything approach that leaves as much as possible to HLLs.
22:11 lucian_ tadzik: i'm sort of interested in someone else doing that :)
22:11 lucian_ nwellnhof: so to use those threads for each HLL to build their own?
22:11 benabik What is Close?
22:12 rurban left #parrot
22:12 tadzik benabik: a C-like lang for Parrot
22:12 tadzik close?
22:12 tadzik aloha: close?
22:12 aloha tadzik: No clue. Sorry.
22:12 rurban_ is now known as rurban
22:12 cotto_work tadzik: It's not C, but it's close.
22:12 dukeleto tadzik: yes, i would try to help
22:12 tadzik aloha: close is http://code.google.com/p/close/
22:12 aloha tadzik: Okay.
22:12 KaeseEs joined #parrot
22:12 tadzik close?
22:12 cotto_work er, benabik
22:12 dukeleto tadzik: was that Austin_Hastings HLL?
22:12 cotto_work yup
22:12 dukeleto we should check on Austin Hastings. I haven't seen him around for a long time.
22:12 lucian_ tadzik: i would certainly want to help testing it for building pynie
22:13 tadzik I don't remember, I was a toddler back then :)
22:13 nwellnhof lucian_: imo parrot should provide some synchronization primitives and leave the rest to HLLs.
22:13 lucian_ nwellnhof: that does sound ideal, yes
22:13 tadzik dukeleto: I hope I can bring it back to "it compiles" stage, but I'm afraid I'll be lacking some compiler kata to make it usable
22:14 benabik Sounds interesting, but grad school is using most of my tuits.
22:14 lucian_ nwellnhof: although many languages have share-nothing micro-threads, which could be built on top
22:15 nwellnhof HLLs are probably very different in that regard, so it doesn't make sense to go for a one-size-fits-all solution.
22:15 * mikehh must sleep, check for anything else later
22:16 lucian_ nwellnhof: i'm not sure, but of course that's secondary. thread & sync primitives are vital to do much else
22:17 nwellnhof but cloning interpreters is definitely the wrong idea, imo
22:18 lucian_ nwellnhof: probably, yes
22:20 dukeleto tadzik: as always, ask peeps on parrot-dev or in here when you hit a wall, and we will unhit your head on the wall, if we can
22:21 tadzik dukeleto: so what about this web interface?
22:21 dukeleto tadzik: make it happen :)
22:22 dukeleto tadzik: something that says "give me the URL to your git project" and then run something that checks for deprecations in the code and then gives a summary of what to do
22:22 dukeleto tadzik: something like an HTML validator for HTML
22:22 dukeleto tadzik: except it says "you are using dep'ed feature X, here is a link to the wiki page that explains what to do"
22:23 dukeleto http://www.parrot.org/files/parrot_cla.pdf is a 404
22:23 dukeleto not good.
22:24 cotto_work dukeleto: there's a different and much wackier link that works.
22:24 dalek nqp/match-nom: 205e5e1 | jonathan++ | src/Regex/Match.pir:
22:24 dalek nqp/match-nom: A little more unboxing. :-)
22:24 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/205e5e157f
22:24 tadzik whoa, whoa
22:24 nwellnhof dukeleto: that deprecation checker sounds a bit ambitious
22:25 tadzik first, the deprecations need to define something that can be checked against a code: a regex, or something
22:25 nwellnhof i don't think we can offer much more than a regex
22:25 donaldh left #parrot
22:26 dukeleto something is better than nothing
22:26 tadzik so asuumint we do, we need to fill our api.yaml with regexes, then we can think bout a validator
22:26 tadzik ...stupid lag
22:26 cotto_work dukeleto: links on http://www.parrot.org/foundation fixed
22:26 cotto_work not sure what changed
22:26 dukeleto tadzik: sure, you can start by adding a regex field to api.yaml
22:26 dukeleto cotto_work: thanks, it might have been from drupal upgrades that OSUOSL did
22:27 cotto_work likely as anything
22:27 nwellnhof dukeleto, tadzik: the regex would have to be per language. like .pir or .c
22:27 tadzik yeah
22:28 dukeleto nwellnhof, tadzik : each regex could say which file extensions it applies to
22:28 nwellnhof but that should work for simple cases
22:28 * dukeleto gets his nom on
22:28 tadzik so like "regex" : { "pir" : "foobar", "c" : "foo_bar(" }
22:28 cotto_work >nothing
22:28 tadzik s/json/yaml/
22:32 plobsing and then there are less straightforward deprecations for which no regex exists
22:33 cotto_work like write barriers
22:33 plobsing that's a good example
22:33 plobsing I wouldn't be surprised if detecting that was equivalent to the halting problem
22:33 cotto_work You might be able to use something like CIL, but good luck.
22:34 nwellnhof but a regex works for a typical case like C funtion "foo" or PIR construct "bar" is deprecated
22:34 cotto_work sure
22:35 cotto_work it's a good starting point
22:36 cotto_work The impossibility of a perfect solution doesn't excuse us from finding a minimally imperfect one.
22:39 lucian_ left #parrot
22:40 lucian joined #parrot
22:40 kid51 joined #parrot
22:43 zby_home left #parrot
22:47 donaldh joined #parrot
22:47 dalek nqp/match-nom: 6db30e4 | moritz++ | src/ (2 files):
22:47 dalek nqp/match-nom: add hacky NQPCapture
22:47 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/6db30e438b
23:05 Tene nwellnhof: Your comment doesn't actually address what I was saying there.
23:07 benabik_ joined #parrot
23:07 nwellnhof Tene: yeah, i was mostly braindumping
23:08 dalek nqp/match-nom: 866ea1f | jonathan++ | src/pmc/rakudoobject.pmc:
23:08 dalek nqp/match-nom: Make a few more v-tables overridable (e.g. ones that NQPCapture needs to override). Gets us a bit further with Match on 6model.
23:08 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/866ea1f01f
23:09 Tene nwellnhof: I thought so, just checking that I wasn't misunderstanding.
23:10 kid51 left #parrot
23:12 dukeleto ~~
23:15 cotto_work dukeleto: I'm thinking about M0's binary format.  Would we need any segments other than directory, bytecode, variables table (constants in current pbc) and metadata?
23:16 dukeleto cotto_work: i can't really say right now, but that sounds reasonable
23:17 benabik left #parrot
23:17 benabik_ is now known as benabik
23:28 jsut_ joined #parrot
23:30 dalek nqp/match-nom: a484ca8 | jonathan++ | src/Regex/Match.pir:
23:30 dalek nqp/match-nom: Fix up some attribute accesses in Match to be done the 6model way.
23:30 dalek nqp/match-nom: review: https://github.com/perl6/nqp/commit/a484ca8773
23:33 jsut left #parrot
23:35 nwellnhof left #parrot
23:35 plobsing left #parrot
23:46 donaldh left #parrot
23:51 jnthn Hmm. Does $P0[2] = $P1 always call the set_pmc_keyed and never set_pmc_keyed_int?
23:52 cotto_work jnthn: set_pmc_keyed_int is only called when it's explicitly dispatched from set_pmc_keyed
23:52 jnthn eww
23:52 cotto_work yeah
23:52 jnthn wtf. :/
23:53 jnthn Somehow, if you get that key, then stringify it and try to print that string it gives...a segfault.
23:53 * Coke wishes he had someone at ubuntu he could complain to about stuff. ;)
23:53 jnthn Keys don't tend to leak into PIR-land. Apart from I just managed to do so and...explosion.
23:54 * jnthn wonders if Object.pmc has a workaround for this...
23:55 jnthn cotto_work: ooc, do you expect the current behavior to change?
23:56 cotto_work jnthn: possibly with the move to PIRATE, but definitely not before then.
23:56 * cotto_work decommutes
23:57 * jnthn immediately gets suspicious that we may have been storing positional things in captures by stringifying the integer key or some such...
23:57 jnthn Since Capture.pmc doesn't do any re-dispatch in set_pmc_keyed

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced