Parrot 0.8.1 "Tio Richie" Released | parrot.org | 588 RT | 11 trac
Set by moderator on 5 December 2008.
mj41 good night, dobrou noc, dobru noc 00:00
jonathan dobru noc :-)
00:01 chromatic joined
dalek r33674 | jonathan++ | trunk: 00:11
: [rakudo] Provide a way to get at all the possible multi dispatch candidates that could be invoked for a given set of arguments.
diff: www.parrotvm.org/svn/parrot/revision?rev=33674
r33675 | jonathan++ | trunk:
: [rakudo] Implement clone method in Perl6MultiSub.
diff: www.parrotvm.org/svn/parrot/revision?rev=33675
r33676 | jonathan++ | trunk: 00:12
: [rakudo] Extensively refactor .?, .+ and .* so they know about multi methods. Also add function level docs for them, which were missing before, plus for !.^.
diff: www.parrotvm.org/svn/parrot/revision?rev=33676
r33677 | jonathan++ | trunk: 00:15
: [rakudo] Add calling sets of methods tests to spectest; Rakudo passes all 29 tests in that file.
diff: www.parrotvm.org/svn/parrot/revision?rev=33677
00:18 kid51 joined
dalek r33678 | Whiteknight++ | trunk: 00:22
: [Book] small updates to chapter 11, and adding some content to chapter 12
diff: www.parrotvm.org/svn/parrot/revision?rev=33678
particle Whiteknight: i've got build failures on the cc branch
Whiteknight yeah, welcome to the club! 00:25
particle ok, wasn't sure if that was known 00:26
Whiteknight allison just updated it to trunk, and I'm sure a bunch of issues magically appeared
particle ok, first error is easy, moving on... 00:27
pmichaud ouch, I hope jonathan's changes merge with mine (assign) okay 00:30
jonathan pmichaud: I touched very little. 00:33
pmichaud: Like, one hunk in Object.pir.
pmichaud okay 00:34
Object.pir was massively refactored in assign
jonathan pmichaud: And I rather doubt you're touching Perl6MultiSub.pmc ;-)
pmichaud I'm reorganizing the methods to be in some semblance of "order"
but yes, I didn't touch the guts of those methods
jonathan OK, well, there's one additional helper method and updated .?/.+/.* - and that's it.
pmichaud it shouldn't be too difficult to patch ; I'm just thinking the merge will likely fail.
jonathan OK. They're pretty much entirely re-done.
particle i noticed you moving methods around. what semblance of order have you chosen?
pmichaud (1) Methods 00:35
(2) Operators
(3) Coercions
(4) Private methods
(5) Vtable functions
end
non-Methods go in either Methods or Operators, as appropriate.
the idea is that the more commonly used items appear first 00:36
within each section, items are roughly in alphabetical order
jonathan pmichaud: I guess I should hold of doing the "has $.x = 42" changes until you've merged. 00:37
We're more likely to clash there.
pmichaud probably. I expect/hope to merge tonight.
00:37 AndyA joined
jonathan OK, fine, maybe I hack on that tomorrow. 00:37
pmichaud right now I'm just cleaning up spectest failures. 00:38
jonathan Nice.
Will be good to unfudge some more tests.
pmichaud I'm going to go ahead and merge once array slices are working; once those work I think it's safe to do hash slices in trunk, or a separate branch.
Whiteknight particle, actually I just built the cc branch, and got no errors. What did you see? 00:39
particle Whiteknight: i just built, apparently there was one trivial error
jonathan pmichaud: Sounds good.
particle PARROT_EXPORT mismatch between decl and def 00:40
jonathan
.oO( Speakers SO loud... )
Whiteknight oh yeah, the PARROT_EXPORT thing caused some problems for me and I had to make realclean
particle it's something make headerizer should fix, but i didn't try that 00:42
i'm running tests now
Whiteknight you're going to get failures in t/compilers/pct/complete_workflow.t 00:45
particle i'm in t/op tests now 00:46
looks like for the past two weeks, it's just been tailing trunk, trying to keep up, but no work done 00:48
allison particle: yeah, the pct failures are a complete stumper
particle: probably context related 00:49
00:49 tetragon joined
Whiteknight every debugging path I've followed has been a dead-end 00:49
allison particle: and it's beginning to look like they aren't even caused by the changes on the branch
Whiteknight so i dont commit any of the garbage non-solutions I come up with
00:50 chromatic joined
Whiteknight Allison, the failures you see are all about "lexical $/ not found"? 00:51
00:51 bacek_ joined
Whiteknight I just want to make sure the test is failing for the same reasons, no just in the same places 00:52
dalek r33679 | Whiteknight++ | trunk: 00:55
: [Book] small fixes to chapter 11 that should have been committed last time
diff: www.parrotvm.org/svn/parrot/revision?rev=33679
Whiteknight okay, I'm out for the night. Laterz!! 00:56
particle has the 'global' op been deprecated? 00:58
dalek r33680 | particle++ | trunk: 01:07
: [library] convert deprecated 'global' calls
diff: www.parrotvm.org/svn/parrot/revision?rev=33680
allison particle: on the dynpmc failures in the pdd22io branch, were those on a fresh checkout?
particle yes, i believe so 01:08
want me to realclean?
allison particle: worth a try, the failures look a lot like what I often get when adding a PMC without recompiling 01:09
particle the file::spec failures are due to 'global' deprecation 01:10
allison particle: cool
particle it'd be nice to get both those branches synchronized to trunk head now 01:13
dalek r33681 | particle++ | calling_conventions:
: [include] add missing export decorator
diff: www.parrotvm.org/svn/parrot/revision?rev=33681
particle i'm rebuilding both as we speak, though
allison particle: yes, I'm pondering whether to merge them now so we have a week to hammer on them before the release 01:14
the remaining failures are minor
particle i'm still looking for a way to get you into my win32 vm
maybe realvnc or openvpn 01:15
allison I can try again from my hotel, firewall may be different there 01:17
pmichaud (windows sharing) I used crossloop a week ago, worked quite nicely. 01:18
allison pmichaud: AFAICT, the problem is Google's aggressive firewall
pmichaud that wouldn't surprise me. 01:19
but crossloop is supposed to help get around at least some firewalls
particle try telnet again
allison still no response 01:20
purl it has been said that no response is fine by me, I never ask people out anyway. And 99% chance I would piss the girl off before a date occured hehe =)
pmichaud purl appears to have personal issues.
purl pmichaud: sorry...
allison purl: forget no response
purl allison: I forgot no response
jonathan hugs purl...he knows *that* feeling... 01:22
particle allison: try 76.121.106.245 01:23
jonathan Well, that's flights booked to my first Perl event of next year. Yay. :-)
pmichaud oh, I should probably book my flight to Frozen Perl 01:24
allison particle: it was resolving to that IP address, but trying directly
particle: nope
particle could be i don't have my router set up right 01:25
allison I'm pretty sure it's Google
pmichaud I'm unable to reach it either
allison pmichaud: ah, maybe it's not Google 01:26
pmichaud particle: willing to try crossloop? Free download, simple install.
particle downloading now
pmichaud I'll fire up my copy
particle installed. creating account 01:28
pmichaud after you start it up, click share, then send me your access code
particle ok, 'am waiting on account confirmation mail 01:29
pmichaud I see your desktop. 01:33
particle allison: crossloop works for pm and me 01:35
it's easy to set up an account, so you can get access
allison ok, what vnc client are you using with it? 01:36
pmichaud crossloop has a vnc client you can download
www.crossloop.com
it handles the connection setup for you
it may even provide a reflector for the connection -- I'm not sure of the details
allison pmichaud: for Mac? I only see Windows 01:37
pmichaud I saw Mac there
ohhhhhh 01:38
they have a "Mac forum" for mac help, not a download.
sorry about that.
I misread.
particle oh, rats.
allison yeah, I was briefly excited too
particle pm: did you connect from linux? 01:39
pmichaud particle: from vmware win guest
particle ah
well, they use tightvnc
pmichaud maybe yuuguu, then? yuuguu.com :-)
I haven't used that one, but it claims to be available for mac, linux, win 01:40
01:40 ChrisDavaz joined
allison a phone call might do it, but it depends on how complex the failures are 01:40
particle i can do a phone call, sure 01:41
i'm rerunning test now
when it finishes, i'll post results, then we can coordinate
still cannot write to a closed filehandle in t/pmc/io.t 01:42
hrmm, i guess i could also make smolder_test 01:44
allison: try sourceforge.net/projects/cotvnc/ 01:46
allison is t/pmc/eval.t #8 failing on trunk on windows? 01:50
jonathan Something in eval.t fails in trunk on Windows. 01:51
Don't have it handy to look at right now.
particle test 10 fails 01:52
at line 12 in eval_10.pir
allison particle: it's attempting to connect on 5900, looking for an option to change that to 3389 01:55
particle no, use 5900
nopaste "particle" at 76.121.106.245 pasted "pdd22io test failure report" (1844 lines) at nopaste.snit.ch/14868 01:56
particle realclean did some good, by the way
allison particle: excellent 01:57
particle: t/pmc/io.t should be solved by a commit I made earlier today 01:58
particle svn info reports 33681
allison we can ignore t/compilers/pct/complete_workflow, because it's a duplicate of another branch, so it's a trunk bug 01:59
particle i'm running make test in trunk now, to compare
actually, i really only need to run the failing files, that could speed up the results...
allison ah, okay, it's failing differently now
particle complete_workflow passes in trunk 02:01
only t/pmc/eval and t/dynoplibs/myops fail in trunk
allison particle: okay, then we can ignore those in the branch 02:02
particle: and you said t/library/File_Spec was fixed in trunk now?
particle yes, ignore 02:03
just complete_workflow, and io
allison particle: okay, I can do a remerge
ignore complete_workflow, it's a context bug that exhibits on different branches
so, that leaves t/pmc/io.t 02:04
is says the filehandle is closed 02:05
02:06 Whiteknight joined
particle yep 02:06
allison can you run the pir file directly and figure out which line of the PIR is complaining about a closed filehandle?
Whiteknight allison, you really want that branch merged in tonight?
allison Whiteknight: which, calling_conventions? 02:07
Whiteknight i have time for the merge, but no time for the ensuing damage control
yes
particle Cannot write to a closed filehandle
current instr.: 'main' pc 21 (t\\pmc\\io_4.pir:7)
Whiteknight at least, not until tomorrow
02:07 adu joined
particle ...married life... ;) 02:07
allison Whiteknight: I'm torn, but probably better to leave it until tomorrow 02:08
Whiteknight okay, leaving it
allison particle: oh! well get_fd doesn't work on windows anyway 02:11
windows doesn't use integer file descriptors, does it?
Whiteknight it doesn't, but we could fake something together
particle it's posix-compliant...
allison or, did it used to work because it was just copying a pointer? 02:12
I mean, I can change the method so it returns a value on windows, at the moment it only returns '-1' on non-unix platforms
particle course, it's a really old posix-spec
ok, i saw the -1 returns there, and didn't know what to make of it 02:13
figured i'd look up the fd# for std*
allison got to go 02:15
back in 20
particle allison: markmail.org/message/m5ncpsv3z5qahskl 02:17
dalek r33682 | pmichaud++ | assign: 02:19
: [rakudo]: Add $*WARNINGS global to turn warnings on/off for now.
diff: www.parrotvm.org/svn/parrot/revision?rev=33682
r33683 | pmichaud++ | assign:
: [rakudo]: More assignment branch cleanups.
diff: www.parrotvm.org/svn/parrot/revision?rev=33683
particle allison: see also www.koders.com/c/fidDD0AADC8E591E38...EFFFD.aspx
pmichaud: how far out of sync is assign from trunk? can i merge trunk to it? 02:20
i'm getting t/op/calling errors, but think that was fixed in trunk recently 02:21
02:25 chromatic joined 02:31 chromatic joined
Coke yes, it was. 02:40
(wk--)
02:50 allison joined
allison back (after some trouble with network connection) 02:50
particle: ping 02:51
particle allison: pong
allison Google kicked us out
so, quick check, can you comment out two lines from src/pmc/filehandle.pmc and see if that fixes the problem? 02:52
particle sure
allison lines 522 and 526 02:53
particle allison: did you see my links in scrollback?
allison particle: no, unfortunately, I'm on a laptop client, so don't get history stored while I'm offline
particle ok, it's between when you timed out and the channel reported that you did, then 02:54
allison: markmail.org/message/m5ncpsv3z5qahskl
allison: see also www.koders.com/c/fidDD0AADC8E591E38...EFFFD.aspx
dalek r33684 | pmichaud++ | assign:
: [rakudo]: Fix array assignment where array appears on rhs.
diff: www.parrotvm.org/svn/parrot/revision?rev=33684
Infinoid ... are integer filehandles really going to be dropped? 02:55
Infinoid worries about select()
allison Infinoid: no, Unix will still use integer filehandles, but other OS's don't use them 02:56
it's just a question of what the get_fd method will return
it could return a PMC instead of an integer
Infinoid well, as long as it returns something I can feed to select and friends, that works for me
allison though, at the moment I'm just interested in getting the same tests that passed on trunk passing in the branch 02:57
Infinoid in pdd22io_part2 branch, "make test" passes for me on linux/x86-64
allison Infinoid: excellent, thanks 02:58
Infinoid throws strawberry perl on a windows box and tries it there 02:59
allison particle: I suspect the only reason that was working on Windows is because it's casting the FILE pointer to an int, then casting it back on fdopen 03:00
Infinoid that should fail horribly on win64 if any of the high bits were set
particle parrot doesn't build on win64, so that's not testable yet :)
Infinoid hmm. my windows box is 64-capable but only has a 32 bit OS, so I guess I can't help with that 03:01
particle no, but i have a 64bit vm/compiler/perl env
i can give you access via rdp
assuming i can get the firewall working correctly... 03:02
Infinoid I'll let you know when the number of items currently on my plate drops below 10, okay? :)
particle eat your greens!
Infinoid ... but not the green snow.
allison particle: ah, digging a bit further... it looks like windows does use integer file descriptors... (www.tech-archive.net/Archive/Develo...0448.html) 03:03
dalek r33685 | pmichaud++ | assign:
: [rakudo]: Restore 'item' contextualizer listop.
allison stdio uses a pointer
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=33685
particle uggh, i ran codetest instead of coretest :( 03:06
allison so we can change that "#ifdef PIO_OS_UNIX" to "#ifndef PIO_OS_STDIO"
particle rebuilding with that 03:07
Infinoid is libicu important for this testing? 03:18
particle i don't think so, since i don't have it
Infinoid great, that means I don't have to start over.
allison Infinoid: not important, it just skips some unicode tests if you don't have it 03:19
pmichaud I develop without libicu most of the time.
03:25 kid51 joined
Infinoid ok. trunk -rHEAD failed t/pmc/complex and t/pmc/eval, on strawberry perl 03:27
pdd22io_part2 failed more than that. (nopaste coming up)
nopaste "Infinoid" at 75.31.91.111 pasted "pdd22io failures on strawberry perl" (20 lines) at nopaste.snit.ch/14870 03:28
particle complex is -0.0 &| NaN/Inf?
allison: io.t passes with #ifndef PIO_OS_STDIO 03:29
Infinoid just negative float 0, I don't see any NaN/Inf failures
particle ok, that's a known strawberry error 03:30
allison Infinoid: ah, excellent t/pmc/io.t is what particle is fixing, t/library/File_Spec.t is fixed in trunk, so will be fixed in next merge from trunk, and t/compilers/pct/complete_workflow.t is known intermittent context failure that appears in other unrelated branches
Infinoid: so, we're done
Infinoid great
allison particle: excellent! go ahead and commit the fix
dalek r33686 | particle++ | pdd22io_part2: 03:34
: [pmc] FileHandle pmc get_fd() method updated to check for PIO_OS_STDIO. windows now builds and passes expected tests. allison++
diff: www.parrotvm.org/svn/parrot/revision?rev=33686
particle MERGE!!!
purl well, merge is coming out this spring. beta can be out any day now.
particle forget merge
purl particle: I forgot merge
allison particle: doing the update from trunk now, prepping to merge 03:37
dalek r33687 | allison++ | pdd22io_part2:
: [pdd22io] Bringing the pdd22io_part2 branch up-to-date with trunk r33686.
diff: www.parrotvm.org/svn/parrot/revision?rev=33687
nopaste "kid51" at 68.237.15.254 pasted "t/pmc/key.t failure in trunk" (40 lines) at nopaste.snit.ch/14871 03:40
particle it's a failure because the plan is wrong 03:41
oh, i see, the second time you get result: FAIL 03:42
kid51: i have seven tests in my file 03:44
likely what happens in the script throws an exception and dies before the seventh test is reported 03:45
.sub do_not_collect_string_keys_early_rt_60128 # the problem is probably in there 03:46
dalek r33688 | allison++ | trunk:
: [pdd] Caught documented name inconsistent with implemented name.
diff: www.parrotvm.org/svn/parrot/revision?rev=33688
03:46 petdance joined
kid51 That failure was observed on Linux ... where I've never seen a failure in that file before. 03:47
particle can you paste "parrot -t 1 t/pmc/key.t"
only need the last 50 lines or so
it's likely to be very long because PGE is involved 03:48
dalek r33689 | pmichaud++ | assign: 03:50
: [pct]: Throw an exception if setting an lvalue on PAST::Val.
diff: www.parrotvm.org/svn/parrot/revision?rev=33689
r33690 | pmichaud++ | assign:
: [rakudo]: Refactor postcircumfix;<[ ]> to be a Role.
diff: www.parrotvm.org/svn/parrot/revision?rev=33690
nopaste "kid51" at 68.237.15.254 pasted "tail of parrot -t 1 t/pmc/key.t" (44 lines) at nopaste.snit.ch/14872 03:53
dalek r33691 | particle++ | pdd22io_part2: 03:55
: [CAGE] codingstd fixups
diff: www.parrotvm.org/svn/parrot/revision?rev=33691
particle allison: can you look at the last nopaste from kid51? 04:01
kid51 must sleep 04:02
purl $kid51->sleep(8 * 3600);
particle seems that Test/Builder/Output.pir has the text of 'ok 7 ...', but fails to print it
maybe the buffer isn't flused properly?
causes kid51 to fail t/pmc/key.t test 7 04:03
this is trunk, btw
dalek r33692 | pmichaud++ | assign: 04:12
: [rakudo]: Match does Positional.
diff: www.parrotvm.org/svn/parrot/revision?rev=33692
particle pmichaud: should i run tests on assign branch, or wait? 04:13
pmichaud particle: sure, you can run tests. I'm down to five failing spectest files. 04:14
dalek r33693 | particle++ | pdd22io_part2:
: [pdd22io] Bringing the pdd22io_part2 branch up-to-date with trunk r33691
diff: www.parrotvm.org/svn/parrot/revision?rev=33693
04:15 jimmy joined
jimmy i can't open parrot.org 04:15
is there any wrong with it? 04:16
particle jimmy: works for me
04:19 jimmy_ joined 04:23 Maddingue joined, baest joined
dalek r33694 | pmichaud++ | assign: 04:35
: [rakudo]: Add dependency for "make *.t"
diff: www.parrotvm.org/svn/parrot/revision?rev=33694
04:45 tetragon joined 04:53 jimmy joined
allison resolved conflicts... running tests after merge... 05:03
GeJ brace! brace! brace!
allison and... land! 05:17
dalek r33695 | allison++ | trunk:
: [pdd22io] Merging the pdd22io_part2 branch into trunk for r32922 to r33687.
diff: www.parrotvm.org/svn/parrot/revision?rev=33695
GeJ Please remain seated until we arrive at our parking position. 05:22
allison++
05:25 Theory joined
GeJ bonjour 05:30
purl hey, GeJ.
05:32 ff-wonko joined 05:35 Alias_ joined
dalek r33696 | allison++ | pdd22io_part2: 05:40
: Removing second I/O development branch from the repository
diff: www.parrotvm.org/svn/parrot/revision?rev=33696
05:41 jimmy_ joined 05:48 galf joined 06:04 rhr joined
dalek r33697 | pmichaud++ | assign: 06:10
: [rakudo]: Update list and values methods a bit.
diff: www.parrotvm.org/svn/parrot/revision?rev=33697
06:12 Theory joined 06:13 allison joined
dalek r33698 | pmichaud++ | assign: 06:23
: [rakudo]: Clean up trailing spaces.
diff: www.parrotvm.org/svn/parrot/revision?rev=33698
06:45 particle joined
dalek r33699 | pmichaud++ | trunk: 06:51
: Merge rakudo's 'assign' branch back into trunk.
: List slicing and list assignment now (mostly) work,
: although we temporarily lose array element binding and
: correct array lengths.
diff: www.parrotvm.org/svn/parrot/revision?rev=33699
Tene rakudo: my $a; my $b; ($a, $b) = (1, 2); 06:53
polyglotbot OUTPUT[Method 'lvalue' not found for invocant of class 'PAST;Stmts'␤current instr.: 'parrot;PAST;Compiler;as_post' pc 3702 (src/PAST/Compiler.pir:940)␤called from Sub 'parrot;PAST;Compiler;post_children' pc 1828 (src/PAST/Compiler.pir:379)␤called from Sub 'parrot;PAST;Compiler;as_post' pc 2243
..(src/PAST/Compiler.pir:566)␤called from Sub 'parrot;...
Tene rakudo: my $a; my $b; $a, $b = 1, 2;
polyglotbot RESULT[[1, 2]]
Tene rakudo: my $a; my $b; $a, $b = 1, 2; say $b 06:54
polyglotbot OUTPUT[␤]
Tene rakudo: my $a; my $b; $a, $b = 1, 2; say $a
polyglotbot OUTPUT[␤]
pmichaud rakudo: my $a; my $b; ($a, $b) = (1, 2); say $a;
polyglotbot OUTPUT[Method 'lvalue' not found for invocant of class 'PAST;Stmts'␤current instr.: 'parrot;PAST;Compiler;as_post' pc 3702 (src/PAST/Compiler.pir:940)␤called from Sub 'parrot;PAST;Compiler;post_children' pc 1828 (src/PAST/Compiler.pir:379)␤called from Sub 'parrot;PAST;Compiler;as_post' pc 2243
..(src/PAST/Compiler.pir:566)␤called from Sub 'parrot;...
pmichaud hasn't updated yet, I guess.
particle rakudo: say $?VM<config><revision> 06:55
polyglotbot OUTPUT[Lexical '$?VM' not found␤current instr.: '_block11' pc 23 (EVAL_13:17)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir:508)␤called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1232 (src/PCT/HLLCompiler.pir:672)␤called from Sub
..'parrot;PCT;HLLCompiler;command_line' pc 1408 (src/PCT/HLLCompiler.pir:760)␤calle...
Tene ... oh, right, the commit messages are in real time.
particle rakudo: say %?VM<config><revision>
polyglotbot OUTPUT[Lexical '%?VM' not found␤current instr.: '_block11' pc 23 (EVAL_13:17)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir:508)␤called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1232 (src/PCT/HLLCompiler.pir:672)␤called from Sub
..'parrot;PCT;HLLCompiler;command_line' pc 1408 (src/PCT/HLLCompiler.pir:760)␤calle...
pmichaud rakudo: say %*VM<config><revision>
polyglotbot OUTPUT[33698␤]
particle ah, thanks!
this complete_workflow.t error is driving me mad 06:57
pmichaud in pct?
particle yes
pmichaud what's the error?
purl pmichaud: Value too large for defined data type
particle the first 72 chars printed to $PM are removed
(line 384) 06:58
actually, the temp files seem to be stepping over each other in general
pmichaud rakudo: say %*VM<config><revision> 06:59
polyglotbot OUTPUT[33698␤]
particle maybe at the top of the hour it'll update
Tene yes
pmichaud I didn't have much to do with the pct workflow tests, so I'm not really sure what the issue is. 07:00
Tene it'll start updating.
pmichaud rakudo: say %*VM<config><revision>
polyglotbot OUTPUT[33698␤]
pmichaud notes it's "top of the hour" now :-)
I guess we have to wait a couple of minutes for a rebuild.
particle it still has to build! :P
Tene it updates on */5 + rebuild time
pmichaud okay
particle what's */5 in non-cron-speak? 07:01
pmichaud rakudo: say %*VM<config><revision>
polyglotbot OUTPUT[33698␤]
pmichaud every five minutes
particle ah
pmichaud (assuming it's in the "minutes" position)
Tene Almost. Every minute evenly divisible by 5.
pmichaud ...there are others? 07:02
Tene eh?
purl Speak up, sonny!
pmichaud on my clocks, the numbers are at 5 minute intervals... you mean there are more minutes than that? ;-)
Tene :) 07:03
particle rakudo: say %*VM<config><revision>
polyglotbot OUTPUT[33698␤]
Tene I'm polling it in /msg
particle :)
pmichaud rakudo: say %*VM<config><revision>
polyglotbot OUTPUT[33698␤]
particle my ($x, @y) = <1 2 3 4 5>; # will this work? 07:04
pmichaud rakduo: loop(;;) { say %*VM<config><revision> } # just kidding!
I don't think rakudo understands the my ($x, $y) syntax yet. 07:05
have to update the grammar slightly for that.
rakudo: say %*VM<config><revision>
polyglotbot OUTPUT[33698␤]
pmichaud ....it's been five minutes! 07:06
Tene I'll let you know when it's done building.
particle + build time...
pmichaud yes, but what happened to the :00 build, then?
Tene lemme confirm that it's */5
particle it's still going, i assume
jimmy rakudo: say %*VM<config><revision>
polyglotbot OUTPUT[33699␤]
jimmy ok
Tene Ah, no, */30
pmichaud yay! jimmy wins!
jimmy :-)
Tene */5 is obviously going to be too much 07:07
particle two pair, 9s high
pmichaud rakudo: my $x; my @y; ($x, @y) = <1 2 3 4 5>; say $x.perl; say @y.perl;
polyglotbot OUTPUT["1"␤["2", "3", "4", "5"]␤]
Tene as it's 6+ minutes
pmichaud */15 or */10 ought to be okay.
rakudo: my $x; my @y; ($x, @y) = 1..5; say $x.perl; say @y.perl;
polyglotbot OUTPUT[1␤[2, 3, 4, 5]␤]
jimmy rakudo: my $a; my $b; ($a, $b) = (1, 2); say $a; 07:08
polyglotbot OUTPUT[1␤]
07:08 Alias_ joined
particle my $x = 1; my $why = 2; ($x, $y) = ($y, $x); say $x, $y; 07:08
GeJ pmichaud++
shiny!
particle rakudo: my $x = 1; my $why = 2; ($x, $y) = ($y, $x); say $x, $y;
polyglotbot OUTPUT[Scope not found for PAST::Var '$y'␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤called from Sub 'parrot;PAST;Compiler;post_children' pc 1853 (src/PAST/Compiler.pir:379)␤called from Sub 'parrot;PAST;Compiler;call' pc 4007
..(src/PAST/Compiler.pir:1044)␤called from Sub 'parrot;PAST;Compiler;post_children...
particle rakudo: my $x = 1; my $y = 2; ($x, $y) = ($y, $x); say $x, $y;
polyglotbot OUTPUT[21␤]
particle stupid stinking irc client...
pmichaud rakudo: my @y = 5..10; say @y[5, 3, 1, 0]; 07:09
polyglotbot OUTPUT[10865␤]
particle hip hip array!
Tene It's at /15 now
particle pmichaud++
Tene pmichaud++
pmichaud rakudo: my @y = <parrot speaks your language>; my @x = <2 3 0 1>; say ~@y[@x]; 07:10
polyglotbot OUTPUT[your language parrot speaks␤]
pmichaud okay, *now* rakudo feels like Perl.
particle damned straight! 07:11
hey, how's that loop refactor coming, tene?
pmichaud rakudo: say [*] 5..10;
polyglotbot OUTPUT[151200␤]
pmichaud tene's blocked on a design from me, I think
I'm still not sure where to put the pct prelude
particle what are the options? 07:12
purl the options are give inspections more time, or war. no one has given any other.
Tene particle: I need to finish adding exception handlers to blocks in PCT, then I'll be blocking on a couple of things from pmichaud. If I don't get a design from him, I'll sketch something myself and let him ask for changes from there.
pmichaud we need a way in PAST to specify that various include files get loaded 07:13
it doesn't seem right to use PAST::Op nodes for it, though. 07:14
pmichaud hopes we don't get another tornado warning tonight.
Tene particle: the EH stuff I'm doing will make CONTROL and CATCH blocks work well in rakudo 07:15
07:15 Zaba joined
jimmy hmm; there is 3 lvalue method in node.pir, how to call them? 07:15
pmichaud one is for PAST::Node 07:16
one is for PAST::Val
if there's another, it should probably be removed.
(I might've forgotten to remove the PAST::Var version.)
jimmy pmichaud++
Tene pmichaud: do *you* remember what "exceptions, debugging, exception types" means on the roadmap? 07:17
pmichaud Tene: in Rakudo's roadmap? Yes, it meant (1) identifying the exception classes and (2) implementing CATCH, CONTROL, BEGIN, INIT, ENTER, LEAVE, etc.
at least, I think that's what it meant.
Tene Ah.
particle modify that description if you get a chance 07:18
pmichaud I'm rewriting the roadmap completely.
Tene ... has anyone tried interactive rakudo since the IO merge?
pmichaud not I.
Tene 'cos i get Method 'set_readline_interactive' not found for invocant of class 'FileHandle'
particle oh, sorry *rakudo* roadmap...
pmichaud did we lose readline capabilities? 07:20
looks like "yes"
Tene the set_readline_interactive method now only exists as calls in HLLCompiler.pir and lua.pir
filehandle.pmc has a readline() method, looks like. 07:21
that reads a line, though
pmichaud but that doesn't use the interactive readline lib.... right
particle t/pmc/parrotio.t lists readline as nyi
pmichaud that's a disappointing loss -- I use that all the time in rakudo testing and development. 07:22
particle yeah, me too
Tene also
particle worth a listmail
hopefully allison can get it in before release
Tene Also, *some* sort of interactive mode needs to be available before release.
even without readline.
Tene sleep. &
particle like... polyglotbot? 07:23
pmichaud we can turn off the interactive readline -- that should restore the ability to at least read from stdin.
07:24 uniejo joined
allison ah, will work on that tomorrow. would it be good enough to have a separate interactive readline method? 07:25
pmichaud works for me, I think
particle pmichaud: can we do a crossloop again? 07:26
pmichaud part of the challenge is that not every system has the readline devel libraries installed.
particle configure probes for readline
pmichaud the previous implementation was nice in that .'readline' dtrt even if the library wasn't present.
bacek_ pmichaud: src/classes/IO broken after IO merge. Method 'slurp' not found for invocant of class 'FileHandle'
pmichaud bacek_: that's very likely -- I don't know that we had any active tests for .slurp 07:27
particle allison: slurp('') becomes readall() correct?
bacek_ pmichaud: it should be 'readall' 07:28
particle committed. 07:29
purl The chicken is involved, but the pig is *committed*.
pmichaud we obviously need a S16 test.
moritz many of them. 07:30
purl many of them are as you no doubt know, drunken fuckwits
dalek r33700 | particle++ | trunk:
: [rakudo] slurp('') becomes readall(); bacek++
diff: www.parrotvm.org/svn/parrot/revision?rev=33700
r33701 | pmichaud++ | trunk:
: [pct]: workaround for missing interactive readline in FileHandle
diff: www.parrotvm.org/svn/parrot/revision?rev=33701
07:30 chromatic joined
pmichaud okay, we at least have an interactive mode working again, even if it doesn't have history. 07:30
bacek_ found S16-unfiled/slurp.t
pmichaud particle: did you still want to do the crossloop? I'm getting a bit tired on this end 07:31
particle yeah, but i'm getting tired too 07:32
pmichaud so I don't know how much longer I'll be lucid
particle tomorrow?
purl o/~ the sun will come out.. tomorrow.. o/~ or the National Day of Slayer, and the National Emo Kid Beatdown day, by www.nationaldayofslayer.org/ and community.livejournal.com/wtf_inc/2805832.html or tomorrow and tomorrow and tomorrow creeps in this petty pace or maƱana or free for all or another day
Alias_ When's the next Parrot release due?
particle tuesday next
Alias_ OK
pmichaud 2008.12.16
Alias_ So, fancy co-ordinating?
particle sure!
Alias_ I can do the Vanilla release at the same time, and bundle into the announce
07:33 leto joined
particle Alias_: it's built with strawberry perl, right? 07:33
pmichaud I was looking for web-based announcements of vanilla but couldn't find any.... am I just looking in the wrong place?
particle i want to make sure we're building with that during the week, to make sure things go smooth come release-time
Alias_ Yes, it uses Strawberry to build Parrot, and then discards strawberry 07:34
particle fab
07:34 Hadi joined
leto hola 07:34
Alias_ pmichaud: The version I gave to Larry at OSDC has some issues, I wanted to wait a little before announcing
pmichaud okay.
Alias_ But that would be the (on my journal) "I haz another Sekrit" bit
pmichaud I'm about to post a few "if you want to learn Perl 6, here are some things we could use" items 07:35
particle Alias_: we'd love to have access to ms build farm for parrot platform testing. any timeframe?
pmichaud I was going to reference a vanilla release announcement, but I can skip that
particle i've got win32/64, but allison could use it
Alias_ particle: Servers are already up and running, but the MOU is hung up in Microsoft legal atm
All the techies are keen to get it going... 07:36
And I can't get the keys to the servers until the document is signed properly
particle ok, that's good
Alias_ So, one question about the distro
particle no timeframe, but only one real hurdle, seems like
07:36 Hadi left
bacek_ 'readall' is not replacement for 'slurp'... It returns content as one line. Or S16/slurp.t is wrong 07:37
Alias_ From what I can tell, if I really wanted to I could strip the entire distro out to just perl6.exe and libparrot.dll
Should I leave anything else in?
particle runtime/
Alias_ Are there core modules or anything to add in?
Should I leave in the C layer?
Are there Configure.pl flags to remove the debugging/etc stuff?
particle yes, --optimize etc, see Configure.pl --help
Alias_ ok 07:38
pmichaud anyway, the december parrot release looks like a good time to be shipping rakudo stuff, since we finally have list assignment and array slices working (and by then will have hash slices as well)
Alias_ I'll kick off some new builds and see how far I get
pmichaud rakudo definitely depends on various .pbc files in runtime
Alias_ It does?
purl if you say so...
07:38 AndyA joined
particle it does 07:38
pmichaud or that they are at least accessible via the load_bytecode op.
Alias_ I could fire up perl6.exe and didn't see any problems
pmichaud right now perl6.exe hardcodes access to the .pbc from the build directory, iirc 07:39
Alias_ shrugs
I'll give you a copy of the zip once I'm happy with what I have
And you can make recommendations of the next step
pmichaud okay, excellent.
Alias_ Or you can have commit to Perl::Dist::Parrot
Or both
pmichaud I may start setting up a strawberry perl devel environment and give P::D::P a try. I'm curious to see how it all works 07:40
Alias_ Make sure you install the SVN versions of Perl::Dist and Perl::Dist::Strawberry
pmichaud will do.
particle Alias_: where's the repo? 07:41
purl rumour has it the repo is a repository or repo.or.cz/w/repo.git
particle i don't see it in META.yml 07:42
Alias_ svn.ali.as
purl svn.ali.as is, like, on a bitemark virtual donated by sheriff
particle thanks
Alias_ It's a little Jenga'ish 07:44
07:44 mberends joined
moritz pmichaud: should I take care of unfudging some tests for rakudo? 07:47
pmichaud moritz: please do
particle yay 07:48
bedward &
pmichaud oh! I just realized that I didn't implement [] 07:49
rakudo: my @a = 1..5; say @a[].perl;
polyglotbot OUTPUT[[]␤]
nopaste "bacek" at 211.29.157.151 pasted "Implementation of S16's "lines" method" (72 lines) at nopaste.snit.ch/14874 07:50
bacek_ pmichaud, moritz, can you take a look? (I'll change S16/slurp.t to use it instead of slurp)
jimmy what does unfudging mean? 07:51
moritz jimmy: fudge markers prevent us from running tests that would die 07:52
jimmy: unfudging means removing the fudge markers
jimmy thanks. moritz 07:53
pmichaud there's been strong discussion about eliminating the Str forms of many IO methods
so that one would do $str.io.lines instead of $str.lines 07:54
or maybe that would be str.IO, as a coercion.
moritz I like that
bacek_ pmichaud: It's not $str.lines. It's multi lines(Str) 07:55
pmichaud bacek_: yes, that's the one I'm thinking might disappear
bacek_ But I prefer not to have this method
pmichaud right -- lots of us aren't comfortable with the idea of treating every string as a potential filename.
bacek_ open($str).lines 07:56
pmichaud so it would be lines($str.IO) or lines(IO($str)) or str.IO.lines or ... :-)
moritz it feels risky, just like having open() accepting URLs as in PHP
pmichaud bacek's patch is okay to apply if anyone wants to do that (I'm too tired to trust my commits right now) 07:57
moritz I'll take a look while autounfudge is running...
bacek_ Is =$fh works in rakudo? (And what does it mean?)
pmichaud prefix:<=> is the iterator operator 07:58
so =$fh means "iterate over this filehandle"
moritz bacek_: patching file src/classes/IO.pir 07:59
Hunk #2 FAILED at 104.
bacek_ moritz: interesting...
pmichaud make sure to get that last blank line
(in the patch)
bacek_ after '=eof
moritz I did
bacek_ bacek@haste:~/src/parrot/languages/perl6$ patch -p3 < lines.patch 08:01
patching file src/builtins/io.pir
patching file src/classes/IO.pir
bacek@haste:~/src/parrot/languages/perl6$ git log|grep svn|head -1
git-svn-id: svn.perl.org/parrot/trunk@33699 d31e2699-5ff4-0310-a27c-f18f2fbe73fe
hmm...
it should just work...
moritz I'm at 33700, don't know if that makes a difference
pmichaud yes, since particle++ just committed a change 08:02
(to IO.pir)
bacek_ yes, it makes :)
pmichaud I miss my interactive readline already -- now it's a pain to re-type things 08:04
08:05 Zaba joined
moritz where did it go? 08:05
nopaste "bacek" at 211.29.157.151 pasted "Updated lines patch" (67 lines) at nopaste.snit.ch/14875
pmichaud the new IO modules don't support it yet
bacek_ can't find implementation for prefix:<=>... 08:07
Alias_ autodie also is applicable lexically 08:08
bacek_ Ah. builtins/misc.pir
Alias_ And has a few secondary improvements
moritz Alias_: wrongn chan ;-) 08:09
Alias_ dammit :)
Stupid bitchx
bacek_ moritz: in IO.pir in ".sub 'item'" readline should be without empty string param 08:12
wanna patch for it? :)
moritz bacek_: sure... but could you send it to RT please? I'm in a hurry right now, will take a look later
bacek_ moritz: ok. 08:13
08:15 Zaba joined
bacek_ afk # going home. 08:16
pmichaud sleep time here -- be back in a few hrs 08:22
dalek r33702 | pmichaud++ | trunk: 08:23
: [rakudo]: Add the @a[] slice (slice with no arguments).
diff: www.parrotvm.org/svn/parrot/revision?rev=33702
08:31 Zaba joined 08:34 cotto joined 08:44 Hadi joined 08:45 Hadi left 08:53 iblechbot joined 09:00 gaz joined 09:52 bacek joined 09:54 Zaba joined 09:59 samlh joined 10:01 tomyan joined 10:09 Hadi1 joined 10:10 Hadi1 left 10:16 elmex joined 10:28 blm joined 10:38 kj joined
bacek pmichaud: In latest Rakudo's Makefile 'all' doesn't depends on Test.pir. Is it intended? 10:44
dalek r33703 | fperrad++ | trunk: 10:50
: [pdd22io] Lisp
: - replace opcode pioctl by buffer_type method
diff: www.parrotvm.org/svn/parrot/revision?rev=33703
10:54 ff-wonko joined 10:57 alvar joined, Ademan joined
bacek msg moritz My patches for IO and Test.pm #61210, #61212, #61214, #60216 11:12
purl Message for moritz stored.
bacek rakudo: say ', '.join(61212,61214) 11:13
polyglotbot OUTPUT[too many arguments passed (3) - at most 2 params expected␤current instr.: 'parrot;Any;join' pc 8741 (src/builtins/any-list.pir:72)␤called from Sub '_block11' pc 37 (EVAL_13:19)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir:508)␤called from Sub
..'parrot;PCT;HLLCompiler;evalfiles' pc 1224 (src/PCT/HLLCompiler....
bacek rakudo: say 1...4 :by(2) 11:14
polyglotbot OUTPUT[Statement not terminated properly at line 1, near ":by(2)"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 26718 (src/gen_grammar.pir:3363)␤called from Sub 'parrot;Perl6;Grammar;statementlist' pc
..25374 (src/gen_grammar.pir:2830)␤called from Sub...
bacek rakudo: say map { $^a * 2 }, 1..4 11:17
polyglotbot OUTPUT[2468␤]
bacek rakudo: say map { $^a * 2 + 61210}, 0..3
polyglotbot OUTPUT[61210612126121461216␤]
bacek rakudo: say map { '#' ~ $^a * 2 + 61210}, 0..3
polyglotbot OUTPUT[#61210#61212#61214#61216␤] 11:18
bacek rakudo: say ~map { '#' ~ $^a * 2 + 61210}, 0..3
polyglotbot OUTPUT[#61210 #61212 #61214 #61216␤]
bacek rakudo: say 'msg moritz '~map { '#' ~ $^a * 2 + 61210}, 0..3
polyglotbot OUTPUT[msg moritz #61210 #61212 #61214 #61216␤]
bacek heh :)
jonathan morning all :-) 11:24
bacek jonathan: it's 10:18. PM. Morning???? 11:25
kj bacek: it's 11:25 here :-)
AM
bacek kj: hello from FUTURE! :)
kj bacek: Greeting from the Past 11:26
szbalint good afternoon
bacek kj: one of doesn't have proper ntpd... 11:29
kj what's ntpd? 11:30
purl ntpd is a bitch
kj ha ha
cognominal vu dans un document sur l'iphone Ơ propos des pools de ressouce mƩmoire : blog.360dgrs.nl/wp-content/uploads/...-japan.jpg 11:31
le japonais est un animal trĆØs sociable 11:32
bacek kj: what is you localtime now?
kj bacek: 11:33 AM 11:33
bacek it was mine...
kj (ireland)
cognominal oops wrong channel again
bacek 10:33 here.
bacek lived in own Past in everyone else Future 11:34
cognominal if parrotcoders were moving at relativist speed, I would say that absolute time is meaningless 11:35
bacek cognominal: OTOH we became heavier on such speed... 11:36
jonathan Wow, it was a busy night...slices, IO... :-) 11:38
11:39 tomyan joined
bacek jonathan: And 4 patches for IO related stuff to review :) 11:43
11:47 Hadi joined 11:48 Hadi left
jonathan bacek: Looking at those now. :-) 11:50
bacek jonathan: thanks. They are pretty trivial. I'm just not sure about 'infix:=(List,IOIterator)'. But anyway, it contains FIXME to remove after implementing lazy-lists 11:51
11:59 Lorn joined 12:05 Theory joined 12:10 jimmy joined
jimmy seen WhiteKnight 12:12
purl WhiteKnight was last seen on #parrot 10 hours, 1 minutes and 1 seconds ago, saying: it doesn't, but we could fake something together
dalek r33704 | jonathan++ | trunk: 12:15
: [rakudo] Update calls to readline for updated Parrot IO. Patch courtesy of bacek++.
diff: www.parrotvm.org/svn/parrot/revision?rev=33704
r33705 | jonathan++ | trunk: 12:31
: [rakudo] Implement lines method on IO objects and export it. Patch courtesy of bacek++.
diff: www.parrotvm.org/svn/parrot/revision?rev=33705
jonathan bacek: Applied those two - think overriding infix:= is wrong approach in the third one, let me look at that more closely... 12:33
12:33 kid51 joined
jimmy when I want to create new threaded interp, use: new P2, "ParrotThread" , I want to why not use: new P2, "Thread" 12:35
12:39 ffwonko joined
pmichaud good morning 13:00
jonathan morning 13:01
kid51 It appears that the problem I reported last night in t/pmc/key.t has cleared up. 13:07
smolder.plusthree.com/app/public_pr...tails/8487 reports all tests passing on Linux. 13:08
13:09 Wknight8111 joined
Coke rolls a 0 on his save versus regexp. 13:19
13:23 stockwellb joined
Coke (readline) the previous implementation behaved differently depending on whether or not readline was there. (outputting the prompt depending on the readline lib.) 13:31
msg jimmy ParrotFoo vs. Foo ; we have a lot of inconsistent naming practices. 13:44
purl Message for jimmy stored.
13:49 jimmy joined
jimmy seen fperrap 13:49
purl I haven't seen 'fperrap', jimmy
13:50 iblechbot joined
jimmy how to see purl msg for me? 13:51
pmichaud jimmy: /msg purl messages
dalek r33706 | pmichaud++ | trunk: 13:52
: [rakudo]: spectest-progress.csv update: 236 files, 4805 tests, 13 failing
: Failure summary:
: S16-filehandles/io_in_while_loops.t aborted 13 test(s)
diff: www.parrotvm.org/svn/parrot/revision?rev=33706
r33707 | jonathan++ | trunk:
: [rakudo] Make chomp Win32-aware.
diff: www.parrotvm.org/svn/parrot/revision?rev=33707
jimmy thanks, pmichaud
dalek r33708 | jonathan++ | trunk: 13:53
: [rakudo] Make for =$fh { ... } style loops work.
diff: www.parrotvm.org/svn/parrot/revision?rev=33708
jimmy seen fperrad
purl I haven't seen 'fperrad', jimmy
jimmy who is fpeerad? 13:54
moritz a parrot hacker :-)
jonathan pmichaud: Did we used to run more than just 1 IO tests, but removed them in the merge?
pmichaud we used to run 2.
io_in_while_loops was removed in merge 13:55
jimmy moritz: seems he had not been here ever.
dalek r33709 | jonathan++ | trunk:
: [rakudo] Add an IO test that we now pass completely to spectest.
diff: www.parrotvm.org/svn/parrot/revision?rev=33709
kj jimmy: fperrad maintains languages/lua
moritz purl, fperrad? 13:56
purl hmmm... fperrad is mailto:francois.perrad@gadz.org
pmichaud ...something is wrong with IOIterator (and Range) if we have to test for them specially in List.pir
jonathan pmichaud: Yeah, they should both be/do iterator.
jimmy hmm, WhiteKnight is ok too.
kj jimmy: what about me?? :-P
pmichaud I don't think 'iterator' is the role I'm looking for, though.
jonathan But I don't want to do anything on that until we have an iterator spec.
pmichaud it's not the fact that they do iterator that's important there
jimmy kj: hmm, i want to find the author of /docs/book/ 13:57
kj that's Wknight8111
pmichaud I guess what I'm wanting to check is that they aren't scalar
kj aka WhiteKnight, so yes, then you do need him ;-)
moritz the original author is allison though
jimmy kj: ah
kj ... and Dan and Leo
Wknight8111 Jimmy, you interested in the book?
pmichaud in the sense that Integer, String, Float, etc are scalar
13:58 ruoso joined
jonathan pmichaud: If there's a general check that does work for both, then it can happily go in. 13:58
jimmy yes, but some was not understand ,and some typo.
yes, but some was not understanding ,and some typo.
Wknight8111: line 377 under ch03. accomodated should be ccommodated. 14:00
and where is imcc/docs ?
and immc/t
Wknight8111 ccommodated is not a word
at least, not one that I'm familiar with 14:01
jimmy accommodated
Wknight8111 ah, okay
PerlJam Wknight8111: sounds like a case for running a spell checker ;)
jimmy ferrad fixed it. but still wrong ;)
Wknight8111 the editor I've been using to write the book doesn't have spellcheck, so it's amazing things have turned out so well as they have
PerlJam jimmy: you seem to have trouble holding on to your letters; you keep dropping them. 14:02
moritz recommnds gvim :)
PerlJam Wknight8111: what editor?
purl i heard editor was premiere
Wknight8111 medit
Alias_ recommends Padre :)
Wknight8111 haha, yes. I should get in on Padre
jimmy Wknight8111: where is imcc/docs and immc/t ?
Wknight8111 I like my editors to be very lighweight, and I don't do keybindings 14:03
kj jimmy: docs/imcc ;-)
Alias_ Give it one or two more releases, once we have Parrot/Perl6 support in the editor
PerlJam Alias_: does it do vi(m) key bindings yet?
Alias_ PerlJam: Partly, but it already has a vim command line
kj jimmy: t/compilers/imcc
jimmy line 28 and line 32 under ch03
Alias_ Pops up when you hit colon when not in insert mode :)
Mostly experimental still though
PerlJam Alias_: have you guys thought about adding gobby-like functionality to padre?
Alias_ But Gabor is working on it, and he's a vim guy, so it should progress reasonably 14:04
PerlJam: We're still working through the basics atm... any form of remote connection is not on the cards atm
jimmy imcc/docs means docs/imcc ? it was known by all but me?
Alias_ PerlJam: Project support, configuration rewrite, etc etc first
PerlJam: It's clearly a good thing to add though
moritz jimmy: if you think something's wrong, just send a patch
PerlJam Alias_: yes, yes, of course. I just thought I'd mention it. :) 14:05
Alias_ We are MUCH closer to the point where you could implement it as a plugin though
There's already hooks to let plugins take over the editor widget
And we have a task/thread manager, courtesy tsee
So in principle, some of the things needed are in place 14:06
jimmy moritz: I am here, contact WKnight and talking here was realtime
moritz afk ^
kj jimmy: imcc/docs: I think you were looking for docs of imcc? they're in docs/imcc 14:07
jimmy WKnight8111: Is it wrong described by using'imcc/docs' in line 28 under ch03? 14:08
and immc/t
Wknight8111 yes, those need to be updated
send me a patch, and I'll apply it
jimmy I am layman and I just want to check it. 14:09
I think I will create a patch for it. 14:11
PerlJam jimmy++
14:11 iblechbot joined 14:12 stockwellb left
dalek r33710 | jonathan++ | trunk: 14:13
: [rakudo] Implement auto-chomping, as mentioned in S29.
diff: www.parrotvm.org/svn/parrot/revision?rev=33710
jimmy thanks pj. I am reading all over these docs and trying to fix any bugs as I know.
14:13 gryphon joined
Wknight8111 jimmy++ 14:18
jonathan Phew. Down to 180 tickets. 14:19
Coke for rakudo? think of each spec test that isn't run by default as a new ticket! 14:21
14:21 jhorwitz joined
pmichaud we try to keep tickets for "active/ripe issues", as opposed to "everything we haven't done yet". :-) 14:21
so, active means "bugged someone enough to file a ticket for it" 14:22
jonathan Aye. It'd get rather unmanagable otherwise. 14:23
Just closed a couple that we have fixed, and even have tests for that we run in make spectest, but hadn't closed the tickets. 14:24
pmichaud yes, I didn't close tickets related to list assignment or array slicing yet
I'm still cleaning up a few other things
jonathan I've not closed any relating to that.
There is one about making Whatever work with slicing. 14:25
pmichaud we're not far from being able to make that work, but it's a low priority for me
we really need to get some class and role refactors in place, as well as parameters
14:25 ffwonko joined
jonathan OK. I may do it later for fun/as a way of getting to know the new slicing code. :-) 14:26
class and role refactors as in, to the built in classes, or to classes and roles themselves?
pmichaud to the built in classes
jonathan Aye.
pmichaud some to classes and roles themselves (action.pm generation), but that comes after parameters
jonathan I saw you added Positional.
pmichaud I'm doing Associative now.
jonathan Great. 14:27
14:27 Zaba joined 14:39 PacoLinux joined
dalek r33711 | infinoid++ | trunk: 14:55
: [ports] Some fixes for "make rpm" and parrot.spec. (Gerd Pokorra, RT #61208)
diff: www.parrotvm.org/svn/parrot/revision?rev=33711
pmichaud I'm getting spectet failures in trunk... 14:57
t/spec/S16-io/basic-open.t 9 4 44.44% 4-5 8-9
*spectest
jonathan That's odd.
pmichaud rebuilding and trying again 14:58
jonathan May be platform specific stuff... :-|
pmichaud: All pass here with no local (IO related) patches. 14:59
15:03 AndyA joined 15:04 Andy joined
pmichaud t/spec/S16-io/basic-open.t 9 4 44.44% 4-5 8-9 15:05
trunk, head, no local patches
jonathan OK, those are the ones that rely on chomping to work. 15:06
nopaste "pmichaud" at 72.181.176.220 pasted "basic-open.t results" (12 lines) at nopaste.snit.ch/14877
jonathan Can you stick in some say statements to work out exactly what @lines[0] and @lines[2] are ending up being? 15:08
pmichaud btw, it's okay to just do 'chomp'(whatever) instead of the get_hll_global
jonathan If you end up with a method chomp in that class, it ends up calling the wrong one.
I know we likely won't in this case, but I'm just trying to be consistent now...
pmichaud (1) that will change soon.
jonathan Have fixed a few things along those lines.
pmichaud (2) that can be fixed by :anon on the method. 15:09
anyway, not a biggie
Coke what if it's a user visible chomp addition?
pmichaud it only impact these if they install 'chomp' globally.
jonathan class IO is also { sub chomp() { say "OH HAH" } }
pmichaud I would expect it to adjust 'chomp' in that case. 15:10
jonathan ?
Oh. :-|
Coke ?
jonathan I wouldn't.
I'd expect us to have to override the &*chomp if we wanted such things.
pmichaud clearly if we start sticking functions into a namespace, we affect what other things in that namespace do. 15:11
jonathan Yes, true.
Coke I think that would depend on if something like chomp was defined as overridable or not. 15:13
pmichaud in Perl 6, everything is overridable.
or perhaps "nearly everything"
Coke yes, but it shouldn't be accidentally so.
pmichaud ...accidentally so? It would be hard to be accidental in this case. 15:14
Coke if I call something chomp and expect it to only be visible from that class, i wouldn't expect other methods in that class that called chomp under the covers to change their behavior.
jonathan In the "by sticking a sub in", sure, that's not accidental. If a chomp method got called, that's more of a problem.
But if they're to become :anon... 15:15
pmichaud right. Parrot is currently not doing the right thing in that case.
That's supposed to change in one week.
Coke: if you declare a class that has a 'chomp' sub and other methods in the class that use 'chomp', we expect those methods to use the (locally defined) chomp, yes?
Coke if I've written the entire class? yes. 15:16
pmichaud okay
Coke if I'm overriding the behavior of a perl6 builtin class who, in PIR, is calling chomp? probably not.
pmichaud defining a chomp sub in a new class doesn't affect what is called by calls to chomp in other classes
i.e., if a method in the IO class calls "chomp", defining a sub "chomp" in some other class doesn't change what the IO method does. 15:17
Coke Jonathan's example was adding a method to the IO class, no? 15:18
pmichaud sure, but in that case I'm explicitly modifying the IO class
Coke (I agree that adding 'chomp' to IO2 shouldn't affect IO at all.)
pmichaud so that it's exactly as if that sub had been in the definition in the first place
so yes, I would expect that any methods in IO that call 'chomp' would use the new definition I've just stuck in there. 15:19
Coke I would expect you to document explicitly what is overridable in that fashion.
pmichaud if someone is modifying someone else's class in this way, then yes weird things can happen. 15:20
Coke (that a second place after "don't do that.")
pmichaud but it's also been thus in Perl
PerlJam Coke: you want there to be a barrier between perl6-methods and pir-methods? (i.e., so that you can't override pir-methods without some syntactic marker)
pmichaud s/also/always/
Coke See, I find this very similar to the HLL discussion; "don't do that, it hoits."
PerlJam methods of the same class I mean
Coke PerlJam: not quite what I'm saying, no.
nopaste "pmichaud" at 72.181.176.220 pasted "basic-open.t results #2 (for jonathan, with debugging)" (63 lines) at nopaste.snit.ch/14878 15:21
Coke if IO's "frob" method is written in PIR, you have no easy way at the perl6 level to know that when you override 'chomp', you're changing the behavior that code.
pmichaud that's true even for methods written in P6
Coke pmichaud: you can look at the source if it's p6. 15:22
pmichaud ....unless it's been compiled to bytecode
PerlJam Coke: so, would documentation suffice for you? 15:23
Coke: "frob calls chomp, so if you overrise chomp, you affect frob" 15:24
s/rise/ride/
pmichaud I think that's highly unrealistic, though -- to document every function that is called by every builtin.
Coke which is why I'd rather it didn't work your way. =-)
pmichaud then get @Larry to change the spec, if that's the case. 15:25
Coke at least for core perl6. module authors can do, of course, whatever they like.
PerlJam pm: I agree. But I also see the action-at-a-distancey thing and I don't like it worse.
pmichaud how is: class IO is also { ... } "action at a distance"
?
Coke I'm sorry, there's a spec about writing things in PIR?
i thought that was an implementation detail.
pmichaud I'm explicitly mucking with the internals of a builtin class.
Coke: you're making a PIR versus P6 distinction that I'm not.
I'm saying that if the PIR methods were written in P6, then the behavior we're getting from "is also" is the one that is required by the spec. 15:26
the fact that they're written in PIR is irrelevant.
Coke pmichaud: it's important. let's say some other implementation of IO doesn't call the "method if it exists, but global otherwise" version of chomp, but just calls the global?
PerlJam So, a general "there be dragons here" is all we get?
Coke then you have platform dependant behavior based on user level code.
pmichaud ...can we distinguish "method" from "sub", please? 15:27
and the platform-dependent behavior is still unrelated to the fact that we wrote this implementation in PIR
Coke you could write it in tcl for all I care. =-)
pmichaud let's say that kp6's implementation of IO doesn't call the chomp function, but rakudo does. Then we get platform-dependent behavior based on user level code. 15:28
the only way around that is to completely spec the definition of each builtin method 15:29
i.e., to make what they call and/or do not call part of the spec.
PerlJam Or make sure there is very loose coupling between intra-class methods and document the "exceptions" 15:30
(assuming that's even possible)
pmichaud or.... to somehow say that "builtin methods are immune from such things"... but it's already been explicitly decided that the "builtins" don't really have a special status over other modules.
jonathan: hmmmmm, for some reason IO.pir didn't update in my working copy. 15:32
okay, basic-open.t passes now. Sorry for the false alarm.
jonathan pmichaud: Ah, phew!
No worries.
pmichaud: I've got reduction operators for the chaining ones working. 15:33
[<]
and co
Alias_ jonathon: What happens for factorial :)
jonathan Alias_: Hmm? 15:34
[*] 1..10 # is 10 factorial, but that already worked
Thanks to pmichaud++
lathos Mmm, APL. 15:35
pmichaud I guess the chain operators need a special reduction function?
jonathan pmichaud: Yes. 15:36
I pondered if we could get away with that, but it seems not.
Ah, we can't do [=] right because it's right-assoc.
OK, that can wait until we do this "for real" with LTM. :-)
pmichaud yeah, I'm thinking likely no. How does that impact gen_metaop?
jonathan It gets a few change 15:37
*chagnes
Added a third column where you specify what kinda op it is
pmichaud okay, works for me
jonathan So that we know not to generate === but to generate [==]
(that is, = prefix for == comparrison op...) 15:38
moritz and [===] :-)
jonathan Ooh, I didn't do that one.
Forgot we had implemented it.
jonathan adds
moritz and [=:=]
jonathan Do we have that in Rakudo? 15:40
particle yes
jonathan Aha.
dalek r33712 | fperrad++ | trunk:
: [Lua] io
: - implement file:setvbuf, with FileHandle PMC
diff: www.parrotvm.org/svn/parrot/revision?rev=33712
particle i think i wrote that last month or so
jonathan Cool
jonathan tries to work out what [+] is... 15:41
ah, found it 15:42
jonathan passes on that for now
pmichaud agreed. I'd like to focus a bit more on the "useful" features of Perl 6 for the time being. Leave the metas for when we need them. 15:43
jonathan Well, [+] is cool to have and useful.
But [\\+] is rather...well...less commonly useful.
pmichaud yes, which is why I implemented [+] 15:44
jonathan *nod*
Yeah, I have no plans to do [\\...]
particle do i need to look up \\+?
jonathan Yes :-)
particle ah, [\\...].
pmichaud it's [\\+], I think.
jonathan Indeed
I'll do hypers, or at least infix ones.
And then leave it at that.
moritz [\\...] returns a list of intermediate results from the evaluation of op ... 15:45
pmichaud yes, I would just do the double-sided infixes for now
otherwise we start overloading the .pbc with a lot of functions
Alias_ jonathon: Well, 10 factorial is one thing... but isn't it a small step from 10 to 30...
pmichaud rakudo: say [*] 1..30;
polyglotbot OUTPUT[2.65252859812191e+32␤]
pmichaud ENOBIGINT 15:46
Coke rakudo say [*] 1..2.65252859812191e+32
... uhoh.
pmichaud we may be here a while
Coke (nah, left off the :. =-)
though not on purpose. happy accident.
pmichaud we may be here a while, still :-)
moritz I think polyglotbot has an execution time limit :)
Coke rakudo say hi 15:47
rakudo: say hi
polyglotbot OUTPUT[Could not find non-existent sub hi␤current instr.: '_block11' pc 13 (EVAL_13:13)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir:508)␤called from Sub 'parrot;PCT;HLLCompiler;evalfiles' pc 1224 (src/PCT/HLLCompiler.pir:673)␤called from Sub
..'parrot;PCT;HLLCompiler;command_line' pc 1400 (src/PCT/HLLCompiler.pir:...
pmichaud 1..2.65e+32 is likely to run out of memory.
Coke It's not running, or we'd have gotten a backtrace on the first hi.
pmichaud at least until we get laziness
particle even with my 14GB it'll run out of memory...
jonathan Show-off. :-P 15:48
lathos Perl 6 will have Unicode subs, right? So you will be able to implement APL in Perl.
pmichaud lathos: yes.
jonathan As an internal DSL... ;-)
particle in fact, we have a grammar for it already :)
Coke lathos: of course, we have part of APL standalone already.
does [+] 1..100 do anything smart? or does it just blindly go through the range, adding? 15:49
pmichaud blindly through the range.
jonathan What smart thing would you want it to do? :-)
moritz jonathan: Euler's sum formula 15:50
Coke if the range was constant, you could optimize it.
pmichaud ...but I can do that at compile time, then :-)
moritz sum(1..$n) = $n*($n-1)/2
Coke pmichaud: yes.
that would be fine, too.
jonathan moritz: Ah, yes.
particle is declaration-order expected to fail again/still? 15:51
moritz that could be doable by adding a multi sub prefix:<[+]>(Range $x) { ... }
particle: yes :(
and it's "still"
particle named-parameters TODO passed: 2 15:52
expected?
pmichaud I don't know that we've updated all of the passes that result from the recent changes.
moritz particle: did you update your copy of t/spec/ ?
pmichaud I'll add Associative slicing here (waiting for make spectest to finish) and then start looking at new passing tests, or tests that can be quickly made to pass. 15:53
moritz pmichaud: I think I did
particle i ran make spectest, which should update automatically
Updated to revision 24224.
moritz particle: I might be lagging behind a bit :)
Coke moritz: isn't that $n*($n+1)/2 ?
moritz Coke: right
Coke whew. 15:54
moritz otherwise it wouldn't make sense for $n == 1
15:55 rindolf joined
rindolf Hi all. 15:55
PerlJam moritz: you could even generalize it for $n..$m ranges too :)
moritz PerlJam: yes, that's trivial (and left as an exercise to the implementor) 15:56
Infinoid good morning
kj sees lots of possibilities for tutorials...
pmichaud but have to remember to check for :by on the Range
and for non-negative ranges
dalek r33713 | jonathan++ | trunk:
: [rakudo] Make reduction meta-operator work with chaining comparrison operators.
pmichaud and string ranges
dalek diff: www.parrotvm.org/svn/parrot/revision?rev=33713
lathos Well, that's what the optimization phase is for, pretty much. 15:57
jonathan In other words, there's a lot of ways to screw up doing the optimization. :-)
PerlJam jonathan++
pmichaud ...which is why I figured "blindly through the range" made good sense for now.
particle also have to check for integer ranges
1.2..3.8 won't work
moritz as they say, 'first make it run, then make it right, then make it fast' 15:58
particle i mean, the opt won't work
Coke particle: that range is equivalent to 1.2..3.2, neh?
particle maybe i should start calling it o10n
Coke what, obfuscation?
oh wait, off by one error.
particle :)
coke: if the range is only evaluated from the left, then it's equivalent to 1.2..3.2 15:59
moritz Coke: if used as list, yes. but 3.3 ~~ 1.2..3.2 is false, whereas it's true with ..3.8
pmichaud arggggh.... postcircumfix:{ } messes up the autovivification closures 16:00
I'll cheat for now.
I'll try to cheat for now.
jonathan pmichaud: How does it cause problems? 16:02
pmichaud ProtoObject uses a vtable method for { }
jonathan Ah, I see...can't you just implement postcircumfix:{ } on ProtoObject?
And override the one from the role?
pmichaud (phone) 16:03
they get different arguments. 16:04
(yes, that's what I'm doing now, though.)
really, though, the vtable should be rewritten to use the .hash() method 16:05
instead of building a Hash itself, as it does now.
maybe I'll just do that instead for now.
jhorwitz postcircumfix:[ ] is wreaking havoc on mod_perl6 16:06
particle fix it!
jhorwitz slaps particle with a white glove and declares a duel
pmichaud jhorwitz: example?
16:06 register joined
jhorwitz nopaste? 16:07
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, like, 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 or at www.extpaste.com/ or paste.scsys.co.uk (for #catalyst, #dbix-class, #moose and others)
jhorwitz grr, can't get to any paste sites with #parrot 16:10
particle you have a website...
jhorwitz is lazy and just wants to paste 16:11
particle rafb.net/paste/ works for me
jhorwitz yeah, i'll just have to paste the URL. :)
the horror
purl Getting Laid Hacks, by Randal Schwartz and Eric Raymon
jhorwitz hm
16:11 register joined
Tene jhorwitz: use tools/dev/nopaste.pl 16:12
particle forget the horror
purl particle: I forgot horror
jhorwitz Tene++ # forgot about that!
particle tene: nopaste.snit.ch isn't available, so that won't work
Tene Ah.
jhorwitz doh! no worries, i got it...
Coke particle: but that was hilarious. :|
jhorwitz pmichaud: rafb.net/p/7pfjOS77.html 16:15
it's obvious what's going on, but suggestions are welcome.
pmichaud I don't have one off the top of my head.
Tene What's SArray? 16:16
purl i heard SArray was pretty fast tho :)
jhorwitz i was considering something like @args2 = @args;
pmichaud that should work.
or even @(@args)[0]
jhorwitz that's extra special. i like it. :)
pmichaud oh, that one probably won't work.
(list @args)[0] 16:17
there.
or (@ @args)[0]
jhorwitz cool. will HLL type mapping (eventually) fix this?
pmichaud don't know yet.
there are going to be some huge issues dealing with vtable methods and hll mapping. 16:18
jhorwitz nods
pmichaud keyed aggregrates are going to be a big icky part of that as well.
especially since Parrot doesn't really provide a good way to distinguish [ ] from { }
particle @args.list[0]
Coke is perl6-internals now for rakudo stuff? 16:19
pmichaud @args.list[0] will only work if SArray implements .list
moritz better p6c
Coke is looking at mark reed's recent emails.
particle perl6-internals may well be retired
Coke finds our external facing community a huge muddle. :| 16:20
moritz it probably is :-)
pmichaud Coke: lots of people don't know what list to send things to. 16:21
particle perhaps some better documentation, including a webpage with descriptions 16:22
pmichaud iwbni we would simply retire perl6-internals asap
it hasn't been p6i for a _long_ time (parrot-porters and now parrot-dev)
I'll answer the mail as soon as I get the postcircumfix:{ } thingy worked out. 16:23
particle need to make sure google picked up the parrot-dev list
pmichaud particle: why? We have the parrot-dev archives, too
16:23 gryphon joined
particle not archives, interface. 16:24
you can post from there, too. and they have it! groups.google.com/group/parrot-dev?lnk=srg
jhorwitz LOL: Method 'list' not found for invocant of class 'SArray' 16:25
particle ok, i'll ack the repo
jhorwitz: which syntax did you use?
jhorwitz (@ @args)[0]
particle hrmm, will @args.List[0] work? 16:26
pmichaud no.
particle :(
jhorwitz i'm gonna just assign it to a new array
pmichaud as I said, hll interop here is going to be a _huge_ issue, especially dealing with vtables.
jhorwitz: that's best for now, yes.
(hope that works :-) 16:27
jhorwitz mod_perl6 is pure-PIR type to rakudo types and back, so it's a good test case for all this
moritz what does (@ @args)[0] do (or did) that @args[0] does not?
pmichaud moritz: postcircumfix:[ ] used to be a PIR opcode
now it's a method call
moritz ah. 16:28
pmichaud so previously @args[0] would generate something like $P0 = args[0] (PIR)
now it generates $P0 = args.'postcircumfix:[ ]'(0)
jonathan pmichaud: Is there a way, with newtok, to tell it to call a sub of a different name than that of the op itself?
pmichaud 'subname' => 16:29
jonathan Thanks
pmichaud it just attaches another trait to the token
but that's how is subname('...') works in grammer-oper.pg
jhorwitz pmichaud: didn't work: Null PMC access in find_method() current instr.: 'infix:=' pc 12065 (src/builtins/assign.pir:70) 16:30
jhorwitz thinks of a workaround... 16:31
pmichaud jhorwitz: okay, I'll have to think about it a bit.
jhorwitz k, thanks
pmichaud perhaps we'll need to change 'postcircumfix:[ ]' to be a subcall instead of a method
the subcall can then do a method call if appropriate, vtable otherwise.
that has some validity. 16:32
I'll work on that first before finishing associative slices, since that's bottlenecked. 16:35
jhorwitz considers changing SArray to RPA and shifting 16:36
16:36 Hadi1 joined
pmichaud yes, RPA would work. 16:36
jhorwitz and delaring @args as 'is copy'
^declaring
seems to work
pmichaud so, need me to fix postcircumfix:[ ] now or no?
jonathan wonders if he's getting his unicode stuff in a tangle, since the unicode variants won't parse... 16:37
jhorwitz pmichaud: yes, still needs a fix
pmichaud okay.
working.
purl i guess working is a good approximation.
register what is the meaning of the labels field in the op_info_t structure? 16:38
pmichaud oh! I wonder if it's sufficient to export the existing postcircumfix:[ ] ? 16:39
jhorwitz an interesting possibility 16:41
16:42 nopaste joined
particle coke, allison, anyone else: is there a web page to sign up for parrot-dev? 16:44
pmichaud lists.parrot.org/mailman/listinfo/parrot-dev 16:45
parrot-dev ?
purl rumour has it parrot-dev is mailto:parrot-dev@lists.parrot.org
pmichaud parrot-dev is also lists.parrot.org/mailman/listinfo/parrot-dev
purl okay, pmichaud.
particle pmichaud: thanks, lists.parrot.org/ didn't work
pmichaud jhorwitz: so far switching it to a function seems to work locally 16:46
jhorwitz oooh 16:47
pmichaud I just need to do a spectest run and then we can see if that helps your case.
jhorwitz excellent
pmichaud it should.
Util I suspect a bug in the program that sends the commit messages to svn-commit-parrot@perl.org.
Is that program's code anywhere that I can access for inspection?
jonathan pmichaud: Got a moment?
pmichaud jonathan: yes
jonathan pmichaud: OK. Hypers (non-dwimmy) work. 16:48
Well, the ASCII versions do, and I don't understand why the unicode versions don't.
If I check it in, can you take a look?
pmichaud nopaste a diff, perhaps?
jonathan Do we trust *that* to get the unicode right? ;-)
pmichaud it'll be right enough for me to take a look :-)
I suspect you need to unicode: your sub names. 16:49
jonathan I don't have any unicdoe sub names. ;-)
16:49 hercynium joined
Coke Util: It's probably in an svn repo, but I don't know where. 16:50
I'd send an email to the list.
pmichaud if it's not going to break spectest, ci is okay.
nopaste "jonathan" at 85.216.157.73 pasted "hyper pmichaud" (92 lines) at nopaste.snit.ch/14879
jonathan spectest works fine
There's the diff anyway.
pmichaud you need to unicode: the subnames
jonathan Which sub names? 16:51
Oh, in the newtok call?
oh, I see
pmichaud the ones containing the Ā« and Ā»
otherwise pir compiles it as a fixed8 string
Tene infix:»%s«
Which appears for me in that paste as: infix:»%s« 16:52
pmichaud so it needs to become unicode:"infix:\\u00ab%s\\u00bb"
(might be able to avoid the \\u)
sorry, might be able to avoid the 00 in \\u
Util Thanks, Coke
pmichaud also, I'd prefer the sub to be with the unicode char instead of the texas angles 16:53
jonathan No, it wanted the 00
Oh?
pmichaud my suggestion is to do
jonathan That means more unicode everywhere! ;-)
Tene Is PIRC going to be smarter about unicode? 16:54
pmichaud $subname = "unicode:\\"\\u00ab$opname\\u00ab\\"';
and then use $subname in the sprintf lines
or better
jonathan unicode:\\"infix:\\\\u00ab%s\\\\u00bb\\" in the newtok didn't help so much :-|
pmichaud $subname = qq(unicode:"\\u00ab$opname\\u00bb");
then use $subname in the sprintf lines 16:55
jonathan OK
pmichaud or, just ci it and I'll clean it up the way I want :-)
jonathan But we need to also register the token that way.
OK, I'll do that. :-)
My editor mangles unicode chars. :-S
pmichaud that's why I try to not put them in (PIR) source 16:56
Tene thought so
jonathan *nod*
pmichaud: ci'd. 16:58
pmichaud jhorwitz: try r33714
jhorwitz k
pmichaud your original @args[0] should work.
at least, I hope it does.
dalek r33714 | pmichaud++ | trunk: 16:59
: [rakudo]: Set postcircumfix:<[ ]> to also be callable as a function
: * This should help with other HLLs that don't provide a method form.
diff: www.parrotvm.org/svn/parrot/revision?rev=33714
r33715 | jonathan++ | trunk:
: [rakudo] First cut on non-dwimmy hyper ops. The non-unicode quote forms now work, there's some problem with the unicode forms.
diff: www.parrotvm.org/svn/parrot/revision?rev=33715
pmichaud what's the meaning of NODWIM? 17:03
(in this context)
jonathan >>+<< doesn't auto-extend arrays 17:04
pmichaud got it.
jonathan <<+>> auto-extends either side
etc
(can also do >>+>> and <<+<<)
Debating whether it's worth doing those.
pmichaud we might -- it should be easy enough to do.
jonathan True.
I guess if we don't, people are only going to try 'em and file bug reports. ;-) 17:05
17:05 ffwonko joined
jonathan I'll let you deal with the changes to fix up unicode first, so we don't end up with merge conflicts. 17:06
17:06 ruoso joined
pmichaud I'm getting a parse error. 17:07
jonathan In? 17:08
purl IN EXCELSIS DEO
jonathan OH RLY?
You mean when compiling Rakudo, of when trying to use the unicode form of the hyper op in Rakudo? 17:09
pmichaud when trying to use the unicode form...
jonathan If the second, that's what I see.
pmichaud I'll ci my change, we can look.
jonathan Statement not terminated properly at line 16, near "\\x{bb}+\\x{ab} (2, 4,"
pmichaud Clearly the unicode forms are making it _into_ rakudo okay, though, because I now have >>+<< calling the sub named Ā»+Ā«
jonathan *nod*
Do we have any other unicode tokens working with operator precedence parser? 17:10
As in, we know if handles unicode correctly?
pmichaud I wonder if it's having trouble matching the unicode tokens against the iso-8859-1 input.
jonathan That's a possibility.
pmichaud it's generating src/gen_metaop.pir correctly. 17:12
dalek r33716 | pmichaud++ | trunk: 17:13
: [rakudo]: Update gen_metaop_pir.pl to generate the unicode forms of sub/hyper.
diff: www.parrotvm.org/svn/parrot/revision?rev=33716
jonathan Yes, that looks sane to me too.
pmichaud oh, here's a test.
just a sec.
(this would also explain why I can't get Ā« quote Ā» to work in rakudo even though it works fine other places. 17:14
Tene Does [==] short-circuit?
pmichaud all of the args are evaluated, but lists might end up being lazily evaluated 17:15
17:15 allison joined
Tene nods. 17:15
jhorwitz pmichaud: after fixing another unrelated bug, it works!
pmichaud++
pmichaud it works as @args[0] ?
jhorwitz yes
pmichaud wow
jhorwitz have some confidence, man. :) 17:16
pmichaud that's nice, because it means that things like @args[1,2,3] will work too.
even if @args comes from another HLL
jhorwitz that's shiny
pmichaud jhorwitz++ # pushing us to do things even better than we planned
Tene rakudo: my @a = <a b c d>; say @a[3,0,2,1];
polyglotbot OUTPUT[dacb␤] 17:17
pmichaud rakudo: my @a = ' '..'z'; say @a[100, 97, 109, 110, 33];
oh, wait.
that's not right 17:18
rakudo: my @a = ' '..'z'; say @a[(100, 97, 109, 110, 33) >>-<< (32 xx 5)];
oh well.
I'll have to look at the unicode parsing issue a bit later.
rakudo: say 'hello'; 17:19
polyglotbot seems lost.
jonathan OK.
I'll do the dwimming variants.
pmichaud okay 17:20
iwbni we had just one helper function for all of the variants (keep code refactored), but it's okay if we need separate ones.
polyglotbot No output (you need to produce output to STDOUT)
OUTPUT[hello␤]
pmichaud I'm guessing rakudo didn't like the ' '..'z'
jonathan pmichaud: I was thinking that I would have one that handled all dwimming.
And one for "no dwim at all" 17:21
pmichaud jonathan++
jonathan (e.g. the one that's there now)
May be able to fold them all into one general one.
pmichaud I would think one general one
jonathan Yeah, will aim for that.
pmichaud everything's a variation of "extend the left" or "extend the right"
jonathan Right.
pmichaud and "no dwim" is just "don't extend either"
jonathan Yes. 17:22
particle rakudo: my @a = 'a'..'z'; say @a[<18 1 11 21 4 15>];
polyglotbot OUTPUT[sblvep␤]
particle rakudo: my @a = 'a'..'z'; say @a[<18 1 11 21 4 15> >>-<< 1];
polyglotbot OUTPUT[Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.␤current instr.: 'die' pc 13341 (src/builtins/control.pir:168)␤called from Sub '!HYPEROPNODWIM' pc 12624 (src/builtins/assign.pir:297)␤called from Sub '_block11' pc 126 (EVAL_14:40)␤called from Sub
..'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.p...
jonathan Win!
particle ah, right :(
jonathan I haven't done the dwimmy one yet. :-)
particle rakudo: my @a = 'a'..'z'; say @a[<17 0 10 20 3 14> >>-<< 1]; 17:23
polyglotbot OUTPUT[Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.␤current instr.: 'die' pc 13341 (src/builtins/control.pir:168)␤called from Sub '!HYPEROPNODWIM' pc 12624 (src/builtins/assign.pir:297)␤called from Sub '_block11' pc 126 (EVAL_14:40)␤called from Sub
..'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.p...
particle rakudo: my @a = 'a'..'z'; say @a[<17 0 10 20 3 14>];
polyglotbot OUTPUT[rakudo␤]
jonathan rakudo: my @a = 'a'..'z'; say @a[<18 1 11 21 4 15> >>-<< 1 xx 7];
polyglotbot OUTPUT[Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.␤current instr.: 'die' pc 13341 (src/builtins/control.pir:168)␤called from Sub '!HYPEROPNODWIM' pc 12624 (src/builtins/assign.pir:297)␤called from Sub '_block11' pc 126 (EVAL_14:40)␤called from Sub
..'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.p...
pmichaud okay, I found the unicode problem, I think.
jonathan rakudo: my @a = 'a'..'z'; say @a[<18 1 11 21 4 15> >>-<< 1 xx 6];
polyglotbot OUTPUT[Non-dwimmy hyperoperator cannot be used on arrays of different sizes or dimensions.␤current instr.: 'die' pc 13341 (src/builtins/control.pir:168)␤called from Sub '!HYPEROPNODWIM' pc 12624 (src/builtins/assign.pir:297)␤called from Sub '_block11' pc 126 (EVAL_14:40)␤called from Sub
..'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.p...
jonathan Hmm.
rakudo: my @a = 'a'..'z'; say @a[<18 1 11 21 4 15> >>-<< (1 xx 6)]; 17:24
polyglotbot OUTPUT[rakudo␤]
jonathan Aha.
particle :)
jonathan Hypers have transparent precedence, AFAIU.
Which should be what I've done.
I think - binds tighter than xx
pmichaud it does.
purl if you say so...
jonathan OK, good, so Rakudo was right.
pmichaud found a bug in Hash 17:25
particle rakudo: my @a = 'a'..'z'; say @a[<18 1 11 21 4 15> >>-<< [xx] 1 6];
polyglotbot OUTPUT[Statement not terminated properly at line 1, near "[<18 1 11 "␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 27096 (src/gen_grammar.pir:3363)␤called from Sub 'parrot;Perl6;Grammar;statementlist'
..pc 25752 (src/gen_grammar.pir:2830)␤called from...
particle rakudo: my @a = 'a'..'z'; say @a[<18 1 11 21 4 15> >>-<< [xx] 1, 6];
polyglotbot OUTPUT[rakudo␤]
particle <3 rakudo
pmichaud oh that is just too cool.
moritz decides to write more tests for reduction ops 17:26
nopaste "pmichaud" at 72.181.176.220 pasted "non-equivalence of unicode and iso-8859-1 hash keys" (20 lines) at nopaste.snit.ch/14880
particle rakudo: 'a'..'z'.[<18 1 11 21 4 15> >>-<< [xx] 1, 6].say; 17:27
polyglotbot OUTPUT[get_pmc_keyed() not implemented in class 'Perl6Str'␤current instr.: 'parrot;Positional;postcircumfix:[ ]' pc 1492 (src/classes/Positional.pir:55)␤called from Sub '_block11' pc 132 (EVAL_13:37)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir:508)␤called from Sub
..'parrot;PCT;HLLCompiler;evalfiles' pc 1224 (src/...
particle rakudo: ('a'..'z').[<18 1 11 21 4 15> >>-<< [xx] 1, 6].say;
polyglotbot OUTPUT[get_pmc_keyed() not implemented in class 'Range'␤current instr.: 'parrot;Positional;postcircumfix:[ ]' pc 1492 (src/classes/Positional.pir:55)␤called from Sub '_block11' pc 144 (EVAL_14:38)␤called from Sub 'parrot;PCT;HLLCompiler;eval' pc 892 (src/PCT/HLLCompiler.pir:508)␤called from Sub
..'parrot;PCT;HLLCompiler;evalfiles' pc 1224 (src/PCT...
particle ah, i guess i have to coerce
pmichaud particle: Ranges don't do Positional yet.
and I need a message to p6l for a clarification on that.
particle so i need @()
pmichaud yes, that'll work.
or .list
those are part of the cleanups I have to do in the builtin methods 17:28
PerlJam ranges also don't seem to like non-alphanumeric end points
particle they certainly don't like Whatever
pmichaud ah, non-alpha is indeed likely the issue.
particle i've moved my playing over to #perl6
pmichaud jonathan: the nopaste illustrates why the unicode forms aren't parsing 17:29
jonathan Ah?
pmichaud Parrot thinks that unicode Ā« and iso-8859-1 Ā« are equal for the iseq opcode, but not as a hash key
jonathan Fail.
pmichaud I'll write up a bugreport -- need lunch now though. 17:30
jonathan OK.
pmichaud when that gets fixed, I suspect the unicode forms will work also.
jonathan Great. 17:31
Nicely found.
pmichaud adds hyperop notice to the rakudoperl twitter feed 17:32
twitter.com/rakudoperl :-) 17:33
ick, I lose my +'s though
I'll have to fix that.
moritz pmichaud: will you also blog about those (and slices)? 17:34
pmichaud yes
and list assignment
purl list assignment is probably default in perl 6, but don't know about a 'default' in PAST. probably better to specify either list or scalar
pmichaud and reductions
I was going to blog this morning but got sidetracked fixing the Positional bug
moritz rakudo: my ($x, $y) = (3, 4); say $x;
pmichaud rakudo still doesn't recognize my ($x, $y)
polyglotbot OUTPUT[␤]
pmichaud (doesn't know how to "my" a list) 17:35
moritz pmichaud: it does, in terms of declaration
jonathan rafl: my ($x, $y); ($x, $y) = (3,4); say $x;
moritz pmichaud: otherwise you'd have seen a compiler error
jonathan rakudo: my ($x, $y); ($x, $y) = (3,4); say $x;
oops :-)
polyglotbot OUTPUT[3␤]
pmichaud hmmm, then it should work.
jonathan pmichaud: It recognizes it's a signature there on the LHS
pmichaud I would guess that 'my' isn't returning the appropriate list, then.
jonathan I suspect that's the issue.
I can look at that. 17:36
PerlJam it probably fails for the same reasons as has $.foo = 3 fails ;->
pmichaud PerlJam: no, different reasons.
jonathan Aye, different.
pmichaud my should walk the elements in the signature and mark them as lexical
jonathan And just don't ask about has ($.x, $.y) = (3, 4);
pmichaud: It does something along those lines.
Tene jonathan: what about has ($.x, $.y) = (3, 4); ? 17:37
pmichaud then it has to build a list with the signature elements
PerlJam I know. I was just keeping the has assignment issue alive :)
jonathan PerlJam: Yes, I know, it's wanted...hoping to patch that soon. Maybe even today.
pmichaud $Pm ~~ Lunch || fail 17:38
PerlJam jonathan: at some point I hope to understand enough that I can be less annoying about stuff and more patch-the-source about it :)
Tene I'm hoping to be able to get to some hacking tonight. 17:39
An emergency came up last night.
17:42 Zaba joined
pmichaud reminder that I'll be largely gone tomorrow and Thu (daytime) 17:42
I'll be on in the evenings, though. 17:43
moritz speaking of reminders: there's #parrotsketch soonish
pmichaud afk, lunch
17:45 tomyan left
dalek r33717 | particle++ | trunk: 17:49
: [docs] update to mailing list links, in preparation for turning off perl6-internals
diff: www.parrotvm.org/svn/parrot/revision?rev=33717
jonathan Is Parrotsketch in 40 minutes or 1 hour 40? 17:54
jhorwitz 40 mins
35
jonathan OK
Then dinner after ps. :-)
17:56 register joined 17:57 register left, barney joined 17:58 Coke left 18:06 Hadi1 left 18:16 register joined 18:21 bacek joined 18:22 ffwonko joined
dalek r33718 | allison++ | trunk: 18:24
: [I/O] Adding an interactive readline method.
diff: www.parrotvm.org/svn/parrot/revision?rev=33718
jonathan allison: Did you see the eof quirk I filed a ticket for?
allison jonathan: not yet
jonathan: RT or Trac?
moritz RT 18:25
iirc
jonathan RT 18:26
If you fix that, I can resolve a Rakduo RT ticket too. ;-)
Wknight8111 allison, did you resolve that test failure last night in the IO branch? 18:27
dalek r33719 | jonathan++ | trunk: 18:29
: [rakudo] Add the various dwimmy variants of infix hyperoperators.
diff: www.parrotvm.org/svn/parrot/revision?rev=33719
18:30 chromatic joined
particle chromatic: i wanna coverity account 18:35
18:35 rurban joined
chromatic Okay. 18:36
particle rurban: welcome back! will you have time to work on install-related issues before january release?
chromatic Coke, is that RT #60128? 18:37
rurban particle: yes
particle rurban++ # we need your help
rurban I know. I need more time.
allison I've nearly completed an application of the changes in the install branch to a fresh checkout of trunk, so we can easily diff 18:44
will help with review
rurban allison: ah, okay. I wanted to switch to git, because my merges didn't work ad hoc, so I wanted to do a fresh merge with the help of git 18:46
particle allison: i hope you're picking the brains of the ubuntu folks 18:47
allison particle: yes, many good ideas
particle excellent. i hope you can share them soon 18:48
Wknight8111 what kind of stuff are you doing with the ubuntu group?
allison Whiteknight: hanging out, hacking, brainstorming
their usual dev summit 18:49
18:50 Coke joined
Coke wonders if CS students go register-spilling when drunk. 18:50
chromatic Yes, but they don't color them very well.
dalek r33720 | fperrad++ | trunk: 18:53
: [WMLScript]
: - fix exception handling
diff: www.parrotvm.org/svn/parrot/revision?rev=33720
rurban chromatic: well, to add tracing is easier for us, because we don't need the forth enchilada. And we can just add the simple checks to each tight loop as in spidermonkey to go optimized or plain. 18:54
chromatic SpiderMonkey doesn't use the Forth/Python approach that Adobe had.
Jim explicitly mentioned that.
We may need to reorder the PIR emitted from PCT to put loop headers at the end to have straight-line code, if we use that approach... 18:55
dalek r33721 | fperrad++ | trunk:
: [WMLScript]
: - console.println uses opcode 'say'
diff: www.parrotvm.org/svn/parrot/revision?rev=33721
chromatic ... but I mentioned to Bart Massey that we could trace any basic block instead of just loops, and he agreed.
That requires us to identify basic blocks when tracing, however.
rurban finding exactly+safely basic blocks are a bit harder than just the loops. 18:58
chromatic Not really; we need to find them to do register allocation. 19:00
rurban ah yes.
chromatic In that case, the heuristic is "Does this opcode jump anywhere?" If so, it ends one block and starts another. 19:02
Wknight8111 particle, ping 19:04
particle pong
Wknight8111 you said you were digging into that t/compilers/pct/complete_workflow.t failure?
because that's the same test failure that's happening in the calling_conventions branch
particle yes, it's... weird.
seems to be something with the tempfiles 19:05
Wknight8111 what's the error message you are getting, problem finding lexicals?
particle no. gimme a few and i'll nopaste 19:07
Wknight8111 oh, well if you are getting a different error then it wouldn't be the same issue 19:08
or, not exactly the same
particle it's a totally different error 19:10
the tempfiles aren't being written properly
chromatic Is that the test that rolled its own broken File::Temp replacement? 19:11
Wknight8111 oh, great. So the same exact tests fail for completely different reasons. Lovely
jonathan I need to go for food, before the food place closes...bbiab 19:16
Wknight8111 "the food place"? Is there only one? 19:17
chromatic It's Europe. It's barely even food.
particle chromatic: seems so. 19:18
the first 72 bytes of the tempfile don't get written 19:19
chromatic kid51 may hate this, but I say replace that hack with File::Temp. 19:20
rurban git://repo.or.cz/parrot seems not to be updated anymore. Is git://git.perl.org/parrot the new master?
Tene rurban: I just use git-svn 19:21
rurban "git svn clone svn.perl.org/parrot -T trunk -b branches -t tags" for the start? 19:25
PerlJam rurban: I did "git svn clone --stdlayout svn.perl.org/parrot" myself
you can specify a starting revision if you don't need all of the history. 19:26
Tene pmichaud: trac.parrot.org/parrot/ticket/25
pmichaud okay to assign to me, also.
19:27 Coke left 19:29 allison joined
allison jonathan: what's the ticket you mentioned creating this morning? 19:30
dalek r33722 | pmichaud++ | trunk:
: [rakudo]: Clean up some minor errors in hyperop generator.
diff: www.parrotvm.org/svn/parrot/revision?rev=33722
r33723 | moritz++ | trunk: 19:33
: [rakudo] add hyper tests to t/spectest.data
diff: www.parrotvm.org/svn/parrot/revision?rev=33723
19:37 johbar joined
particle Wknight8111: i'm now getting Lexical '$key' not found 19:42
when compiling Test.pm in rakudo. i'll have a look. 19:43
Wknight8111 that's the error I was getting in the cc branch
see? I'm not crazy!!!
particle cool.
19:44 mugwump joined
allison Whiteknight: which means, the bug isn't caused by your branch, and you can go ahead and merge 19:44
19:44 masak joined
Wknight8111 okay, I'll do it tonight 19:45
19:46 bacek joined
allison do you want me to update the cc branch from trunk, in case there are any conflicts from my I/O merge last night? 19:46
Wknight8111 you can if you have time. I'm at work and way from my development computer, so I can't do anything for another 2 hours or so
particle um, that error is in the cc branch.
allison particle: not in trunk? 19:47
nopaste "particle" at 76.121.106.245 pasted "cc branch failure" (23 lines) at nopaste.snit.ch/14883
kj does anybody else have build errors on windows? 19:48
particle in trunk?
kj yes
particle not i
trouble with tge?
kj no, filehandle.pmc
particle you may not be current. there was a c89-o in there yesterday 19:49
jonathan mn'am...pizza
Wknight8111 particle, that's exactly the same error I've been seeing
if we can resolve that, the cc branch can merge in
the same error manifests itself in t/compilers/pct/complete_workflow.t also 19:50
pmichaud jonathan: are you working on my ($a, $b) = ... soon? If not, I'll go ahead and do it.
jonathan pmichaud: I can do it, or you can, I don't mind which of us.
I'm just finishing up hyper test review/fudging.
pmichaud I'll do it. It'll get me in the right mindframe for parameters and signatures
I plan to do those on the plane/hotel in the next 2 days 19:51
jonathan OK, sounds good. 19:52
I'll do the 'has $.x = 42' thingy
In theory, those won't overlap...
pmichaud right, unless we have to change our grammar.
(to match STD.pm)
jonathan I think I don't need a grammar change. 19:53
pmichaud ...but I might?
jonathan When I pondered what it would take to do it, I wasn't reckoning on needing one. 19:54
pmichaud okay.
jonathan You may, but I think you'll just want to change what PAST is produced by my ($a, $b) to be ($a, $b) 19:55
pmichaud for the my ($a, $b) fix, yes. For the signature/params refactor, may be much more.
jonathan Oh yes, I thought the my ($a, $b) thing was what we were talking about. 19:56
I'd be surprised if there *wasn't* grammar changes for the sig/params refactor. 19:57
pmichaud right.
okay, we're in good shape then.
jonathan OK
Expect to have to extend signature objects a bit.
pmichaud signature/params probably will happen in a branch anyway.
jonathan Like, they don't have a slot for the default value.
Basically because I never needed that yet. :-) 19:58
I've got some thinking to do about type parameter binding in signatures too.
So don't worry too much if you break that. 19:59
pmichaud okay.
parrot trunk breaks for me 20:00
jonathan (I'd rather not regress on type capture if it's easy not to, but I'm prepared to do so rather than have some bad hack for it.)
Oh?
pmichaud ./src/pmc/filehandle.pmc: In function ā€˜Parrot_FileHandle_nci_readline_interactive’:
kj pmichaud: parrot trunk break: me too
pmichaud ./src/pmc/filehandle.pmc:326: error: ā€˜_CONST_STRING_326’ undeclared (first use in this function)
I think it's the readline_interactive patch that caused the break.
allison: ping 20:02
allison pmichaud: pong
pmichaud what does readline_interactive do on systems that don't have readline?
allison return an empty string 20:03
pmichaud could we have it go ahead and prompt and wait for input, but not use history?
i.e., a dumbed-down readline interactive?
otherwise the caller has to (1) figure out if parrot supports readline, or (2) call readline_interactive and check the result for empty string so that it can re-prompt
allison pmichaud: you mean, simply print to stdout, and wait to read from stdin? 20:06
pmichaud yes, or just call the standard 'readline'
(after printing to stdout)
allison but, isn't the check for readline supposed to tell us if the platform supports readline? 20:07
pmichaud ...what check for readline?
I didn't see that.
allison that is, does 'readline' function even exist if PARROT_HAS_READLINE isn't defined?
pmichaud ETOOMANYREADLINEs 20:08
I meant the 'readline' method (more)
when someone calls readline_interactive, it uses the readline library if it exists, otherwise it prompts and uses the Parrot readline method for FileHandle PMCs
it's entirely likely that readline_interactive really doesn't belong on FileHandle, though. 20:09
allison ah, okay
pmichaud since it always reads from a tty
and always outputs to a tty
i.e., the "FileHandle" doesn't seem to have much to do with readline_interactive itself, unless I'm missing something.
allison neither does 'readall' really, at least not the version that doesn't use an already opened filehandle 20:10
pmichaud true. 20:11
anyway, I don't have a better place to stick readline_interactive
allison but, if we add this alternate default readline_interactive, then it will use the filehandle object
that is, it would act like a readline on stdin
pmichaud whether it reads from filehandle or stdin isn't super critical to me.
allison what would you want it to do if you called 'readline_interactive' on an already open filehandle? 20:12
pmichaud the sticky point is that I'd like to either (1) insulate the PIR caller from having to know if readline library is present, or (2) provide the PIR caller with a good way to find out.
if readline_interactive always ignores the filehandle when readline lib is present, I'd expect it to do the same when the readline lib is not present. 20:13
that seems the most "consistent"
allison how were you handling it before?
pmichaud before the ParrotIO PMC provided a return value that signaled if readline lib was present 20:14
allison checking for the result of the method to set the filehandle as interactive readline?
pmichaud (but the return value came back as a result of a set_interactive method, not the readline_interactive method)
previously we had 20:15
has_readline = stdin.'set_readline_interactive'(1)
allison yes, and I collapsed those, because we didn't really need a separate 'set' step
pmichaud and if has_readline was -1, that meant that the readline library wasn't present.
and so PCT::HLLCompiler could display the prompt or not display it as appropriate
ideally I'd like to just be able to do 20:16
allison making readline_interactive a separate method meant it could be one call
pmichaud code = stdin.'readline_interactive'(prompt)
and have it dtrt even if the readline library isn't present.
allison and, what was your fall back, if the readline library wasn't present?
pmichaud (currently this would always give me back an empty string.)
previously there wasn't a separate readline_interactive method
it was just
code = stdin.'readline'()
and it was always that 20:17
allison were you able to still read from the filehandle?
pmichaud and the "set_readline_interactive" changed the readline method to be an interactive readline (if it could)
I'm not advocating that model -- that's simply what it did.
chromatic Hm, the IO branch made the test suite some 30% slower.
pmichaud yes, I noticed that things slowed down significantly. 20:18
I couldn't tell if it was my assignment changes or something else, though, because they both went in at about the same time.
rurban na da kommt freude auf.
allison basically, whatever you were doing to allow interactive readline on platforms that didn't have the readline library, is what we should be using as the fallback for the readline_interactive method
chromatic The Rakudo benchmark seems unchanged.
pmichaud chromatic: okay, that's a plus then. But when I run my test_summary script, it seems a lot slower.
previously all I was doing was set_readline_interactive, and then always calling 'readline' 20:19
allison pmichaud: so you always get something back
chromatic I have the Rakudo benchmark down to 19 seconds with an optimized build including debugging symbols.
pmichaud wow, 19 seconds is good.
chromatic Okay, ~20 seconds.
pmichaud really good.
allison pmichaud: okay, I can duplicate that logic
pmichaud allison: as I said, I'm not sure I advocate that
what I think makes more sense is the separate readline_interactive method 20:20
that always displays a prompt
because the other issue I had was that I had to figure out when to display a prompt
allison pmichaud: yes, that's what I meant
pmichaud also, the prompt that HLLCompiler self-generates seems to go to stderr instead of stdout
allison but duplicating the logic of "fall back to readline" in 'readline_interactive'
pmichaud yes, duplicating the logic of "fall back to readline" works for me. 20:21
so, readline_interactive always gives me a prompt (if I supply one), and always reads a line from somewhere (either via the readline lib or from the filehandle I give it)
allison pmichaud: and if the filehandle is closed? read form stdin or throw an exception? 20:24
s/form/from/
pmichaud I'd guess "do whatever readline does"
(since that's what it did before.)
er, "do whatever readline method does" (ETOOMANYREADLINEs) 20:25
basically, readline_interactive gives me the prompting behavior on a filehandle, and if the readline library is present, it uses that in lieu of the filehandle. 20:26
allison at the moment, readline throws an exception when attempting to read from a closed filehandle
pmichaud that's fine.
allison ok, will do that for now
can change later
cotto chromatic, ping
chromatic pong 20:28
cotto Should I talk to you about getting a Coverity account for Parrot?
chromatic Yes.
allison pmichaud: okay, try r33724 20:32
20:32 davidfetter joined
allison no prompt, but the default read 20:32
dalek r33724 | allison++ | trunk:
: [pdd22io] Add a default interactive readline, that reads a line from the
: current filehandle.
diff: www.parrotvm.org/svn/parrot/revision?rev=33724
pmichaud it works great now when readline lib isn't present 20:36
let me try when it's present
(installing readline lib)
I think this is _exactly_ what I'm looking for (sans prompt, but I can add that.)
20:39 davidfetter joined
allison pmichaud: if you tell me how you add your own prompt, I can probably duplicate it in the method 20:41
pmichaud: just wasn't sure if you'd want it to go to stdout directly, or some other destination 20:42
pmichaud currently HLLCompiler does it by sending it to stderr. I don't remember why we ended up with that, but stdout seemed to be doing the wrong thing. 20:43
I was going to put it in the method, though.
:-)
allison ah, excellent
I'll leave it in your capable hands :)
allison returns to looking for jonathan's i/o ticket
20:44 bacek joined, contingencyplan joined
jonathan allison: You know RT #? 20:44
#61224
pmichaud one difference is that the readline lib appears to chop the newline, while the readline method does not. 20:49
that's kinda icky. 20:50
20:55 Hadi joined 20:56 Hadi left
chromatic Hm, we could get a ~15% performance improvement by avoiding system malloc/free and maintaining our own sized pools with free lists. 20:57
jonathan Are they really that bad? 20:58
chromatic r33724 fixed an unrelated bug.
Wknight8111 yeah, malloc/realloc are terrible
moritz that's what perl 5 does iirc 20:59
chromatic Let me instrument our mallocs and see if there are patterns. 21:00
5% is well within the realm of possibility.
10% is likely.
15% is possible.
jonathan Would be a decent win, if it could be done without hurting stability. 21:01
chromatic We have 10.6 million free() calls in the Rakudo-building benchmark.
jonathan ...wow.
chromatic 4.6 million malloc, 4.35 million calloc, 1.7 million realloc.
7 realloc zeroed. 21:02
Not seven million.
7, as in the cannibal number.
masak googles that 21:03
particle 7 8 9 21:06
jonathan groans
masak too 21:08
but the Google hits were really interesting!
en.wikipedia.org/wiki/Missionaries_...ls_problem 21:09
pmichaud remembers having to come up with solutions to M&C in Prolog. Ugh. 21:10
masak Prolog can make the simplest logic problems seem a hurdle. 21:12
kj and vice versa ;-)
moritz aye ;-)
masak a hurdle can make the simplest logic problem seem like Prolog? :P 21:13
pmichaud allison: previously .readline() would remove the line terminator from the input string... that's no longer the case?
jonathan Do we want Parrot automatically removing it? 21:15
(e.g. sometimes you may want to have it, like if your langauge doesn't auto-chomp)
pmichaud I'm just saying it's a change, and that readline_interactive gives me two different behaviors at the moment. 21:16
(depending on whether the readline library is present)
particle what trace flag do i need active to see .lex ? 21:17
pmichaud .lex isn't an opcode.
particle i know.
pmichaud ...so you can't see it. 21:18
in a trace.
particle the . gives it away. but it's hard to debug lexicals without seeing where they're bound
jonathan Two different behaviours bad.
particle .lex "$key", param_97 ... find_rex $P102, "$key" # Lexical '$key' not found
dalek r33725 | kjs++ | trunk: 21:19
: [imcc] split .line <int> , <string> into .line <int> and .file <string> as already defined in pdd19.
diff: www.parrotvm.org/svn/parrot/revision?rev=33725
r33726 | kjs++ | trunk:
: [pdd19] some updates and clarifying texts.
diff: www.parrotvm.org/svn/parrot/revision?rev=33726
pmichaud I wonder why the readline library chooses to remove the newline.
as in, is there a reason for doing that. 21:20
I'm going to have readline_interactive work a little bit more like the former 'readline' did 21:25
21:27 allison joined, particle joined
dalek r33727 | pmichaud++ | trunk: 21:48
: [io]: Make readline_interactive more consistent when readline lib isn't present.
diff: www.parrotvm.org/svn/parrot/revision?rev=33727
21:52 alvar joined 21:54 allison joined 22:01 TiMBuS joined
jhorwitz allison: ping 22:04
22:06 DietCoke joined 22:09 Whiteknight joined 22:15 Theory joined
GeJ Good morning everyone 22:15
pmichaud svn.perl.org down?
jonathan I fear so. :-( 22:16
I just tried to ci and fail. :-(
masak GeJ: good evenin' from Sweden.
GeJ hej masak
jonathan pmichaud: I haz 'has $.x = 42' working 22:17
masak jonathan++
moritz OMG THIS IZ AWSUM
jonathan ...it would be if I could commit it ;-)
masak wow, list slices and attr assignment on the same day!
moritz you can't?
jonathan And hyperops ;-) 22:18
masak moritz: svn.perl.org down
moritz masak: and basic hyperops
Tene svn.perl.org down
jonathan And for =$fh { ... } now works.
I'd say it wasn't a bad day...
masak hyperops++
particle jonathan: post the patch to moritz, so he can apply locally and run autounfudge
chromatic You have an autounfudge tool?
GeJ svn.perl.org down as well
masak
.oO( wonder if there's a way to combine the three new features... )
particle we'll be even closer to 5k tests passing
moritz chromatic: sure, in tools/ in the rakudo dir
Infinoid masak: voltron style
Tene say [+] =$fh 22:19
that work?
masak googles voltron
chromatic say [eval] =$fh
Tene chromatic: eval is infix?
moritz nah, eval isn't an op
chromatic A REPL in one line of Perl: say [eval] =$*STDIN
Who says it can't be?
PerlJam that would be cool
particle it's uist $*IN
chromatic I know where we host the grammar...
particle *just
masak Infinoid: ah. yes. :)
chromatic log.perl.org is up, but no status there. 22:20
22:20 gryphon joined
jonathan Tene: Yes, it does. 22:20
purl stays quiet
nopaste "moritz" at 89.12.157.220 pasted "[+] =$fh" (7 lines) at nopaste.snit.ch/14885 22:21
jonathan chromatic: eval is not an operator... :-)
Tene [+] =$fh >>*>> 2
moritz but of course eval [~] =$fh could work ;-)
particle say .eval for =$*IN
jonathan for =$*IN doesn't do what you want for the time being (need lazy lists which need a spec) 22:22
particle it's valid p6, though
just not working
chromatic We need an op which turns a method call into an op so that we can meta it.
[.eval]
moritz chromatic: you can say @array>>.eval
jonathan Oh yes, it's valid. Just not what you want under Rakudo. 22:23
particle @*IN>>.eval.say ??
jonathan There's an @*IN?
particle iunno
jonathan yay, svn lives 22:24
moritz robrt++ ask++ # it might have been one of them ;-)
dalek r33728 | jonathan++ | trunk:
: [rakudo] First cut of initializing attributes at the point of declaration (has $.x = 42).
diff: www.parrotvm.org/svn/parrot/revision?rev=33728
Tene chromatic: but [] is for infix and chain associative ops 22:25
What would $a eval $b mean?
22:26 Theory joined
chromatic In this case, reduce but do not apply. 22:26
Tene eh? 22:27
purl Speak up, sonny!
Tene purl: forget eh
purl Tene: I forgot eh
chromatic Nah, I'm just messing with you all. 22:28
</bender>
22:37 rob joined 22:47 register joined
dalek r33729 | moritz++ | trunk: 22:51
: [codingstd] wrap long lines in pdd19_pir.pod
diff: www.parrotvm.org/svn/parrot/revision?rev=33729
r33730 | moritz++ | trunk: 22:54
: [codingstd] remove trailing whitespaces
diff: www.parrotvm.org/svn/parrot/revision?rev=33730
r33731 | pmichaud++ | trunk: 22:55
: [pct]: Give hll compilers an interactive readline again. (allison++)
diff: www.parrotvm.org/svn/parrot/revision?rev=33731
pmichaud [+] @x >>**>> 2 # sum of squares of @x 22:56
dalek r33732 | moritz++ | trunk: 22:58
: [rakudo] tools/autounfudge.pl: add a --section option to for example only
: process S12 tests
diff: www.parrotvm.org/svn/parrot/revision?rev=33732
r33733 | jonathan++ | trunk:
: [rakudo] Implement cross meta-operator, which sicne now we have reduce and we already had infix:X was rather trivial (it's just the de-sugaring shown in S03).
diff: www.parrotvm.org/svn/parrot/revision?rev=33733
particle rakudo: say <a b> X~X <1 2>; 23:01
polyglotbot OUTPUT[Statement not terminated properly at line 1, near "2>;"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤called from Sub 'parrot;Perl6;Grammar;eat_terminator' pc 27342 (src/gen_grammar.pir:3363)␤called from Sub 'parrot;Perl6;Grammar;statementlist' pc
..25998 (src/gen_grammar.pir:2830)␤called from Sub 'p...
pmichaud is infix:X implemented correctly?
particle oh, right, it's only 3:01
pmichaud answer: no.
I'll rewrite infix:X later.
maybe I'll rewrite it now. 23:02
23:03 TonyC joined
pmichaud (list functions that use element indexes are evil.) 23:05
jonathan pmichaud: I've just had to fix infix:= at least one way. 23:09
pmichaud oh?
jonathan oops 23:10
infix:X
:-)
What on earth...those keys are miles from each other.
pmichaud I'm going to rewrite it so it doesn't use the element indexes.
jonathan Have fun, it was hateful to write in the first place.
dalek r33734 | jonathan++ | trunk: 23:11
: [rakudo] infix:X ended up giving a result that flattened, which meant we got wrong results.
diff: www.parrotvm.org/svn/parrot/revision?rev=33734
r33735 | jonathan++ | trunk: 23:13
: [rakudo] infix:X,X is just infix:X.
diff: www.parrotvm.org/svn/parrot/revision?rev=33735
23:22 ruoso joined
jonathan rakudobug? 23:28
purl rakudobug is mailto:rakudobug@perl.org
Whiteknight tewk? 23:33
purl tewk is probably Kevin Tew, mailto:tewk@tewk.com
tewk yes 23:34
moritz me?
purl you are right, there are a LOT of things like that.
moritz heh :)
purl: no, moritz is Moritz Lenz, mailto:moritz@faui2k3.org
purl okay, moritz.
jonathan Today's report: use.perl.org/~JonathanWorthington/journal/38056 23:38
pmichaud nice report 23:39
amazing how far we've come in 1 week. 23:40
Alias_ Question: In a Perl 6 distribution, is there any documentation for the expected directory layout
pmichaud not yet 23:41
Alias_ Second: What is the situation regarding Relocation and Portable'ness
pmichaud I'm still waiting for Parrot to figure out its install footprint before I start designing things for rakudo / Perl 6
Alias_ ok
pmichaud but that's supposed to happen between now and January, so it's not a long wait. 23:42
(if it doesn't happen by January, I'm forcing the issue.)
jonathan pmichaud: It was nice to spend the day working mostly on features rather than bug fixes.
pmichaud indeed.
same here.
Alias_ I'd like to stay in the loop on the distribution stuff
pmichaud I have a nopaste of my version of infix:X
Alias_: you're top of the list at the moment.
Alias_ Thanks
jonathan pmichaud: URL?
pmichaud I'm really happy you're working on the packaging issues, and your experience is invaluable to us.
just a sec 23:43
jonathan Agreed.
Alias_ Well, 3 years ago I discussed this situation with larry
jonathan Alias_: You'll be putting out downloadable Rakudo packages for Win32?
Alias_ And he basically said he only cared about the language surface, and not really about the module/cpan layers
jonathon: I'll be calling it "Perl 6" and not using the brand Rakudo, but yes
pmichaud Alias_: that's correct. He really wants "distributions" to figure out the layouts. 23:44
jonathan Alias_: Do you have one already that I can point people at, or not yet?
Alias_ There is a test distribution, larry and I have the only copies
jonathan OK.
Alias_ His is burned onto a CD and largely ceremonial :)
nopaste "pmichaud" at 72.181.176.220 pasted "infix:X" (58 lines) at nopaste.snit.ch/14887
jonathan No hurry, will be nice to have when it's ready. :-)
Alias_ Since he was in Sydney at OSDC, so there was the opportunity to present it to him live on stage
Otherwise I in no way want anyone else to try it :) 23:45
For one, I had to force the tests
jonathan pmichaud: Ah, you went the recursive route.
pmichaud simpler. Probably at least as efficient.
particle well, he doesn't have windows, so probably can't try it anyway :) 23:46
jonathan Doubt it'll be as fast, but I'm more worried about correctness at this point.
23:46 leto joined
pmichaud I don't think it'll be much slower. 23:46
it's only one recursion per argument.
jonathan True.
If it passes the tests, works for me.
Alias_ particle: He has Windows at work :) 23:47
pmichaud so, @a X @b X @c X @d only recurses three levels, regardless of the number of elements in each argument.
Alias_ Also, I announced the Microsoft thing 10 seconds after I gave him the CD :)
In a very jobsian 'One more thing...' moment I rather enjoyed
pmichaud Alias_: I think I will definitely play with P::D::P this next week.
Alias_ ok
As I mentioned, the whole family of modules is a little fragile, so talk to me if anything goes wrong 23:48
pmichaud with the work jonathan++ and I did today, the december release is starting to look very christmas-y
Alias_ Mostly, at this point, I just don't understand what is needed
jonathan Aye, it's been a good week.
pmichaud not christmas yet this year, but we have a tree and some shiny ornaments
Alias_ I stripped the entire distro out to just 2 files (perl6.exe and parrot.dll) and the whole thing still worked
But it would seem to me that 2 files does not a "distro" make :)
jonathan It...still worked? 23:49
Alias_ Yup
pmichaud jonathan: yeah, I'm thinking there must be something else afoot there.
jonathan Don't PGE.pbc and the like get load_bytecode'd?
pmichaud jonathan: yes.
jonathan *confused look*
Alias_ They are fairly lage...
jonathan Unless pbc_merge is being used...but I didn't think so.
Alias_ perl6.exe is like 1.5meg and parrot.dll is 11 meg
I just assumed everything was being somehow statically compiled in
jonathan Alias_: Was that a non-debug build of Parrot? 23:50
23:50 AndyA joined
Alias_ It was "perl Configure.pl --prefix=..." 23:50
Tene perl6.exe is from pbc_to_exe
Alias_ With no TTY attached
Tene does pbc_to_exe do pbc_merge?
Alias_ No other flags are used yet 23:51
pmichaud Tene: not yet.
jonathan Alias_: OK, fine, was just curious.
Hmm. I'm like "nice it works, but why..." :)
Alias_ Ya :)
pmichaud same here. I figure I'll know more after playing with P::D::P
jonathan Aye. 23:52
Oh...one thought.
pmichaud but it'll have to be next week sometime.
jonathan Did you take the parrot.dll and perl6.exe to a different machien than the one you build on, and try it there?
Alias_ No, I have not
jonathan Rather than just but the two in a directory of their own?
Alias_ But I can, they look quite "drop onto a flash drive"
jonathan And you didn't delete the original source tree?
Alias_ I can post those two files if you like 23:53
So you can see
jonathan
.oO( Maybe it went and loaded the PBCs from an absolute path... )
Alias_ God knows WHAT absolute path though
jonathan I hate to imagine.
pmichaud: Don't forget to blog about slices and list assignment - I purposefully didn't mention them in my report so as not to steal your thunder. ;-) 23:54
pmichaud I'm getting a spectest fail with is @result.elems, 8, 'chained cross-comma produces correct number of elements';
jonathan With your implementation?
pmichaud yes.
Alias_ The initial test suite runs were building in C:\\strawberry\\cpan\\build\\Perl-Dist-Parrot\\t\\tmp2\\parrot\\bin
jonathan Yes, let me check what you're doing...
Alias_ So it's hardly likely you have that hardcoded 23:55
jonathan ah
push res, $P0
pmichaud I shan't forget. I'll have to leave in about 15 minutes for a family event, but I'll blog when I get home.
jonathan You're pushing a list onto a list, I think, so it gets flattened later.
You need more like
$P0 = new 'ObjectRef', $P0
Alias_ I'm zipping up the files now and I'll post them somewhere for you
pmichaud no, that's wrong.
it should be a list of lists, because it *should* flatten in list context.
jonathan And you need to be sure you're creating a Perl6Array rather than a List.
Ah.
Then if it's going to flatten...is the test wrong to thing there is 8 elements? 23:56
pmichaud I'm not sure what .elems would return on a list of lists.
jonathan OK.
At the moment it seems to flatten and return 32.
pmichaud ((1,2), (3,4)).elems # I'm pretty sure this is 4 and not 2
jonathan OK. If that is the case, and S03 says list of lists, then your implementation is right and the test should be changed. 23:57
pmichaud pugs says 4.
The operator is list associative, so
1,2 X 3,4 X 5,6
produces
(1,3,5),(1,3,6),(1,4,5),(1,4,6),(2,3,5),(2,3,6),(2,4,5),(2,4,6)
that looks like list of lists to me.
jonathan Yes.
OK, test is wrong then. 23:58
s/8/24/ in the test and you should be good.
pmichaud yes, that's it.
I didn't run all of the other spectests, but I'm going to commit now
otherwise the commit will have to wait a few hours
jonathan Works for me. 23:59
Whiteknight loves watching these conversations happen