Camelia, the Perl 6 bug

IRC log for #parrot, 2008-08-20

Parrot | source cross referenced

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

All times shown according to UTC.

Time Nick Message
00:01 particle joined #parrot
00:03 bacek joined #parrot
00:09 AndyA joined #parrot
00:20 Theory joined #parrot
00:37 dalek r30363 | Whiteknight++ | pdd09gc:
00:37 dalek : [GC] some major changes:
00:37 dalek : * Move MS collector from src/gc/dod.c and src/gc/smallobject.c into the new src/gc/gc_ms.c
00:37 dalek : * Merged Parrot_dod_clear_live_bits and clear_live_bits into Parrot_clear_live_bits.
00:37 dalek : * Moved some macros and constants from src/gc/smallobject.c to include/parrot/smallobject.h
00:37 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30363
00:40 dalek Andrew Whitworth | pdd09gc_tasklist:
00:40 dalek link: http://www.perlfoundation.org/pa​rrot/index.cgi?pdd09gc_tasklist
00:45 dalek Andrew Whitworth | pdd09gc_tasklist:
00:45 dalek link: http://www.perlfoundation.org/pa​rrot/index.cgi?pdd09gc_tasklist
00:53 particle joined #parrot
00:54 dalek r30364 | Whiteknight++ | pdd09gc:
00:54 dalek : [GC] remove now-defunct static function declarations form src/gc/smallobject.c
00:54 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30364
00:55 dalek Andrew Whitworth | pdd09gc_tasklist:
00:55 dalek link: http://www.perlfoundation.org/pa​rrot/index.cgi?pdd09gc_tasklist
01:11 rurban_ joined #parrot
01:30 kid51 joined #parrot
01:39 dalek r30365 | pmichaud++ | trunk:
01:39 dalek : [rakudo]:  Typo corrections
01:39 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30365
01:48 dalek r30366 | jkeenan++ | trunk:
01:48 dalek : Applying patch submitted in
01:48 dalek : http://rt.perl.org/rt3/Tic​ket/Display.html?id=57956.  Convert one system probe
01:48 dalek : in auto::sizes to a more standard format (test3_c.in as template file) so that
01:48 dalek : the config step leaves not 'test*' file behind in top-level directory after
01:48 dalek : configuration.
01:48 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30366
02:09 rurban_ joined #parrot
02:14 rurban__ joined #parrot
02:15 particle joined #parrot
02:18 Zaba joined #parrot
02:22 particle1 joined #parrot
02:23 dalek r30367 | jkeenan++ | trunk:
02:23 dalek : Applying patch submitted in
02:23 dalek : http://rt.perl.org/rt3/Tic​ket/Display.html?id=57780; merge stepconfigure
02:23 dalek : branch into trunk.  Individual config steps now listed in Configure.pl output;
02:23 dalek : step descriptions trimmed.  '--verbose-step' option may now take multiple
02:23 dalek : steps as values.  Tests files that covered superseded features have been
02:23 dalek : deleted.
02:23 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30367
02:24 dalek r30368 | jkeenan++ | stepdescription:
02:24 dalek : Branch has been merged into trunk and is no longer needed at HEAD.
02:24 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30368
02:41 particle joined #parrot
02:53 dalek r30369 | rgrjr++ | trunk:
02:53 dalek : [DOCS] Update release publicity instructions:
02:53 dalek : * docs/project/release_manager_guide.pod:
02:53 dalek :    + Split item 9 into three:  (9) compose the announcement; (10) add it
02:53 dalek :      to parrotcode.org; and (11) publicize it everywhere else.  This
02:53 dalek :      gives updating parrotcode.org more priority, and makes its subtasks
02:53 dalek :      harder to ignore (I almost didn't see the /.htredirects bit, even
02:53 dalek :      though I should have remembered it was there).
02:53 dalek :    + In the process, say that LWN.net just needs a text/plain mailing.
02:53 dalek :    + Add an Emacs "Local Variables:" section.
02:53 dalek :    + "Saturday" is capitalized.
02:53 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30369
03:00 rurban__ joined #parrot
03:08 Zaba_ joined #parrot
03:15 dalek r30370 | coke++ | trunk:
03:15 dalek : [docs] point to the mailing list instead of individuals for web updates.
03:15 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30370
03:19 Zaba joined #parrot
03:23 * kid51 must sleep
03:23 purl $kid51->sleep(8 * 3600);
03:28 particle joined #parrot
03:29 Andy joined #parrot
04:13 Zaba_ joined #parrot
04:31 tetragon joined #parrot
04:41 Theory joined #parrot
04:46 contingencyplan joined #parrot
05:09 tetragon joined #parrot
05:33 Psyche^ joined #parrot
05:51 Zaba joined #parrot
06:02 dalek r30371 | pmichaud++ | trunk:
06:02 dalek : [rakudo]: enable precompiled Test.pm
06:02 dalek : * Add @*INC and %*INC
06:03 dalek : * Update 'evalfile', 'require', and 'use'
06:03 dalek : * On my system, speeds spectest_regression by about 67%
06:03 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30371
06:05 bacek pmichaud++ # precompiled modues!!!
06:07 * moritz runs the tests
06:10 moritz spectest_regression down to real    2m39.740s
06:10 moritz pmichaud++ indeed
06:20 moritz previously it took real    8m13.658s
06:21 moritz that's an 68% speed up
06:25 uniejo joined #parrot
06:52 particle pmichaud++ # now i need to update it to work with PERL6LIB on windows
06:52 particle now += 6hrs sleep, that is
07:01 Zaba_ joined #parrot
07:06 masak joined #parrot
07:10 allison joined #parrot
07:29 allison joined #parrot
07:38 masak rakudo: method x { say self }; x(1)
07:38 polyglotbot OUTPUT[1␤]
07:38 masak question: should methods be allowed outside class declarations? :)
07:40 moritz don't think so ;-)
07:41 * masak files rakudobug
07:43 moritz somebody just asked on perlmonks (via private message) how to get involved with Perl 6/rakudo testing ;)
07:44 masak cool!
07:54 masak apart from just diving into the test suite and cleaning things up, I'd recommend writing an application in Rakudo Perl 6 :)
07:55 masak that tends to shake out a few testable items
07:55 moritz aye
07:55 moritz I also started a wiki two weeks ago
07:55 moritz (and gave up on the way)
07:55 moritz and ran into quite some bugs
07:56 masak :)
07:56 moritz masak: speaking of a wiki... in "november", do you compile the perl 6 files and let apache run the commpiled ones?
07:57 masak no, although that would probably be a speedup
07:57 masak I currently don't have the expertise to attempt that
07:57 masak is there a tutorial somewhere? :)
07:58 moritz masak: usually it boils down to call parrot perl6.pbc --target=pbc and adding the load_pbc 'perl6.pbc' line, or whateve it's called
07:58 moritz but I don't know a tutorial, though
07:58 moritz (perhaps you can even compile the pir to pbc after adding that line)
07:58 masak I'll try your recipe
07:59 cognominal joined #parrot
07:59 moritz or alternatively just move nearly everything to a module, and use rakudo's shiny precompiled module feature ;)
08:08 Zaba joined #parrot
08:32 Debolaz joined #parrot
08:34 allison joined #parrot
08:42 skv joined #parrot
09:01 iblechbot joined #parrot
09:02 Zaba joined #parrot
09:12 rurban__ joined #parrot
09:14 tetragon joined #parrot
09:18 allison joined #parrot
09:21 moritz PHP?
09:21 purl PHP is probably really badly designed or swahili for "child molestor" or  Philippine pesos or PHP: Hardly Programming or brought to you by the teletubbies or proof there is no god or the worse-is-better approach taken to to dazzling new depths or Pathologically Helpful People
09:25 dalek r30372 | allison++ | pdd27mmd:
09:25 dalek : [pdd25cx] Bringing the pdd27mmd branch up-to-date with trunk r30371.
09:25 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30372
09:29 masak moritz: did you mean --target=pir in your explanation above?
09:29 moritz masak: yes
09:29 masak using --target=pbc produces the terse output '"pbc" => PMC 'Eval' { ... }'
09:29 moritz and it's load_bytecode, not load_pbc
09:29 masak hm, so all I know so far is how to compile down to PIR
09:30 masak at least that eliminates the parsing time
09:30 moritz I'm quite sure that parrot can compile pir to pbc
09:31 moritz parrot -o foo.pbc foo.pir perhaps?
09:31 * masak will try various approaches
09:32 moritz but I think the easiest is to move most code to a module
09:32 moritz and then use the compiled module, which pmichaud++ enabled a few hours ago
09:33 masak ah, so that works now? great!
09:33 masak pmichaud++
09:33 moritz yes
09:33 moritz reduced make spectest_regression time from 8min 13s to 2min 40s or something
09:33 masak impressive.
09:34 moritz aye
09:34 masak we'll have a november hacking session tonight. we'll measure the impact on our running time then.
09:35 moritz and make sure to tell me the results ;)
09:35 AndyA joined #parrot
09:52 allison joined #parrot
09:54 dalek r30373 | allison++ | pdd27mmd:
09:54 dalek : [pdd27mmd] Fixing file metadata after file rename.
09:54 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30373
10:04 jonathan OH HAI
10:05 moritz hi ;)
10:07 * jonathan is doing some weird sleep times these days
10:23 jonathan Wow! pmichaud++ # make spectest_regression is teh faster!
10:27 jonathan Down to 151 seconds here for me. :-)
10:27 moritz yeah, same order of magnitude here
10:28 jonathan Awesome.
10:28 moritz before it was 8min
10:31 dalek r30374 | jonathan++ | lazyrakudo:
10:31 dalek : [rakudo] Creating branch to start work on lazy lists for Rakudo.
10:31 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30374
10:32 Whiteknight joined #parrot
10:49 * masak waves at jonathan
10:50 jonathan hi masak :-)
10:51 masak jonathan: looking forward to playing with those lazy lists
10:51 masak yesterday, I tried my hand at getting rudimentary gather/take to work
10:52 masak didn't get very far, but it was an interesting thought exercise
10:52 jonathan masak: Well, plenty of work to do in order to implement them!
10:53 jonathan Working in a branch so I can break stuff along the way.
10:53 masak jonathan: IMHO, they (gather/take) come in three stages
10:53 masak 1. the-simplest-possible 2. lazy 3. dynamic/lazy
10:53 masak although steps 2 and 3 could possibly be reversed
10:54 masak I'm only interested in implementing (1) right now
10:54 masak so that I can play around with gather/take in my own code :)
10:54 jonathan Makes sense. :-)
10:54 masak but even that is a bit beyond my current PIR-fu right now, it seems
10:55 jonathan Plus I'm not sure how well resumable exceptions work so far.
10:55 moritz it's been mentioned on yesterday's #ps
10:55 moritz basically allison said "give me a test case, and I'll make it work"
10:56 jonathan Ah, nice. :-)
10:57 masak what I need, I think, is some sort of variable declaration of a variable connected to a gather block. so that the take subroutine has something to push its values to. I'm currently studying how to introduce such a variable, and how to get take to know about it.
10:59 moritz masak: basically you need such a variable at the PIR level which is not visible in Perl 6
11:00 masak moritz: aye.
11:00 masak that would be the best solution
11:00 moritz and if PIR supports something like local() in perl 5, you can use just one variable, and implicitly get dynamicality
11:00 masak ooh
11:00 masak and here I thought this would be difficult :)
11:01 masak PIR++
11:01 moritz if there's nothing like local(), you can still use a stack instead
11:01 masak that was my plan, actually
11:02 masak however, I'm facing much simpler problems right now :)
11:15 uniejo joined #parrot
11:26 kj joined #parrot
11:29 tetragon joined #parrot
11:31 Whiteknight joined #parrot
11:50 pmichaud good localtime(), #parrot
11:51 masak hi, pmichaud
11:52 moritz !
11:53 masak I heard you got compiled modules working
11:53 masak pmichaud++
11:53 masak how to use them? just --target=pbc?
11:53 pmichaud --target=pir
11:54 pmichaud the "use Foo" statement looks for Foo.pbc, Foo.pir, and Foo.pm (in that order)
11:54 moritz will it be automatically compiled when I use it the first time?
11:54 pmichaud you mean automatically generate the .pir file?  no.
11:54 masak still, great news
11:55 pmichaud I suspect in the general case that permissions on unix systems will be too restrictive for auto-generation
11:55 tetragon joined #parrot
11:55 moritz but you can still try
11:55 moritz python does it with some success
11:55 pmichaud hmmm
11:55 pmichaud I'll save it for a later optimization :-)
11:56 moritz ;)
12:00 cognominal rule all( $nl ) { .+? } #  pmichaud, how can modify this rule to match  \V+? if $nl is false?
12:00 pmichaud at the moment rakudo/pge doesn't support parameterized rules
12:01 cognominal ok
12:01 pmichaud in the general case I suppose one could do something like
12:01 cognominal and suppose it did
12:02 jonathan pmichaud: Hmm, fun. :-) List is meant to be immutable, but in a few places we are relying on the ability to push onto them. I'm thinking that in these cases we should either use a ResizablePMCArray (which List is using internally for storage) and push onto that, and then call 'list' to get a list - or just call that in the first place.
12:02 jonathan Either way, I'm thinking we probably shouldn't be implemented push_pmc on List.
12:03 jonathan *implementing
12:03 pmichaud rule all( $nl ) {   <?{ $nl }> .+? || \V+? }
12:03 pmichaud jonathan: List is immutable in the abstract -- that doesn't meant the compiler can't do mutable things on it internally
12:04 pmichaud s/meant/mean/
12:05 jonathan pmichaud: So we implement push_pmc so stuff in the compiler can twiddle with it, but not the push method so you can't do stuff to it like that from within Perl 6?
12:05 pmichaud jonathan: yes.  But better is to figure out why we're needing push on List in the first place
12:05 jonathan Because we have code that does stuff like, $P0 = new 'List'\npush $P0, ...
12:05 jonathan To construct lists.
12:06 pmichaud then we should probably be doing   $P0 = 'list'(...)
12:06 jonathan Right.
12:06 jonathan So, need to track down those cases. :-)
12:06 pmichaud there's a _lot_ of that floating about in the runtime right now, which we need to eliminate
12:06 pmichaud for example, 'require' was directly calling the 'Env' object instead of using the '%*ENV' array
12:07 pmichaud and it was using 'PERL6LIB' directly instead of '@*INC'
12:09 tetragon joined #parrot
12:13 dalek r30375 | pmichaud++ | trunk:
12:13 dalek : [rakudo]:  spectest-progress.csv update: 123 files, 2249 passing tests
12:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30375
12:15 pmichaud jonathan: what's the trick you're using in .net to make .pbc files directly from PIR?
12:15 pmichaud s/'.net'/dotnet/
12:16 jonathan pmichaud: Get an eval PMC, then write it to a file handle
12:16 pmichaud literally write it?
12:16 pmichaud as opposed to freeze?
12:16 moritz and as usual, updated charts on rakudo.de
12:17 jonathan pir_comp = compreg "PIR"
12:17 jonathan pbc_out = pir_comp(gen_pir)
12:17 jonathan fh = open output
12:17 jonathan print fh, pbc_out
12:17 jonathan close fh
12:17 pmichaud aha
12:17 pmichaud that sounds doable for PCT :-)
12:17 jonathan Aye man. :-)
12:17 pmichaud I suppose that would also preserve the result of any :immediate calls?
12:17 pmichaud right now I can't convert Test.pir into Test.pbc because of the :immediate's
12:18 jonathan I'd guess so.
12:18 jonathan Oh, we're just going to PIR now for Test.pm rather than PBC?
12:18 pmichaud yes.
12:18 jonathan I hadn't realized that. :-)
12:18 pmichaud that's why I mentioned it.  :-)
12:18 jonathan More speed win!
12:19 pmichaud I'd like to go to .pbc, but the :immediates are a blocker
12:19 jonathan OK, I guess that means what's in :immediate now needs migrating to be attached to the initload attribute.
12:19 pmichaud that's my initial thought, yes
12:20 pmichaud but getting --target=pbc to work would also be a nice win
12:20 pmichaud for that I think I need to also do my targets refactor, though
12:20 dalek r30376 | pmichaud++ | trunk:
12:20 dalek : [rakudo]:  Remove obsolete '!find_file_in_path' guts function.
12:20 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30376
12:21 jonathan Is migrating to using initload rather than immediate something you'd prefer I looked at/did?
12:22 pmichaud it's entirely up to you.  I can do it, just don't know when I'll do it :-)
12:22 jonathan Ah, OK.
12:22 jonathan I will probably do it when I start getting Rakudo onto the new MMD and need to sort out signatures.
12:23 jonathan If you haven't beaten me to it by then.
12:23 pmichaud that works.
12:25 jonathan That will either be this week, if I get some good time/brain cycles to hack on the MMD stuff, or first week in September (next week is non-geek vacation in Romania).
12:26 Zaba_ joined #parrot
12:29 dalek r30377 | julianalbo++ | trunk:
12:29 dalek : added gcdebug mode to debugger, to run GC cycles like the gcdebug core, and 'gcdebug' command to toggle this mode
12:29 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30377
12:34 tetragon joined #parrot
12:39 jonathan pmichaud: We are also doing:
12:39 purl okay, jonathan.
12:39 jonathan ##  create a list for holding the stack of nested blocks
12:39 jonathan $P0 = new 'List'
12:39 jonathan set_hll_global ['Perl6';'Grammar';'Actions'], '@?BLOCK', $P0
12:39 jonathan purl: er, wtf?
12:39 purl jonathan: wish i knew
12:40 jonathan I'm pretty sure that is wrong, since those are certainly meant to be mutable.
12:40 pmichaud so make it  'Perl6Array' instead of 'List'.  :-)
12:40 jonathan Aye.
12:41 * jonathan now needs to implement the set_* on Perl6Array :-)
12:41 jonathan If you "push @foo, $x" that just adds $x to the end of the unevaluated portion, right?
12:41 pmichaud you mean perl 6?
12:42 jonathan Yes.
12:42 pmichaud seems reasonable.
12:42 moritz I think it's ok to completely evaluate it before pushing
12:42 moritz because it's an operation that works at the end of the list
12:42 pmichaud moritz:  but that wouldn't be very lazy
12:42 jonathan my @a = 1..Inf; push @a, 42;
12:42 pmichaud what if $x is a filehandle reading from $*IN ?
12:43 moritz pmichaud: you can't expect anything that works with the end of a lazy list to be lazy
12:43 moritz jonathan: it's pretty useless to push something onto an infinite list
12:43 pmichaud I can expect to be able to push it on the end of the list and then evaluate it only when I get to it
12:43 pmichaud as opposed to having to evaluate it first
12:43 pmichaud jonathan: it might be a good idea to think of push/pop/unshift/shift/etc in terms of splice
12:43 pmichaud and then make sure splice is appropriately lazy
12:43 moritz so you'd store some kind of linked list of evaluated junks?
12:44 pmichaud moritz:  a List has an evaluated portion (head) and unevaluated portion (tail)
12:44 moritz pmichaud: and if you push to it, and place it after the evaluated portion without evaluating the rest, you get a wrong order
12:44 pmichaud anything in the unevaluated portion can be lazy
12:45 pmichaud a push always go to the unevaluated portion
12:45 pmichaud the unevaluated portion can contain both lazy and eager elements
12:45 moritz ok
12:45 moritz that was the piece that I was missing
12:46 moritz so you can actually have something like (eager, lazy, eager, lazy) and both lazy blocks being actually lazy?
12:46 pmichaud yes
12:46 jonathan I guess calling elements() forces evaluation of the whole thing...
12:46 jonathan Since you gotta know how many there are.
12:46 pmichaud jonathan: not necessarily
12:46 pmichaud jonathan: if each of the parts can respond to .elements
12:46 jonathan Oh, hmm, yes.
12:47 jonathan I guess a range always knows its length.
12:47 jonathan File handles are the tricky part.
12:47 pmichaud they may need to evaluate themselves to determine .elements
12:47 pmichaud (which is why they may mutate themselves internally)
12:47 pmichaud so, if I call .elements on a filehandle, then yes, I would expect it to become evaluated at that point
12:48 pmichaud sorry, .elems
12:48 jonathan Is a file itself an eterator?
12:48 jonathan *iterator
12:48 jonathan Or do you have to do =$fh to get the iterator?
12:48 jonathan erm, file handle
12:48 pmichaud I don't know -- that part hasn't been entirely clear to me
12:49 jonathan Also, it's not spec'd. ;-)
12:49 moritz I think you can't write 'for $fh -> {...}', if that's what you ask
12:49 jonathan Well, you can, but you'd not be doing what you wanted. :-)
12:49 moritz that would just run the block once, with $fh as the topic
12:49 jonathan Right.
12:49 jonathan That's what I was expecting.
12:49 moritz so $fh itself isn't an iterator
12:50 jonathan OK, that's a logical conclusion. :-)
12:51 pmichaud so what happens if we create two iterators on the same filehandle?
12:51 pmichaud I guess an iterator in that case is just a way to map 'shift' onto 'read'
12:52 jonathan I think so.
12:52 jonathan And in that case you'd just end up reading a line when you consumed each iterator.
12:52 pmichaud does it then become  $fh.elems  or =$fh.elems ?
12:52 masak will `say (1..Inf).elems` terminate in Perl 6.0.0?
12:53 pmichaud I suspect that Rakudo will terminate, yes.
12:53 moritz masak: I guess that's implementation specific
12:53 jonathan for =$fh -> $x { say $x; say =$fh } # prints two lines from the file per iteration
12:53 masak oki
12:53 jonathan masak: I expect once we have Inf, that can just return Inf.
12:53 jonathan Somehow...
12:53 purl somehow is exactly right
12:53 moritz I suspect that there are cases where it could return Inf
12:53 pmichaud Actually, I suspect that every implementation will terminate -- the only question is whether it does so with an oom exception or with a result :-)
12:53 masak pmichaud: :)
12:53 jonathan ;-)
12:54 moritz but in general that problem is very hard, because you could have stuff like my @a = (1..*).grep{ is_prime($_) } (or something more evil than is_prime)
12:55 pmichaud grep is lazy
12:55 moritz yes
12:55 pmichaud so that's no problem either :-)
12:55 moritz but when you call @a.elems...
12:55 pmichaud I don't have to call @a.elems for grep
12:55 moritz yes, but that's what masak was asking for
12:56 pmichaud I don't (necessarily) have to evaluate a range to determine how many .elems it has
12:56 moritz aye
12:56 pmichaud yes, we can come up with lots of cases that result in silences or an earth-shattering kaboom.  But there are lots of cases that "just work"  :-)
12:56 moritz but there are cases where you can't know the number of elems without evaluating them all, which in turn could loop
12:57 moritz I think looping is fine if you ask it to return an infinite number ;)
12:57 pmichaud yes
12:57 pmichaud and sometimes that's even correct.
12:57 moritz and earth shattering kaboom... we should avoid that ;-) parrot-shattering might be allowed, though ;)
13:06 jonathan Oooh, lunch!
13:19 masak databases and Parrot: could I use NCI to wrap mySQL? maybe someone has done/attempted this already?
13:20 Andy joined #parrot
13:23 gryphon joined #parrot
13:25 cognominal joined #parrot
13:25 NotFound t/spec/S02-builtin_data_types/num............​..................error:imcc:syntax error, unexpected IDENTIFIER, expecting '\n' ('_2')
13:25 NotFound in file 'EVAL_13' line 69
13:26 moritz NotFound: this is from a TODO test, and caught by rakudo
13:26 moritz I wonder why it prints it to STDERR, though
13:26 smash joined #parrot
13:26 * smash hello everyone
13:27 moritz hi smash
13:34 NotFound t/spec/S06-signature/named-parameters.rakudo               (Wstat: 11 Tests: 43 Failed: 0)
13:34 NotFound Parse errors: Bad plan.  You planned 67 tests but ran 43.
13:35 moritz works here
13:35 moritz do you have a clean build?
13:35 NotFound t/spec/S06-signature/named-parameters. Failed 24/67 subtests (less 19 skipped subtests: 24 okay)
13:35 moritz NotFound: could you try to remove the .rakudo file end then echo S06-signature/named-parameters.t > t/localtest.data; make localtest
13:37 NotFound I'm trying in other machine with a clean parrot.
13:38 moritz I get the Bad plan-error for t/spec/S02-names_and_variables/perl
13:38 rdice joined #parrot
13:39 * moritz blames himself
13:40 * particle blames society
13:40 moritz it's one of the rare cases where society isn't the cause ;)
13:41 NotFound moritz: same fail in original machine with localtest
13:41 * jonathan returns from nom nom nom
13:42 NotFound In the other machine, all pass, 1 TODO succesful
13:42 moritz yea, in basic-open.t
13:43 NotFound realcleaning for retesting
13:44 pmichaud I think that Test.pir is tickling a GC bug
13:44 moritz I just reverted a few unfudges in perl.t which caused some failures for me
13:44 pmichaud either that or it's whatever causes 'make test' to act differently from a normal run
13:44 pmichaud when I run spectest_regression using test_summary.pl, I get no failures.
13:45 pmichaud also note that    make t/spec/S06-signature/named-parameters.t  works
13:45 pmichaud (instead of having to create t/localtest.data for a single file)
13:46 moritz shiny, I didn't know that
13:46 pmichaud schwern++ for that one (at oscon hackathon)
13:48 jonathan pmichaud: Should @*ARGS be modifiable?
13:48 jonathan As in, an Array rather than a List?
13:48 davidfetter joined #parrot
13:49 jkva joined #parrot
13:50 moritz why should ti be a list?
13:50 moritz I don't recall that it's specced as immutable somewhere, and usually @ implies Array, not List
13:50 jonathan moritz: I agree it should be - just checking.
13:51 pmichaud yes, it's modifiable.  yes, it can be an Array.
13:51 jonathan OK, will do so. :-)
13:51 pmichaud I'm also planning to refactor   .iterator, .values, .keys, etc.  soon -- will that intefere with what you're doing?
13:51 jonathan Most likely yes.
13:51 pmichaud ouch.
13:52 jonathan You already started changes?
13:52 pmichaud at least for Hash, all of .values, .keys, .kv, .pairs, etc. have to be defined in terms of .iterator
13:52 pmichaud I suspect a similar situation exists for List
13:52 pmichaud and other things being treated as lists
13:52 jonathan Makes sense, yes.
13:52 pmichaud I didn't start changes yet, no
13:52 jonathan Is it blocking you now?
13:53 jonathan I've got changes to .iterator...
13:53 pmichaud it's not blocking but it's somewhat high priority.  I just don't want to be blocked for days while you're on non-geek vacation
13:53 jonathan Well, you can surely take on the branch. :-)
13:53 pmichaud or have to worry about coordinating between a branch and trunk :-|
13:53 pmichaud okay, I'll take on the branch if that's the case.
13:53 NotFound Same error after realclean
13:54 pmichaud NotFound:  try running the .rakudo file directly
13:54 pmichaud also with the -G option to parrot
13:54 jonathan I'm expecting you'll want to corret/change what I'm doing anyway, so I've been working on this under the assumption that I'll get the first cut of it in, then hand it off to you.
13:54 pmichaud okay, that works for me.
13:55 kj jonathan: ping
13:55 jonathan kj: pong
13:55 kj hi
13:55 kj ISTR you added the :instanceof flag in imcc
13:56 pmichaud fwiw, I'm now thinking we should do some sort of rebless operation instead of :instanceof
13:56 NotFound pmichaud: all not ok are TODO
13:56 pmichaud NotFound: okay, I suspect it's a test harness or -G issue then
13:56 jonathan kj: Yes.
13:56 kj could you explain to me what it does? I'd like to document it
13:56 jonathan kj: Though haven't ended up using it yet...
13:56 kj yes I saw :-)
13:56 NotFound Same with -G
13:56 kj I ack'd for it but couldn't find anything using it
13:57 jonathan Rakudo was, but it got pulled. The point was to specify to create a particular type rather than just a Sub PMC.
13:57 jonathan Because in Perl 6 you have different types of sub: Regex, Method, Sub, Block, etc.
13:57 kj so to indicate that the sub should be a Coroutine?
13:57 kj or antoher type of sub
13:57 jonathan The second of those.
13:58 jonathan The problem was that, I hadn't realized before doing this that if there was a :outer you got a Closure instead. :-|
13:58 jonathan Which created a whole bunch of un-fun problems.
13:58 pmichaud ...and I'm thinking we may be able to eliminate Closure :-)
13:58 jonathan Right. Which is why I'm planning to wait and see.
13:59 jonathan Rather than saying :instanceof won't work, so rip it out.
13:59 pmichaud correct.
13:59 jonathan I think we need to use it, though. Because trying to fake .WHAT and especially .isa (which we fail to do now) is messy.
13:59 pmichaud I would say that ":instanceof" is an experimental feature that may or may not make it into production
13:59 jonathan Right, agree.
13:59 kj ok. so at this point no need to document it...
13:59 pmichaud I agree we want to change the type of Subs, I'm just thinking that rebless operation might be cleaner than :instanceof declaration
13:59 jonathan Documenting it may encourage its use. ;-)
14:00 jonathan pmichaud: You may well be right.
14:00 jonathan We could do this in loadinit
14:00 pmichaud exactly
14:00 jonathan I think that would probably work.
14:00 pmichaud I'm slowly coming to an awareness that IMCC may be a bit too static to work with dynamic languages.  Or at least Perl 6.  1/2 :-)
14:01 jonathan If it does, then we may find that Rakudo doesn't need :instanceof.
14:01 pmichaud right.  (more)
14:01 jonathan In which case, I see it becoming an ex-feature, unless someone else uses it/expresses a need.
14:02 pmichaud over time I had been hoping to avoid lots of :load :init code to initialize subs and data structures, but I'm quickly coming to realize that there are too many things that need to be done at initialization time to be succinctly expressed via pragmas in PIR
14:02 pmichaud examples:
14:02 pmichaud (1)  blessing Subs into a (non-PMC) class
14:02 pmichaud (2)  attaching methods to anonymous classes
14:02 pmichaud (3)  attaching signatures
14:02 Andy joined #parrot
14:02 pmichaud (4)  binding subs into multiple namespaces
14:02 pmichaud (5)  HLL type mapping
14:03 particle please don't fail to document something because it's experimental
14:03 kj pmichaud: aren't/can't these (be) done through instructions?
14:03 particle that's just wrong.
14:03 purl Fire and brimstone coming down from the skies. Rivers and seas boiling! Forty years of darkness, earthquakes, volcanos. The dead rising from the grave! Human sacrifice, dogs and cats living together... mass hysteria!
14:03 pmichaud kj:  AFAIK, HLL type mapping can't be done via instructions yet  (more)
14:03 particle document what it is, and that it is experimental.
14:04 pmichaud kj:  but in the general case -- yes, they can be doable through instructions, but the point is that we had been trying to do many of them with compiler directives.  I'm starting to think there are too many such items for IMCC to reasonably cope with at compile time, because some of them are "more dynamic" than that.
14:04 kj pmichaud: right, I'm sure some things can't be done yet in instructions. but that can be fixed..
14:09 pmichaud documentation for :instanceof :    The :instanceof pragma is an experimental pragma that creates a sub as a PMC type other than 'Sub'.  However, as currently implemented it doesn't work well with C<:outer> or existing PMC types such as C<Closure>, C<Coroutine>, etc.
14:10 pmichaud Personally, I think that having some sort of a mixin or rebless will be the way we end up, though.
14:12 jonathan Provided we're happy doing it at load time, it'll be fine.
14:13 pmichaud so far I'm happy with load time
14:13 pmichaud we may still need :immediate at some point, but then we need to figure out how to preserve that into :load
14:13 pmichaud (for when we're loading something that has been compiled)
14:13 pmichaud if writing the Eval PMC as a .pbc preserves :immediate, then that may work also.
14:14 dalek r30378 | kjs++ | trunk:
14:14 dalek : [pdd19] document :instanceof pragma. pmichaud++ for writing it
14:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30378
14:21 kj pmichaud: can you explain to me what the :scope value of 'register' means in PIR::Var? (My guess it is to have temporary registers...)
14:22 particle pmichaud: will morph work for rebless?
14:25 dalek r30379 | julianalbo++ | trunk:
14:25 dalek : link parrot_debugger to parrot_config and some debugger fixes
14:25 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30379
14:26 NotFound parrot_debugger now can run rakudo :)
14:27 pmichaud kj:  'register' scope declares a register inside of a Block (Parrot Sub)
14:27 pmichaud eventually it will be a re-usable node, so that one PAST::Var node can be referenced from several places in a tree
14:27 pmichaud but at present it's not
14:28 pmichaud the primary reason for 'register' is to get access to 'self' and to other predefined registers in PIR
14:28 pmichaud (without having to use :inline)
14:29 kj I see, I think. The re-usable part means that some AST subtree is not reevaluated each time
14:29 pmichaud correct
14:29 pmichaud so, if we want to use the result of a subtree several times, we just create a register PAST::Var for that result
14:29 pmichaud so
14:30 pmichaud my $result := PAST::Var.new( $past, :scope('register') );
14:30 kj right. I get it. Very useful for instance for a 'with' statement (don't think Perl 5/6 has that)
14:30 pmichaud and then re-use $result whenever you want to refer to the value that came back from $past
14:30 pmichaud but it only works within a block
14:30 pmichaud i.e., it's not lexically scopped
14:30 pmichaud er, lexically scoped
14:30 kj you mean it's not stored as a lexical?
14:31 particle no, it's a register.
14:31 kj within a block -> within one block ?
14:31 pmichaud it's only valid within the current PAST::Block node
14:31 particle rakudo blocks are subs.
14:31 pmichaud it's not valid in any sub-blocks
14:31 particle *parrot subs
14:31 pmichaud if it's to be available in sub-blocks, then one has to use a lexical for that.
14:31 kj right
14:32 pmichaud I'm also wanting to add a :volatile flag to PAST::Var nodes, so that we can re-use registers instead of having to re-fetch all of the time
14:33 pmichaud i.e., we refetch variables marked :volatile, otherwise we re-use the register we already established for a given lexical/package var
14:33 particle you want full control of register allocation, it seems
14:34 pmichaud not that so much -- I just want to avoid unnecessary fetch ops
14:34 pmichaud rather, to make it easy to avoid unnecessary fetch ops.  If we know that a given variable cannot be re-bound by a called sub, then we don't need to refetch on every access.
14:35 pmichaud this also means we don't have to constantly check for null and vivify
14:36 pmichaud so there's a big win there in terms of code generation
14:37 kj can't such thing being done by some analysis during compile time? I mean, if you see duplicates of the instruction $P0 = find_global "foo", then bells should be ringing
14:39 kj in other words, instead of letting the compiler writer figure it out by adding flags such as :volatile, the compiler can do it for you. Of course, that makes compilation slower.
14:42 particle this is something that static analysis can solve
14:42 particle which is why i want tree-ssa
14:43 kj Maybe, but not sure, there could be side effects through an operation or the other, in which case you might want to NOT do such optimizations. Not sure if that could happen.
14:44 jonathan In Perl 6, you probably can't do this optimization ever if you have context variables.
14:44 jonathan (as in, can't do it on those variables)
14:44 jonathan Or at least you have to be an awful lot more careful.
14:45 particle static analysis can't fix every problem, but it can fix some :)
14:46 particle kj: making compilation slower isn't a bad thing if you plan on reusing bytecode
14:47 particle the compiler should be able to determine (or the user to specify) whether something is to be optimized for compile speed or execution speed
14:47 kj particle: yes, right in that. I can imagine an option to switch it of
14:47 kj off
14:52 pmichaud in PIR/Parrot, it's almost impossible to determine if it's safe to re-use a register in the general case
14:53 pmichaud because any opcode could invoke a vtable method that in turn rebinds a symbol
14:53 pmichaud and that can't be determined with static analysis
14:53 kj pmichaud: I was afraid so.
14:53 pmichaud I'm thinking the optimization makes the most sense for lexicals at the moment
14:54 jonathan We need langauge-specific analysis to really be able to do such things.
14:54 pmichaud jonathan is correct that if a given lexical is marked as contextual, then we need a way to turn it off  (thus :volatile)
14:55 pmichaud global variables are much more likely to be rebound, so they may be :volatile by default
15:07 jonathan Anyone know how to set "does array" from PIR?
15:07 particle as in, the pmclass declaration?
15:08 jonathan Yes.
15:08 jonathan But on a PDD15 object type. :-)
15:08 jonathan Previously we got away with it by inheriting from ResizablePMCArray, which had that.
15:09 particle you can add a role
15:09 particle or do you mean 'provides' (the old 'does'). if so, there's no way to do that
15:09 jonathan Yeah, actually I mean provides.
15:09 jonathan :-|
15:10 particle i suspected as much :(
15:10 particle there should be a way, however
15:11 jonathan Aye, I ain't sure what/how though.
15:12 particle seems to me it should only be possible in init
15:12 jonathan Well, it's per-class, not per-PMC
15:12 particle er, right.
15:12 particle i mean, upon class creation
15:13 particle it's not dynamic
15:13 pmichaud one should be able to add a "provides" dynamically, though
15:13 pmichaud we can add methods, add parents, add ....
15:13 particle ok, so why use it at all, if we have roles?
15:13 particle actually, roles provide provides
15:13 sjansen joined #parrot
15:13 pmichaud I think it's just a variation of 'add role'
15:13 pmichaud or, at least, it should be
15:13 particle Roles composed with C<does> may also define C<provides> for one or more
15:13 particle interfaces. (They generally define at least a C<provides> corresponding
15:13 particle to their own name.)
15:14 pmichaud jonathan: it's okay with me if we eliminate the    does $P0, 'array'   from rakudo stuff
15:14 particle pdd17_pmc.pod:184-6
15:14 pmichaud and replace it with some other way of testing for array-ness
15:14 jonathan pmichaud: The problem is when you use one as :flat
15:14 jonathan And then Parrot checks if it does array
15:15 particle well, that's why parrot has roles
15:15 particle too bad they're unimplemented
15:15 jonathan Well, PMC-level ones are. :-)
15:15 particle prole Enumerable etc
15:15 jonathan PDD15 ones are implemetned and work nicely...it's just proles, as you mention.
15:16 particle yep.
15:16 particle i suppose that's not a huge problem now
15:16 particle since you can add pdd15 roles in to core pmcs
15:24 jonathan Grr. Creating a role named array and making the class do it doesn't work. :-|
15:26 jonathan oh, I take that back. It does work. I was doing it wrong. (n00b)
15:26 particle sweet!
15:30 dalek allison@perl.org | pdd27mmd_tasklist:
15:30 dalek link: http://www.perlfoundation.org/pa​rrot/index.cgi?pdd27mmd_tasklist
15:37 * jonathan gets things fixed enough that you can actually enter interactive mode now
15:37 jonathan You can't *do* anything, but...
15:37 jonathan At least this means the use that HLLCompiler makes of @*ARGS in terms of its being a Perl6Array are now in place.
15:38 particle you mean in your lazy-list-enabled working copy ?
15:38 particle ah list->array working copy
15:38 jonathan Yes
15:38 jonathan I made a branch
15:39 particle commit early and often :)
15:39 jonathan So I can commit bits at a time and have it as broken as I want without it annoying folks using Rakudo.
15:39 jonathan Going to commit now that I've reached this "milestone".
15:43 dalek r30380 | jonathan++ | lazyrakudo:
15:43 dalek : [rakudo] Start to implement the new lazy list classes. This means anything that uses Array and List is majorly broken with this commit (which, fortunately, is in a branch!) This includes the compiler itself, though we are now fixed up enough to be able to actually enter interactive mode. From here, will start making things work again, starting with what we need to be able to compile things so we can start passing some of the tests.
15:43 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30380
15:44 particle jonathan++ # easier code reviews
15:45 * jonathan accepts no responsibility for sick feelings as a result of code-reviewing this
15:45 dalek r30381 | jonathan++ | lazyrakudo:
15:45 dalek : [rakudo] Add new Iterator.pir (lazy list iterator), which I forgot to add in the last ci.
15:45 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30381
15:45 jonathan I'm trying to keep it neat, though no doubt there will be clean-ups to do before any kind of merge.
15:46 jonathan That feels a little way off right now, though.
15:47 pmichaud I still don't quite understand why we need a separate Iterator class, but okay.
15:48 jonathan The spec suggests there is one, IIRC.
15:48 pmichaud actually, it doesn't.  :-)
15:48 pmichaud er, it didn't.  :-)
15:48 pmichaud (last time I checked)
15:48 moritz what would you use instead? Just a lazy list? or a role?
15:49 pmichaud just a lazy list
15:49 moritz but a lazy list has to keep "old" items, an iterator doesn't
15:49 jonathan That would suggest you can only iterate it once, rather than many times.
15:49 pmichaud ..."old" items?
15:49 particle evaluated
15:49 moritz so if you do 'for =$handle { ... }' a lazy list would keep everything in memory
15:50 moritz while an iterator would just keep one line
15:50 pmichaud in the case of =$handle, the iterator simply grabs the next item from the filehandle
15:50 pmichaud that *does* consume the item, however.
15:50 pmichaud but I'm talking about List, not filehandles
15:50 moritz ok
15:51 pmichaud (we already have IOIterator in Rakudo for iterating filehandles)
15:51 pmichaud (can only iterate it once).... I definitely don't understand.
15:51 Zaba joined #parrot
15:51 particle which could be a single item lazy list
15:58 dalek r30382 | jonathan++ | lazyrakudo:
15:58 dalek : [rakudo] Update unshift on Array. We can now compile and run some very simple programs again and pass a few of the sanity tests.
15:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30382
16:00 pmichaud jonathan: unshift looks wrong to me
16:00 pmichaud we can't just prepend to @!evaluated, because the thing we're prepending might be lazy
16:01 jonathan Hmm. Good point.
16:02 pmichaud the solution is to move @!evaluated into @!unevaluated, then prepend to @!unevaluated
16:02 pmichaud (leaving @!evaluated empty)
16:02 jonathan Yeah, you're right.
16:02 particle yep
16:02 pmichaud ...which is why I was saying that defining these in terms of 'splice' might be better :-)
16:03 pmichaud but, perhaps not now that I think about it. :-)
16:04 jonathan Lazy splice felt a little scary...though I don't think it *really* is. It just felt like one of the more advanced list operations and, in theory, harder to get right. :-)
16:04 pmichaud also, for lazy lists it shouldn't be necessary to !flatten args all of the time, either.
16:04 pmichaud i.e., flattening can occur lazily as well
16:05 jonathan Yes, good point.
16:05 particle you're rather eager to get lazy working correctly aren't you
16:06 pmichaud there's not much point doing it if it's not doing it correctly :-)
16:06 pmichaud for lists, that is.
16:06 moritz I don't think it's specced how lazy exactly lists must be
16:06 pmichaud for other features I think cheats are reasonable.  but lazy lists are worth getting right
16:07 pmichaud moritz: I agree, but in the case of !flatten, we're actually *complicating* the implementation if we leave it there
16:07 particle if it's working, we can make it good later
16:07 jonathan I'm not exactly aiming to write a wrong implementation. :-P
16:07 Theory joined #parrot
16:07 Auzon joined #parrot
16:08 * particle waits to see .elems
16:08 pmichaud for .elems all a lazy list has to do is add up the .elems of its unevaluated part
16:08 particle *parts
16:08 jonathan Plus its evaluated part.
16:08 pmichaud (plus the number of items in its evaluated part)
16:09 particle the head is evaluated, but there may be a partially evaluated tail
16:09 pmichaud yes, but partially evaluated tail still works
16:09 pmichaud i.e., that's not an issue
16:10 particle how do you know if something has been evaluated in the tail?
16:10 pmichaud I don't have to know that
16:10 pmichaud I just have to ask it for its .elems
16:10 particle yes, i know
16:13 particle let's say you want to skip calls to .elems where possible
16:13 particle "i know this item has been evaluated, so i just +1"
16:13 particle or can we not make that optimization, because some item may have overridden .elems
16:13 pmichaud I can check to see if an item is something that flattens, yes
16:13 pmichaud but at some point it's just easier to go ahead and call .elems :-)
16:14 pmichaud (yes, Array.elems might be a trickier case)
16:14 dalek r30383 | jonathan++ | lazyrakudo:
16:14 dalek : [rakudo] Fix dumb pre-coffee brain-o's in Perl6Iterator. Now we get through make, and pass all but one of the 00-parrot sanity tests.
16:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30383
16:14 pmichaud I *still* don't understand why we need Perl6Iterator :-)
16:16 jonathan What do you want me to do? Stick those methods and the $!position into the List class?
16:16 pmichaud ...$!position?
16:16 moritz I think that 'for' needs to store a position
16:16 pmichaud does Perl6Iterator contain a reference to its List ?
16:17 iblechbot joined #parrot
16:17 moritz and then check with @list.exists($position) if its exhausted
16:17 jonathan If we iterate a partially evaluated list, we need to know where in the evaluated part we are, before we start going through the unevaluated part
16:17 jonathan Yes
16:17 pmichaud oh, that seems... wrong, at least the way I was envisioning ig
16:17 pmichaud it
16:17 pmichaud consider
16:17 pmichaud my @a = 1..3;    for 0, @a { say $_; @a = (); }
16:18 kj nopaste?
16:18 clunker3 http://pasta.test-smoke.org/ or http://paste.husk.org/ or http://nopaste.snit.ch:8001/ or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/
16:18 purl nopaste is at http://nopaste.snit.ch/ (ask TonyC for new channels) or http://rafb.net/paste or http://poundperl.pastebin.com/ or http://paste.scsys.co.uk/ or App::Nopaste or tools/dev/nopaste.pl
16:18 moritz jonathan: List doesn't need to know how to iterate over itself. List just responds to calls to .[] and evaluates things as needed up to the index
16:18 nopaste "kjs" at 86.95.212.32 pasted "description for "register" scope for pdd26" (10 lines) at http://nopaste.snit.ch/13850
16:18 pmichaud to me, iterator on List just returns a clone
16:19 jonathan And then it destructively removes elements from itself?
16:19 kj pmichaud: could you check my nopasted snippet, it's my understanding of register scope. I'd like to add this to pdd26
16:19 pmichaud otherwise modifications to the List would be reflected in the iterator
16:19 jonathan That would allow us to eliminate $!position
16:19 jonathan And the need for Perl6Iterator
16:19 jonathan I can do it that way, if you like. :-)
16:20 pmichaud I'm presuming that even though lists are lazy, they aren't lazy references
16:20 jonathan *nod*
16:20 jonathan OK, I will do what you suggest.
16:20 pmichaud so that   my @b = 1,2,3;   my @a = (0, @b);     @b[0] = 4;    # @a still has 0, 1, 2, 3
16:21 jonathan Oh. Hmm.
16:21 jonathan Ah. Do we call .list on @b?
16:21 pmichaud we may need to, yes.
16:22 jonathan OK.
16:22 jonathan If we are doing that, it makes sense.
16:25 pmichaud kj:  might add a blurb that the :name() for register variables has to conform to PIR identifiers
16:25 pmichaud (this might be relaxed in the future, but currently that's the case)
16:26 pmichaud other than that it looks good
16:28 Debolaz joined #parrot
16:30 Auzon joined #parrot
16:34 pmichaud ('for' store a position) -- 'for' doesn't need to store a position -- it just grabs elements from the iterator until the iterator is empty
16:35 * moritz is confused - I thought we didn't need an iterator?
16:35 pmichaud I don't need a separate Iterator class
16:35 pmichaud List.iterator can just return me another list-like object that I can destroy
16:36 pmichaud we have iterators -- I just don't need an Iterator class
16:36 pmichaud actually, Iterator sounds like a role
16:37 pmichaud and the   List.iterator does   { self but Iterator }
16:37 pmichaud er, List.iterator "is effectively the same as"   { self but Iterator }
16:37 pmichaud that would keep things like 'shift' out of the List class
16:38 pmichaud or, we could just have List.iterator return itself as an Array
16:38 pmichaud (since Array has a shift method)
16:39 jonathan Am just having it implement the shift_pmc interface for now, but not unshift method
16:39 jonathan But yes, role sounds good.
16:39 pmichaud depends on how strictly we feel we need to keep the mutable/immutable distinction internally in List
16:39 pmichaud yes, using vtable_method is good for now
16:40 jonathan Iterator is gone. Stuff is broken. Fixing... :-)
16:40 pmichaud of course, it's pretty easy to implement them even as immutables
16:40 pmichaud .sub 'push' :method
16:40 pmichaud .param pmc args
16:40 pmichaud .return 'list'(self, args)
16:40 pmichaud .end
16:41 pmichaud .sub 'unshift' :method
16:41 pmichaud .param pmc args
16:41 pmichaud .return 'list'(args, self)
16:41 pmichaud .end
16:41 pmichaud (put some :slurpy in there :-)
16:42 pmichaud although I suppose that technicaly isn't 'push' or 'unshift' :-)
16:42 masak joined #parrot
16:43 kj pmichaud: (about "register" scope): I was thinking, maybe it'd be handy to have anonymous register variables, that map to $Px. For these, you don't need to have a PAST::Var( :isdecl(1)), obviously. Creating them is done by not-specifying the :name.
16:43 pmichaud kj:  yes, I was planning that.  Just haven't implemented it yet.
16:44 pmichaud kj:  I'm also thinking of potentially supporting int/string/num registers at some point
16:44 pmichaud I'll go ahead and add the $P support, though, that's pretty straightforward
16:47 pmichaud ...oh, but I guess that's not terribly useful until I have the ability for PAST::Var node re-use
16:47 kj Names given to the C<name> attribute must conform to rules for
16:47 kj PIR identifiers. If no C<name> atribute is set, Parrot registers
16:47 kj are used. In this case, the C<isdecl> must not be used.
16:47 pmichaud it's okay if isdecl is used
16:47 kj what about this for addition?
16:47 pmichaud I won't make isdecl prohibitive
16:47 kj well, that wouldn't make sense
16:48 kj it's useless
16:48 pmichaud yes, but I don't want to make it an exception
16:48 kj ok.
16:48 kj i'll loosen it up to "no need to use"
16:48 pmichaud isdecl on a auto-generated register will effectively be a no-op
16:48 kj ok
16:49 kj In this case, setting the C<isdecl> does not have any
16:49 kj effect.
16:49 kj ?
16:49 pmichaud sure, that works.
16:51 jhorwitz joined #parrot
16:52 dalek r30384 | kjs++ | trunk:
16:52 dalek : [pdd26] add description for "register" scope
16:52 dalek : + add missing ')'
16:52 dalek : + mention :vtable subs have 'self' too (in attribute scope description).
16:52 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30384
16:54 kj pmichaud: I also emailed you a piece for parrotblog on register scope.
16:55 particle joined #parrot
16:56 particle irc log?
16:56 purl irc log is http://irclog.perlgeek.de/parrot/
16:58 pmichaud kj:  update to pdd26 looks great, thanks!
16:59 kj thanks for reviewing :-)
17:00 dalek r30385 | jonathan++ | lazyrakudo:
17:00 dalek : [rakudo] Get rid of Iterator class - just return a clone of the list, and put the iterators there. Also gets rid of $!position.
17:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30385
17:04 dalek r30386 | kjs++ | trunk:
17:04 dalek : [pct] update documentation on :scope attribute.
17:04 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30386
17:10 pako joined #parrot
17:10 pako hi all
17:11 masak hello pako
17:11 pako I'm embedding parrot in my C++ application and want interpreter to be stopped and "hibernated" to disk at some point
17:11 pako what docs cover this topic?
17:14 rurban__ joined #parrot
17:14 particle 'freeze' and 'thaw' vtable methods
17:14 masak pmichaud: was it "load_bytecode 'perl6.pbc'" I should add at the top of a standalone PIR file?
17:14 pmichaud masak: yes
17:14 masak what if the PIR file is in another directory?
17:15 pmichaud that becomes trickier.  load_bytecode will search several directories, actually
17:15 pmichaud so perhaps copy perl6.pbc into runtime/parrot/library
17:15 moritz or use an absolute path
17:15 pmichaud yes, absolute path works also
17:16 pmichaud I'm still considering how I want that to happen automagically
17:16 masak hm, the thing is that I want something that I can put in installation instructions
17:16 masak so it should work for as many people as possible
17:16 pmichaud rsn the --target=pir option should also generate the loading of perl6.pbc
17:16 masak maybe just ask them to ln -s the perl6.pbc into the current directory :)
17:19 masak hm, when I run the PIR, I get a Null PMC access...
17:20 masak (one that I don't get when running the Perl 6 source)
17:20 pmichaud it's possible that perl6.pbc isn't being load "soon" enough.
17:21 pmichaud hmmm... what's a good way to determine if Rakudo is already loaded?
17:21 masak is it always into the topmost .sub I should inject the "load_bytecode"?
17:22 masak the second one has :init in this PIR file, whereas the first one doesn't
17:22 moritz you can always add another .sub (with :anon :load) that does it on top
17:22 pako particle: but they are serializing a PMC argument. and I need something that will traverse the local and global scopes, stack, and 'freeze' each of them.
17:23 pmichaud oh.
17:23 pmichaud there's a problem in that the generated code now has :immediate, which expects that Perl 6 is already loaded.
17:23 pmichaud hrm.
17:23 pmichaud so :load and :init aren't early enough
17:23 masak ouch
17:24 moritz can you just s/init/immediate/?
17:25 pmichaud probably not
17:25 pmichaud :immediate is a very tricky beast
17:25 pmichaud might be able to s/:immediate/:load :init/ though
17:26 masak s/init/immediate/ resulted in a Bus error
17:26 masak now trying s/:immediate/:load :init/
17:26 masak ...back to the Null PMC access
17:29 particle pako: parrot interpreters are PMCs
17:29 sjansen http://icanhascheezburger.files.wordpress.com/​2008/08/funny-pictures-the-dog-started-it.jpg
17:29 masak pmichaud: is there some way to bundle the PIR and perl6.pbc into a single .pbc file?
17:30 pmichaud masak: hmmm.... not easily.  And load_bytecode is really the way we want to go.
17:30 pmichaud Let me see if I can resolve it quickly... just a min
17:30 masak nice.
17:31 sjansen http://graphjam.files.word​press.com/2008/08/cat.png
17:31 sjansen http://graphjam.files.word​press.com/2008/08/125.png
17:31 pako particle: oh, then I  have a direction to investigate. thanks for your help
17:31 sjansen http://graphjam.com/
17:31 particle pako: also see the 'getinterp' op
17:32 pmichaud stuff like
17:32 pmichaud sub set_block_proto($block, $type) { my $setup_sub := get_block_setup_sub($block); $setup_sub[0][0][0].name($type);
17:32 pmichaud }
17:32 pmichaud makes me cry.
17:32 pmichaud what in the world does  $setup_sub[0][0][0]   refer to?!?
17:32 particle O_o
17:33 masak the first great-grandson of $setup_sub, inheritor of the throne!
17:33 particle $setup_sub is dead! long live $setup_sub!
17:33 dalek r30387 | jonathan++ | lazyrakudo:
17:33 dalek : [rakudo] Various bug fixes to assignment and list creation, which gets us able to run through make test without any hangs.
17:33 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30387
17:33 sjansen Err... whoops.. wrong window.
17:33 jonathan pmichaud: See the structure built in get_block_setup_sub
17:34 sjansen Oh well, those are some fun links anyway. ;-)
17:35 masak sjansen # stirring up S/N equilibria
17:35 masak sjansen++
17:37 pmichaud jonathan: I can't quite envision the structure
17:38 pmichaud jonathan: see if I'm stating this correct:
17:38 Tene purl: allison?
17:38 purl rumour has it allison is Allison Randal <mailto:allison@perl.org>
17:38 Tene purl: parrotbug?
17:38 purl somebody said parrotbug was mailto:parrotbug@parrotcode.org or http://svn.perl.org/parrot/​trunk/docs/submissions.pod or see also "rakudobug"
17:38 jonathan pmichaud: You have a PAST::Block. It contains two statement nodes, the 0th for setting up the block type proto, the 1st for setting the signature
17:38 pmichaud okay
17:38 pmichaud I can get rid of the PAST::Block and use loadinit then, yes?
17:38 jonathan Yes.
17:38 jonathan But basically you're just chasing down the children to the PAST::Var nodes.
17:39 pmichaud is there ever the case where set_block_proto gets called more than once on a given block?
17:39 jonathan Note that we only touch these and build this structure inside the subs.
17:39 * smash later &
17:40 jonathan Can't think of one off hand, it's the way it is because we don't know which proto to attach until later on.
17:41 pmichaud same question for protos -- any chance a block would have a given proto more than once?
17:41 pmichaud I'm thinking that set_block_proto and set_block_sig could simply add the appropriate past structure to the :loadinit structure
17:41 pmichaud instead of pre-initializing it
17:41 jonathan I can't think of any reason right now, why that wouldn't work.
17:41 pako left #parrot
17:42 jonathan The defined order felt nice for knowing we could change it later if needed.
17:42 pmichaud agreed.
17:42 jonathan Thing is that we need to know that it's not a sub and not a method in block action.
17:42 pmichaud I _think_ I'm going to switch it around for now, though
17:42 cotto_work joined #parrot
17:42 jonathan So we know whether to stick the Block proto in.
17:42 jonathan I think that was the problem I ran into.
17:42 Zaba_ joined #parrot
17:42 pmichaud do we _have_ to have the Block proto?
17:43 jonathan Well, that's going to turn into the re-bless code, so it's basically the same question as, do we have to rebless it. :-)
17:43 pmichaud can the dispatcher assume Block if not set?
17:43 jonathan I think we can use p6meta to map Sub/Closure to Block.
17:44 pmichaud oh yes, that would work
17:44 jonathan And then we don't need to attach anything to blocks.
17:44 pmichaud that would be *much* better
17:44 jonathan Yes.
17:44 pmichaud I don't know that I want every immediate block to have to have signature properties
17:44 jonathan Ah, damm. I forgot about handling negative indices!
17:44 jonathan Oh, I don't think immediate blocks do have signatures.
17:44 jonathan I've not seen that in the spec, anyway.
17:45 jonathan Though I may be wrong.
17:48 pmichaud masak:  It's going to take a bit of refactoring before I can get the load_bytecode "perl6.pbc" to work, in any form.
17:48 masak pmichaud: oki
17:48 masak no worries
17:48 pmichaud it's not a quick fix, unfortunately, and I have tons of reports (both perl and non-perl) that I need to get written today
17:49 Tene There, I filed a ticket about exception handler behavior that we need for resumable exceptions.
17:50 Tene http://rt.perl.org/rt3/Tic​ket/Display.html?id=58170
17:52 pmichaud afk, lunch
17:53 Tene pmichaud: I'm gonna steal your slides for my parrot presentation tomorrow, 'kay?
17:54 pako joined #parrot
17:57 dalek r30388 | jonathan++ | lazyrakudo:
17:57 dalek : [rakudo] Fixes for negative index handling and as yet undefiend elements. This means we now pass all of 00-parrot again; failing 5 of 01-sanity.
17:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30388
18:06 jonathan OK, time for some shopping, then dinner, then some hacking later.
18:07 Zaba joined #parrot
18:10 pako left #parrot
18:14 masak rakudo: if "yo" ~~ /yo/ { say $/ }
18:14 polyglotbot OUTPUT[Null PMC access in get_string()␤current instr.: 'print' pc 12928 (src/gen_builtins.pir:8213)␤called from Sub 'say' pc 12950 (src/gen_builtins.pir:8223)␤called from Sub '_block21' pc 248 (EVAL_14:94)␤called from Sub '_block11' pc 46 (EVAL_14:20)␤called from Sub 'parrot;PCT::HLLCompiler;eval'
18:14 polyglotbot ..pc 806 (src/PCT/HLLCompiler.pir:481)␤called from...
18:15 Zaba_ joined #parrot
18:17 donaldh joined #parrot
18:19 masak rakudo: "yo" ~~ /yo/; say $/
18:19 polyglotbot OUTPUT[yo␤]
18:19 masak strange, I can not find the crucial difference between these two.
18:20 masak since the if creates a separate .sub in PIR code, the $/ is funneled through an "!OUTER" call
18:20 masak but besides that, there's no difference
18:42 paco joined #parrot
18:48 jonathan masak: I'd expect that to work...certainly a bug. Oddness.
18:49 masak jonathan: indeed.
18:49 masak I've already filed a bug for it.
18:50 masak #57858
18:55 masak I cannot reach any conclusion other than that "!OUTER" does the wrong thing with $/
18:55 rurban dotnet fails with dotnetassembly.pmc:1851: error: `E_IOError'
18:56 rurban is this known?
18:57 dalek r30389 | fperrad++ | trunk:
18:57 dalek : [RELEASE]
18:57 dalek : update LANGUAGES_STATUS.pod (17) from languages-smoke results
18:57 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30389
18:59 rurban Is E_IOError now EXCEPTION_PIO_ERROR?
19:02 NotFound $ ../../parrot --runcore=gcdebug perl6.pbc -e 'say "Hello";'
19:02 NotFound src/string.c:521: failed assertion '!PObj_on_free_list_TEST(a)'
19:02 NotFound (you need a lot of patience to test this)
19:04 Zaba joined #parrot
19:04 jonathan rurban: Yes, most probably.
19:05 jonathan rurban: .Net hasn't had any real attention of late, due to lack of time.
19:07 rdice Hi, Parroters.  Is anyone out there particularly involved with unicode issues in parrot?
19:08 rurban I just found the fix. I'll make a new ticket then.
19:08 NotFound rdice: I'm interested in it.
19:08 rurban Allison forgot one tiny thing
19:08 rdice TPF is renewing our unicode consortium membership and
19:09 rdice this involves hooking people into the u.c. membership machinery.
19:10 rdice We want to make sure that someone on p5p and someone in the p6 world is tied in.
19:11 NotFound rdice: Did you mean adminisrative tasks or something?
19:12 rdice No, it mainly involves being on their mailing list for upcoming technical changes and issues.
19:12 NotFound rdice: I think I can help with that.
19:12 dalek r30390 | fperrad++ | trunk:
19:12 dalek : [RELEASE]
19:13 dalek : update LANGUAGES_STATUS.pod (9) from manual tests
19:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30390
19:14 Ron joined #parrot
19:14 rurban rdice: juerd waalboer would be my tip.
19:15 rurban (for p5p)
19:19 rdice How actually is unicode handled in parrot?  is there a pdd that talks about this specifically?
19:19 rdice or is it just kind of baked in all over the page?
19:19 rdice er, place?
19:20 NotFound rdice: the strings pdd talks about it, but is pending of reviewing and reimplementing several thigs.
19:33 pmichaud rdice: unicode is built into Parrot's string implementation
19:34 jhorwitz donaldh: ping
19:34 pmichaud there's plans to revamp that a bit (for optimization purposes), but essentially it's all nicely compartmentalized
19:34 donaldh jhorwitz: pong
19:34 pmichaud the pdd that describes the plans is pdd28_strings.pod
19:34 jhorwitz donaldh: did you get mod_perl6 working the other day?
19:34 donaldh yes I did, thanks.
19:35 donaldh You'd logged off before I got there.
19:35 * particle provides a link for management: http://svn.perl.org/parrot/tru​nk/docs/pdds/pdd28_strings.pod
19:35 pmichaud jhorwitz: I haven't forgotten you in everything going on -- interpolated namespaces is high on my list
19:35 jhorwitz donaldh++   you're only the third person i know who's done it!
19:35 donaldh :D
19:36 jhorwitz pmichaud: yes, that's been lurking in the back of my mind.  thanks.  :)
19:36 pmichaud jhorwitz: I'm eager to see if precompiled modules will be of any help to mod_parrot
19:36 donaldh jhorwitz: http://sealgair.no-ip.com/sqlite
19:37 jhorwitz pmichaud: it will help startup time, which can be a few seconds.  registry scripts in particular will see a big benefit in startup time.
19:37 jhorwitz after that it's all cached
19:38 jhorwitz donaldh: that's mod_perl6 on the backend?
19:38 pmichaud we're also about ->this<- close to being able to import modules from other parts of Parrot
19:38 pmichaud (i.e., those not written in Perl 6)
19:38 jhorwitz wow, that's pretty darn close.  ;-)
19:39 donaldh jhorwitz: Not yet. That's mod_parrot running a pir script that uses sqlite via nci.
19:39 pmichaud actually.... now that I think about it....
19:39 jhorwitz even better!  donaldh++  :)
19:39 donaldh pmichaud: I want some of that ;-)
19:39 pmichaud I wonder if I get could    C< use SDL; >  working
19:40 * jhorwitz raises an eyebrow
19:40 * purl sees that eyebrow and raises a nose
19:40 donaldh pmichaud: I was getting around to hacking with 'use' so that it would look further than just x.pm
19:41 pmichaud donaldh: as of this morning it does that now
19:41 donaldh Oh, cool.
19:41 pmichaud it also understands x.pir and x.pbc
19:41 pmichaud (assuming they're in the @INC path)
19:41 pmichaud the tricky part is registering the protoobjects
19:42 pmichaud so we might end up with a wrapper SDL.pm that builds the protoobjects
19:42 donaldh okay.
19:42 jhorwitz that's essentially what i had to do w/ mod_parrot objects
19:43 Tene Hmm.  That seems less than ideal.
19:43 donaldh pmichaud: I've just started writing an oo wrapper around sqlite so any pointers would be appreciated.
19:43 jhorwitz mod_perl6 is responsible for registering the protoobjects
19:43 pmichaud Tene: what part seems less than ideal?
19:43 donaldh pmichaud: having to write boilerplate.
19:43 Tene pmichaud: having to wrap every parrot library you want to use.
19:44 particle donaldh: i suggest you svn co branches/gsoc_nci_001 and exercise the branch
19:44 particle having a real-world report on how it works would make merging to trunk happen sooner
19:45 Tene Oh, that's far enough along to be useful now
19:45 Tene ?
19:45 pmichaud Tene: well, I don't know that we'll wrap every parrot library.  But at present I don't know of a good way to say "what are all of the classes and symbols that came from foo.pbc"
19:45 donaldh particle: yes, I can do that. What's new on the branch?
19:45 pmichaud if a library uses p6object to build its classes, then of course it becomes much easier
19:45 Tene pmichaud: so this goes back to the export list issue?
19:45 particle jitted nci bindings
19:45 particle no more call_list
19:45 particle automated .h parsing
19:46 pmichaud Tene: yes, it's all about exporting.  But I see now how Perl 6 handles export/import, so that will of course be the model for PCT
19:46 Tene Okay.
19:46 donaldh particle: sweet, I was about to manually parse the .h
19:46 pmichaud of course, modules that don't use PCT or P6object (such as SDL) are the ones that we have to figure out how to either wrap or automatically introspect to determine what symbols we want
19:46 * jonathan returns
19:47 jhorwitz if we can't introspect, i don't think wrapping is a big deal
19:47 donaldh pmichaud: if a library can export once and any language can import, that should suffice, no?
19:48 pmichaud donaldh: sure, but then we have to make sure all of the libraries follow a common export convention
19:48 pmichaud the "common export convention" is the part that isn't common yet :-)
19:48 Tene donaldh: we've needed a convention/spec for export lists for a while now.
19:48 donaldh :D
19:48 Tene Nobody has stepped up to write it yet.
19:48 particle that's common when it comes to parrot
19:48 jhorwitz libraries shouldn't have to care what languages use them
19:48 particle libraries don't have a care in the world.
19:48 pmichaud Perl 6 has specialized sub-namespaces for exporting
19:48 particle damned hippies.
19:48 jhorwitz LOL
19:49 donaldh jhorwitz: equally, a poor user shouldn't have to wrap a library to use it.
19:49 jhorwitz ah, define "user"
19:49 pmichaud I figure that most libraries will come with their wrappers already in place, once we get a standard in place
19:49 * jhorwitz concurs
19:50 Tene My ideal state is that as long as any language implements 'use', it can use every library that every other language can use.  If each language has to ship bindings for every library, that's a problem.
19:50 donaldh I feel very nervous about the idea of a library with, say, 10 wrappers. Who maintains the wrappers as the library evolves?
19:51 pmichaud Tene/donaldh:  I totally agree that N language wrappers isn't going to be the right approach.
19:51 pmichaud I'm just saying that Parrot libraries will eventually have a common export interface available
19:51 pmichaud but if I want to "use SDL;" today, my choices are to update the SDL libraries or write a wrapper
19:51 * jhorwitz travels to the future and sees that the common export interface is good.
19:52 pmichaud yes, I should visit Australia as well.  :-)
19:52 jhorwitz the stories alias told me...
19:53 particle well, the exporter pmc gives you an api, and it's subclassible to handle conversions like prepending & to function names etc
19:53 jhorwitz my main problem wasn't with function exports -- it was objects
19:53 pmichaud particle: afaict, the exporter pmc doesn't specify an interface for how a module indicates what symbols it thinks are exportable
19:53 particle but the list of methods/functions/etc is not yet defined
19:53 particle right
19:54 particle do you think that belongs in Exporter?
19:54 pmichaud no.
19:54 particle nor do i
19:54 pmichaud the Perl 6 interface is that there's a  EXPORT subnamespace for every namespace
19:54 dalek r30391 | allison++ | pdd27mmd:
19:54 dalek : [pdd27mmd] Parse and compile MULTI declarations in .pmc files.
19:54 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30391
19:54 particle ah, right.
19:54 pmichaud so, for   "module Foo;"   the exported symbols will be in subnamespaces of Foo::EXPORT
19:55 particle i wonder if EXPORT should exist in the hll-private namespace
19:55 pmichaud that could work, although in Perl 6's case it's in the hll-public namespace
19:55 particle sure, but that's the perl 6 api, and easily codeable
19:55 particle in fact, it seems PCT-able
19:56 pmichaud it is, but there's still a challenge in finding the correct namespace
19:56 particle ...if it's made standard to use hll-private namespaces for exported symbols.
19:56 pmichaud given a statement like   "use SDL;" -- how do we know what HLL contains SDL::EXPORT ?
19:56 dalek allison@perl.org | pdd27mmd_tasklist:
19:56 dalek link: http://www.perlfoundation.org/pa​rrot/index.cgi?pdd27mmd_tasklist
19:57 particle use SDL implies it's perl 6
19:57 pmichaud so,   use SDL:lang<Parrot>;   then
19:57 particle use SDL:lang<parrot>; #look in ...right
19:57 particle that would call up the parrot compiler
19:58 particle and ask it for SDL exports
19:58 Debolaz joined #parrot
19:58 pmichaud okay, that can work.
19:58 pmichaud so, it needs to be implemented in HLLCompiler
19:58 pmichaud and we need to see about creating a 'Parrot' compiler
19:58 pmichaud no problem.
19:58 particle yep
19:58 donaldh So each HLL would define it's own syntax
19:58 particle yes, that gives the hlls whatever syntax they want
19:58 dalek r30392 | jonathan++ | lazyrakudo:
19:58 dalek : [rakudo] Confused my unshift with my shift somehow; resolving this fixes for.t.
19:58 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30392
19:58 rurban rdice: since we use icu do we have to care about unicode at all?
19:58 donaldh that seems reasonable.
19:59 rurban rdice: icu should handle all.
19:59 pmichaud not every system has icu
19:59 particle rurban: icu is a stopgap
19:59 rurban ok
19:59 pmichaud phone in 1
20:03 donaldh particle: is there a pdd for gsoc_nci ?
20:04 pim joined #parrot
20:05 particle donaldh: yes, pdd09_gc
20:05 pim Hello, i compiled parrot on debian Sarge but get this error when installing :
20:06 pim src/parrot_debugger.o: dans la fonction � main �:
20:06 pim src/parrot_debugger.c:147: r�f�rence ind�finie vers � Parrot_set_config_hash �
20:06 rurban pim: the order of obj and libs is wrong
20:06 dalek r30393 | julianalbo++ | trunk:
20:06 dalek : fixing again 'script' debugger command
20:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30393
20:07 rurban for most exe's
20:07 dalek allison@perl.org | pdd27mmd_tasklist:
20:07 dalek link: http://www.perlfoundation.org/pa​rrot/index.cgi?pdd27mmd_tasklist
20:08 NotFound pim: let me see, I changed that part today, and may have forgotten the installed part,
20:09 pim I must wait?
20:09 NotFound Just one moment...
20:10 NotFound Yes, that is. I will fix in a few moments, thanks for the report.
20:10 pim It's not a problem, i can test for you , thank you so mutch.
20:11 NotFound If you can wait a moment, I commit the fix so you can test it.
20:12 pim NotFound: i can wait all the time you need...
20:13 Tene purl: coke?
20:13 purl rumour has it coke is mailto:will@coleda.com or just a figurehead. or http://coke-floats.blogspot.com/ or DietCoke or a pest
20:13 donaldh pim asks for a long stand
20:16 dalek r30394 | jonathan++ | lazyrakudo:
20:16 dalek : [rakudo] Get the lazy lists implementation to now pass all of the sanity tests, with a variety of small fixes.
20:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30394
20:16 dalek r30395 | julianalbo++ | trunk:
20:16 dalek : fix installable parrot_debugger build
20:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30395
20:16 donaldh particle: I have checked out branches/gsoc_nci_001, where should I start?
20:16 NotFound Done.
20:17 jhorwitz joined #parrot
20:21 dalek r30396 | jonathan++ | lazyrakudo:
20:21 dalek : [rakudo] Coding standards. I meets them.
20:21 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30396
20:25 particle donaldh: build it :)
20:25 donaldh done
20:25 particle then try to get sqlite working
20:26 particle see compilers/ncigen
20:28 coke joined #parrot
20:28 coke ok, tene pinged me, I hit him privately, but he's not responding. anyone know what he wanted?
20:29 donaldh particle: thanks, I'll explore
20:30 particle coke: phone. any report?
20:30 particle that's not what tene wanted, i'm sure
20:30 purl But are you sure you're sure?
20:31 coke "removed some parrot deprecations; 0.7.0 was released; going to investigate adding in some callgrind output for parrot sub invocations"
20:31 coke I figured after 30m it was pointless to call in.
20:31 coke GAH STARVING brb.
20:32 dalek r30397 | jonathan++ | lazyrakudo:
20:32 dalek : [rakudo] Make us able to actually run spectest_regression. Lots of issues to address, since we currently have massive fail: Failed 74/123 test scripts. 1447/2839 subtests failed.
20:32 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30397
20:32 cotto_w0rk joined #parrot
20:34 coke I CAN HAZ OATMEAL?
20:34 * davidfetter HANDZ COKE SUM CHEEZBURGRZ
20:38 coke sadly, no.
20:40 cjfields joined #parrot
20:42 Whiteknight joined #parrot
20:43 davidfetter HAPPY CHEEZBURGRZ ARE OUT OF HAPPY :(
20:49 dalek r30398 | Whiteknight++ | trunk:
20:49 dalek : [DOD] remove mention of DOD_no_trace_volatile_roots, a GC flag that isn't used anywhere and has never been well documented.
20:49 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30398
21:03 pim hum
21:06 pim joined #parrot
21:07 pim sorry, i made a wrong command :O(
21:07 NotFound pim: Have you tried the fix?
21:08 pim NotFound: i lost irc and have lost the url, sorry
21:08 NotFound pim: I commited it to svn.
21:09 pim what does that mean? how can i proceed?
21:10 NotFound How do you downloaded parrot?
21:10 pim svn , etc ...
21:10 NotFound Then just: svn up
21:10 Psyche^ joined #parrot
21:10 Auzon pim: http://irclog.perlgeek.de/parrot/
21:10 NotFound And configure again
21:11 pim svn up will upgrade automatically?
21:11 Auzon That's a realtime log of this channel
21:11 moritz pim: it will update the source files. Then you have to build again
21:11 NotFound pim: up is short for update
21:11 dalek r30399 | jonathan++ | lazyrakudo:
21:11 dalek : [rakudo] A range of bug fixes and re-workings of a couple of bits. This means we now run through spectest_regression without hanging anywhere (had to manually kill stuff to get through before this). Status: Failed 55/123 test scripts. 873/2839 subtests failed.
21:12 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30399
21:12 pim Okaiiiiiyy, let me do it...
21:13 pim NotFound: returned, Actualis� � la r�vision 30399, is it good?
21:13 moritz very good
21:14 pim I suppose i muste re-compile
21:14 moritz yes
21:14 pim okay, let me do it...
21:15 smash joined #parrot
21:15 * smash hello everyone
21:15 NotFound pim: configure first, the Makefile generation has changed
21:16 pim That's what i made , perl Makefile.PL
21:16 NotFound Ok
21:16 pim it's rebuilding, a little bit long...
21:17 pim done, i try to install
21:17 pim ...
21:17 davidfetter oi, smash
21:20 particle joined #parrot
21:20 pim installation is Okaiiy
21:20 NotFound pim: good, thanks.
21:20 pim but i must test and continue to see if there's not other problems.
21:25 coke http://smolder.plusthree.com/app/public_p​rojects/report_details/4158#first_failure
21:27 pim Failed Test        Stat Wstat Total Fail  Failed  List of Failed
21:27 pim ----------------------------------------​---------------------------------------
21:27 pim t/codingstd/tabs.t    1   256     1    1 100.00%  1
21:27 pim 18 tests and 665 subtests skipped.
21:27 pim Failed 1/432 test scripts, 99.77% okay. 1/10644 subtests failed, 99.99% okay.
21:28 particle which file?
21:28 purl which file is that error in
21:28 NotFound coke: my fault, sorry.
21:28 NotFound Fixing...
21:28 purl fixing is good, definitely.
21:28 pim t/codingstd/tabs.t i suppose
21:29 NotFound Is the same coke reported.
21:29 pim yet fixed ?
21:30 pim i must rebuild?
21:30 smash pim: nope, just run test again
21:31 pim make test?
21:31 purl make test is, like, churning... warned that it needed PadWalker
21:31 NotFound pim: is not important, you can let it be until other update.
21:31 smash pim: yes
21:31 smash purl: forget make test
21:31 purl smash: I forgot make test
21:31 dalek r30400 | Whiteknight++ | pdd09gc:
21:31 dalek : [merge] update pdd09gc branch to trunk from r30356
21:31 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30400
21:31 dalek r30401 | allison++ | trunk:
21:31 dalek : [cage] Include parameter type in docs for 'local_return'.
21:31 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30401
21:31 dalek r30402 | julianalbo++ | trunk:
21:31 dalek : fix codingstd in src/debug.c
21:31 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30402
21:31 donaldh how do I go about debugging a PGE grammar?
21:32 pim NotFound: just for information, I did not get this error on before version.
21:32 particle donaldh: use <panic: ...> statements
21:33 donaldh k
21:33 NotFound pim: is just a tab instead of spaces that I intoduced accidentally in a recent commit,
21:34 NotFound Is fixed now.
21:34 donaldh ncigen barfs on "typedef int (*sqlite3_callback)(void*,int,char**, char**);" stylee statements, but it looks like they should be supported.
21:34 donaldh s/statements/declarations/
21:35 pim make test is running background.
21:35 pim 2>&1 &
21:35 pim and result in a file
21:36 particle1 joined #parrot
21:41 pim hum, how can i suppress this tab?
21:41 particle joined #parrot
21:42 pim NotFound: May be you dit it yet? upgrading by svn up?
21:42 NotFound pim: is already fixed, svn update to get ridof it.
21:42 pim Okay thanks
21:45 dalek r30403 | smash++ | pdd27mmd:
21:45 dalek : [branches/pdd27mmd]
21:45 dalek :  * 'Parrot_mmd_search_cur_namespace' changed to 'Parrot_mmd_search_local'
21:45 dalek :  * 'Parrot_mmd_search_builtin' changed to 'Parrot_mmd_search_global'
21:45 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30403
21:46 dalek mestre.smash@gmail.com | pdd27mmd_tasklist:
21:46 dalek link: http://www.perlfoundation.org/pa​rrot/index.cgi?pdd27mmd_tasklist
21:47 dalek r30404 | julianalbo++ | trunk:
21:47 dalek : change tracing control in debugger runloop, completing change accidentally introduced in 30402
21:47 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30404
21:55 particle joined #parrot
21:56 dalek r30405 | allison++ | trunk:
21:56 dalek : [exceptions] Renaming the new attribute for a resume continuation in the
21:56 dalek : Exception PMC to 'resume' instead of 'retcont', for clarity.
21:56 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30405
21:58 pim Ok: perl6 seams to work
21:59 pim what's to do again?
21:59 pim performing?
21:59 purl performing is just so they arent bored :O) haha
22:01 Auzon pim: Did you run spectest_regression?
22:01 Tene pim: what sort of work are you interested in?
22:02 pim Tene: hum, many i'll work for a bank after hollidays.
22:02 Whiteknight purl forget performing
22:02 purl Whiteknight: I forgot performing
22:02 pim Auzon: no i forgot :O(
22:02 dalek r30406 | jonathan++ | lazyrakudo:
22:02 dalek : [rakudo] More fixes, more bad assumptions removed, more things switched over to understand lazy lists. No great breakthrough in spectest_regression, though we move a few tests in the right direction.
22:02 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30406
22:02 donaldh particle: ncigen doesn't support out parameters, i.e. func(char** out), so I'll work on a patch for that.
22:02 Auzon Whiteknight++ # removing the less amusing purl quips
22:02 particle donaldh++
22:02 Auzon pim: from the languages/perl6 directory, just 'make spectest_regression'. It should do the rest.
22:04 pim What is this command doing?
22:04 Auzon It loads the t/spec/ directory from the Pugs repo, and runs the known-good tests to ensure that Rakudo is hasn't made any regressions
22:05 pim Okaii interesting....
22:06 Auzon http://rakudo.de has a graph of the daily progress made on that target. It's a rough progress indicator of Rakudo's development
22:12 pim joined #parrot
22:12 pim hoops
22:13 pim @Tene: it's a test.
22:13 pim how can we talk to just one person?
22:13 particle /msg person message here
22:13 moritz /msg $nick $message
22:14 * moritz is too slow
22:15 * particle considers changing the kb map so the number row defaults to <shift>+
22:15 pim i cannot see the message.
22:15 donaldh pim: what irc client?
22:15 purl hmmm... irc client is irssi or nothing
22:16 smash purl: agree
22:16 purl smash: what?
22:16 pim donaldh: irssi
22:16 pim text version
22:16 purl text version is on macminute though
22:16 Auzon purl, forget text version
22:16 purl Auzon: I forgot text version
22:17 particle msg particle is trying to confuse purl
22:17 purl Message for particle stored.
22:17 particle msg particle?
22:17 purl Message for particle stored.
22:17 particle hee
22:17 donaldh that's cruel ;-)
22:18 * donaldh goes to bed
22:18 * purl grabs the lube and follows donaldh
22:18 donaldh ohno
22:18 pim i do not have 'msg' in irssi.
22:19 moritz pim: in irssi a /msg opens a new "window"
22:19 pim exit
22:19 moritz pim: you can use Ctrl+n and Ctrl+p to cycle through the windows
22:20 pim joined #parrot
22:20 pim hum
22:34 pim joined #parrot
22:41 dalek r30407 | Whiteknight++ | trunk:
22:41 dalek : [core] Add function-level documentation to src/byteorder.c
22:41 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30407
22:43 pim left #parrot
22:52 dalek r30408 | julianalbo++ | trunk:
22:52 dalek : debugger 'next' command uses the debugger runloop
22:52 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30408
22:56 dalek r30409 | jonathan++ | lazyrakudo:
22:56 dalek : [rakudo] Another range of assorted fixes, getting us passing a little more of spectest_regression in the lazy branch.
22:56 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30409
22:57 Whiteknight damn lazy rakudo, needs to go out and get a job
23:01 dalek r30410 | jonathan++ | lazyrakudo:
23:01 dalek : [rakudo] Get reverse test to pass again.
23:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30410
23:04 dalek r30411 | Whiteknight++ | trunk:
23:04 dalek : [core] Add function-level documentation to src/charset.c
23:04 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30411
23:05 tetragon joined #parrot
23:10 AndyA joined #parrot
23:13 * smash later &
23:13 dalek r30412 | Whiteknight++ | trunk:
23:13 dalek : [cage] Added RT#48260 documentation stubs for functions that didn't have them, but that I didn't understand enough to document myself.
23:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30412
23:19 rba joined #parrot
23:44 dalek r30413 | jonathan++ | lazyrakudo:
23:44 dalek : [rakudo] Get some more of the built-ins working with lazy lists, albeit not lazily yet (depends on gather/take to do that - can be done in the future).
23:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=30413
23:45 jonathan msg pmichaud OK, I've done as much as I can today. There's still quite a lot of spectests failing in the branch - then, when I started changing things we didn't even get through make and build Test.pm, so progress. :-) Basically, I've just run out of time rather than run into problems. Feel free to review, take this branch on and finish it, etc; I likely won't have any more time for it this week and am away next week. Thanks!
23:45 purl Message for pmichaud stored.
23:46 Limbic_Region joined #parrot

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

Parrot | source cross referenced