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