Camelia, the Perl 6 bug

IRC log for #perl6, 2010-02-07

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:00 colomon jnthn++ # awesome day of hacking.
00:04 jnthn 'twas fun. :-)
00:06 colomon I'm trying to build everything now, don't know if I'll have a proper chance to take a look at it tonight.
00:06 colomon We've been watching Life on Mars (BBC) with a friend who's coming over in about an hour for the next episode.  :)
00:10 eternaleye __rnddim__: re converting to hes, try $int.fmt: '%x'
00:10 eternaleye ng: 16.fmt: '%x'
00:10 p6eval ng aa0a08: OUTPUT«Could not find non-existent sub &sprintf␤current instr.: 'perl6;Any;fmt' pc 251735 (src/gen/core.pir:19794)␤»
00:10 eternaleye rakudo: 16.fmt: '%x'
00:10 p6eval rakudo 1d4928:  ( no output )
00:10 eternaleye rakudo: say 16.fmt: '%x'
00:10 p6eval rakudo 1d4928: OUTPUT«10␤»
00:10 eternaleye rakudo: say 16.fmt: '0x%x'
00:10 p6eval rakudo 1d4928: OUTPUT«0x10␤»
00:11 eternaleye __rnddim__: See ^^^
00:11 jnthn colomon: Nice. :-)
00:11 jnthn colomon: No worries about not getting more done today. There's tomorrow, and the day after, and... :-)
00:11 colomon :)
00:11 jnthn colomon: Is there anything you'd especially like me to look at? I can likely give Perl 6 a few hours tomorrow.
00:12 colomon hmmm....
00:12 jnthn I'll probably try and { x => 42, ... } style hash constructors in place.
00:12 jnthn and .keys, .values, .kv on EnumMap
00:12 jnthn (and thus Hash)
00:13 jnthn But those shouldn't take long.
00:13 colomon I'd still be in heaven if my ($a, $b) = (1, 2) worked, and sub always dispatched to the right type....
00:13 colomon but I understand the first of those is more pmichaud's area...
00:14 colomon and the second is super hard.
00:14 jnthn Yeah, I'd like that to work too.
00:14 colomon Do enums work after what you've done today?
00:14 jnthn No
00:14 jnthn Enum is just the name for "immutable Pair" really.
00:14 jnthn And EnumMap for "immutable Hash"
00:15 jnthn Though they're both needed for making enums work.
00:15 jnthn On list assignment - I can try and work out why it doesn't work. I thought Pm had done it...
00:15 colomon maybe I missed it.
00:15 jnthn It may be an easy-ish fix.
00:15 colomon ng: my ($a, $b) = (1, 2);
00:16 p6eval ng aa0a08:  ( no output )
00:16 colomon ng: my ($a, $b) = (1, 2); say $a; say $b
00:16 jnthn ng: my ($a, $b) = (1, 2); say $a;
00:16 p6eval ng aa0a08: OUTPUT«Mu()␤Mu()␤»
00:16 p6eval ng aa0a08: OUTPUT«Mu()␤»
00:16 jnthn :-/
00:16 colomon yeah, that.
00:16 jnthn ng: my ($a, $b); ($a, $b) = (1, 2); say $a; say $b;
00:16 colomon he had it working at one point (though "my" didn't work in conjunction with it) but it broke again in his last round of changes.
00:16 p6eval ng aa0a08: OUTPUT«Mu()␤Mu()␤»
00:16 jnthn ng: my ($a, $b); list($a, $b) = (1, 2); say $a; say $b;
00:17 p6eval ng aa0a08: OUTPUT«Cannot assign to readonly value␤current instr.: '&infix:<=>' pc 14862 (src/builtins/Junction.pir:113)␤»
00:17 jnthn meh.
00:17 jnthn OK, certainly br0ken.
00:17 colomon Getting that working would be really nice for a bunch of numeric stuff. :)
00:17 jnthn Yeah
00:18 colomon BTW, S32-str/index.t is broken now?
00:18 jnthn I'll take a look and see if I can work out what's wrong.
00:18 jnthn Oh?
00:18 jnthn I didn't notice that. :-/
00:18 colomon looks like it's dying before the last three tests?
00:18 jnthn I knew I'd broken that whitespace one...
00:19 colomon That's all I can think of off the top of my head, I've got to get my boy in the bath ASAP here.
00:19 jnthn colomon: It runs all tests here. Odd. :-/
00:19 jnthn OK, I'm going for sleep in a moment too...it's late here.
00:19 colomon Good night!
00:20 jnthn night! o/
00:47 huf jnthn: well yeah, i'm slightly insane so i know it's not fun
00:47 huf ... only very slightly tho ;)
00:52 diakopter best spam Subject: ever:  I have redesigned your website!
00:55 __rnddim__ I'm back after only 2 hours! Now, can someone point me to rakudo and ng source code? :}
00:56 mberends http://rakudo.org
00:57 * __rnddim__ feels stupid for not checking that first.
00:58 mberends :) you'll need a bit of git-fu to switch branches from master to ng
00:58 __rnddim__ I'll start on all that in a minute.
01:09 * __rnddim__ does not know what to do. He is screaming into the 5th dimension.
01:10 * diakopter can't perceive the 5th dimension
01:10 mberends Step 1: DON'T PANIC!
01:10 __rnddim__ Step 2: IGNORE STEP ONE!!!!
01:10 * __rnddim__ is now screaming in 7 dimensions.
01:12 * __rnddim__ is now screaming in .25 dimensions. All is calm.
01:12 * mberends redirects the 5th, 6th and 7th dimensions to /dev/null
01:15 __rnddim__ You destroyed probability and existence!? Noes! (I have this theory where 4d is time, 5d is probability, and 6d is existence)
01:16 lisppaste3 mberends pasted "faulty unlink() for jnthn to nitpick" at http://paste.lisp.org/display/94502
01:17 mberends oops. redirect.rollback()
01:19 __rnddim__ So... should I just sign up a github, download ng branch, and upload patches? Or get a 'commit bit(?)'? Or...
01:19 __rnddim__ Recommended course of action, please.
01:20 mberends __rnddim__: only get a github account if you want to break, er, program Rakudo
01:21 mberends read-only access is publicly available
01:22 mberends commit bits usually come to people who've submitted a few nice patches via that paste site
01:22 __rnddim__ by paste site, do you mean something like paste.lisp.org?
01:22 mberends yes
01:23 __rnddim__ so, for now at least, if I fix something (base 16 conversion in ng, for example), should I put it on a place like paste.lisp.org?
01:24 mberends that's right, and the others with commit bits will test it out and commit it for you
01:24 __rnddim__ alrighty.
01:24 * __rnddim__ will download ng branch.
01:25 mberends you may find http://www.gitready.com/ useful
01:29 nihiliad joined #perl6
01:30 * mberends falls asleep (2:30am localtime)
01:35 * __rnddim__ figures out mberends' timezone is UTC+1 (using mberends' time and mine)
01:36 * __rnddim__ that's (1/24)th of the world, though.
01:36 quietfanatic joined #perl6
01:39 quietfanatic rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3); A(3);
01:39 p6eval rakudo 1d4928: OUTPUT«Not enough positional parameters passed; got 1 but expected 3␤in Main (file src/gen_setting.pm, line 324)␤»
01:39 quietfanatic ng: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3); A(3);
01:39 p6eval ng aa0a08: OUTPUT«Not enough positional parameters passed; got 1 but expected 3␤current instr.: '_block26' pc 163 (EVAL_1:60)␤»
01:39 diakopter rakudo: say < <><> >
01:39 p6eval rakudo 1d4928: OUTPUT«Confused at line 10, near ">"␤in Main (file <unknown>, line <unknown>)␤»
01:40 quietfanatic Notice that giving the wrong number of parameters to an 'assuming' sub causes the error message to report the arity of the old sub, not the new sub.
01:41 diakopter std: say < <><> >
01:41 p6eval std 29655: OUTPUT«ok 00:01 105m␤»
01:41 diakopter ng: say < <><> >
01:41 p6eval ng aa0a08: OUTPUT«Confused at line 1, near "say < <><>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
01:41 quietfanatic rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3); A(3, 4, 5);
01:41 p6eval rakudo 1d4928:  ( no output )
01:41 quietfanatic rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3); A(3);
01:41 p6eval rakudo 1d4928: OUTPUT«Not enough positional parameters passed; got 1 but expected 3␤in Main (file src/gen_setting.pm, line 324)␤»
01:41 quietfanatic rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3); A(3, 4, 5, 6);
01:41 p6eval rakudo 1d4928: OUTPUT«Too many positional parameters passed; got 4 but expected 3␤in Main (file src/gen_setting.pm, line 324)␤»
01:42 quietfanatic rakudo: my &A = sub ($a, $b) {...}; my &B = &A.assuming(3, 4); $B(1);
01:42 p6eval rakudo 1d4928: OUTPUT«Symbol '$B' not predeclared in <anonymous> (/tmp/qpHd9Zw3oE:10)␤in Main (file <unknown>, line <unknown>)␤»
01:42 diakopter rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3, 6, 7, 8); B();
01:42 quietfanatic rakudo: my &A = sub ($a, $b) {...}; my &B = &A.assuming(3, 4); B(1);
01:42 p6eval rakudo 1d4928: OUTPUT«Too many positional parameters passed; got 4 but expected 3␤in Main (file src/gen_setting.pm, line 324)␤»
01:42 p6eval rakudo 1d4928: OUTPUT«Too many positional parameters passed; got 3 but expected 2␤in Main (file src/gen_setting.pm, line 324)␤»
01:43 diakopter cuz it's deferred
01:43 diakopter it seems.
01:43 quietfanatic But then its "got X" value is the number of arguments given to the new sub...
01:44 diakopter not in my example
01:44 quietfanatic ...well, except that last one
01:44 diakopter rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3, 6, 7, 8);
01:44 p6eval rakudo 1d4928:  ( no output )
01:44 diakopter rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3, 6, 7, 8); B();
01:44 p6eval rakudo 1d4928: OUTPUT«Too many positional parameters passed; got 4 but expected 3␤in Main (file src/gen_setting.pm, line 324)␤»
01:44 quietfanatic rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3, 6, 7, 8); B(3)
01:45 p6eval rakudo 1d4928: OUTPUT«Too many positional parameters passed; got 5 but expected 3␤in Main (file src/gen_setting.pm, line 324)␤»
01:45 quietfanatic But its not reliably that way.
01:45 diakopter it's the sum..
01:45 diakopter you had A() a lot previously instead of B()
01:46 diakopter I think.
01:46 * diakopter goes back to pessimizing an OPP by implementing it as the naive recdescent equivalent.
01:47 quietfanatic Oh...
01:47 quietfanatic :|
01:47 patspam joined #perl6
01:48 quietfanatic So this is my real problem...
01:48 quietfanatic rakudo: sub A (*@_) {say @_.perl; if 1 { say @_.perl } }; A(5, 4)
01:49 p6eval rakudo 1d4928: OUTPUT«[5, 4]␤[]␤»
01:49 quietfanatic The if block clobbers my @_
01:49 __rnddim__ how do I get the ng branch specifically? I've done git clone git://github.com/rakudo/rakudo.git, and it doesn't seem to be there :/
01:50 quietfanatic I don't know if it's supposed to do that, but it's kinda surprising
01:52 quietfanatic __rnddim__ I think 'git checkout ng' might work, but I haven't tried it.
01:53 IllvilJa joined #perl6
01:54 __rnddim__ It says: error: pathspec 'ng' did not match any file(s) known to git.
01:54 colomon git checkout -t ng
01:54 colomon ?
01:55 colomon I can never remember
01:55 __rnddim__ git checkout -t ng said missing branch, try -b.
01:55 __rnddim__ git checkout -t -b ng is working...
01:56 __rnddim__ Here's what it said: Switched to new branch ng. I'm not an expert, but seems to have worked.
01:57 diakopter "new branch"?
01:57 diakopter as in, it created a local branch with that name?
01:58 __rnddim__ git branch shows this:   master \n * ng
01:58 __rnddim__ I think it said new branch because I didn't have it before.
01:59 __rnddim__ let me see something.
01:59 __rnddim__ rakudo: say :16<16D.4>
01:59 p6eval rakudo 1d4928: OUTPUT«365␤»
02:00 __rnddim__ ng: say :16<16D.4>
02:00 p6eval ng aa0a08: OUTPUT«Confused at line 1, near "say :16<16"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
02:00 __rnddim__ if I run say :16<16D.4> in what I got from git, it should cause the error if it's ng.
02:01 * __rnddim__ is now compiling rakudo to find out.
02:02 * __rnddim__ is obviously new to git, or he would not have to compile to find out.
02:04 cognominal joined #perl6
02:04 * __rnddim__ is beginning to scream again. Trying to make sure w/o compiling.
02:13 __rnddim__ How do I *know* I have the ng branch?
02:14 * diakopter doesn't know; I use rakudo only through the p6eval bot
02:15 __rnddim__ std: say :16<16D.4>
02:15 p6eval std 29655: OUTPUT«ok 00:01 107m␤»
02:18 diakopter o_O   proto token infix is binary is defequiv(%additive)
02:26 rv2733 joined #perl6
02:28 * __rnddim__ really wants to know how to know if he has ng branch.
02:32 * __rnddim__ is starting over
02:32 ruoso joined #perl6
02:33 __rnddim__ I need something that will tell me how to get the ng branch. I'm hopelessly new to git.
02:36 __rnddim__ git clone [directory] -b ng seems promising...
02:43 * __rnddim__ is still finding out how to get the ng branch :(
02:43 PerlJam __rnddim__: once you have a clone of rakudo, you have the ng branch as a remote.  To make a local branch that tracks the remote you do:  git co -b ng -t origin/ng
02:43 __rnddim__ let me try that.
02:44 PerlJam __rnddim__: sorry, "co" is my shortcut for "checkout", so use "checkout" where I have "co"
02:45 * PerlJam goes back to sleep &
02:51 __rnddim__ YES! I've been using the git log command to see what branch I'm in, and comparing it to what github says just happened to ng. They finally match!
02:52 * __rnddim__ 's drive to get the ng branch on the computer has worn off, and is now asleep on the keyboarawhoeon ddcv .
03:10 nbrown joined #perl6
03:17 nbrown joined #perl6
03:28 diakopter ng: sub A (*@_) { my @a := @_; say @_.perl; if 1 { say @_.perl } }; A(5, 4)
03:28 p6eval ng aa0a08: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 1␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (src/stage0/Regex-s0.pir:907)␤»
04:14 diakopter masak: re  declarations:  http://blogs.msdn.com/ericlippert/arc​hive/2010/02/04/how-many-passes.aspx
05:07 REPLeffect joined #perl6
05:13 __rnddim__ joined #perl6
05:29 patspam joined #perl6
06:02 justatheory joined #perl6
06:11 gfx joined #perl6
06:53 iblechbot joined #perl6
07:11 kaare joined #perl6
07:58 s1n hmm: http://news.perlfoundation.org/2010/0​2/2010_grant_proposal_perl_compi.html
08:02 diakopter std: | | | | |3
08:02 p6eval std 29655: OUTPUT«ok 00:03 106m␤»
08:03 diakopter s1n: what about it
08:04 diakopter s1n: oh, the mention of parrot?
08:05 s1n yeah, but the idea is still interesting
08:05 diakopter 1000 euros for a year of work that he would probably do anyway? :)
08:05 s1n well, not that idea in particular, but what the grant is about
08:05 diakopter (if I were TPF, I'd fund it)
08:05 s1n likewise
08:06 diakopter s1n: have you read his use.perl journal or tweetfeed?
08:06 s1n no, should i?
08:08 diakopter http://use.perl.org/~rurban/journal/  and  http://twitter.com/Reini_Urban
08:08 diakopter sure, if you're interested by that idea
08:10 s1n hmm, thanks for the heads up then
08:10 * s1n needs sleep though
08:11 * diakopter *finally* had a breakthrough in the OPP
08:12 diakopter realized that TimToady's implementation in STD.pm is essentially the precedence-climbing algorithm (as mentioned in [slightly higher] ignorance by yours truly on this channel 1.5 years ago).
08:12 * diakopter happy about this.
08:13 diakopter and so... I finally see the need for an LTM engine :D
08:13 diakopter heh
08:13 diakopter goodnight moon
08:16 eternaleye joined #perl6
08:22 pnate joined #perl6
08:37 xinming joined #perl6
08:38 mssm joined #perl6
08:50 drbean joined #perl6
09:06 pnate joined #perl6
09:17 pnate joined #perl6
09:22 Su-Shee joined #perl6
09:22 Su-Shee good morning
09:32 barney joined #perl6
09:49 scott__ joined #perl6
09:55 scotl joined #perl6
10:01 barney joined #perl6
11:22 meppl joined #perl6
11:43 am0c joined #perl6
12:13 drbean joined #perl6
12:16 jnthn oh hai, šesťfolk.
12:22 mberends joined #perl6
12:22 mberends dobor dan, jnthn
12:23 jnthn \o/
12:24 mberends could you please help me a little with http://paste.lisp.org/display/94502
12:24 payload joined #perl6
12:26 jnthn eww Q:PIR
12:26 jnthn :-)
12:26 jnthn mberends: %r = status
12:26 mberends it seemed to need that instead of pir::whatever
12:26 jnthn That's why it doesn't work though
12:26 jnthn %r = box status
12:26 mberends oh. boxing
12:26 mberends :D
12:26 jnthn You need to give back a PMC result in %r :-)
12:26 mberends thanks :)
12:27 masak joined #perl6
12:27 masak oh hai #perl6
12:27 masak rakudo: sub A (*@_) {say @_.perl; if 1 { say @_.perl } }; A(5, 4)
12:27 p6eval rakudo 1d4928: OUTPUT«[5, 4]␤[]␤»
12:27 * masak submits rakudobug
12:27 masak quietfanatic++
12:27 jnthn wtf?!
12:27 jnthn shift that bug!
12:27 masak :)
12:28 masak &
12:29 jnthn o/
12:30 colomon o/
12:30 colomon ng: sub A (*@_) {say @_.perl; if 1 { say @_.perl } }; A(5, 4)
12:30 p6eval ng aa0a08: OUTPUT«Placeholder variable cannot override existing signature at line 1, near "; A(5, 4)"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
12:32 jnthn std: sub A (*@_) {say @_.perl; if 1 { say @_.perl } }; A(5, 4)
12:32 p6eval std 29655: OUTPUT«ok 00:02 111m␤»
12:34 colomon ng: sub A {say @_.perl; if 1 { say @_.perl } }; A(5, 4)
12:34 p6eval ng aa0a08: OUTPUT«[5, 4]␤[]␤»
12:35 colomon ng: sub A ($_) {say $_.perl; if 1 { say $_.perl } }; A(5)
12:35 p6eval ng aa0a08: OUTPUT«5␤5␤»
12:35 jnthn Hmm
12:36 mberends \o/ jnthn++ # just that poxy box was missing :-)
12:36 jnthn So despite ng having a fresh impl, it still exhibits the same behavior!
12:36 jnthn mberends: Yay!
12:36 jnthn mberends: Of course, question now is, does unlink.t pass? :-)
12:37 mberends testing...
12:38 mberends :-( Confused at line 8, near "sub nonce("
12:39 jnthn mberends: Maybe not anything to do with unlink though...check what's on that line.
12:39 mberends and t/spec/S16-filehandles/io_in_while_loops.t passes all 13 tests :-)
12:41 jnthn Oh?
12:41 jnthn Uncomment in spectest.data! :-)
12:41 mberends yes...
12:41 * jnthn likes passing tests.
12:52 dalek rakudo/ng: 25b48ad | (Martin Berends)++ |  (2 files):
12:52 dalek rakudo/ng: [IO.pm] re-implement unlink() and some tests that use it
12:52 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/2​5b48adfd42de79e62ed423a038d4d19995aa969
12:52 payload1 joined #perl6
12:55 orafu joined #perl6
13:00 payload joined #perl6
13:00 xomas_ joined #perl6
13:00 xomas_ joined #perl6
13:10 payload joined #perl6
13:11 lichtkind joined #perl6
13:20 tlb joined #perl6
13:26 colomon jnthn: don't look now, but the index.t problem from last night appears to be another of the classic random test crashes.
13:27 colomon It dies before printing out the full # SKIP message for test 35.
13:27 jnthn colomon: Oh. That's probably why I didn't get it. :-/
13:27 colomon I added say "Hello?" between that and the next test.  With the say in there, all 38 tests run and pass.
13:34 JimmyZ joined #perl6
13:36 JimmyZ joined #perl6
13:36 pmurias joined #perl6
13:41 lichtkind_ joined #perl6
13:48 * jnthn -> shopping, bbiab
14:03 * masak is baking @ buns
14:04 mberends yummy!
14:04 colomon what kind of buns?
14:07 dalek rakudo/ng: a8ab00b | (Solomon Foster)++ | src/core/IO.pm:
14:07 dalek rakudo/ng: Simple lazy implementation of .lines.
14:07 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/a​8ab00b5af729a5c3f3aba4b84547cf5ea14d6be
14:10 masak colomon: it's an internal joke between me and frettled. :) the symbol '@' is sometimes called 'kanelbulle' (cinnamon bun) in Swedish.
14:12 mberends a good illustration http://en.wikipedia.org/wiki/Cinnamon_bun
14:12 colomon jnthn: It would probably be better to make a specific Iterator type for IO, but the question of exactly how to do that is kind of funky.  This gather / take implementation should work fine in the meantime.
14:12 colomon masak: ah.  :)
14:15 jnthn As an oper, I always have a kanelbulle besides me. :-)
14:16 jnthn colomon: Yay, lazy lines. :-)
14:17 jnthn colomon: Does that make any other IO tests pass, btw?
14:17 colomon I haven't tried.  I peaked in S32-io and didn't see any obvious lines tests.
14:17 jnthn S16-filehandles may have some.
14:17 colomon ah
14:17 jnthn Or S16-io generally.
14:18 colomon I'm reasonably confident in the implementation, because it is just a simple variation on the old version of the function.  :)
14:18 colomon and it passes my simple tests in the REPL.
14:19 frettled Oh, look, two cinnamon buns were ready.
14:19 frettled ;)
14:19 jnthn A few more and they'll be abundant.
14:20 flight16 joined #perl6
14:21 greenhorn joined #perl6
14:21 greenhorn left #perl6
14:22 frettled oh ho ho :)
14:23 colomon t/spec/S16-filehandles/io_in_for_loops.t almost works (29 of 31 passing)
14:24 jnthn Sounds close enough to fix or fudge. :-)
14:24 jnthn colomon: Just going to nom my lunch and then I'll dig in to some Rakudo hacking.
14:25 frettled fudge buns!
14:25 flight16 time to nom my #sleep
14:25 flight16 goodnight
14:26 colomon looks like the issue is when we run the file through a for loop, we get a last "undef".
14:26 colomon (No idea why it's undef rather Mu or something)
14:27 jnthn ...sleep is eddible?
14:27 jnthn colomon: Oh, eww. :-/
14:28 masak jnthn: no, but the IRC channel #sleep might be :)
14:28 colomon jnthn: I wouldn't be surprised if it is a for bug rather than a lines bug.
14:30 colomon oh, nope, it's a .lines bug.
14:30 colomon pretty easy to fix, though, I think.
14:31 greenhorn_ joined #perl6
14:31 colomon .defined tests definedness, yes?
14:32 jnthn Should do. :-)
14:34 colomon yeah, I've got a patch.
14:34 am0c joined #perl6
14:36 colomon running spectest now, will push as soon as that's done.
14:41 colomon pushed
14:41 dalek rakudo/ng: 9c39328 | (Solomon Foster)++ | src/core/IO.pm:
14:41 dalek rakudo/ng: Be a little more careful to ensure we do not get a last line of undef (when calling IO.lines).
14:41 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/9​c3932833814b8d48474a512013fd7a6381c5a65
14:41 dalek rakudo/ng: 36620c0 | (Solomon Foster)++ | t/spectest.data:
14:41 dalek rakudo/ng: Turn on S16-filehandles/io_in_for_loops.t.
14:41 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/3​6620c0afc2c4b3faf9dd5dab2ac68fc79031a28
14:44 dolmen joined #perl6
14:45 fda314925 joined #perl6
14:47 jnthn colomon++
14:48 colomon io.t is blocking right away on Range.pick
14:49 colomon I hacked that out just to see what would happen, and we then passes 64 tests before we block on String.Int.
14:50 colomon that's of 69 tests altogether, I believe, so we are very close.
14:51 greenhorn joined #perl6
14:51 colomon ng: say (+"5").Int
14:51 p6eval ng 36620c: OUTPUT«5␤»
14:51 colomon word.
14:52 colomon errr... Str versus String?
14:53 masak it's Str in Perl 6.
14:55 colomon masak: how do you square that with the error message Method 'Int' not found for invocant of class 'String'
14:55 masak probably Parrot shining through.
14:55 masak hiding the host system is tricky :P
14:55 colomon and after I added Str.Int and that tested passed, now I get
14:55 colomon Method 'e' not found for invocant of class 'Str'
14:56 colomon ah, that's $filename !~~ :e
14:58 colomon okay, can fudge that.
14:58 colomon then all I need is to figure out how to get Range.pick to work.
14:59 JimmyZ joined #perl6
15:00 jnthn colomon: I put back Pair's smart-matching yesterday, so implementing .e in the appropriate place should be all we need to do.
15:02 cjk101010 joined #perl6
15:09 colomon jnthn: I don't really know how to do that, so I'm fine with fudging it for the moment.  Though if someone else wants to step up and do it....   :)
15:10 jmf joined #perl6
15:10 jnthn :-)
15:10 mberends where is the use of pir::func__XX() documented? (the XX in particular)
15:12 colomon mberends: I always just ask jnthn or pmichaud if I can't figure out from examples in the code.
15:13 jnthn mberends: They are Parrot ops, so see the Parrot opcode docs for names and what register types they want.
15:13 * colomon needs an embarrassed to admit that smiley.
15:13 jnthn mberends: The XX describes the register signature.
15:13 mberends I'm stuck on the parameter and return type of sleep()
15:13 jnthn mberends: That is documented in...oh gah, github is down.
15:13 jnthn vN perhaps.
15:14 jnthn checking
15:14 k23z__ joined #perl6
15:14 jnthn mberends: vI if you want to sleep an integer amount for vN for a number.
15:14 mberends it's not II, NI or IN :(
15:14 jnthn mberends: Yes, it has no result, so you need a v (= void) first.
15:15 jnthn mberends: The first char always represents what the opcode "returns", as it were.
15:15 mberends thanks. sleep.t expects sleep() to return how long it akshually slept
15:15 mberends got that, never thought about lowercase v
15:16 jnthn heh heh
15:16 jnthn From sys.ops:
15:16 jnthn if ($1 < 0.0) {
15:16 jnthn opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
15:16 jnthn EXCEPTION_NEG_SLEEP,
15:16 jnthn "Cannot go back in time");
15:16 jnthn goto ADDRESS(handler);
15:16 jnthn }
15:16 mberends aw, no time travel :(
15:17 jnthn mberends: Well, if you want, to complain about that, trac.parrot.org ;-)
15:17 jnthn mberends: I think to get the "time we akshually slept" then get the time before, get the time after and subtract.
15:18 jnthn pir::time__N()
15:18 mberends jnthn: then it makes more sense to return a fractional Num
15:19 jnthn mberends: time gives you:
15:19 jnthn Puts the current system time (represented as a number of seconds, with
15:19 jnthn microseconds) in $1.
15:19 jnthn (the time opcode)
15:19 jnthn mberends: Or do you mean, what Perl 6's sleep should return?
15:20 mberends will do a subtract and return seconds.microseconds
15:20 jnthn That sounds sane.
15:20 mberends the test expects a value back, either int on num would do
15:21 mberends but returning the int you gave it is lame
15:21 jnthn Yeah, it is. :-)
15:21 mberends "I went for an hour's snooze, and woke up 100 years later..."
15:22 * colomon thinks his Str.Int push made it through to github just before github went down....
15:23 * jnthn hacks on anonymous hash syntax.
15:24 mberends sleeping for longer than you intended will occur if the computer suspends or hibernates, so it does make sense to measure it
15:27 Psyche^ joined #perl6
15:27 cognominal joined #perl6
15:29 colomon it's wacky how laziness sometimes reverses what was hard and what was easy from the old non-lazy versions.
15:29 mathw I found that when I was doing a lot of Haskell coding
15:29 mathw It turns everything upside down in code and the compiler
15:29 colomon like die "Infinite lazy pick not implemented" if $replace; -- impossible in master, trivial in ng
15:30 colomon in fact, infinite lazy pick is actually easier than the non-replacing pick of a finite number of elements.
15:30 colomon (in ng)
15:32 cognominal I have not followed things lately. ng1 has been merges with ng?
15:32 cognominal *merged
15:32 colomon cognominal: yes.
15:32 jnthn cognominal: And then we've been Widly Patching ng. :-)
15:32 jnthn OK, I got the Hash or Block detection done. Now I "just" need to write circumfix:<{ }>
15:32 cognominal is ng  now usable for programming?
15:33 * masak chuckles
15:33 jnthn cognominal: Well, it's Turing Complete...
15:33 greenhorn joined #perl6
15:33 jnthn cognominal: Things work in master that don't work in ng. Things work in ng that don't work in master. :-)
15:34 cognominal hum, that what I feared :)
15:34 jnthn And we're currently beavering away at making the first of those less and less true. :-)
15:34 cognominal I bet.
15:34 jnthn .oO( oops, I used "beavering" outside of Yorkshire )
15:35 cognominal I don't mind perl 6 being closer to haskell
15:37 jnthn cognominal: Last time I saw you talk about Haskell at a Perl conference, the talk involved dominatrix... :-)
15:38 jnthn cognominal: BTW, will there be a French Perl Workshop this year? :-)
15:38 cognominal yes, but we don't know yet where and when
15:38 cognominal you will be  most welcome as usual
15:39 jnthn I'll try and make it this year; I missed last years.
15:40 cognominal one candidate is  Calais. So you could even make a trip to England from there.
15:41 colomon ng: my $a = -10; $a .= abs; say $a;
15:41 p6eval ng 36620c: OUTPUT«10␤»
15:41 cognominal ...and not as an illegal immigrant :)
15:41 jnthn Aww, go and spoil my fun! :-P
15:42 colomon ng: say Inf.floor;
15:42 p6eval ng 36620c: OUTPUT«-9223372036854775808␤»
15:42 colomon !!!
15:43 jnthn o_O
15:43 cognominal I know Calais is nice. I don't know how far from the center is the university though.
15:43 jnthn ng: our sub circumfix:<{ }>(*@elements) { }
15:43 p6eval ng 36620c: OUTPUT«Method 'value' not found for invocant of class 'PAST;Op'␤current instr.: 'perl6;Perl6;Actions;deflongname' pc 153909 (src/gen/perl6-actions.pir:170)␤»
15:44 jnthn ng: our sub prefix:<{ }>(*@elements) { }
15:44 p6eval ng 36620c: OUTPUT«Method 'value' not found for invocant of class 'PAST;Op'␤current instr.: 'perl6;Perl6;Actions;deflongname' pc 153909 (src/gen/perl6-actions.pir:170)␤»
15:44 jnthn ng: our sub infix:<{ }>(*@elements) { }
15:44 p6eval ng 36620c: OUTPUT«Method 'value' not found for invocant of class 'PAST;Op'␤current instr.: 'perl6;Perl6;Actions;deflongname' pc 153909 (src/gen/perl6-actions.pir:170)␤»
15:44 jnthn ng: our sub infix:<x>(*@elements) { }
15:44 p6eval ng 36620c:  ( no output )
15:44 jnthn ng: our sub circumfix:<x>(*@elements) { }
15:44 p6eval ng 36620c:  ( no output )
15:44 jnthn oh hm
15:44 jnthn ng: our sub monkey:<x>(*@elements) { }
15:44 p6eval ng 36620c:  ( no output )
15:46 jnthn std: our sub circumfix:<{ }>(*@elements) { }
15:46 p6eval std 29655: OUTPUT«ok 00:03 109m␤»
15:47 jnthn ng: say <a b c>
15:47 p6eval ng 36620c: OUTPUT«sh: ./perl6: No such file or directory␤»
15:49 jnthn ng: our sub circumfix:<[ ]>(*@elements) { }
15:49 p6eval ng 36620c: OUTPUT«sh: ./perl6: No such file or directory␤»
15:49 * jnthn wonders how on earth to fix this one...
15:50 colomon > say (1..100).WHAT
15:50 colomon Type objects do not have state, but you tried to access attribute $!excludes_min
15:51 colomon :\
15:51 masak we've been baking and making food for almost 2 hours. time to go offline and see how things taste :)
15:51 masak &
15:51 colomon masak: I'm jealous.
15:52 jnthn colomon: Only if they taste good. :-)
15:52 jnthn colomon: I think I know what's up with that one...
15:52 colomon it's just a sideline to my attempt to getting a very primitive version of .pick up and running...
15:52 jnthn (Need to teach protoobjects a little about stringiication)
15:52 jnthn Well, a little more about...
15:53 jnthn ng: say <foo>.WHAT
15:53 p6eval ng d53e02: OUTPUT«Str()␤»
15:53 jnthn ng: say <{ }>.WHAT
15:53 p6eval ng d53e02: OUTPUT«␤»
15:53 jnthn gah
15:55 jnthn oh, maybe I know what to do...
15:56 jnthn (For those curious, it turns out that circumfix:<{ }> ends up in current impl with us getting a whitespace seperated list of '{' and '}', and then the code building the subname explodes.)
15:58 mathw that's... not good
15:58 jnthn Indeed...it means I can't write circumfix:<{ }>
15:59 jnthn I wonder if really want deflongname to parse a generic circumfix there... :|
15:59 jnthn There's a bunch of ways I could tweak things.
16:00 jnthn Not found one I like yet.
16:01 jnthn oh
16:01 jnthn maybe I have
16:05 jnthn whee
16:05 jnthn > say { a => 42}<a>
16:05 jnthn 42
16:05 * mathw applauds
16:06 mathw jnthn can have his dinner tonight
16:07 jnthn Only if I didn't break any spectests. :-)
16:07 mathw nah
16:07 mathw fixing the spectests gets you pudding
16:09 jnthn Don't think I've broken anything that wasn't already broken. :-)
16:11 jnthn Pushed (seems github's git part is still up, even if the site is fail)
16:12 nihiliad joined #perl6
16:14 colomon blast, you beat me to the punch.  ;)
16:15 jnthn mwaha
16:16 pugs_svn r29656 | colomon++ | [t/spec] Fudge to avoid missing :e in ng.
16:16 colomon git pull didn't work for me.  :(
16:17 jnthn Oh?
16:17 jnthn :-/
16:17 greenhorn quit
16:17 colomon Storage server temporarily offline. Please try again in a few minutes or contact GitHub.
16:17 jnthn Probably just flakey.
16:18 jnthn ng: my $x = -> {}; my $y = $x();
16:19 p6eval ng d53e02: OUTPUT«Null PMC access in can()␤current instr.: 'perl6;Mu;!STORE' pc 1906 (src/builtins/Mu.pir:387)␤»
16:19 jnthn If I can fix that one, we win back
16:19 jnthn S04-blocks-and-statements/pointy.t
16:33 dual joined #perl6
16:35 jnthn ng: my @x; for @x -> $v { }
16:35 p6eval ng d53e02: OUTPUT«Null PMC access in elements()␤current instr.: 'perl6;SeqIter;get' pc 11981 (src/builtins/Positional.pir:16)␤»
16:36 jnthn ng: my @x = 1,2,3; for @x -> $v { say $v }
16:36 p6eval ng d53e02: OUTPUT«1␤2␤3␤»
16:36 jnthn ng: my @x = 1,2,3; for @x <-> $v { say $v }
16:36 p6eval ng d53e02: OUTPUT«Missing block at line 1, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
16:39 colomon git pull finally worked for me.
16:40 jnthn :-)
16:40 jnthn I'm currently puzzling over why <-> doesn't parse, even though it's right there in token lambda
16:42 jmf quit
16:58 jnthn std: my @x; my $x; @x <-> $x { }
16:58 p6eval std 29656: OUTPUT«ok 00:01 110m␤»
16:59 jnthn ...so it parses, but what does it mean?
17:00 jnthn oh noes
17:00 jnthn It's parsing as @x < -> $x { }
17:01 jnthn Trouble is, we also end up doing that in xblock's EXPR
17:04 jnthn phenny: tell phenny are you alive?
17:04 phenny Hey, I'm not as stupid as Monty you know!
17:04 jnthn \o/
17:05 jnthn phenny: tell pmichaud seems there's some issues with parsing <-> lambdas, I think the xblock's EXPR swallows up < as an infix operator, and then -> { } as a pointy block. Stared at STD a bit, don't immediately notice the solution. LTM? Any thoughts?
17:05 phenny jnthn: I'll pass that on when pmichaud is around.
17:05 jnthn Thanks, phenny
17:05 diakopter ltm fail
17:06 jnthn Damm.
17:06 jnthn diakopter: Know a solution?
17:06 jnthn Other than hacking infix:<< < >> to check it's not followed by ->...
17:06 diakopter I didn't think nqp-rx knew about real ltm...
17:07 jnthn diakopter: It doesn't.
17:07 jnthn Well
17:07 jnthn It does and it diesn't.
17:07 jnthn *doesn't
17:07 jnthn It knows the bits of it tangled up with protoregexes.
17:07 dalek rakudo/ng: d53e02e | (Solomon Foster)++ | src/core/Str.pm:
17:07 dalek rakudo/ng: Implement Str.Int and tweak Str.Bool declaration.
17:07 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/d​53e02edb532f3d1ea7e8a9f29faec33b888fe70
17:07 dalek rakudo/ng: aed45d8 | jonathan++ | src/ (2 files):
17:07 dalek rakudo/ng: Implement anonymous hash constructors; also a tweak so that we are able to define circumfix:<{ }> in the core setting.
17:07 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/a​ed45d84dbb29ed3a7be98fa64913af56884507a
17:08 diakopter I guess try to force the lambda one to be tried earlier than the xblock one
17:08 colomon dang it, bushwhacked again by jnthn's speedy commits.
17:09 colomon ;)
17:09 jnthn diakopter: That's not quite the issue.
17:09 jnthn diakopter: xblock does <EXPR> <pblock>
17:10 jnthn diakopter: It's that EXPR that swallows up what the following <pblock> wants.
17:10 diakopter oh
17:10 jnthn Or at least, so far as I can track it down.
17:11 jnthn Anyways, I'll put it aside for now; no point me agonising for longer over something Pm may well have a good idea how to fix right away.
17:12 diakopter lack-of-real-ltm-fail, but I don't know how to fix it other than your suggestion to hack infix:<< < >>  or fix lack-of-real-ltm
17:13 dalek rakudo/ng: 5c70962 | jonathan++ | src/Perl6/ (3 files):
17:13 dalek rakudo/ng: Some tweaks and improvements to pointy blocks. We can't get the <-> form working yet, due to parsing issues.
17:13 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/5​c70962faae20c0d3199dd2a59f7672001c26092
17:13 dalek rakudo/ng: 245ca14 | jonathan++ | t/spectest.data:
17:13 dalek rakudo/ng: We now pass S04-blocks-and-statements/pointy.t again.
17:13 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/2​45ca14bb08d407f6e0292a6a46ee57ecea46225
17:13 diakopter I wonder if std parses it correctly
17:13 jnthn diakopter: Yeah, I believe so.
17:13 jnthn It parses what we fail on, anyway.
17:14 jnthn std: my %h; for %h.values <-> $v { $v += 1 }
17:14 p6eval std 29656: OUTPUT«ok 00:01 108m␤»
17:14 jnthn ng: my %h; for %h.values <-> $v { $v += 1 }
17:14 p6eval ng aed45d: OUTPUT«Missing block at line 1, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
17:14 diakopter std: my @x = 1,2,3; for @x < 3
17:14 p6eval std 29656: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing block at /tmp/fAt9n6kGaN line 1 (EOF):␤------> [32mmy @x = 1,2,3; for @x < 3[33m⏏[31m<EOL>[0m␤    expecting any of:␤        POST␤   postfix␤  postfix_prefix_meta_operator␤FAILED 00:01 107m␤»
17:15 diakopter either ltm works or it backtracks correctly
17:15 jnthn Yeah
17:16 jnthn colomon: about?
17:17 colomon jnthn: I was just about ready to push when you did, that's all.  :)
17:17 colomon so I had to pull, rebuild, and re-test.
17:17 jnthn :-)
17:17 colomon too many commits coming too fast, it's a fantastic problem to have.  :)
17:17 jnthn colomon: I want to make an iterator for hashes.
17:17 jnthn colomon: Any thoughts?
17:18 colomon jnthn: cool.
17:18 jnthn colomon: I mean, if I do...
17:18 jnthn method iterator() { gather { ... take Pair.new($k, $v); ... } }
17:18 diakopter speaking of ltm/opp, the thought occurred to me that every grammar (even a Perl 6 one) can be expressed in terms of a prefix/postfix/infix OPP like the one in STD, just adding a new precedence level for each pattern...
17:18 jnthn Or some such
17:18 jnthn Will that work out?
17:18 jnthn (in theory) :-)
17:18 colomon jnthn: it ought to.
17:18 jnthn colomon: OK, cool.
17:18 colomon (in theory)
17:18 jnthn heh
17:19 jnthn diakopter: That...hurts my head. :-)
17:19 dalek rakudo/ng: 80d23e1 | (Solomon Foster)++ | src/core/Iterable.pm:
17:19 dalek rakudo/ng: Add Iterable.pm and Iterable.Seq.
17:19 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/8​0d23e11da4bdedf6a338ccd3159be01085b3de4
17:19 dalek rakudo/ng: dc7327e | (Solomon Foster)++ | src/core/Any-list.pm:
17:19 dalek rakudo/ng: Very simplified version of .pick.  (More complete but broken in ng implementation included in this check-in but commented out.)
17:19 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/d​c7327ecf5e30e71fa66b37d4137b662981a4293
17:19 dalek rakudo/ng: 67ca67b | (Solomon Foster)++ | src/ (2 files):
17:19 dalek rakudo/ng: Merge branch 'ng' of git@github.com:rakudo/rakudo into ng
17:19 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/6​7ca67b13a2fe4020ec8db186f794e775ff10183
17:19 dalek rakudo/ng: 7191517 | (Solomon Foster)++ | build/Makefile.in:
17:19 dalek rakudo/ng: Add Iterable.pm to the makefile.
17:19 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/7​191517127f86dd12d0712aa2c7e4336edb3cff5
17:19 dalek rakudo/ng: b65c299 | (Solomon Foster)++ | t/spectest.data:
17:19 dalek rakudo/ng: Add S16-filehandles/io.t to the spectests.
17:19 colomon though it might be worthwhile to actually make an iterator class for hash.
17:19 justatheory joined #perl6
17:19 jnthn Wow!
17:19 colomon (and understanding that I have no clue how you internally iterate a hash)
17:20 colomon jnthn: just a bunch of small patches.  :)
17:20 jnthn colomon: It's easy enough to do gather/take
17:20 jnthn colomon: I've just yet to get a good feel of when to make a class like HashIter or when not to bother. :-)
17:21 colomon jnthn: I believe no one has a good feeling for that yet.
17:21 jnthn rakudo: my @x = :a(1), :b(2), :c(3); for @x.map({ $^p.key }) { .say }
17:21 p6eval rakudo 1d4928: OUTPUT«a␤b␤c␤»
17:22 jnthn Nice.
17:22 jnthn rakudo: my @x = :a(1), :b(2), :c(3); for @x.map({ $^p.key, $^p.value }) { .say }
17:22 colomon ?
17:22 p6eval rakudo 1d4928: OUTPUT«a␤1␤b␤2␤c␤3␤»
17:22 colomon why for and map?
17:22 jnthn OK, if I write Hash.iterator, looks like .keys, .values and .kv are just a map.
17:23 jnthn colomon: Oh, was just wanting to iterate over what map returned.
17:23 colomon jnthn: (re .keys, etc) that makes sense.
17:23 * jnthn gets on it
17:23 colomon ah, I see.
17:29 masak joined #perl6
17:29 masak o/
17:30 mathw o/
17:31 masak fwiw, the pasta and cinnamon @ tasted very nice :)
17:31 mathw pasta and cinnamon
17:31 mathw interesting
17:31 masak um. nono.
17:31 masak sequentially :)
17:31 masak not that I never use cinnamon in my non-sweet cooking :)
17:32 mathw of course
17:32 mathw it's good in curries
17:32 masak oh yes.
17:33 masak (of course people involved in Perl 6 appreciate a good curry)
17:33 mathw :D
17:34 masak more language features should be named after foods, in my opinion.
17:36 masak phenny: tell phenny are you as stupid as Monty?
17:36 phenny Hey, I'm not as stupid as Monty you know!
17:37 mathw well, currying was named after a man...
17:37 mathw who may have been named after food :)
17:37 mathw or one of his ancestors was, anyway
17:37 masak yes, both Haskell and currying was named after a man. the same one, even :)
17:37 mathw indeed
17:37 masak that's quite an honour.
17:37 mathw and thus it's highly appropriate that Haskell programmers make extensive use of currying
17:38 masak it's like someone would name a language 'Carl' and then a language feature 'masaking'.
17:39 mathw I think currying was around before Haskell, and it's possible one of the reasons they chose Haskell was because they knew currying would be central to its techniques
17:39 __rnddim__ joined #perl6
17:39 iblechbot joined #perl6
17:39 masak I think you're right.
17:40 mathw it's slightly less interesting that way though
17:41 masak jnthn: interesting conundurum with the '<->' thingy!
17:45 jnthn Gah, colomon beat me to patch!
17:45 jnthn ;-)
17:45 masak are you two competing? :)
17:46 * __rnddim__ thinks it takes too long to compile rakudo (the ... src/gen/core.pm -> src/gen/core.pir command, anyway)
17:47 masak __rnddim__: I believe the stage1 step is the slowest.
17:47 masak __rnddim__: hi, by the way. :)
17:47 __rnddim__ right now I'm running make.
17:48 __rnddim__ Hello to you to.
17:48 colomon masak: nah, it's just patches are flying so quickly this weekend, that it's very common to get everything tested and ready to go and then discover ng's been updated while you were busy, and so you have to rebuild and retest again.  :)
17:48 * __rnddim__ IN A WORLD, where hellos come after talking to each other.
17:48 masak jnthn: STD has a <?before <.lambda> | '{'> in 'token pblock'.
17:49 masak colomon: ah, so you're doing different but taking turns pushing and having to pull? that's not so bad, then. :)
17:50 jnthn masak: afaict that's just for the error detection. But akshually we're already screwed by the time we make it into pblock.
17:50 __rnddim__ yes! It took so long last night for this poor old computer to get past that core.pm->core.pir thing, it shut itself down!
17:51 masak jnthn: yes, because the EXPR won't let go.
17:52 masak it's easy to construct one situation where it should continue and one where it should backtrack.
17:52 p6eval joined #perl6
17:52 masak continue: 'if 3 <4 {'
17:53 masak backtrack: 'if 3 <-> $a {'
17:53 masak thus I conclude that the optable parser must have the ability to notice when it shouldn't consume a '<->'.
17:54 masak either by knowing about it directly (probably not) or by realizing that what comes after the '<' isn't a term.
17:55 jnthn masak: iiuc, that's what LTM would give us.
17:55 masak please elaborate.
17:55 jnthn <-> is longer than <
17:55 masak yes...
17:55 masak I'm with you so far. :P
17:56 jnthn But we can't parse <-> as an operator, since it ain't one.
17:56 masak but the EXPR is being parsed by the optable parser, which (IIUC) doesn't even do LTM.
17:56 masak or does it?
17:56 jnthn I think it works differntly in STD (and nqp-rx) than it does in PGE.
17:56 masak that's entirely possible.
17:57 masak none of the parsers in PGE do LTM.
17:57 eternaleye joined #perl6
17:57 masak I just assumed it was only something the recdescent parser would do.
17:57 jnthn My impression is that things aren't quite so divorced in STD and nqp-rx as they are in PGE
17:57 masak well, sure, the optable parser always picks the longest operator; that's just common sense.
17:58 masak but in the case of '<->', that's not something the optable parser in a PGE setting would even be aware of.
17:58 masak since it's not an operator per se.
17:59 jnthn Where you've two easily identifiable units working together.
17:59 jnthn (gah, this lag is awful...)
17:59 dalek rakudo/ng: ea2b864 | jonathan++ | src/core/Hash.pm:
17:59 dalek rakudo/ng: Finish filling out hash assignment; you can now assign a hash to a hash. Unbreaks that spectest that I broke yesterday, apart from it passes for the Right Reason now. :-)
17:59 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/e​a2b86457ac50a6ce0f6b0db59df574171921999
17:59 dalek rakudo/ng: 16fd613 | jonathan++ | src/core/EnumMap.pm:
17:59 dalek rakudo/ng: Give EnumMap (and thus Hash) .iterator, .keys, .values and .kv, all done in the core setting.
17:59 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/1​6fd613191bdcb0299213c855a1cc2c3560a6b1e
17:59 masak jnthn: that's quite a lag you've got :)
17:59 jnthn And now I crossed out one more item on http://wiki.github.com/rakudo/r​akudo/ng-major-features-needed :-)
18:00 aindilis joined #perl6
18:00 jnthn colomon: Co is the status of Range?
18:01 jnthn s/Co/What/
18:01 masak :)
18:01 jnthn !
18:01 masak jnthn: are you context-switching between languages again?
18:02 jnthn masak: Yeah, arranging a time to skype with a Slovak girl who wants English practice. :-)
18:02 jnthn masak: I'm also kinda keen to try and get some arrangement like that, so I can keep getting practice at Slovak once I'm not living here too.
18:02 jnthn Would suck to have to re-learn it.
18:02 jnthn :-)
18:03 masak sounds like a good mutual deal. :)
18:03 jnthn Aye.
18:03 jnthn masak: By the way...
18:03 colomon cool, I was working on some Newfoundland tunes with a flute player from there over Skype earlier this week.  :)
18:03 jnthn masak: Hash, if you are interested still, is probably in a state where it's quite hackable on, btw.
18:04 colomon jnthn: Range sort of works.
18:04 jnthn masak: .perl, .fmt, .ACCEPTS etc could all do with going back.
18:04 jnthn masak: Note they probably want to go in EnumMap
18:04 masak jnthn: thanks. if it can wait until tonight, I'll have a go.
18:04 jnthn masak: Which is like, immutable version.
18:04 jnthn masak: Oh, for sure it can.
18:05 masak excellent.
18:05 * __rnddim__ is running make spectest, and S02-whitespace_and_comments/minimal-whitespace.t failed 6 of 7 subtests. (ng branch)
18:05 jnthn .fmt and .perl can probably be put back in more places.
18:05 jnthn __rnddim__: I fixed that one 10 mins ago. :-)
18:06 jnthn Thanks for reporting though :-)
18:06 masak __rnddim__: time to rebuild. :)
18:06 jnthn masak: Crule!
18:06 __rnddim__ AAAAAH! This code came from last night.
18:06 * __rnddim__ is screaming in 7 dimensions (again)
18:06 colomon jnthn: basic Range iteration works for numbers, but it doesn't always convert the way you'd expect it to yet.
18:06 masak __rnddim__: is your nick an abbreviation of 'random dimension'?
18:07 jnthn colomon: OK.
18:07 __rnddim__ why yes, it is.
18:07 jnthn colomon: Was curious if we could cross Range off the todo list yet. ;-)
18:07 colomon jnthn: probably shouldn't just yet.
18:08 colomon unless you mean the ng todo list, in which case it might be okay.
18:09 colomon Actually, I think the biggest obstacle might be the incorrect dispatch thing again, that's why it won't work for arbitrary types, for instance.
18:09 pugs_svn r29657 | jnthn++ | [t/spec] Tweak an m/.../ into just /.../.
18:10 jnthn colomon: I meant the one I linked to a mo ago.
18:10 jnthn http://wiki.github.com/rakudo/r​akudo/ng-major-features-needed
18:11 dalek rakudo/ng: 1f37989 | jonathan++ | t/spectest.data:
18:11 dalek rakudo/ng: Passing S16-unfiled/slurp.t again.
18:11 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/1​f3798920a0b4c836368ca40d27e88399d9df563
18:11 __rnddim__ (From the complete beginner dept.) I now need to know how to update my copy of rakudo thru git.
18:11 colomon jnthn: yeah, I'd cross it off that list.  :)
18:11 colomon __rnddim__: git pull
18:11 __rnddim__ I'm hopeless! :)
18:12 * __rnddim__ notes he's hopeless, because he should look closer.
18:12 colomon or git pull --ff if you've got commits you haven't pushed.
18:13 * __rnddim__ is now starting the make...make test...make spectest...make install stuff all o'er again.
18:14 * __rnddim__ notes the /me command has to be what twitter feels like.
18:15 jnthn colomon: OK, done.
18:16 jnthn Of the two remaining things given to me on there, one is easy and boring. The other is Epic Hard.
18:17 __rnddim__ go with Epic Hard. All the cool spies do it! (All the cool spies don't use the front door, for example...)
18:20 __rnddim__ rakudo: say :16<16D.4>
18:20 p6eval rakudo 1d4928: OUTPUT«365␤»
18:20 colomon __rnddim__: unless maybe the front door is so heavily guarded you couldn't possibly get through it, in which case a cool spy might consder going that way.
18:20 __rnddim__ colomon: not even then. It's "the front door".
18:20 __rnddim__ ng: say :16<16D.4>
18:20 p6eval ng b65288: OUTPUT«sh: ./perl6: No such file or directory␤»
18:20 __rnddim__ ???
18:21 jnthn __rnddim__: p6eval automatically re-builds once in a while.
18:21 colomon __rnddim__: that means it's rebuilding with the latest changes
18:21 __rnddim__ alright
18:21 jnthn __rnddim__: It's just doing that at the moemnt...will work again in a moment.
18:22 __rnddim__ btw, a cool spy would squeeze through the plumbing if he could.
18:22 jnthn __rnddim__: See http://svn.pugscode.org/pugs/src/perl6/STD.pm for how those things are parsed; look up rad_number
18:22 * jnthn doubts he'll squeeze through much :-)
18:22 __rnddim__ A cool spy would be friends with santa :)
18:23 masak "Top 50 things a cool spy would do"
18:24 cognominal joined #perl6
18:24 __rnddim__ jnthn: the not defined worries me a little.
18:24 __rnddim__ std: say :16<16D.4>
18:24 p6eval std 29657: OUTPUT«ok 00:01 107m␤»
18:24 jnthn .oO( 42. Use Perl 6 )
18:24 colomon ng: say 6 ~~ 5..11
18:24 p6eval ng 1f3798: OUTPUT«0␤»
18:24 jnthn Gah!
18:25 jnthn fail.
18:25 colomon expected, that's one of the things I need to fix.
18:25 __rnddim__ .oO( 1. Know Santa)
18:25 masak g'ah! my rakudobug finger is twiching. :)
18:26 * __rnddim__ says: ".oO(...) is for the Top 50 things a cool spy would do list" to the uninitiated.
18:26 masak __rnddim__: 2. Squeeze through the plumbing when necessary.
18:26 colomon ng: say 2 ~~ 5..21
18:26 p6eval ng 1f3798: OUTPUT«0␤»
18:26 __rnddim__ .oO(23. Create lists out-of-order)
18:27 jnthn masak: Only another couple of days. ;-)
18:27 masak aye.
18:29 masak __rnddim__: 3. Write a Perl 6 debugger in Perl 6.
18:30 jnthn That *would* be cool. :-)
18:30 * __rnddim__ is writing down the Top 50.
18:32 * __rnddim__ says his favorite game is seagull.
18:32 masak __rnddim__: 4. Get into *and out of* the Pentagon without anyone noticing.
18:33 __rnddim__ .oO(5. Says the palindrome of Bolton is Notlob)
18:33 jnthn Nooooooooooooo :'(
18:34 masak that's not spyishly cool, that's just weird.
18:34 * __rnddim__ says it's a monty python reference
18:34 __rnddim__ I can put multiple number 5s on the list, if you wish.
18:34 colomon ng: say 1 ~~ 5..21
18:34 p6eval ng 1f3798: OUTPUT«0␤»
18:35 __rnddim__ It's not supposed to be a traditional list...
18:35 masak :)
18:36 __rnddim__ ng: say "Bolton".reverse
18:36 p6eval ng 1f3798: OUTPUT«Method 'list' not found for invocant of class 'Perl6Str'␤current instr.: 'perl6;Any;reverse' pc 228301 (src/gen/core.pir:10076)␤»
18:36 __rnddim__ darn, hoping it'd work.
18:36 masak __rnddim__: it's .flip
18:36 __rnddim__ ng: say "Bolton".flip
18:36 masak hm. unlike a cool spy's battery, mine is about to run out. will need to go undercover.
18:36 p6eval ng 1f3798: OUTPUT«notloB␤»
18:37 __rnddim__ ng: say "torraP daeD".flip
18:37 p6eval ng 1f3798: OUTPUT«Dead Parrot␤»
18:37 __rnddim__ masak: carryover from coding in python.
18:38 __rnddim__ switched for switch statements and pointers :)
18:38 * __rnddim__ says: .oO(6. Puts his entire hard drive into a floppy disk)
18:46 __rnddim__ I look at any Top 50 Spies when I'm back. Anyway, I'm off to pronounce the japanese "u" in rakudo correctly!
18:48 cognominal joined #perl6
18:54 colomon Well, bother.
18:55 colomon If I fix Range so that it does correct comparisons for the end points in .ACCEPTS, I break gazillions of Range tests that work just fine now, because of the dispatch bug.   :\
19:00 colomon ng: say 21 ~~ 3..10
19:01 p6eval ng 1f3798: OUTPUT«0␤»
19:01 colomon ng: say 21 ~~ 3..30
19:01 p6eval ng 1f3798: OUTPUT«0␤»
19:02 colomon ng: say 21 ~~ 3..50
19:02 p6eval ng 1f3798: OUTPUT«0␤»
19:12 Tene colomon: what is this dispatch bug?
19:13 colomon Tene: in ng, nested multi dispatch (at least I think that's what causes it) doesn't always dispatch to the correct multi.
19:13 colomon ng: say "a" cmp "b"
19:13 p6eval ng 1f3798: OUTPUT«-1␤»
19:13 rgrau joined #perl6
19:14 k23z__ joined #perl6
19:14 colomon ng: multi sub comparer($a, $b) { say $a cmp $b }; comparer("a", "b");
19:14 p6eval ng 1f3798: OUTPUT«-1␤»
19:14 colomon bother, I don't have an easy test case for it.
19:14 colomon but it's a very real problem.
19:14 colomon ng: say "a" after "b"
19:14 p6eval ng 1f3798: OUTPUT«Nominal type check failed for parameter '$a'; expected Num but got Str instead␤current instr.: '&infix:<cmp>' pc 219804 (src/gen/core.pir:6492)␤»
19:14 colomon there you go.
19:15 jnthn colomon: eww
19:15 jnthn colomon: I need to nom now
19:15 colomon jnthn: happy nomming.
19:15 jnthn colomon: May get to look at that later, but I kinda want to read a bit too :-)
19:15 colomon Tene: it's the source of many headaches for me.
19:15 jnthn Got an interestingish book on the go. :-)
19:15 colomon jnthn: :)
19:16 colomon Tene: after is just
19:16 colomon our multi infix:<after>($a, $b) {
19:16 colomon ($a cmp $b) == +1;
19:16 colomon }
19:16 colomon but if you call it with two strings, you get that error message, even though calling cmp with two strings works fine.
19:17 colomon That, in turn, means that Range is pretty broken for anything other than Ints and Nums.
19:17 colomon also negatively affects Rat and Complex math.
19:17 colomon probably other stuff too.
19:20 dalek rakudo/ng: c3371de | jonathan++ | src/builtins/ (2 files):
19:20 dalek rakudo/ng: Keep around high level signature object and cache the params data structure it computes, which makes repeated .arity and .count or introspection cheaper. Will also let us do parameter traits some day.
19:20 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/c​3371def2b0d41daa26c7aba24b7fff428d5ce65
19:22 pugs_svn r29658 | colomon++ | [t/spec] Add Range tests which will fail if the Range is doing Str comparisons rather than Num comparisons internally.
19:23 jnthn mwaha...I have less items assigned to me than Pm on http://wiki.github.com/rakudo/r​akudo/ng-major-features-needed now. ;-)
19:26 fridim_ joined #perl6
19:27 colomon \o/
19:31 jnthn Woo, nom is nearly cooked :-)
19:31 * jnthn ponders if he should move from use.perl.org to blogs.perl.org
19:34 Su-Shee jnthn: yes. perl6-ish blogging is highly underrepresented there.
19:38 xomas_ joined #perl6
19:38 xomas_ joined #perl6
19:38 obra blogs.perl.org has been...unreliable
19:38 obra many folks I know haven't been able to create accounts/post/comment
19:39 jnthn obra: Yeah, thus my hesitation.
19:59 Su-Shee that seems to be over. I could post and login and so on.
20:10 astoria` joined #perl6
20:10 astoria` Hi
20:11 colomon hello
20:24 dalek rakudo/ng: 5cc8d5b | mberends++ | src/builtins/control.pir:
20:24 dalek rakudo/ng: [builtins/control.pir] copy in the exit function from master
20:24 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/5​cc8d5b9b4e5605c05784562e18e4f2fe26523f4
20:28 silug joined #perl6
20:37 rgrau joined #perl6
20:40 renormalist joined #perl6
20:40 mssm joined #perl6
20:41 renormalist joined #perl6
20:58 Chillance joined #perl6
21:01 KingOfKarlsruhe joined #perl6
21:03 ash_ joined #perl6
21:23 colomon mberends++
21:26 cggoebel joined #perl6
21:32 masak joined #perl6
21:33 masak jnthn: ping
21:33 jnthn masak: destination host unreachable
21:33 jnthn er,
21:33 jnthn pong
21:33 jnthn :-)
21:33 masak jnthn: oh hai, I'm here for a bit of synching and guidance.
21:33 * diakopter lurks
21:34 masak I've looked at t/spec/S02-builtin_data_types/hash.rakudo
21:34 jnthn Heh, I looked at that too :-)
21:34 __rnddim__ I'm back. I'm just wondering if there is a todo list of sorts. I remember seeing it, but can't find it again.
21:34 masak jnthn: so, %lolimahash.WHAT stringifies to '()'
21:34 masak that's the first problem.
21:35 jnthn masak: Thankfully that's a more general / not too tricky to solve issue.
21:35 jnthn masak: just a "name of the punned class not being set" one.
21:35 masak I might be totally off, but there's a WHAT in src/builtins/Role.pir that just does '.return (self)'. might that be why it does that?
21:35 masak anyway, that's my guess :)
21:36 masak I have a few more points I want to dump too :)
21:36 jnthn masak: No, since it's defining the type object for the role.
21:36 masak oh ah.
21:36 masak ng: my $a = try { fail horribly }
21:36 p6eval ng 5cc8d5: OUTPUT«Null PMC access in can()␤current instr.: 'perl6;Mu;!STORE' pc 1906 (src/builtins/Mu.pir:387)␤»
21:36 masak the test file eventually runs up against this issue, after test 14 or so.
21:36 masak just a heads-up.
21:37 jnthn Ah, thanks
21:37 jnthn rakudo: my $a = try { fail horribly }
21:37 p6eval rakudo 1d4928: OUTPUT«Null PMC access in isa()␤in Main (file <unknown>, line <unknown>)␤»
21:37 jnthn ...
21:37 jnthn Oh well, at least it's not a regression. :-/
21:37 masak :)
21:38 jnthn Anyway, good to know, thanks. Sadly, I don't immediately know how to fix that one.
21:38 masak strange that no-one's noticed that though. we do that in Test.pm
21:38 jnthn Yeah, I do find it...odd.
21:38 diakopter rakudo: my $a := try { fail horribly }; say $a.WHAT
21:38 p6eval rakudo 1d4928: OUTPUT«Null PMC access in find_method('WHAT')␤in Main (file <unknown>, line <unknown>)␤»
21:38 wanradt_ joined #perl6
21:39 diakopter ng: my $a := try { fail horribly }; say $a.WHAT
21:39 p6eval ng 5cc8d5: OUTPUT«Confused at line 1, near "my $a := t"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
21:39 diakopter o
21:41 diakopter rakudo: say (eval '{ fail horribly }').WHAT
21:41 dalek rakudo/ng: 5635e93 | masak++ | src/builtins/Role.pir:
21:41 dalek rakudo/ng: [src/builtins/Role.pir] fixed typo
21:41 dalek rakudo/ng: review: http://github.com/rakudo/rakudo/commit/5​635e93c120a32b80a160af20f2a88d0b36c01df
21:41 * diakopter waits
21:41 masak a couple more things: that hash.rakudo contains a m{...} pattern match which ng doesn't parse yet. is it hard to add to the grammar? should I have a go at it?
21:41 p6eval rakudo 1d4928:  ( no output )
21:41 diakopter timed out
21:42 masak and also, we don't do `$i++ for @stuff;` yet. same questions there: is it hard, should I add it?
21:43 ash_ joined #perl6
21:44 jnthn masak: The m{...} stuff I don't personally know how to do without a good bit of digging. It may be in the "easy if your name is Pm" category, or alternatively "easy if you know how quoting constructs are parsed".
21:44 masak I used to know approximately how they were parsed in master.
21:45 masak I fixed a few bugs in those PIR routines in 2008.
21:45 diakopter oh, 2008. how I miss thee.
21:45 frettled s/200/199/
21:46 jnthn masak: OK, it's probably more STD-ish now I guess. nibblers and the like. ;-)
21:46 __rnddim__ ng: say :16<16D.4>
21:46 p6eval ng 5cc8d5: OUTPUT«Confused at line 1, near "say :16<16"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
21:46 diakopter I leapt into 1988 by tracing my hands and feet on paper in 2nd grade
21:46 __rnddim__ heh, that still needs fixing.
21:47 jnthn masak: I'd say, look if it interests you, but if you've spent 30 mins on it and are no further forward at all, maybe catch Pm about it. :-)
21:47 __rnddim__ rakudo: say :16<16D.4>
21:47 p6eval rakudo 1d4928: OUTPUT«365␤»
21:47 masak jnthn: will do.
21:47 jnthn I'm a bit surprised $i++ for @stuff; doesn't work.
21:47 __rnddim__ pugs: say :16<16D.4>
21:47 p6eval pugs: OUTPUT«365.25␤»
21:47 __rnddim__ only pugs gets floating-point base conversion completely right. Hm.
21:47 masak ng: my $i; my @stuff; $i++ for @stuff;
21:47 p6eval ng 5cc8d5: OUTPUT«sh: ./perl6: No such file or directory␤»
21:47 jnthn __rnddim__: A lot of things in ng do, and it's on the list. A few things are ahead of it though. :-)
21:47 masak dang.
21:48 __rnddim__ can I see this list?
21:48 jnthn Time of hour.
21:48 __rnddim__ I can't find it.
21:48 * masak waits patiently
21:49 jnthn __rnddim__: The "most urgent thingies" list is at http://wiki.github.com/rakudo/r​akudo/ng-major-features-needed
21:49 jnthn __rnddim__: After that, it's a case of working through the commented out tests in http://github.com/rakudo/rak​udo/blob/ng/t/spectest.data
21:50 jnthn There's still a lot uncommented in there, but we seem to be picking up the pace a little this weekend. :-)
21:50 masak ng: my $i; my @stuff; $i++ for @stuff;
21:50 p6eval ng 5cc8d5: OUTPUT«sh: ./perl6: No such file or directory␤»
21:51 * masak rattles p6eval
21:51 * jnthn hears a smashing sound from inside of it
21:51 masak ng: my $i; my @stuff; $i++ for @stuff;
21:51 p6eval ng 5635e9: OUTPUT«Missing block at line 1, near ";"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
21:51 masak there you go. :)
21:52 __rnddim__ none of those big features sound fun and easy. :)
21:52 __rnddim__ But if they were, they'd be done :)
21:52 masak I figure if it's missing a block, then statement-modifying 'for' isn't implemented (correctly).
21:52 jnthn That...kinda looks like it. :-/
21:53 jnthn Also
21:53 jnthn # S04-statement-modifiers/for.t
21:53 jnthn So
21:54 jnthn That hints it's not had so much attention yet.
21:54 masak jnthn: so, the deal is as follows: you look at %hash.WHAT, and I look to see if m{} and statement-mod for are LHF. :)
21:54 masak jnthn: also, I noted that in S32/Containers, Hash is a role but EnumMap istn't, whereas in ng, both are.
21:54 jnthn masak: ...
21:55 masak jnthn: also, in S32/Containers, nowhere is it hinted that Hash is a derived role from EnumMap.
21:55 jnthn masak: I think we might fix S32/Containers then. :-)
21:55 masak in fact, I was initially shocked to notice they were.
21:55 masak only after a few minutes did it start to make sense.
21:55 jnthn masak: The thing is...
21:55 diakopter ng: my $i; my @stuff; $i++ for @stuff;
21:55 p6eval ng 5635e9: OUTPUT«Missing block at line 1, near ";"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
21:55 jnthn masak: We want to do Associative[T]
21:55 masak but I still think EnumMap is strangely named if it's really just an immutable Hash.
21:55 jnthn masak: Well, in master it was Mapping
21:56 masak aye.
21:56 jnthn masak: It fits with Enum being the name for the immutable Pair.
21:56 jnthn That's the only logic I can see to it.
21:56 jnthn masak: Just 'cus I implement spec doesn't always mean I like it. ;-)
21:56 masak jnthn: try saying it out loud: "a Hash is a kind of EnumMap..."
21:56 jnthn Remember Mu. ;-)
21:56 masak jnthn: I admire your pragmatism. :)
21:57 jnthn Yeah
21:57 jnthn I'm kinda a bit hmm on the name.
21:58 lichtkind masak: ah there you hayden
21:58 jnthn .oO( is hayden a compliment or an insult? )
21:58 payload joined #perl6
21:58 mberends a classic compliment
21:58 masak :)
21:58 lichtkind hahaha
21:59 masak lichtkind: I'm not Hayden, I'm more a combination of a Liszt and a BHash
21:59 jnthn Well. Google Image Search for Hayden agrees it's a compliment...
21:59 lichtkind jnthn: it was remiscence to the film where the therapist made cheaps jokes about the similiarites of hiding and hayden
21:59 jnthn ...of sorts...
21:59 lichtkind masak: well answer :9
22:00 masak jnthn: looks a bit like your gas princess. :)
22:00 lichtkind masak: a simple server restart woldn't do it?
22:00 masak lichtkind: don't know yet. but I doubt it.
22:00 masak it's probably something deeper.
22:00 jnthn masak: My gas princess was an elekshun FAIL though. </3
22:01 masak jnthn: I'm truely sorry for your lots.
22:01 * __rnddim__ thinks he should know perl before fixing it :)
22:01 masak __rnddim__: why? never stopped the rest of us. :)
22:01 pmurias masak: how did your run the tests constantly and commit if all pass thing end up?
22:01 * __rnddim__ doesn't worry about it too much though.
22:02 masak pmurias: parse error.
22:03 __rnddim__ ng: my @rray=1,2,3; say @rray[0..*];
22:03 p6eval ng 5635e9: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'␤current instr.: '!postcircumfix:<[ ]>' pc 306755 (src/gen/core.pir:39427)␤»
22:03 __rnddim__ pugs: my @rray=1,2,3; say @rray[0..*];
22:03 p6eval pugs: OUTPUT«123␤»
22:03 * masak should perhaps say 'confused', like STD.pm does
22:04 jnthn masak: I'll be sure to fix that WHAT thingy tomorrow, BTW.
22:04 masak eeeexcellent.
22:04 * __rnddim__ decides to attempt to turn rakudo/ng into a teenager (whatever indices).
22:04 pmurias masak: i remember reading on your blog that you wrote a program to run the test suit constantly and commit if all of them pass
22:04 masak pmurias: ah. right.
22:05 masak pmurias: suddenly I can parse your original question :)
22:05 masak pmurias: I'm still using it when developing GGE. I'm learning stuff all the time about it.
22:05 masak pmurias: it's written in Perl 5. if I were to release it to the public, I'd re-write it in Perl 6.
22:06 masak with tests, and a bit less hackishly done.
22:07 __rnddim__ pugs: say "hello"[0..*]
22:07 p6eval pugs: OUTPUT«hello␤»
22:07 __rnddim__ ng: say "hello"[0..*]
22:07 p6eval ng 5635e9: OUTPUT«Can't postcircumfix:<[ ]> foreign objects yet.␤current instr.: '!postcircumfix:<[ ]>' pc 306755 (src/gen/core.pir:39427)␤»
22:07 pmurias masak: why don't you want to release Perl 5 things?
22:08 masak pmurias: I didn't say that. it's more like I don't want to release a hard-coded hack.
22:10 lichtkind mberends: some tuits to help me on the larger p6tut?
22:10 masak __rnddim__: what do you expect indexing into a string to produce? individual characters?
22:11 __rnddim__ just experimenting.
22:11 __rnddim__ pugs: say "hello"[2..*]
22:11 p6eval pugs: OUTPUT«␤»
22:11 __rnddim__ hm..
22:11 __rnddim__ Too used to python :)
22:11 masak __rnddim__: it doesn't work like that in Perl 6.
22:11 * __rnddim__ again feels he should know perl before fixing it
22:11 masak __rnddim__: you should use Str.substr($from, $chars)
22:12 __rnddim__ ok. I'm focusing on whatever indices. Was wondering if it was array only or in general.
22:13 masak in general, but strings are not one of the things you can index.
22:13 __rnddim__ so arrays, list, hashes, that sort of thing?
22:13 masak or rather, I guess it's up to the .[] method on a type to decide how to treat whatever indices.
22:13 masak __rnddim__: yes... you'd not do .[] on hashes either.
22:13 masak they don't have an ordering in that sense.
22:14 __rnddim__ Alright. Off to fix * indices.
22:15 * __rnddim__ thinks of how he REALLY needs to read up on stuff...
22:15 masak jnthn: also, I discovered Proxy...
22:15 * __rnddim__ no longer wishes to be a beginner.
22:15 masak __rnddim__: one step at a time, that's the only way... :)
22:16 __rnddim__ Yeah, I know. I'm trying to find where indices are handled (w/o looking at documentation, mind you. Just looking at code)
22:17 jnthn masak: Yes, me too. ;-)
22:17 jnthn Then I (ab)used it to do hash.
22:17 masak __rnddim__: well, in the case of @a[0..*], what you have is a call to a .[] method on an array, with the argument being a range (0..*), with the upper bound being a whatever (*).
22:18 masak jnthn: I immediately declared Proxy as my arch-enemy.
22:18 masak jnthn: I mean, I see what it's for, but I just... I dunno. it's pipes sticking out.
22:19 masak it's an object saying "I'm not here, but if you like, I could make something appear in my place".
22:19 __rnddim__ I like hunting through code, but only for the joy you feel finding what you need.
22:19 masak __rnddim__: you should try the rush of having tests pass. :)
22:19 mberends lichtkind: perhaps a random hour-tuit or two per day for a week?
22:20 lichtkind mberends: terrorific :)
22:20 mberends :)
22:20 lichtkind mberends: i want finally close the gaps there
22:21 __rnddim__ or the sound deadlines make when they woosh by. :D
22:21 __rnddim__ that's my favorite sound.
22:21 masak speaking of docs and deadlines, I've recently felt an urge to become really productive with the u4x contents.
22:22 masak but then I remember that we're supposed to deliver a book by March, and so I decide to put u4x on hold for now. :)
22:22 __rnddim__ I'm hunting through the code with a terminal, by the way. It's easier for me.
22:22 mberends the entire perllfoundation.org Perl 6 wiki needs tidying.  all volunteers welcome.
22:24 masak __rnddim__: ...as opposed to...? :)
22:25 __rnddim__ GUI interfaces.
22:25 hercynium joined #perl6
22:26 __rnddim__ It's in Range.pm where the infix .. is defined. Now to go and try and fix it :)
22:26 lichtkind mberends: dont worry i will take by big edit gloves and clean that out since i dont see anybody else doing that
22:26 masak __rnddim__: I'm not sure .. in Range is broken. is it?
22:26 masak ng: say (1..5).perl
22:26 p6eval ng 5635e9: OUTPUT«1..5␤»
22:26 masak ng: say (1..*).perl
22:26 p6eval ng 5635e9: OUTPUT«1..*␤»
22:27 masak __rnddim__: seems to work.
22:27 __rnddim__ ng my @rray=[1,2,3];say @rray[0..*];
22:28 __rnddim__ ng my @rray=[1,2,3];say @rray[0..*];
22:28 masak __rnddim__: ('ng: ')
22:28 __rnddim__ ng: my @rray=[1,2,3];say @rray[0..*];
22:28 p6eval ng 5635e9: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'␤current instr.: '!postcircumfix:<[ ]>' pc 306755 (src/gen/core.pir:39381)␤»
22:28 * __rnddim__ just noticed that.
22:28 __rnddim__ rakudo: my @rray=[1,2,3];say @rray[0..*];
22:28 mberends lichtkind: I'll do a bit as well. I plan to document Perlito (MiniPerl6) because it's compact and terrorifically fast.
22:28 p6eval rakudo 1d4928: OUTPUT«1 2 3Use of uninitialized value␤␤»
22:28 __rnddim__ pugs: my @rray=[1,2,3];say @rray[0..*];
22:28 p6eval pugs: OUTPUT«1 2 3␤»
22:28 __rnddim__ From what I understand, it should come out like pugs does.
22:28 * masak thinks so
22:29 masak S09 has some wording on that.
22:29 __rnddim__ I'm there. Problem is, in the code, there are four infixes defined.
22:29 lichtkind mberends: excellent i wll mor finish my tuts and clean up some general pages
22:29 __rnddim__ '..', '..^', '^..', and '^..^'
22:30 * __rnddim__ is thinking.
22:30 lichtkind mberends: dont use that word too much or bush will hount you and want to come back to oral office
22:30 cognominal joined #perl6
22:30 mberends lichtkind: lol
22:31 diakopter left #perl6
22:32 * __rnddim__ wishes he didn't have to ask so many questions
22:33 masak __rnddim__: yes, all of those are separate operators.
22:33 masak __rnddim__: they just differ in whether they cut off the endpoints.
22:33 masak __rnddim__: I just saw recently how some Japanese Perl 6 users named the '^..^' one the 'neko operator'. ('neko' is Japanese for 'cat'.)
22:33 cognominal __rnddim__,  the underscores in your nick are a pain on the eyes :(
22:34 __rnddim__ Sorry. I use to have rnddim, but I forgot the password to that... :)
22:34 __rnddim__ just a second...
22:35 cognominal that's incredible how little insignficant things can be so  bothersome
22:36 cognominal lue++
22:36 lue I'm now lue
22:36 lue I was __rnddim__. LUE stands for Life, the Universe, and Everything.
22:37 cognominal thx
22:37 lue welcome
22:43 diakopter joined #perl6
22:44 * mberends gives regards to diakopter
22:45 * diakopter tries to alcheme regards to tuits
22:47 lichtkind lue: and everything represents perl 6 ?
22:48 lichtkind diakopter: need a good book on alchemy?
22:50 pnate joined #perl6
22:51 lue joined #perl6
22:51 lue blasted computer shut down on me >:(
22:51 lue Just wondering about indices. So does 0..5 say [0,5] (in interval notation), 0^..5 say (0,5], and so on?
22:54 lue I've got noms to nom, see you guys soon!
22:58 cognominal lue, yes
22:58 cognominal or ]0,5] in French, which I find more mnemoic :)
22:59 cognominal *mnenonic
23:04 lichtkind mberends: so we discuss our atack plan later
23:04 lichtkind what i quit don't get how american call people who enjoy using their brain nerds, shouldn't be it the other way around?
23:06 jnthn lichtkind: No, because the people who use their brains realize that name-calling is a worthless exercise. ;-)
23:06 lichtkind jnthn: excellent answer $jnthn+=2
23:08 diakopter those Name-Callers!
23:10 patspam joined #perl6
23:31 dual joined #perl6
23:38 eternaleye joined #perl6
23:41 lue noms nommed. thank you for the answer.
23:42 lue happy promotion cognominal!
23:46 sjohnson hi guys
23:47 jnthn hi sj
23:47 lue hello.
23:47 jnthn *sjohnson even # missed, tab :-)
23:48 sjohnson :*]
23:49 eternaleye Y'know, it would probably not be too hard to eliminate the downtime from the p6eval bot rebuilding rakudo/ng/what-have-you
23:50 lue compile behind the scenes when it's time, leaving the old one to use, and then quickly switch the old with the new? Doesn't seem that hard...
23:50 eternaleye Just have a bare .git repository of rakudo, and checkout to an external dir and build it. When it updates, checkout to a _new_ external dir, build in that, and then cd to the new dir when it finishes - deleting the old dir behind it
23:51 eternaleye lue: You type faster ;D
23:51 lue I typed less. Don't know about fast...
23:51 lue Then again, I used Mavis Beacon Teaches Typing when I was, what, 10 or 11.
23:52 eternaleye The thing is that the bot would have to be aware of it, which might be difficult if the rebuild is a cron job - just deleting the dir under it and renaming in the new one would cause everything to error out
23:52 eternaleye I still hunt-and-peck. They tried to teach me keyboarding, but it never stuck
23:52 drbean joined #perl6
23:56 lue Has anyone seen the Periodic Table of the Operators for perl6? It's huge! http://www.ozonehouse.com/mark/periodic/
23:58 jnthn lue: I've seen a nicely printed up copy of it once, even. :-)

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs