»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by diakopter on 25 January 2010.
colomon jnthn++ # awesome day of hacking. 00:00
jnthn 'twas fun. :-) 00:04
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
We've been watching Life on Mars (BBC) with a friend who's coming over in about an hour for the next episode. :)
eternaleye __rnddim__: re converting to hes, try $int.fmt: '%x' 00:10
ng: 16.fmt: '%x'
p6eval ng aa0a08: OUTPUT«Could not find non-existent sub &sprintf␤current instr.: 'perl6;Any;fmt' pc 251735 (src/gen/core.pir:19794)␤»
eternaleye rakudo: 16.fmt: '%x'
p6eval rakudo 1d4928: ( no output )
eternaleye rakudo: say 16.fmt: '%x'
p6eval rakudo 1d4928: OUTPUT«10␤»
eternaleye rakudo: say 16.fmt: '0x%x'
p6eval rakudo 1d4928: OUTPUT«0x10␤»
eternaleye __rnddim__: See ^^^ 00:11
jnthn colomon: Nice. :-)
colomon: No worries about not getting more done today. There's tomorrow, and the day after, and... :-)
colomon :)
jnthn colomon: Is there anything you'd especially like me to look at? I can likely give Perl 6 a few hours tomorrow.
colomon hmmm.... 00:12
jnthn I'll probably try and { x => 42, ... } style hash constructors in place.
and .keys, .values, .kv on EnumMap
(and thus Hash)
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....
but I understand the first of those is more pmichaud's area...
and the second is super hard. 00:14
jnthn Yeah, I'd like that to work too.
colomon Do enums work after what you've done today?
jnthn No
Enum is just the name for "immutable Pair" really.
And EnumMap for "immutable Hash"
Though they're both needed for making enums work. 00:15
On list assignment - I can try and work out why it doesn't work. I thought Pm had done it...
colomon maybe I missed it.
jnthn It may be an easy-ish fix.
colomon ng: my ($a, $b) = (1, 2);
p6eval ng aa0a08: ( no output ) 00:16
colomon ng: my ($a, $b) = (1, 2); say $a; say $b
jnthn ng: my ($a, $b) = (1, 2); say $a;
p6eval ng aa0a08: OUTPUT«Mu()␤Mu()␤»
ng aa0a08: OUTPUT«Mu()␤»
jnthn :-/
colomon yeah, that.
jnthn ng: my ($a, $b); ($a, $b) = (1, 2); say $a; say $b;
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.
p6eval ng aa0a08: OUTPUT«Mu()␤Mu()␤»
jnthn ng: my ($a, $b); list($a, $b) = (1, 2); say $a; say $b;
p6eval ng aa0a08: OUTPUT«Cannot assign to readonly value␤current instr.: '&infix:<=>' pc 14862 (src/builtins/Junction.pir:113)␤» 00:17
jnthn meh.
OK, certainly br0ken.
colomon Getting that working would be really nice for a bunch of numeric stuff. :)
jnthn Yeah
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.
Oh?
I didn't notice that. :-/
colomon looks like it's dying before the last three tests?
jnthn I knew I'd broken that whitespace one...
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. :-/
OK, I'm going for sleep in a moment too...it's late here.
colomon Good night!
jnthn night! o/ 00:20
huf jnthn: well yeah, i'm slightly insane so i know it's not fun 00:47
... only very slightly tho ;)
00:48 patspam left
diakopter best spam Subject: ever: I have redesigned your website! 00:52
__rnddim__ I'm back after only 2 hours! Now, can someone point me to rakudo and ng source code? :} 00:55
mberends rakudo.org 00:56
__rnddim__ feels stupid for not checking that first. 00:57
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.
__rnddim__ does not know what to do. He is screaming into the 5th dimension. 01:09
diakopter can't perceive the 5th dimension 01:10
mberends Step 1: DON'T PANIC!
__rnddim__ Step 2: IGNORE STEP ONE!!!!
__rnddim__ is now screaming in 7 dimensions.
__rnddim__ is now screaming in .25 dimensions. All is calm. 01:12
mberends redirects the 5th, 6th and 7th dimensions to /dev/null
__rnddim__ You destroyed probability and existence!? Noes! (I have this theory where 4d is time, 5d is probability, and 6d is existence) 01:15
lisppaste3 mberends pasted "faulty unlink() for jnthn to nitpick" at paste.lisp.org/display/94502 01:16
mberends oops. redirect.rollback() 01:17
__rnddim__ So... should I just sign up a github, download ng branch, and upload patches? Or get a 'commit bit(?)'? Or... 01:19
Recommended course of action, please.
mberends __rnddim__: only get a github account if you want to break, er, program Rakudo 01:20
read-only access is publicly available 01:21
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?
mberends yes
__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:23
mberends that's right, and the others with commit bits will test it out and commit it for you 01:24
__rnddim__ alrighty.
__rnddim__ will download ng branch.
mberends you may find www.gitready.com/ useful 01:25
01:25 k23z__ left 01:29 nihiliad joined
mberends falls asleep (2:30am localtime) 01:30
01:30 mberends left 01:31 mssm left
__rnddim__ figures out mberends' timezone is UTC+1 (using mberends' time and mine) 01:35
__rnddim__ that's (1/24)th of the world, though.
01:36 meppl left, fridim_ left, quietfanatic joined
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)␤»
quietfanatic ng: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3); A(3);
p6eval ng aa0a08: OUTPUT«Not enough positional parameters passed; got 1 but expected 3␤current instr.: '_block26' pc 163 (EVAL_1:60)␤»
diakopter rakudo: say < <><> >
p6eval rakudo 1d4928: OUTPUT«Confused at line 10, near ">"␤in Main (file <unknown>, line <unknown>)␤»
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:40
diakopter std: say < <><> > 01:41
p6eval std 29655: OUTPUT«ok 00:01 105m␤»
diakopter ng: say < <><> >
p6eval ng aa0a08: OUTPUT«Confused at line 1, near "say < <><>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
quietfanatic rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3); A(3, 4, 5);
p6eval rakudo 1d4928: ( no output )
quietfanatic rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3); A(3);
p6eval rakudo 1d4928: OUTPUT«Not enough positional parameters passed; got 1 but expected 3␤in Main (file src/gen_setting.pm, line 324)␤»
quietfanatic rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3); A(3, 4, 5, 6);
p6eval rakudo 1d4928: OUTPUT«Too many positional parameters passed; got 4 but expected 3␤in Main (file src/gen_setting.pm, line 324)␤»
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>)␤»
diakopter rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3, 6, 7, 8); B();
quietfanatic rakudo: my &A = sub ($a, $b) {...}; my &B = &A.assuming(3, 4); B(1);
p6eval rakudo 1d4928: OUTPUT«Too many positional parameters passed; got 4 but expected 3␤in Main (file src/gen_setting.pm, line 324)␤»
rakudo 1d4928: OUTPUT«Too many positional parameters passed; got 3 but expected 2␤in Main (file src/gen_setting.pm, line 324)␤»
diakopter cuz it's deferred 01:43
it seems.
quietfanatic But then its "got X" value is the number of arguments given to the new sub...
diakopter not in my example 01:44
quietfanatic ...well, except that last one
diakopter rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3, 6, 7, 8);
p6eval rakudo 1d4928: ( no output )
diakopter rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3, 6, 7, 8); B();
p6eval rakudo 1d4928: OUTPUT«Too many positional parameters passed; got 4 but expected 3␤in Main (file src/gen_setting.pm, line 324)␤»
quietfanatic rakudo: my &A = sub ($a, $b, $c) {...}; my &B = &A.assuming(3, 6, 7, 8); B(3)
p6eval rakudo 1d4928: OUTPUT«Too many positional parameters passed; got 5 but expected 3␤in Main (file src/gen_setting.pm, line 324)␤»
quietfanatic But its not reliably that way. 01:45
diakopter it's the sum..
you had A() a lot previously instead of B()
I think. 01:46
diakopter goes back to pessimizing an OPP by implementing it as the naive recdescent equivalent.
quietfanatic Oh... 01:47
:|
01:47 patspam joined
quietfanatic So this is my real problem... 01:48
rakudo: sub A (*@_) {say @_.perl; if 1 { say @_.perl } }; A(5, 4)
p6eval rakudo 1d4928: OUTPUT«[5, 4]␤[]␤»
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 :/
quietfanatic I don't know if it's supposed to do that, but it's kinda surprising 01:50
__rnddim__ I think 'git checkout ng' might work, but I haven't tried it. 01:52
01:53 IllvilJa joined
__rnddim__ It says: error: pathspec 'ng' did not match any file(s) known to git. 01:54
colomon git checkout -t ng
?
I can never remember 01:55
__rnddim__ git checkout -t ng said missing branch, try -b.
git checkout -t -b ng is working...
Here's what it said: Switched to new branch ng. I'm not an expert, but seems to have worked. 01:56
diakopter "new branch"? 01:57
as in, it created a local branch with that name?
__rnddim__ git branch shows this: master \n * ng 01:58
I think it said new branch because I didn't have it before.
let me see something. 01:59
rakudo: say :16<16D.4>
p6eval rakudo 1d4928: OUTPUT«365␤»
__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)␤»
__rnddim__ if I run say :16<16D.4> in what I got from git, it should cause the error if it's ng.
__rnddim__ is now compiling rakudo to find out. 02:01
__rnddim__ is obviously new to git, or he would not have to compile to find out. 02:02
02:03 cognominal left 02:04 cognominal joined
__rnddim__ is beginning to scream again. Trying to make sure w/o compiling. 02:04
02:13 cognominal left
__rnddim__ How do I *know* I have the ng branch? 02:13
diakopter doesn't know; I use rakudo only through the p6eval bot 02:14
__rnddim__ std: say :16<16D.4> 02:15
p6eval std 29655: OUTPUT«ok 00:01 107m␤»
02:18 ruoso left
diakopter o_O proto token infix is binary is defequiv(%additive) 02:18
02:19 kensanata left 02:26 rv2733 joined
__rnddim__ really wants to know how to know if he has ng branch. 02:28
__rnddim__ is starting over 02:32
02:32 ruoso joined
__rnddim__ I need something that will tell me how to get the ng branch. I'm hopelessly new to git. 02:33
git clone [directory] -b ng seems promising... 02:36
__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
__rnddim__ let me try that.
PerlJam __rnddim__: sorry, "co" is my shortcut for "checkout", so use "checkout" where I have "co" 02:44
PerlJam goes back to sleep & 02:45
__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:51
__rnddim__ 's drive to get the ng branch on the computer has worn off, and is now asleep on the keyboarawhoeon ddcv . 02:52
02:55 nihiliad left 03:10 nbrown joined 03:16 nbrown left 03:17 nbrown joined
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)␤»
03:46 salzh left 03:55 tlb left
diakopter masak: re declarations: blogs.msdn.com/ericlippert/archive/...asses.aspx 04:14
04:28 hercynium left 05:03 __rnddim__ left 05:07 REPLeffect joined 05:13 __rnddim__ joined 05:20 drbean left 05:29 patspam left, patspam joined 05:43 Chillance left 05:58 __rnddim__ left 06:01 justatheory left 06:02 justatheory joined 06:11 justatheory left, gfx joined 06:39 patspam left 06:53 iblechbot joined 07:11 kaare joined, kaare is now known as Guest8258 07:26 iblechbot left 07:44 rv2733 left 07:55 eternaleye left
s1n hmm: news.perlfoundation.org/2010/02/201...compi.html 07:58
diakopter std: | | | | |3 08:02
p6eval std 29655: OUTPUT«ok 00:03 106m␤»
diakopter s1n: what about it 08:03
s1n: oh, the mention of parrot? 08:04
s1n yeah, but the idea is still interesting 08:05
diakopter 1000 euros for a year of work that he would probably do anyway? :)
s1n well, not that idea in particular, but what the grant is about
diakopter (if I were TPF, I'd fund it)
s1n likewise
diakopter s1n: have you read his use.perl journal or tweetfeed? 08:06
s1n no, should i?
diakopter use.perl.org/~rurban/journal/ and twitter.com/Reini_Urban 08:08
sure, if you're interested by that idea
s1n hmm, thanks for the heads up then 08:10
s1n needs sleep though
diakopter *finally* had a breakthrough in the OPP 08:11
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.
and so... I finally see the need for an LTM engine :D 08:13
heh
goodnight moon
08:16 eternaleye joined 08:22 pnate joined 08:29 gfx left 08:37 xinming left, xinming joined 08:38 mssm joined 08:50 drbean joined 09:01 pnate left 09:06 pnate joined 09:11 pnate left 09:17 pnate joined 09:22 Su-Shee joined
Su-Shee good morning 09:22
09:32 barney joined 09:49 scott__ joined 09:51 scott__ left 09:55 scotl joined, barney left 10:01 barney joined 10:06 drbean left 10:07 scotl left 11:00 barney left 11:22 meppl joined 11:26 am0c left 11:43 am0c joined 11:56 payload left 12:13 drbean joined
jnthn oh hai, šesťfolk. 12:16
12:22 mberends joined
mberends dobor dan, jnthn 12:22
jnthn \o/ 12:23
mberends could you please help me a little with paste.lisp.org/display/94502 12:24
12:24 payload joined
jnthn eww Q:PIR 12:26
:-)
mberends: %r = status
mberends it seemed to need that instead of pir::whatever
jnthn That's why it doesn't work though
%r = box status
mberends oh. boxing
:D
jnthn You need to give back a PMC result in %r :-)
mberends thanks :)
12:27 masak joined
masak oh hai #perl6 12:27
rakudo: sub A (*@_) {say @_.perl; if 1 { say @_.perl } }; A(5, 4)
p6eval rakudo 1d4928: OUTPUT«[5, 4]␤[]␤»
masak submits rakudobug
quietfanatic++
jnthn wtf?!
shift that bug!
masak :)
& 12:28
jnthn o/ 12:29
colomon o/ 12:30
ng: sub A (*@_) {say @_.perl; if 1 { say @_.perl } }; A(5, 4)
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)␤»
jnthn std: sub A (*@_) {say @_.perl; if 1 { say @_.perl } }; A(5, 4) 12:32
p6eval std 29655: OUTPUT«ok 00:02 111m␤»
colomon ng: sub A {say @_.perl; if 1 { say @_.perl } }; A(5, 4) 12:34
p6eval ng aa0a08: OUTPUT«[5, 4]␤[]␤»
colomon ng: sub A ($_) {say $_.perl; if 1 { say $_.perl } }; A(5) 12:35
p6eval ng aa0a08: OUTPUT«5␤5␤»
jnthn Hmm
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!
mberends: Yay!
mberends: Of course, question now is, does unlink.t pass? :-)
mberends testing... 12:37
:-( Confused at line 8, near "sub nonce(" 12:38
jnthn mberends: Maybe not anything to do with unlink though...check what's on that line. 12:39
12:39 eternaleye left
mberends and t/spec/S16-filehandles/io_in_while_loops.t passes all 13 tests :-) 12:39
jnthn Oh? 12:41
Uncomment in spectest.data! :-)
mberends yes...
jnthn likes passing tests.
12:46 xomas left
dalek kudo/ng: 25b48ad | (Martin Berends)++ | (2 files):
[IO.pm] re-implement unlink() and some tests that use it
12:52
12:52 payload1 joined 12:55 orafu left, orafu joined, payload left 13:00 payload1 left, payload joined, xomas_ joined, xomas_ left, xomas_ joined 13:09 payload left 13:10 payload joined 13:11 lichtkind joined 13:17 payload left 13:20 tlb joined
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:26
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. :-/
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 13:36 JimmyZ left, JimmyZ joined, pmurias joined 13:41 lichtkind_ joined 13:42 lichtkind left, lichtkind_ is now known as lichtkind
jnthn -> shopping, bbiab 13:48
masak is baking @ buns 14:03
mberends yummy! 14:04
colomon what kind of buns?
dalek kudo/ng: a8ab00b | (Solomon Foster)++ | src/core/IO.pm:
Simple lazy implementation of .lines.
14:07
masak colomon: it's an internal joke between me and frettled. :) the symbol '@' is sometimes called 'kanelbulle' (cinnamon bun) in Swedish. 14:10
mberends a good illustration 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.
masak: ah. :)
jnthn As an oper, I always have a kanelbulle besides me. :-) 14:15
colomon: Yay, lazy lines. :-) 14:16
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.
jnthn S16-filehandles may have some.
colomon ah
jnthn Or S16-io generally.
colomon I'm reasonably confident in the implementation, because it is just a simple variation on the old version of the function. :) 14:18
and it passes my simple tests in the REPL.
14:19 frettled sets mode: +oo masak colomon
frettled Oh, look, two cinnamon buns were ready. 14:19
;)
jnthn A few more and they'll be abundant.
14:20 flight16 joined, am0c left 14:21 greenhorn joined, greenhorn left
frettled oh ho ho :) 14:22
colomon t/spec/S16-filehandles/io_in_for_loops.t almost works (29 of 31 passing) 14:23
jnthn Sounds close enough to fix or fudge. :-) 14:24
colomon: Just going to nom my lunch and then I'll dig in to some Rakudo hacking.
frettled fudge buns! 14:25
flight16 time to nom my #sleep
goodnight
14:25 flight16 left
colomon looks like the issue is when we run the file through a for loop, we get a last "undef". 14:26
14:26 araujo left
colomon (No idea why it's undef rather Mu or something) 14:26
jnthn ...sleep is eddible? 14:27
colomon: Oh, eww. :-/
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.
oh, nope, it's a .lines bug. 14:30
pretty easy to fix, though, I think.
14:31 greenhorn_ joined
colomon .defined tests definedness, yes? 14:31
jnthn Should do. :-) 14:32
14:33 drbean left
colomon yeah, I've got a patch. 14:34
14:34 am0c joined
colomon running spectest now, will push as soon as that's done. 14:36
pushed 14:41
dalek kudo/ng: 9c39328 | (Solomon Foster)++ | src/core/IO.pm:
Be a little more careful to ensure we do not get a last line of undef (when calling IO.lines).
kudo/ng: 36620c0 | (Solomon Foster)++ | t/spectest.data:
Turn on S16-filehandles/io_in_for_loops.t.
14:44 dolmen joined 14:45 fda314925 left, fda314925 joined 14:46 JimmyZ left
jnthn colomon++ 14:47
14:48 greenhorn_ left
colomon io.t is blocking right away on Range.pick 14:48
I hacked that out just to see what would happen, and we then passes 64 tests before we block on String.Int. 14:49
14:50 wanradt left
colomon that's of 69 tests altogether, I believe, so we are very close. 14:50
14:51 greenhorn joined
colomon ng: say (+"5").Int 14:51
p6eval ng 36620c: OUTPUT«5␤»
colomon word.
errr... Str versus String? 14:52
masak it's Str in Perl 6. 14:53
14:54 dolmen left
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.
hiding the host system is tricky :P
colomon and after I added Str.Int and that tested passed, now I get
Method 'e' not found for invocant of class 'Str'
ah, that's $filename !~~ :e 14:56
okay, can fudge that. 14:58
then all I need is to figure out how to get Range.pick to work.
14:59 JimmyZ joined
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:00
15:02 cjk101010 joined 15:09 dual left
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:09
15:10 jmf joined
jnthn :-) 15:10
mberends where is the use of pir::func__XX() documented? (the XX in particular)
colomon mberends: I always just ask jnthn or pmichaud if I can't figure out from examples in the code. 15:12
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.
jnthn mberends: The XX describes the register signature.
mberends I'm stuck on the parameter and return type of sleep()
jnthn mberends: That is documented in...oh gah, github is down.
vN perhaps.
checking 15:14
15:14 k23z__ joined
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 :(
jnthn mberends: Yes, it has no result, so you need a v (= void) first.
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
got that, never thought about lowercase v
jnthn heh heh 15:16
From sys.ops:
if ($1 < 0.0) {
opcode_t * const handler = Parrot_ex_throw_from_op_args(interp, next,
EXCEPTION_NEG_SLEEP,
"Cannot go back in time");
goto ADDRESS(handler);
}
mberends aw, no time travel :(
jnthn mberends: Well, if you want, to complain about that, trac.parrot.org ;-) 15:17
mberends: I think to get the "time we akshually slept" then get the time before, get the time after and subtract.
15:18 xomas_ left
jnthn pir::time__N() 15:18
mberends jnthn: then it makes more sense to return a fractional Num
jnthn mberends: time gives you: 15:19
Puts the current system time (represented as a number of seconds, with
microseconds) in $1.
(the time opcode)
mberends: Or do you mean, what Perl 6's sleep should return?
mberends will do a subtract and return seconds.microseconds 15:20
jnthn That sounds sane.
mberends the test expects a value back, either int on num would do
but returning the int you gave it is lame 15:21
jnthn Yeah, it is. :-)
mberends "I went for an hour's snooze, and woke up 100 years later..."
colomon thinks his Str.Int push made it through to github just before github went down.... 15:22
jnthn hacks on anonymous hash syntax.
mberends sleeping for longer than you intended will occur if the computer suspends or hibernates, so it does make sense to measure it 15:24
15:27 Psyche^ joined, greenhorn left, cognominal joined 15:28 Patterner left, Psyche^ is now known as Patterner
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
colomon like die "Infinite lazy pick not implemented" if $replace; -- impossible in master, trivial in ng
mathw It turns everything upside down in code and the compiler
colomon in fact, infinite lazy pick is actually easier than the non-replacing pick of a finite number of elements. 15:30
(in ng)
cognominal I have not followed things lately. ng1 has been merges with ng? 15:32
*merged
colomon cognominal: yes.
jnthn cognominal: And then we've been Widly Patching ng. :-)
OK, I got the Hash or Block detection done. Now I "just" need to write circumfix:<{ }>
cognominal is ng now usable for programming?
masak chuckles 15:33
jnthn cognominal: Well, it's Turing Complete...
15:33 greenhorn joined, JimmyZ left
jnthn cognominal: Things work in master that don't work in ng. Things work in ng that don't work in master. :-) 15:33
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. :-)
cognominal I bet.
jnthn
.oO( oops, I used "beavering" outside of Yorkshire )
cognominal I don't mind perl 6 being closer to haskell 15:35
jnthn cognominal: Last time I saw you talk about Haskell at a Perl conference, the talk involved dominatrix... :-) 15:37
cognominal: BTW, will there be a French Perl Workshop this year? :-) 15:38
cognominal yes, but we don't know yet where and when
you will be most welcome as usual
jnthn I'll try and make it this year; I missed last years. 15:39
cognominal one candidate is Calais. So you could even make a trip to England from there. 15:40
colomon ng: my $a = -10; $a .= abs; say $a; 15:41
p6eval ng 36620c: OUTPUT«10␤»
cognominal ...and not as an illegal immigrant :)
jnthn Aww, go and spoil my fun! :-P
colomon ng: say Inf.floor; 15:42
p6eval ng 36620c: OUTPUT«-9223372036854775808␤»
colomon !!!
jnthn o_O 15:43
cognominal I know Calais is nice. I don't know how far from the center is the university though.
jnthn ng: our sub circumfix:<{ }>(*@elements) { }
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)␤»
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)␤»
jnthn ng: our sub infix:<{ }>(*@elements) { }
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)␤»
jnthn ng: our sub infix:<x>(*@elements) { }
p6eval ng 36620c: ( no output )
jnthn ng: our sub circumfix:<x>(*@elements) { }
p6eval ng 36620c: ( no output )
jnthn oh hm
ng: our sub monkey:<x>(*@elements) { }
p6eval ng 36620c: ( no output )
jnthn std: our sub circumfix:<{ }>(*@elements) { } 15:46
p6eval std 29655: OUTPUT«ok 00:03 109m␤»
jnthn ng: say <a b c> 15:47
p6eval ng 36620c: OUTPUT«sh: ./perl6: No such file or directory␤»
jnthn ng: our sub circumfix:<[ ]>(*@elements) { } 15:49
p6eval ng 36620c: OUTPUT«sh: ./perl6: No such file or directory␤»
jnthn wonders how on earth to fix this one...
colomon > say (1..100).WHAT 15:50
Type objects do not have state, but you tried to access attribute $!excludes_min
:\ 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 left
colomon masak: I'm jealous. 15:51
jnthn colomon: Only if they taste good. :-) 15:52
colomon: I think I know what's up with that one...
colomon it's just a sideline to my attempt to getting a very primitive version of .pick up and running...
jnthn (Need to teach protoobjects a little about stringiication)
Well, a little more about...
ng: say <foo>.WHAT 15:53
p6eval ng d53e02: OUTPUT«Str()␤»
jnthn ng: say <{ }>.WHAT
p6eval ng d53e02: OUTPUT«␤»
jnthn gah
oh, maybe I know what to do... 15:55
(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:56
mathw that's... not good 15:58
jnthn Indeed...it means I can't write circumfix:<{ }>
I wonder if really want deflongname to parse a generic circumfix there... :| 15:59
There's a bunch of ways I could tweak things.
Not found one I like yet. 16:00
oh 16:01
maybe I have
whee 16:05
> say { a => 42}<a>
42
mathw applauds
jnthn can have his dinner tonight 16:06
jnthn Only if I didn't break any spectests. :-) 16:07
mathw nah
fixing the spectests gets you pudding
jnthn Don't think I've broken anything that wasn't already broken. :-) 16:09
16:10 jackyf left
jnthn Pushed (seems github's git part is still up, even if the site is fail) 16:11
16:12 nihiliad joined
colomon blast, you beat me to the punch. ;) 16:14
jnthn mwaha 16:15
pugs_svn r29656 | colomon++ | [t/spec] Fudge to avoid missing :e in ng. 16:16
colomon git pull didn't work for me. :(
jnthn Oh? 16:17
:-/
greenhorn quit
colomon Storage server temporarily offline. Please try again in a few minutes or contact GitHub.
jnthn Probably just flakey.
16:17 greenhorn left
jnthn ng: my $x = -> {}; my $y = $x(); 16:18
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
S04-blocks-and-statements/pointy.t
16:33 dual joined 16:34 tlb left
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)␤»
jnthn ng: my @x = 1,2,3; for @x -> $v { say $v } 16:36
p6eval ng d53e02: OUTPUT«1␤2␤3␤»
jnthn ng: my @x = 1,2,3; for @x <-> $v { say $v }
p6eval ng d53e02: OUTPUT«Missing block at line 1, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
colomon git pull finally worked for me. 16:39
jnthn :-) 16:40
I'm currently puzzling over why <-> doesn't parse, even though it's right there in token lambda
jmf quit 16:42
16:42 jmf left
jnthn std: my @x; my $x; @x <-> $x { } 16:58
p6eval std 29656: OUTPUT«ok 00:01 110m␤»
jnthn ...so it parses, but what does it mean? 16:59
oh noes 17:00
It's parsing as @x < -> $x { }
Trouble is, we also end up doing that in xblock's EXPR 17:01
phenny: tell phenny are you alive? 17:04
phenny Hey, I'm not as stupid as Monty you know!
jnthn \o/
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.
jnthn Thanks, phenny
diakopter ltm fail
jnthn Damm. 17:06
diakopter: Know a solution?
Other than hacking infix:<< < >> to check it's not followed by ->...
diakopter I didn't think nqp-rx knew about real ltm...
jnthn diakopter: It doesn't. 17:07
Well
It does and it diesn't.
*doesn't
It knows the bits of it tangled up with protoregexes.
dalek kudo/ng: d53e02e | (Solomon Foster)++ | src/core/Str.pm:
Implement Str.Int and tweak Str.Bool declaration.
kudo/ng: aed45d8 | jonathan++ | src/ (2 files):
Implement anonymous hash constructors; also a tweak so that we are able to define circumfix:<{ }> in the core setting.
diakopter I guess try to force the lambda one to be tried earlier than the xblock one 17:08
17:08 nbrown left
colomon dang it, bushwhacked again by jnthn's speedy commits. 17:08
;) 17:09
jnthn diakopter: That's not quite the issue.
diakopter: xblock does <EXPR> <pblock>
diakopter: It's that EXPR that swallows up what the following <pblock> wants. 17:10
diakopter oh
jnthn Or at least, so far as I can track it down.
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:11
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:12
dalek kudo/ng: 5c70962 | jonathan++ | src/Perl6/ (3 files):
Some tweaks and improvements to pointy blocks. We can't get the <-> form working yet, due to parsing issues.
17:13
kudo/ng: 245ca14 | jonathan++ | t/spectest.data:
We now pass S04-blocks-and-statements/pointy.t again.
diakopter I wonder if std parses it correctly
jnthn diakopter: Yeah, I believe so.
It parses what we fail on, anyway.
std: my %h; for %h.values <-> $v { $v += 1 } 17:14
p6eval std 29656: OUTPUT«ok 00:01 108m␤»
jnthn ng: my %h; for %h.values <-> $v { $v += 1 }
p6eval ng aed45d: OUTPUT«Missing block at line 1, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
diakopter std: my @x = 1,2,3; for @x < 3
p6eval std 29656: OUTPUT«===SORRY!===␤Missing block at /tmp/fAt9n6kGaN line 1 (EOF):␤------> my @x = 1,2,3; for @x < 3⏏<EOL>␤ expecting any of:␤ POST␤ postfix␤ postfix_prefix_meta_operator␤FAILED 00:01 107m␤»
diakopter either ltm works or it backtracks correctly 17:15
jnthn Yeah
colomon: about? 17:16
colomon jnthn: I was just about ready to push when you did, that's all. :) 17:17
so I had to pull, rebuild, and re-test.
jnthn :-)
colomon too many commits coming too fast, it's a fantastic problem to have. :)
jnthn colomon: I want to make an iterator for hashes.
colomon: Any thoughts?
colomon jnthn: cool. 17:18
jnthn colomon: I mean, if I do...
method iterator() { gather { ... take Pair.new($k, $v); ... } }
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...
jnthn Or some such
Will that work out?
(in theory) :-)
colomon jnthn: it ought to.
jnthn colomon: OK, cool.
colomon (in theory)
jnthn heh
diakopter: That...hurts my head. :-) 17:19
dalek kudo/ng: 80d23e1 | (Solomon Foster)++ | src/core/Iterable.pm:
Add Iterable.pm and Iterable.Seq.
kudo/ng: dc7327e | (Solomon Foster)++ | src/core/Any-list.pm:
Very simplified version of .pick. (More complete but broken in ng implementation included in this check-in but commented out.)
kudo/ng: 67ca67b | (Solomon Foster)++ | src/ (2 files):
Merge branch 'ng' of [email@hidden.address] into ng
kudo/ng: 7191517 | (Solomon Foster)++ | build/Makefile.in:
Add Iterable.pm to the makefile.
kudo/ng: b65c299 | (Solomon Foster)++ | t/spectest.data:
Add S16-filehandles/io.t to the spectests.

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. :-)
colomon though it might be worthwhile to actually make an iterator class for hash.
17:19 justatheory joined
jnthn Wow! 17:19
colomon (and understanding that I have no clue how you internally iterate a hash)
jnthn: just a bunch of small patches. :) 17:20
jnthn colomon: It's easy enough to do gather/take
colomon: I've just yet to get a good feel of when to make a class like HashIter or when not to bother. :-)
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 }
p6eval rakudo 1d4928: OUTPUT«a␤b␤c␤»
jnthn Nice. 17:22
rakudo: my @x = :a(1), :b(2), :c(3); for @x.map({ $^p.key, $^p.value }) { .say }
colomon ?
p6eval rakudo 1d4928: OUTPUT«a␤1␤b␤2␤c␤3␤»
colomon why for and map?
jnthn OK, if I write Hash.iterator, looks like .keys, .values and .kv are just a map.
colomon: Oh, was just wanting to iterate over what map returned. 17:23
colomon jnthn: (re .keys, etc) that makes sense.
jnthn gets on it
colomon ah, I see.
17:29 masak joined
masak o/ 17:29
mathw o/ 17:30
masak fwiw, the pasta and cinnamon @ tasted very nice :) 17:31
mathw pasta and cinnamon
interesting
masak um. nono.
sequentially :)
not that I never use cinnamon in my non-sweet cooking :)
mathw of course 17:32
it's good in curries
masak oh yes.
(of course people involved in Perl 6 appreciate a good curry) 17:33
mathw :D
masak more language features should be named after foods, in my opinion. 17:34
phenny: tell phenny are you as stupid as Monty? 17:36
phenny Hey, I'm not as stupid as Monty you know!
mathw well, currying was named after a man... 17:37
who may have been named after food :)
or one of his ancestors was, anyway
masak yes, both Haskell and currying was named after a man. the same one, even :)
mathw indeed
masak that's quite an honour.
mathw and thus it's highly appropriate that Haskell programmers make extensive use of currying
masak it's like someone would name a language 'Carl' and then a language feature 'masaking'. 17:38
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
17:39 __rnddim__ joined, iblechbot joined
masak I think you're right. 17:39
mathw it's slightly less interesting that way though 17:40
masak jnthn: interesting conundurum with the '<->' thingy! 17:41
jnthn Gah, colomon beat me to patch! 17:45
;-)
masak are you two competing? :)
__rnddim__ thinks it takes too long to compile rakudo (the ... src/gen/core.pm -> src/gen/core.pir command, anyway) 17:46
masak __rnddim__: I believe the stage1 step is the slowest. 17:47
__rnddim__: hi, by the way. :)
__rnddim__ right now I'm running make.
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. :)
__rnddim__ IN A WORLD, where hellos come after talking to each other.
masak jnthn: STD has a <?before <.lambda> | '{'> in 'token pblock'.
colomon: ah, so you're doing different but taking turns pushing and having to pull? that's not so bad, then. :) 17:49
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!
masak jnthn: yes, because the EXPR won't let go. 17:51
17:52 p6eval left
masak it's easy to construct one situation where it should continue and one where it should backtrack. 17:52
17:52 p6eval joined
masak continue: 'if 3 <4 {' 17:52
backtrack: 'if 3 <-> $a {' 17:53
thus I conclude that the optable parser must have the ability to notice when it shouldn't consume a '<->'.
either by knowing about it directly (probably not) or by realizing that what comes after the '<' isn't a term. 17:54
jnthn masak: iiuc, that's what LTM would give us. 17:55
masak please elaborate.
jnthn <-> is longer than <
masak yes...
I'm with you so far. :P
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.
or does it?
jnthn I think it works differntly in STD (and nqp-rx) than it does in PGE.
masak that's entirely possible.
none of the parsers in PGE do LTM. 17:57
17:57 eternaleye joined
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
masak well, sure, the optable parser always picks the longest operator; that's just common sense.
but in the case of '<->', that's not something the optable parser in a PGE setting would even be aware of. 17:58
since it's not an operator per se.
jnthn Where you've two easily identifiable units working together. 17:59
(gah, this lag is awful...)
kudo/ng: 16fd613 | jonathan++ | src/core/EnumMap.pm:
Give EnumMap (and thus Hash) .iterator, .keys, .values and .kv, all done in the core setting.
masak jnthn: that's quite a lag you've got :)
jnthn And now I crossed out one more item on wiki.github.com/rakudo/rakudo/ng-ma...res-needed :-)
18:00 aindilis joined
jnthn colomon: Co is the status of Range? 18:00
s/Co/What/
masak :) 18:01
jnthn !
masak jnthn: are you context-switching between languages again?
jnthn masak: Yeah, arranging a time to skype with a Slovak girl who wants English practice. :-) 18:02
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.
Would suck to have to re-learn it.
:-)
masak sounds like a good mutual deal. :) 18:03
jnthn Aye.
masak: By the way...
colomon cool, I was working on some Newfoundland tunes with a flute player from there over Skype earlier this week. :)
jnthn masak: Hash, if you are interested still, is probably in a state where it's quite hackable on, btw.
colomon jnthn: Range sort of works. 18:04
jnthn masak: .perl, .fmt, .ACCEPTS etc could all do with going back.
masak: Note they probably want to go in EnumMap
masak jnthn: thanks. if it can wait until tonight, I'll have a go.
jnthn masak: Which is like, immutable version.
masak: Oh, for sure it can.
masak excellent. 18:05
__rnddim__ is running make spectest, and S02-whitespace_and_comments/minimal-whitespace.t failed 6 of 7 subtests. (ng branch)
jnthn .fmt and .perl can probably be put back in more places.
__rnddim__: I fixed that one 10 mins ago. :-)
Thanks for reporting though :-) 18:06
masak __rnddim__: time to rebuild. :)
jnthn masak: Crule!
__rnddim__ AAAAAH! This code came from last night.
__rnddim__ is screaming in 7 dimensions (again)
colomon jnthn: basic Range iteration works for numbers, but it doesn't always convert the way you'd expect it to yet.
masak __rnddim__: is your nick an abbreviation of 'random dimension'?
jnthn colomon: OK. 18:07
__rnddim__ why yes, it is.
jnthn colomon: Was curious if we could cross Range off the todo list yet. ;-)
colomon jnthn: probably shouldn't just yet.
unless you mean the ng todo list, in which case it might be okay. 18:08
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 /.../.
jnthn colomon: I meant the one I linked to a mo ago. 18:10
wiki.github.com/rakudo/rakudo/ng-ma...res-needed
dalek kudo/ng: 1f37989 | jonathan++ | t/spectest.data:
Passing S16-unfiled/slurp.t again.
18:11
__rnddim__ (From the complete beginner dept.) I now need to know how to update my copy of rakudo thru git.
colomon jnthn: yeah, I'd cross it off that list. :)
__rnddim__: git pull
__rnddim__ I'm hopeless! :)
__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.
__rnddim__ is now starting the make...make test...make spectest...make install stuff all o'er again. 18:13
__rnddim__ notes the /me command has to be what twitter feels like. 18:14
jnthn colomon: OK, done. 18:15
Of the two remaining things given to me on there, one is easy and boring. The other is Epic Hard. 18:16
__rnddim__ go with Epic Hard. All the cool spies do it! (All the cool spies don't use the front door, for example...) 18:17
rakudo: say :16<16D.4> 18:20
p6eval rakudo 1d4928: OUTPUT«365␤»
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.
__rnddim__ colomon: not even then. It's "the front door".
ng: say :16<16D.4>
p6eval ng b65288: OUTPUT«sh: ./perl6: No such file or directory␤»
__rnddim__ ???
jnthn __rnddim__: p6eval automatically re-builds once in a while. 18:21
colomon __rnddim__: that means it's rebuilding with the latest changes
__rnddim__ alright
jnthn __rnddim__: It's just doing that at the moemnt...will work again in a moment.
18:21 cognominal left
__rnddim__ btw, a cool spy would squeeze through the plumbing if he could. 18:22
jnthn __rnddim__: See svn.pugscode.org/pugs/src/perl6/STD.pm for how those things are parsed; look up rad_number
18:22 cjk101010 left
jnthn doubts he'll squeeze through much :-) 18:22
__rnddim__ A cool spy would be friends with santa :)
masak "Top 50 things a cool spy would do" 18:23
18:24 cognominal joined
__rnddim__ jnthn: the not defined worries me a little. 18:24
std: say :16<16D.4>
p6eval std 29657: OUTPUT«ok 00:01 107m␤»
jnthn
.oO( 42. Use Perl 6 )
colomon ng: say 6 ~~ 5..11
p6eval ng 1f3798: OUTPUT«0␤»
jnthn Gah!
fail. 18:25
colomon expected, that's one of the things I need to fix.
__rnddim__
.oO( 1. Know Santa)
masak g'ah! my rakudobug finger is twiching. :)
__rnddim__: 2. Squeeze through the plumbing when necessary. 18:26
__rnddim__ says: ".oO(...) is for the Top 50 things a cool spy would do list" to the uninitiated.
colomon ng: say 2 ~~ 5..21
p6eval ng 1f3798: OUTPUT«0␤»
__rnddim__
.oO(23. Create lists out-of-order)
jnthn masak: Only another couple of days. ;-) 18:27
masak aye.
__rnddim__: 3. Write a Perl 6 debugger in Perl 6. 18:29
jnthn That *would* be cool. :-) 18:30
__rnddim__ is writing down the Top 50.
__rnddim__ says his favorite game is seagull. 18:32
masak __rnddim__: 4. Get into *and out of* the Pentagon without anyone noticing.
__rnddim__
.oO(5. Says the palindrome of Bolton is Notlob)
18:33
jnthn Nooooooooooooo :'(
18:33 cognominal left
masak that's not spyishly cool, that's just weird. 18:34
__rnddim__ says it's a monty python reference
I can put multiple number 5s on the list, if you wish.
colomon ng: say 1 ~~ 5..21
p6eval ng 1f3798: OUTPUT«0␤»
__rnddim__ It's not supposed to be a traditional list... 18:35
masak :)
__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)␤»
__rnddim__ darn, hoping it'd work.
masak __rnddim__: it's .flip
__rnddim__ ng: say "Bolton".flip
masak hm. unlike a cool spy's battery, mine is about to run out. will need to go undercover.
p6eval ng 1f3798: OUTPUT«notloB␤»
18:37 masak left
__rnddim__ ng: say "torraP daeD".flip 18:37
p6eval ng 1f3798: OUTPUT«Dead Parrot␤»
__rnddim__ masak: carryover from coding in python.
switched for switch statements and pointers :) 18:38
__rnddim__ says: .oO(6. Puts his entire hard drive into a floppy disk)
I look at any Top 50 Spies when I'm back. Anyway, I'm off to pronounce the japanese "u" in rakudo correctly! 18:46
18:48 cognominal joined
colomon Well, bother. 18:54
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. :\ 18:55
ng: say 21 ~~ 3..10 19:00
p6eval ng 1f3798: OUTPUT«0␤» 19:01
colomon ng: say 21 ~~ 3..30
p6eval ng 1f3798: OUTPUT«0␤»
colomon ng: say 21 ~~ 3..50 19:02
p6eval ng 1f3798: OUTPUT«0␤»
Tene colomon: what is this dispatch bug? 19:12
19:13 k23z__ left
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
ng: say "a" cmp "b"
p6eval ng 1f3798: OUTPUT«-1␤»
19:13 rgrau joined 19:14 k23z__ joined
colomon ng: multi sub comparer($a, $b) { say $a cmp $b }; comparer("a", "b"); 19:14
p6eval ng 1f3798: OUTPUT«-1␤»
colomon bother, I don't have an easy test case for it.
but it's a very real problem.
ng: say "a" after "b"
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)␤»
colomon there you go.
jnthn colomon: eww 19:15
colomon: I need to nom now
colomon jnthn: happy nomming.
jnthn colomon: May get to look at that later, but I kinda want to read a bit too :-)
colomon Tene: it's the source of many headaches for me.
jnthn Got an interestingish book on the go. :-)
colomon jnthn: :)
Tene: after is just 19:16
our multi infix:<after>($a, $b) {
($a cmp $b) == +1;
}
but if you call it with two strings, you get that error message, even though calling cmp with two strings works fine.
That, in turn, means that Range is pretty broken for anything other than Ints and Nums. 19:17
also negatively affects Rat and Complex math.
probably other stuff too.
dalek kudo/ng: c3371de | jonathan++ | src/builtins/ (2 files):
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
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:22
jnthn mwaha...I have less items assigned to me than Pm on wiki.github.com/rakudo/rakudo/ng-ma...res-needed now. ;-) 19:23
19:26 fridim_ joined
colomon \o/ 19:27
jnthn Woo, nom is nearly cooked :-) 19:31
jnthn ponders if he should move from use.perl.org to blogs.perl.org
Su-Shee jnthn: yes. perl6-ish blogging is highly underrepresented there. 19:34
19:38 xomas_ joined, xomas_ left, xomas_ joined
obra blogs.perl.org has been...unreliable 19:38
many folks I know haven't been able to create accounts/post/comment
jnthn obra: Yeah, thus my hesitation. 19:39
19:48 rgrau left
Su-Shee that seems to be over. I could post and login and so on. 19:59
20:10 astoria` joined
astoria` Hi 20:10
20:11 Exodist left
colomon hello 20:11
dalek kudo/ng: 5cc8d5b | mberends++ | src/builtins/control.pir:
[builtins/control.pir] copy in the exit function from master
20:24
20:28 silug joined 20:30 pnate left 20:37 rgrau joined 20:39 mssm left 20:40 renormalist joined, mssm joined 20:41 renormalist left, renormalist joined 20:58 Chillance joined 21:01 KingOfKarlsruhe joined 21:03 ash_ joined 21:21 ash_ left
colomon mberends++ 21:23
21:26 cggoebel joined 21:31 iblechbot left 21:32 masak joined
masak jnthn: ping 21:33
jnthn masak: destination host unreachable
er,
pong
:-)
masak jnthn: oh hai, I'm here for a bit of synching and guidance.
diakopter lurks
masak I've looked at t/spec/S02-builtin_data_types/hash.rakudo 21:34
jnthn Heh, I looked at that too :-)
__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.
masak jnthn: so, %lolimahash.WHAT stringifies to '()'
that's the first problem.
jnthn masak: Thankfully that's a more general / not too tricky to solve issue. 21:35
masak: just a "name of the punned class not being set" one.
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?
anyway, that's my guess :)
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.
masak oh ah.
ng: my $a = try { fail horribly }
p6eval ng 5cc8d5: OUTPUT«Null PMC access in can()␤current instr.: 'perl6;Mu;!STORE' pc 1906 (src/builtins/Mu.pir:387)␤»
masak the test file eventually runs up against this issue, after test 14 or so.
just a heads-up.
jnthn Ah, thanks 21:37
rakudo: my $a = try { fail horribly }
p6eval rakudo 1d4928: OUTPUT«Null PMC access in isa()␤in Main (file <unknown>, line <unknown>)␤»
jnthn ...
Oh well, at least it's not a regression. :-/
masak :)
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
jnthn Yeah, I do find it...odd.
diakopter rakudo: my $a := try { fail horribly }; say $a.WHAT
p6eval rakudo 1d4928: OUTPUT«Null PMC access in find_method('WHAT')␤in Main (file <unknown>, line <unknown>)␤»
21:38 wanradt_ joined
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)␤»
diakopter o
21:40 fridim_ left
diakopter rakudo: say (eval '{ fail horribly }').WHAT 21:41
dalek kudo/ng: 5635e93 | masak++ | src/builtins/Role.pir:
[src/builtins/Role.pir] fixed typo
diakopter waits
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?
p6eval rakudo 1d4928: ( no output )
diakopter timed out
masak and also, we don't do `$i++ for @stuff;` yet. same questions there: is it hard, should I add it? 21:42
21:43 ash_ joined, ash_ left
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.
I fixed a few bugs in those PIR routines in 2008. 21:45
diakopter oh, 2008. how I miss thee.
frettled s/200/199/
jnthn masak: OK, it's probably more STD-ish now I guess. nibblers and the like. ;-) 21:46
__rnddim__ ng: say :16<16D.4>
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)␤»
diakopter I leapt into 1988 by tracing my hands and feet on paper in 2nd grade
__rnddim__ heh, that still needs fixing.
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>
p6eval rakudo 1d4928: OUTPUT«365␤»
masak jnthn: will do.
jnthn I'm a bit surprised $i++ for @stuff; doesn't work.
__rnddim__ pugs: say :16<16D.4>
p6eval pugs: OUTPUT«365.25␤»
__rnddim__ only pugs gets floating-point base conversion completely right. Hm.
masak ng: my $i; my @stuff; $i++ for @stuff;
p6eval ng 5cc8d5: OUTPUT«sh: ./perl6: No such file or directory␤»
jnthn __rnddim__: A lot of things in ng do, and it's on the list. A few things are ahead of it though. :-)
masak dang.
__rnddim__ can I see this list? 21:48
jnthn Time of hour.
__rnddim__ I can't find it.
masak waits patiently
jnthn __rnddim__: The "most urgent thingies" list is at wiki.github.com/rakudo/rakudo/ng-ma...res-needed 21:49
__rnddim__: After that, it's a case of working through the commented out tests in github.com/rakudo/rakudo/blob/ng/t/spectest.data
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;
p6eval ng 5cc8d5: OUTPUT«sh: ./perl6: No such file or directory␤»
masak rattles p6eval 21:51
jnthn hears a smashing sound from inside of it
masak ng: my $i; my @stuff; $i++ for @stuff;
p6eval ng 5635e9: OUTPUT«Missing block at line 1, near ";"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
masak there you go. :)
__rnddim__ none of those big features sound fun and easy. :) 21:52
But if they were, they'd be done :)
masak I figure if it's missing a block, then statement-modifying 'for' isn't implemented (correctly).
jnthn That...kinda looks like it. :-/
Also 21:53
# S04-statement-modifiers/for.t
So
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. :)
jnthn: also, I noted that in S32/Containers, Hash is a role but EnumMap istn't, whereas in ng, both are.
jnthn masak: ...
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. :-)
masak in fact, I was initially shocked to notice they were.
only after a few minutes did it start to make sense.
jnthn masak: The thing is...
diakopter ng: my $i; my @stuff; $i++ for @stuff;
p6eval ng 5635e9: OUTPUT«Missing block at line 1, near ";"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (src/stage0/HLL-s0.pir:328)␤»
jnthn masak: We want to do Associative[T]
masak but I still think EnumMap is strangely named if it's really just an immutable Hash.
jnthn masak: Well, in master it was Mapping
masak aye. 21:56
jnthn masak: It fits with Enum being the name for the immutable Pair.
That's the only logic I can see to it.
masak: Just 'cus I implement spec doesn't always mean I like it. ;-)
Remember Mu. ;-)
masak jnthn: try saying it out loud: "a Hash is a kind of EnumMap..."
jnthn: I admire your pragmatism. :)
jnthn Yeah 21:57
I'm kinda a bit hmm on the name.
lichtkind masak: ah there you hayden 21:58
21:58 KingOfKarlsruhe left
jnthn
.oO( is hayden a compliment or an insult? )
21:58
21:58 payload joined
mberends a classic compliment 21:58
masak :)
lichtkind hahaha
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...
lichtkind jnthn: it was remiscence to the film where the therapist made cheaps jokes about the similiarites of hiding and hayden
jnthn ...of sorts...
lichtkind masak: well answer :9
masak jnthn: looks a bit like your gas princess. :) 22:00
lichtkind masak: a simple server restart woldn't do it?
masak lichtkind: don't know yet. but I doubt it.
it's probably something deeper.
jnthn masak: My gas princess was an elekshun FAIL though. </3
masak jnthn: I'm truely sorry for your lots. 22:01
__rnddim__ thinks he should know perl before fixing it :)
masak __rnddim__: why? never stopped the rest of us. :)
pmurias masak: how did your run the tests constantly and commit if all pass thing end up?
__rnddim__ doesn't worry about it too much though.
masak pmurias: parse error. 22:02
__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)␤»
__rnddim__ pugs: my @rray=1,2,3; say @rray[0..*];
p6eval pugs: OUTPUT«123␤»
masak should perhaps say 'confused', like STD.pm does
jnthn masak: I'll be sure to fix that WHAT thingy tomorrow, BTW. 22:04
masak eeeexcellent.
__rnddim__ decides to attempt to turn rakudo/ng into a teenager (whatever indices).
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
masak pmurias: ah. right.
pmurias: suddenly I can parse your original question :) 22:05
pmurias: I'm still using it when developing GGE. I'm learning stuff all the time about it.
pmurias: it's written in Perl 5. if I were to release it to the public, I'd re-write it in Perl 6.
with tests, and a bit less hackishly done. 22:06
__rnddim__ pugs: say "hello"[0..*] 22:07
p6eval pugs: OUTPUT«hello␤»
__rnddim__ ng: say "hello"[0..*]
p6eval ng 5635e9: OUTPUT«Can't postcircumfix:<[ ]> foreign objects yet.␤current instr.: '!postcircumfix:<[ ]>' pc 306755 (src/gen/core.pir:39427)␤»
pmurias masak: why don't you want to release Perl 5 things?
masak pmurias: I didn't say that. it's more like I don't want to release a hard-coded hack. 22:08
22:09 akl left
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?
__rnddim__ just experimenting. 22:11
pugs: say "hello"[2..*]
p6eval pugs: OUTPUT«␤»
__rnddim__ hm..
Too used to python :)
masak __rnddim__: it doesn't work like that in Perl 6.
__rnddim__ again feels he should know perl before fixing it
masak __rnddim__: you should use Str.substr($from, $chars)
__rnddim__ ok. I'm focusing on whatever indices. Was wondering if it was array only or in general. 22:12
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?
masak or rather, I guess it's up to the .[] method on a type to decide how to treat whatever indices.
__rnddim__: yes... you'd not do .[] on hashes either.
they don't have an ordering in that sense.
__rnddim__ Alright. Off to fix * indices. 22:14
__rnddim__ thinks of how he REALLY needs to read up on stuff... 22:15
masak jnthn: also, I discovered Proxy...
__rnddim__ no longer wishes to be a beginner.
masak __rnddim__: one step at a time, that's the only way... :)
__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:16
jnthn masak: Yes, me too. ;-) 22:17
Then I (ab)used it to do hash.
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 (*).
jnthn: I immediately declared Proxy as my arch-enemy. 22:18
jnthn: I mean, I see what it's for, but I just... I dunno. it's pipes sticking out.
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.
masak __rnddim__: you should try the rush of having tests pass. :)
22:19 wanradt_ left
mberends lichtkind: perhaps a random hour-tuit or two per day for a week? 22:19
lichtkind mberends: terrorific :) 22:20
mberends :)
lichtkind mberends: i want finally close the gaps there
__rnddim__ or the sound deadlines make when they woosh by. :D 22:21
that's my favorite sound.
22:21 Guest8258 left
masak speaking of docs and deadlines, I've recently felt an urge to become really productive with the u4x contents. 22:21
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.
mberends the entire perllfoundation.org Perl 6 wiki needs tidying. all volunteers welcome.
masak __rnddim__: ...as opposed to...? :) 22:24
__rnddim__ GUI interfaces. 22:25
22:25 hercynium joined
__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
masak __rnddim__: I'm not sure .. in Range is broken. is it?
ng: say (1..5).perl
p6eval ng 5635e9: OUTPUT«1..5␤»
masak ng: say (1..*).perl
p6eval ng 5635e9: OUTPUT«1..*␤»
masak __rnddim__: seems to work. 22:27
__rnddim__ ng my @rray=[1,2,3];say @rray[0..*];
22:27 cognominal left
__rnddim__ ng my @rray=[1,2,3];say @rray[0..*]; 22:28
masak __rnddim__: ('ng: ')
__rnddim__ ng: my @rray=[1,2,3];say @rray[0..*];
p6eval ng 5635e9: OUTPUT«No applicable candidates found to dispatch to for 'postcircumfix:<[ ]>'␤current instr.: '!postcircumfix:<[ ]>' pc 306755 (src/gen/core.pir:39381)␤»
__rnddim__ just noticed that.
rakudo: my @rray=[1,2,3];say @rray[0..*];
mberends lichtkind: I'll do a bit as well. I plan to document Perlito (MiniPerl6) because it's compact and terrorifically fast.
p6eval rakudo 1d4928: OUTPUT«1 2 3Use of uninitialized value␤␤»
__rnddim__ pugs: my @rray=[1,2,3];say @rray[0..*];
p6eval pugs: OUTPUT«1 2 3␤»
__rnddim__ From what I understand, it should come out like pugs does.
masak thinks so
S09 has some wording on that. 22:29
__rnddim__ I'm there. Problem is, in the code, there are four infixes defined.
lichtkind mberends: excellent i wll mor finish my tuts and clean up some general pages
__rnddim__ '..', '..^', '^..', and '^..^'
__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
mberends lichtkind: lol 22:30
22:31 diakopter left
__rnddim__ wishes he didn't have to ask so many questions 22:32
masak __rnddim__: yes, all of those are separate operators. 22:33
__rnddim__: they just differ in whether they cut off the endpoints.
__rnddim__: I just saw recently how some Japanese Perl 6 users named the '^..^' one the 'neko operator'. ('neko' is Japanese for 'cat'.)
cognominal __rnddim__, the underscores in your nick are a pain on the eyes :(
__rnddim__ Sorry. I use to have rnddim, but I forgot the password to that... :) 22:34
just a second...
cognominal that's incredible how little insignficant things can be so bothersome 22:35
22:35 __rnddim__ is now known as lue
cognominal lue++ 22:36
lue I'm now lue
I was __rnddim__. LUE stands for Life, the Universe, and Everything.
cognominal thx 22:37
lue welcome
22:37 masak left 22:39 Su-Shee left 22:43 diakopter joined 22:44 ChanServ sets mode: +o diakopter, diakopter sets mode: +v dalek
mberends gives regards to diakopter 22:44
diakopter tries to alcheme regards to tuits 22:45
22:46 lue left
lichtkind lue: and everything represents perl 6 ? 22:47
diakopter: need a good book on alchemy? 22:48
22:50 pnate joined 22:51 lue joined
lue blasted computer shut down on me >:( 22:51
Just wondering about indices. So does 0..5 say [0,5] (in interval notation), 0^..5 say (0,5], and so on?
22:53 eternaleye left
lue I've got noms to nom, see you guys soon! 22:54
cognominal lue, yes 22:58
or ]0,5] in French, which I find more mnemoic :)
*mnenonic 22:59
lichtkind mberends: so we discuss our atack plan later 23:04
what i quit don't get how american call people who enjoy using their brain nerds, shouldn't be it the other way around?
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
diakopter those Name-Callers! 23:08
23:10 patspam joined 23:13 dual left 23:14 meppl left 23:17 PacoLinux left, ruoso left 23:23 pmurias left 23:24 hercynium left 23:31 dual joined 23:35 am0c left 23:38 eternaleye joined 23:41 sjohnson sets mode: +o cognominal
lue noms nommed. thank you for the answer. 23:41
happy promotion cognominal! 23:42
23:42 arnsholt_ is now known as arnsholt
sjohnson hi guys 23:46
jnthn hi sj 23:47
lue hello.
jnthn *sjohnson even # missed, tab :-)
sjohnson :*]
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:49
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
lue: You type faster ;D 23:51
lue I typed less. Don't know about fast...
Then again, I used Mavis Beacon Teaches Typing when I was, what, 10 or 11.
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
I still hunt-and-peck. They tried to teach me keyboarding, but it never stuck
23:52 drbean joined
lue Has anyone seen the Periodic Table of the Operators for perl6? It's huge! www.ozonehouse.com/mark/periodic/ 23:56
23:57 quietfanatic left
jnthn lue: I've seen a nicely printed up copy of it once, even. :-) 23:58