»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo:, alpha:, pugs:, std:, or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend!
Set by lichtkind on 5 March 2010.
lue how do I get rid of an edit I've stashed? (git) 00:00
sorear Where can I get a copy of alpha? 00:02
00:11 takadonet joined
takadonet morning all 00:12
...
sorry force of habit.... good afternoon all
sorear What's to say it's not morning?
takadonet well my timezone is not morning :P
lue It's morning somewhere. What time is it there? 00:13
takadonet 7 p.m
lue 16 15 14 13 12 11 10 09 08 07 06 05 It's morning at around UTC+2 (leftmost is UTC-8) 00:14
jnthn sorear: It's just a branch 00:15
So you already have it
git checkout alpha
or maybe origin/alpha
sorear Ah. 00:17
lue If I've stashed changes to a file (git), how would I get rid of that changed file.
takadonet jnthn:do you ever sleep?
sorear yes, :(
he's asleep 90% of the time I'm hacking his pet project
makes communications a real bother
lue rakudo: say (24 * .9) 00:18
p6eval rakudo 63ff06: OUTPUT«21.6␤»
diakopter rakudo: 0 but last
p6eval rakudo 63ff06: OUTPUT«Warning␤Null PMC access in can()␤current instr.: 'parrot;P6protoobject;ACCEPTS' pc -1 ((unknown file):-1)␤»
lue are you implying he's assleep 22 hours a day? 00:19
diakopter phenny: tell masak rakudo: 0 but last
phenny diakopter: I'll pass that on when masak is around.
lue
.oO(I can't tell if the Apple Newton giveaway at ThinkGeek is real or not... I really hope it is!)
00:20
sorear wonders whether to expunge the PIR from Blizkost 00:22
jnthn sorear: Heh, you do know that I started Blizkost explicitly with the hope that others would pick it up and hack on it lots and make a better job of it than I could? :-)
takadonet time to hack some stuff on Perl 6 :)
step 1: get Padre updated
lue I guess I just git stash apply, delete the file, and hope git pull puts it back? 00:23
jnthn sorear: Curious - replace it with...NQP?
Tene with... grapes?
jnthn ...no, there are more useful things to do with grapes.
lue with... the help of the 楽土 die() * ?
Tene Ah, replace the PIR with curry! 00:24
jnthn
.oO( .assuming )
takadonet: I do try to sleep, but I've mostly failed this week. :-/ 00:25
takadonet jnthn: Well as long as you are working on Perl 6, I'm happy :)
jnthn: WIll buy you a few beers the next time I'm in Europe 00:26
sorear jnthn: Yes, rewrite perl5.pir in NQP
jnthn in theory went to bed in time for 6-7 hours sleep last night. In reality, lay awake for ages, slept 3 hours and made heavy use of his client's coffee machine this morning ahead of his meeting with them.
takadonet: \o/
sorear wonders if jnthn has even been following the latest blizkost changes
jnthn sorear: Works for me. :-)
lue what is a good hex editor for the command line? 00:27
sorear tweak
lue >tweak jnthn
C0 FF EE A3 90 32
O.o
jnthn sorear: I do read the commits, but invariablity with some lag. 00:28
sorear: I've not had any "omfg" moments yet. :-)
sorear: Though my lack of p5 guts knowledge (esp magic) has made following a little tricky of late. ;-) 00:29
lue I have the feeling signing up at github will _not_ give me a rakudo commit bit :)
takadonet .... my padre crashes now! 00:31
takadonet starts to cry
jnthn sorear: Just read the ones from yesterday too. I'm just confused on:
$mw.Label(-text => 'Hello, world!').pack;
Don't think nqp supports the "-" there...
nqp: my $mv; $mw.Label(-text => 'Hello, world!').pack; 00:32
p6eval nqp: OUTPUT«Symbol '$mw' not predeclared in <anonymous>␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
jnthn nqp: my $mw; $mw.Label(-text => 'Hello, world!').pack;
p6eval nqp: OUTPUT«Method 'Label' not found for invocant of class 'Undef'␤current instr.: '_block11' pc 0 (EVAL_1:6)␤»
jnthn oh
I'm wrong.
std: my $mw; $mw.Label(-text => 'Hello, world!').pack;
00:32 sundar left
p6eval std 30265: OUTPUT«ok 00:01 109m␤» 00:32
jnthn rakudo: my $mw; $mw.Label(-text => 'Hello, world!').pack; 00:33
p6eval rakudo 63ff06: OUTPUT«Method 'Num' not found for invocant of class 'Pair'␤current instr.: 'perl6;Mu;' pc -1 ((unknown file):-1)␤»
jnthn oh.
I feared so.
sorear: -text => 'Hello, world!' is parsing as -(text => 'Hello, world!') 00:34
lue While all the other implementations would generate a bunch of 200's, Rakudo is proud to generate more 501's than anybody else :)
00:36 Chillance left
jnthn lue: Yeah, sometimes we fail too hard. :-) 00:42
lue almost as bad as a 404, except then you don't know where to place the blame. 00:43
jnthn Hmmm...I think I like that option. ;-) 00:46
lue where are things like 'and' and 'or' implemented in Rakudo? I want to find a place to put andthen and orelse.
jnthn Well, those two are done iirc with support from having PAST nodes that they map to quite nicely. 00:47
That may not be the case for andthen and orelse.
Well, probably isn't.
So they'll take a bit more effort.
lue I have to get into the PAST? Blech, I was hoping to place it in Grammar.pm :)
jnthn See Grammar.pm for how and and or are parsed. 00:48
Yeah, but you kinda need to give them some semantics as well as parse them. :-P
00:48 yinyin joined, xabbu42 left
sorear jnthn: Oh? :/ 00:48
nqp: sub foo(*%args) { print %args }; foo(x => 2) 00:49
p6eval nqp: OUTPUT«Multiple Dispatch: No suitable candidate found for 'modulus', with signature 'PPP->P'␤current instr.: 'foo' pc 29 (EVAL_1:0)␤»
sorear ...what
lue rakudo: multi sub infix:<orelse> ($a,$b) {if $a { return $a;} else { return $b;};}; say (0 orelse 1) 00:51
p6eval rakudo 63ff06: OUTPUT«1␤»
lue done :)
rakudo: multi sub infix:<orelse> ($a,$b) {if $a { return $a;} else { return $b;};}; say (0 orelse 0 orelse 1)
p6eval rakudo 63ff06: OUTPUT«1␤»
jnthn sorear: print(%args)
lue rakudo: multi sub infix:<orelse> ($a,$b) {if $a { return $a;} else { return $b;};}; say (0 orelse 0 orelse 2)
p6eval rakudo 63ff06: OUTPUT«2␤»
sorear nqp: sub foo(*%args) { print(%args) }; foo(x => 2)
p6eval nqp: OUTPUT«Hash[0xfc987f10]»
lue rakudo: multi sub infix:<orelse> ($a,$b) {if $a { return $a;} else { return $b;};}; say (0 orelse 1 orelse 2)
p6eval rakudo 63ff06: OUTPUT«1␤»
jnthn lue: yeah but iirc you need to thunk it.
sorear nqp: sub foo(*%args) { print(%args.keys) }; foo(x => 2)
p6eval nqp: OUTPUT«Method 'keys' not found for invocant of class 'Hash'␤current instr.: 'foo' pc 29 (EVAL_1:0)␤»
sorear nqp: sub foo(*%args) { print(%args<x>) }; foo(x => 2) 00:52
p6eval nqp: OUTPUT«2»
sorear nqp: sub foo(*%args) { print(%args<x>) }; foo(-x => 2)
p6eval nqp: OUTPUT«too many positional arguments: 1 passed, 0 expected␤current instr.: 'foo' pc 37 (EVAL_1:0)␤»
lue thunk it?
sorear nqp: sub foo(*%args) { print(%args<x>) }; foo('-x' => 2)
p6eval nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near "> 2)"␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤»
sorear How do I form a named argument pair with a dahs
jnthn: Anyways, I don't actually have get_exports working, which is the last significant roadblock to binding POSIX, Tk, CGI, and other modules which you can use without subclassing to Parrot 00:53
00:54 cotto joined
sorear Making stuff like Bot::BasicBot work requires subclassing across HLL boundaries 00:54
which is slightly less trivial
jnthn sorear: Not sure how you can do that too easily in NQP yet...it came up recently ish...forget the solution.
Or workaround.
sorear: Well, getting those working is a good start. :-) 00:55
lue what is the process of thunking?
jnthn It gets a whole load of CPAN available. Currently none of it is.
lue: consider: if foo() || bar() { ... }
Here if foo() is true then bar() doesn't get run
So it's more going on that just a multi dispatch to infix:<||>
lue Then I must've read the spec on orelse wrong 00:56
I thought that was the point.
jnthn Well, I"m rather tired too :-) 00:57
Hmm...probably I should sleep
Or I might sleep past my train tomorrow. Which would suck.
lue Orelse is proceed on failure, so...
night jnthn o/ (it's 3am already?) 00:58
jnthn lue: Right, so you need to have the RHS only being if there's a failure
Yes, 3am! O-O
night o/
lue rakudo: multi sub infix:<orelse> ($a,$b) {if $a { return $a;} else { return $b;};}; say (1==2 orelse 2<1 orelse 3==3) 00:59
p6eval rakudo 63ff06: OUTPUT«0␤»
takadonet how do your read a file in the 'lazy' way ?
lue afk 01:01
sorear takadonet: hopefully, we won't 01:07
takadonet ?
sorear lazy file reading is a Bad Idea 01:08
been there, done that, got the headaches
takadonet sorear: using $fh.get is the 'lazy' way 01:09
does not read the whole file at once
01:17 jaldhar left 01:21 elmex left, flity joined 01:33 quietfanatic left 01:36 justatheory left, jferrero left 01:41 mikehh left 01:44 colomon joined 01:46 cotto left 01:48 jaldhar joined 01:50 cotto joined 01:55 Psyche^ joined 01:57 charsbar joined 01:58 cotto_work left 01:59 Patterner left, Psyche^ is now known as Patterner
lue rakudo: multi sub infix:<orelse> ($a,$b) {say ($a,$b).join("\n"); if $a { return $a;} else { return $b;};}; say (1==2 orelse 2<1 orelse 3==3) 02:04
p6eval rakudo 63ff06: OUTPUT«2␤2␤0␤»
lue that's it, orelse has no precendence 02:05
*defined
rakudo: multi sub infix:<orelse> ($a,$b) {say ($a,$b).join("\n"); if $a { return $a;} else { return $b;};}; say ((1==2) orelse (2<1) orelse (3==3))
p6eval rakudo 63ff06: OUTPUT«0␤0␤0␤1␤1␤»
lue where would pasttype's be defined? 02:10
I have the feeling properly implementing orelse/andthen will require my first trip into 楽土's deep magic :) 02:15
02:18 flity left 02:19 flity joined 02:23 JimmyZ joined 02:26 justatheory joined, bwk joined 02:30 elmex joined
bwk 02:31
/bye
02:31 wknight8111 left 02:33 bwk left 02:34 JimmyZ left 02:42 slavik left 02:53 justatheory left 02:59 justatheory joined 03:03 justatheory left 03:09 justatheory joined 03:14 justatheory left 03:21 gfx joined
lue afk 03:28
03:30 stephenlb left 03:33 simcop2387 left 03:35 meppel joined 03:39 meppl left 03:40 justatheory_ joined, ash_ joined 03:42 justatheory_ is now known as justatheory 03:46 simcop2387 joined 04:08 wormwood joined 04:34 cotto_work joined 04:36 rgrau left 04:48 meppel left 05:00 bwk joined
sorear jnthn: Tiiiiiny problem 05:02
jnthn: NQP doesn't support POD5 05:03
s/POD5/POD/ 05:06
it supports a tiny subset of POD6 which is not compatible with perldoc
lue NQPOD ? 05:07
sorear for it to be called NQPOD, you would have to be able to write documentation in it 05:09
lue NQNQPOD then :)
What's the difference between NQP and P6? Why is it "Not Quite"? (I can guess, but specifics would be nice :) ) 05:15
sorear "Declarator Pod blocks must either precede or immediately follow a valid Perl 6 declarator,"
lue: NQP is stripped down to the point where one person can implement it without going insane 05:16
lots of varied features are removed
like the assignement/binding distinction
and user-defined operators
and non-parenthetized functions
and junctions
and the entire setting (use inline PIR for I/O) 05:17
05:17 ash_ left
sorear and the explicit metamodel 05:17
lue Nice summary of P5, but I asked for NQP :D
05:18 ash_ joined
lue seriously, after saying it like that, it seems more like P5 :) 05:18
sorear NQP is like P5 done right
NQP is what Larry should have created in 1993 or whatever
P6 is a 2010 programming language
maybe later 05:19
(also, minor nit but P5 does have the assignment/binding distinction and non-parenthetized functions) 05:20
"Declarator Pod blocks must either precede or immediately follow a valid Perl 6 declarator," <- how I love ambiguous specifications 05:21
EITHER specifiy before
OR after
oh, it explains three pages down 05:22
lue xor-ing is so annoying. What if I want to pick both? :( 05:27
05:30 ash_ left
lue
.oO(It is sooo annoying trying to see the 4th dimension. But it's going to be worth it!)
05:31
05:39 xinming left 05:43 flip214 joined
flip214 hi 05:44
sorear For example, at the start of a ShiftJIS encoded file you can specify C<=encoding ShiftJIS> in the ShiftJIS encoding. 05:48
^^^ actually, the ASCII subset of ShiftJIS is compatible with UTF-8 05:49
flip214: hi
05:51 xinming joined 05:58 bwk left 06:00 bwk joined
bwk \help info 06:00
06:01 bwk left 06:02 bwk joined, bwk left
lue night 06:13
06:14 bwk joined
bwk /who #perl6 06:15
06:15 bwk left 06:18 justatheory left
spinclad rakudo: multi sub infix:<orelse> ($a is thunk, $b is thunk) { return $a() || $b() }; (say 0) orelse (say 1) orelse (say 2); 06:20
p6eval rakudo 63ff06: OUTPUT«0␤1␤invoke() not implemented in class 'Boolean'␤current instr.: 'infix:<orelse>' pc 255 (EVAL_2:86)␤»
spinclad rakudo: multi sub infix:<orelse> ($a is thunk, $b is thunk) { return $a() || $b() }; {{say 0} orelse {say 1}} orelse {say 2}; 06:22
p6eval rakudo 63ff06: OUTPUT«0␤»
spinclad rakudo: multi sub infix:<orelse> ($a is thunk, $b is thunk) { return $a() || $b() }; say {{say 0} orelse {say 1}} orelse {say 2};
p6eval rakudo 63ff06: OUTPUT«0␤1␤»
spinclad rakudo: multi sub infix:<orelse> ($a is thunk, $b is thunk) { return $a() || $b() }; sub spit($a) { say $a; $a }; say {{spit 0} orelse {spit 1}} orelse {spit 2}; 06:24
p6eval rakudo 63ff06: OUTPUT«0␤1␤1␤»
spinclad 'is thunk' seems to be ignored (see first try)... 06:25
hmm.. 06:26
rakudo: multi sub infix:<orelse> ($a is thunk, $b is thunk) { return $a() || $b() }; sub spit($a) { say $a; $a }; say (spit 0) orelse (spit 1) orelse (spit 2); 06:27
p6eval rakudo 63ff06: OUTPUT«0␤1␤invoke() not implemented in class 'Integer'␤current instr.: 'infix:<orelse>' pc 297 (EVAL_2:98)␤»
spinclad rakudo: multi sub infix:<orelse> ($a is thunk, $b is thunk) { return $a() || $b() }; sub spit($a) { say $a; $a }; say (spit 1) orelse (spit 0) orelse (spit 2); 06:28
p6eval rakudo 63ff06: OUTPUT«1␤0␤invoke() not implemented in class 'Integer'␤current instr.: 'infix:<orelse>' pc 297 (EVAL_2:98)␤»
sorear attempts to modify NQP to skip *all* POD6 06:41
06:52 eiro joined, eiro left, eiro joined, eiro left, eiro joined 06:55 justatheory joined 06:58 hercynium left 07:04 justatheory left 07:07 rgrau` left 07:12 Trashlord left 07:38 am0c left 07:47 jjore joined 07:49 jjore left, jjore joined 07:56 flip214 left 08:13 iblechbot joined 08:21 asits joined 08:23 asits left, Su-Shee joined 08:28 pmurias joined 08:29 M_o_C joined 08:36 skyler__ joined 08:39 skyler_ left
snarkyboojum how'd you with that sorear? :) 08:48
sorear All I know so far is that P6regex hates ma 08:55
me
snarkyboojum hugme: hug sorear 08:57
hugme hugs sorear
sorear It's not working and not telling me why not. 08:58
So I'm shotgun debugging.
With 10 minute compile delays.
Confused at line 34!
and it doesn't even tell me what *rules* are casuing the problem
snarkyboojum :( 08:59
sorear I suppose nobody in this room understands NQP-rx well enough to spot bugs
snarkyboojum certainly not me 09:01
sorear PCT needs a debugger
09:04 jaffa4 left 09:05 jaffa4 joined, jhuni joined
pmurias ruoso: hi 09:14
09:15 xinming left 09:17 proller left 09:18 proller joined
jnthn morning 09:20
sorear jnthn: do you understand p6 rules at all
jnthn Yes. 09:23
sorear pastie.org/900073 pastie.org/900074 pastie.org/900075
jnthn Rakudo's grammar is written in them. :-)
sorear I am absolutely stumped
I'm trying to add pod support to NQP
my modified rules compile 09:24
however, I'm still getting "Completely generic parse error" while trying to parse valid POD6
sorear waits for jnthn to change his mind about knowing anything 09:26
jnthn Didn't say I know anything about POD. :-P
sorear You don't have to
09:26 mberends left
sorear However, the new pod_comment rule I added doesn't work 09:27
I have no idea why and PCT won't tell me
All other tests pass
except the new ones I added
jnthn assertion on line 52 through 56 - is the whole lot meant to be in a lookahead? 09:29
sorear Which line is 52 09:30
my line 52 is: [
If that's in a lookahead, then no
jnthn in pastie.org/900073
09:30 Trashlord joined 09:31 gfx left
sorear hmm, nopaste did a number on that file 09:31
Yes, I meant to put that entire block in a lookahead.
jnthn OK 09:32
sorear A 6POD block without begin/end cannot contain another block; it ends before the next = line
Did I phrase that into regex correctly
(sorry, I'm frustrated)
jnthn So for this:
=for comment blah
say ("ok 5");
oops, there's a line-break between then. 09:33
Is it the blank line that terminates the directive?
sorear the blank line terminates the comment, and the say is executed as code
yes
line 56 - ^^ \h* \n can postterminate the directive 09:34
jnthn As a debugging thing, on: 09:35
| <identifier>
Try putting:
| <identifier> { pir::say('got here') }
To check that we're actually falling onto this rule
I think there's maybe also a <?DEBUG> that turns on some tracing.
The casue doesn't jump out at me right away, though...after going over that bit it doesn't look obviously wrong. 09:36
09:36 rbaumer joined
sorear recompiles 09:37
I added <?DEBUG> at the beginning of comp_unit
jnthn Oh, maybe just wants to be <DEBUG> 09:38
Looking at the source, <DEBUG(1)> can turn it on, <DEBUG(0)> can turn it off. 09:39
And <DEBUG> alone turns it on.
Buttom of github.com/perl6/nqp-rx/blob/master...iltins.pir
sorear Apparently it worked anyway, because the bootstrap process is generating an enormous amount of spam
jnthn :-) 09:40
mathw o/ 09:41
jnthn o/ mathw
mathw jnthn: have you discovered the real heating controls yet? 09:42
jnthn mathw: :-P 09:43
Akshually not.
mathw :) 09:44
I picked up that tweet just after aikido last night
sorear Yay, instead of NQP giving me /no/ information on why it refused to parse
I now have 1,642 lines of tracage
mathw and cracked up in front of the instructors :)
I know it's mean, but it's very funny 09:45
Trashlord sup dudes 09:46
09:48 MAK_ joined
MAK_ hello 09:49
sorear HELLO
MAK_ github.com/masak/yapsi is this is a rakudo fork
sorear no
it's like pypy 09:50
it runs ON rakudo
MAK_ spec complete implementation?
jnthn mathw: Heh, it was one of those moments that was kind "wtf" enough to share. :-)
sorear MAK_: Spec complete implementations don't exist and won't for at least five years
The P6 spec is *huge*
MAK_ 5 years?????
sorear More likely 10
jnthn sorear: Heh. I think we're aiming for a bit less than that. :-) 09:51
MAK_ Socking news
shocking
sorear jnthn: Christmas will be far sooner, yes
jnthn sorear: Where did you hear that, or is that your own opinion?
sorear but it will be a long time before all the obscure corners of the spec are implemented in a single compiler
MAK_ perl 7 will need to be planned if perl 6 takes another decade to make a spec complete release 09:52
sorear Christmas could be as early as next year
jnthn sorear: Well, according to S01, it'll be somewhat driven by when there's a viable release that's useful. :-)
MAK_ seriously will it take 10 years?
sorear MAK_: I don't think you grasp the magnitude of what "spec complete" means 09:53
MAK_ No i got it, the spec is always a moving target
so by that definition there is nothing like 'spec complete'
jnthn Everything in the spec that nobody has implemented yet should be considered conjectural for 6.0.0 anyway. 09:54
MAK_ What I meant was that at some point the spec it self will freeze for some time and the implemetation will match it. called rakudo 1.0
sorear MAK_: The spec is 1.25 megabytes of plain text
MAK_ will that take 10 years
sorear this thing makes the C++ spec look like a leaflet
jnthn mathw: I think that'll be rather sooner than 10 years.
er
MAK_: ^
sorear If the spec were frozen *right now* it wouldn't be fully implemented for many years to come 09:55
MAK_ The spec can even 1.25 GB if it isnt frozen
sorear It's 2010, do you know how many compilers fully implement C++ 1999?
0. 09:56
pmurias sorear: have you seen the c++ spec?
MAK_ :(
sorear pmurias: yes, it's shorter than the perl one
MAK_ no
why the hell then people look at perl and C++ with different standards
sorear the C++ spec is 1,300 pages of precisely specified legalese 09:57
the Perl spec is 40,000 lines of dense and ambiguous prose
MAK_ no my question was regarding a release named 6.0.0 wil that take 10 years? 09:58
sorear 6.0.0 will not be spec complete
MAK_ that is ok
sorear large parts of the spec will be rechristened future plans
MAK_ but will 6.0.0 take 10 years?????
sorear 6.0.0 will probably come in '11 or '12
no
the first feature complete 6 will take 10 years
or more
that's like 6.28.0 09:59
perl 6 has a lot of features
go read the synopses
all of them
in order
MAK_ well as you said I understood, we are speaking achieving a very ambitous aim
sorear you'll be back sometime in may
MAK_ for?
ok
got it
sorear well, assuming you do nothing other than read and don't return until you finisjh
MAK_ I never questioned the magnitude of the job 10:00
but if its really so huge, how do people managed to stay focussed on it for so long?
sorear in that case, you greatly overestimate our manpower
we have lesser milestones
colomon rakudo: say (+"2i") 10:01
p6eval rakudo 63ff06: OUTPUT«2␤»
sorear the most important of which is codename "Christmas", when implemented perl 6 becomes better than 5
MAK_ But 6.0.0 by 2011 is perfectly acceptable
the '10 years' thing kind of shocked me for a moment 10:02
pmurias MAK_: where did you get that estimate?
sorear Me
MAK_ was asking how long it would take for every single word in docs/Perl6/Spec/*.pod to be implemented 10:03
I said, very optimistically, 10 yearxs
MAK_ This is also means yapsi is only as complete as rakudo 10:06
pmurias yapsi is less compelete then rakudo
MAK_ always
sorear yapsi *just started*
jnthn -> train station + 5 hour journey 10:07
sorear and you expect it to implement all 194,000 words of the spec?
10:07 Trashlord left
jnthn (but maybe wifi on train) 10:07
colomon god traveling
10:07 clintongormley joined
colomon *good 10:07
though that's an interesting typo
MAK_ How of spec will 6.0.0 of 2011 will cover? atleast 70%? 10:08
sorear Why do you care? 10:09
MAK_ hmmm
ok then leave it
moritz_ good localtime() everybody
colomon o/
10:12 yinyin left
mathw o/ moritz 10:14
10:14 jferrero joined
colomon rakudo: say 10 || 9 10:14
p6eval rakudo 63ff06: OUTPUT«10␤»
colomon rakudo: say 10 !!|| 9
p6eval rakudo 63ff06: OUTPUT«1␤»
moritz_ rakudo: say 1 !|| 3 10:15
p6eval rakudo 63ff06: OUTPUT«0␤»
moritz_ colomon: do you have any idea how to get reduce of chained ops working? 10:16
colomon moritz_: I don't know that I know how to do it correctly. 10:17
but we could chain it by hand easily enough.
pmurias how can type inference be tested?
colomon moritz_: we just have to be a lot smarter in how we handle things with [op]
sorear jnthn: The super obvious thing I was missing? You can't have a space between function and ( in NQP. 10:18
moritz_ colomon: my idea was: check if op is %chaining, and if yes, dispatch to a different reduce method
sorear: same in Perl 6
colomon moritz_: I think we might do well to move everything to a different reduce method. :) 10:19
pmurias adding a INFERED_TYPE_IS($expression,"internal type description") seems to be a solution
colomon is %chaining always a serious of boolean comparisons?
moritz_ pmurias: well, by writing test cases. Only that it can't be normal Perl 6, because it's not specced
right, that should help
colomon: chaining associativity implies that $a op $b op $c is the same as ($a op $b) && ($b op $c) 10:20
colomon we can certainly work with that.
moritz_ so, how do I ask in the action method if an op has chaining assoc? 10:21
colomon goes looking... 10:22
moritz_ goes backlogging 10:23
colomon jnthn may have picked an awkward time to go on a train. :)
10:24 MAK_ left
sorear .*? still means as little as possible, right? 10:25
moritz_ sorear: yes. 10:26
sorear: but beware, tokens don't backtrack
so .*? never matches anything inside a token
sorear: re POD parsing, it might be worth looking at how STD.pm does it 10:27
sorear I'm suprised this is working at all, then
.*? in a token is matching /too much/
moritz_ wow
sorear Where does STD live
moritz_ rakudo: our token a { .*? }; say 'foo' ~~ /<a>/ 10:28
p6eval rakudo 63ff06: OUTPUT«Method 'a' not found for invocant of class 'Regex;Cursor'␤current instr.: '_block63' pc 625 (EVAL_1:243)␤»
sorear token pod_comment {
^^ \h* '='
[
| 'begin' \h+ 'END' >>
[ .*? \n '=' 'end' \h+ 'END' » \N* || .* ]
| 'begin' \h+ <identifier>
moritz_ sorear: pugs repo
sorear [
|| .*? \n '=' 'end' \h+ $<identifier> » \N*
|| <.panic: '=begin without matching =end'>
]
| 'begin' » \h*
[ $$ || '#' || <.panic: 'Unrecognized token after =begin'> ]
[
moritz_ svn.pugscode.org/pugs/src/perl6/STD.pm
sorear || .*? \n \h* '=' 'end' » \N*
|| <.panic: '=begin without matching =end'>
]
| <identifier>
.*? <?before ^^ \h* [
'='
[ 'cut' »
pmurias sorear: nopaste
sorear <.panic: 'Obsolete pod format, please use =begin/=end instead'> ]? 10:29
| \n ]>
|
[ \s || <.panic: 'Illegal pod directive'> ]
\N*
]
}
pmurias nopaste: paste.lisp.org/new/perl6
sorear pmurias: I nopasted, then attempted to copy the URL, failed, and pasted the wrong thing 10:30
(I'm suprised nobody kicked me)
10:30 MAK_ joined
sorear pastie.org/900118 10:30
this is what I meant to paste
moritz_ was not fast enough to kick
sorear needs an IRC client with better flood control 10:31
moritz_ recommends irssi
sorear is using irssi
moritz_: that nopaste ^^ is my current rule 10:32
moritz_ wow, my irssi has flood control
sorear my irssi has flood control. that's why I said "better"
to my knowledge irssi has no command to retroactively stop a paste
moritz_ ok :-)
sorear I meant to paste text, so I confirmed (not reading enough of the message to see the "29 lines" bit) 10:33
Can I feed newlines into p6eval 10:35
STD.pm appears to not support general-case abbreviated Pod, either 10:36
moritz_ rakudo: say1
p6eval rakudo 63ff06: OUTPUT«Could not find sub &say1␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
moritz_ rakudo: say 1
p6eval rakudo 63ff06: OUTPUT«1␤»
moritz_ rakudo: say 1;␤say 2 # p6eval converts the ␤ # into a newline 10:37
p6eval rakudo 63ff06: OUTPUT«1␤2␤»
sorear std: =begin comment␤=end comment 10:38
p6eval std 30265: OUTPUT«ok 00:01 107m␤»
sorear std: =for comment␤=begin comment␤=end comment␤SYNTAX ERROR
p6eval std 30265: OUTPUT«ok 00:01 105m␤»
sorear std: SYNTAX ERROR
p6eval std 30265: OUTPUT«Undeclared names:␤ 'ERROR' used at line 1␤ 'SYNTAX' used at line 1␤ok 00:01 106m␤» 10:39
sorear std gets it wrong
10:39 MAK_ left
sorear moritz_: do you see what's wrong here? 10:41
moritz_ sorear: I'm not familiar with the current POD format at all 10:42
sorear moritz_: this isn't a pod challenge 10:43
03:38 < sorear> std: =for comment␤=begin comment␤=end comment␤SYNTAX ERROR
^^^ this input should be parsed as 2 pod comments followed by an uncommented line
however, my NQP rules don't work correctly
.*? is being greedy and is eating the entire paragraph, instead of stopping at ^^ = 10:44
moritz_ rakudo: say 'a' ne 'b' 10:46
p6eval rakudo 63ff06: OUTPUT«1␤»
colomon moritz_: look at copyO in Grammar.pm. That shows how to fetch the O value. 10:47
sorear who are the P6 rules experts around here
I don't need pod 10:48
jnthn sorear: If you odn't need it, then I suggest not trying to implement it. :-) 10:49
jnthn has slow net access on the train
colomon jnthn: \o/
jnthn sorear: If you're trying to go beyond what STD does, then maybe better to let STD work it out first. :-) 10:50
I think S26 maybe generally needs some tweaking yet too.
colomon: Just pondering how you can go introspecting the Os from the grammar...if there's a way to do that. 10:51
sorear ok, I'll just TODO the test
colomon looks to me like you do that in copyO?
jnthn Well, yes, but that's from within the grammar. 10:52
Whereas I guess you want to do it at runtime?
In the grammar we just parsed it, so have access to it in the syntax tree...
moritz_ just added a ton of prefix:<[+]>() { 0 } subs to the setting, see if it works...
jnthn moritz_++
colomon moritz_: you shouldn't need the [ ] in there. 10:53
moritz_ colomon: oh, you're right
jnthn likes how this train has inclusive coffee :-)
sorear patch generated, time to track down the NQP czar 10:54
colomon jnthn: we want access to it from prefix_circumfix_meta_operator:sym<reduce>, I think.
10:55 opx^on joined
sorear the github remote is "perl6" 10:55
moritz_ sorear: it's pmichaud
jnthn colomon: Are you thinking we pass it as an adverb to reduce?
moritz_ suggested that
colomon jnthn: or call a different version of reduce, something like that.
moritz_ or maybe use a different reduce alltogether
sorear moritz_: should I sit on it until pmichaud's life has stabilized? 10:56
jnthn Ah, passing it along as adverb would be easy I guess.
sorear I found the CREDITS
moritz_ sorear: depends on the patch... if it seems obviously correct and non-intrusive, we might apply it without asking pmichaud 10:57
10:57 opx^on left
jnthn Aye. Generally I think we may have to not wait for pmichaud in some areas we normally would, if it's starting to block us too much. 10:57
10:57 opx^on joined
sorear moritz_: pastie.org/900148 10:58
does that count as obviously correct 10:59
moritz_ looks fine to me 11:02
11:02 snarkyboojum left
moritz_ somehow the patch doesn't apply here 11:03
colomon So, should [&&] short circuit?
moritz_ colomon: nope
jnthn colomon: no
sorear moritz_: corrupt patch?
moritz_ colomon: S03 mentions that [thing] is parsed as a normal listop, not macro-ish
sorear: maybe it's UTF-8 mess
sorear I blame pastebin
colomon k
moritz_ sorear: are your also 'sorear' on github? 11:04
sorear my normal fileserver is down now...
yes
moritz_ hugme: add sorear to nqp-rx
hugme hugs sorear. Welcome to nqp-rx!
sorear I could use github but it feels like such a waste for a one-off patch
moritz_ sorear: push it :-)
11:05 snarkyboojum joined
moritz_ > say infix:<+>() 11:09
0
> say infix:<*>()
1
however if I enable that for all operators, I get weird errors while compiling Test.pir
dalek p-rx: 31b97cc | sorear++ | (2 files):
Implement paragraph and abbreviated Pod comments

for the multiline declaration comment (left out on purpose, it's useless without a metamodel) and paragraph blocks which are terminated by the start of a delimited block (a corner case that STD fails too).
11:10
jnthn moritz_: Such as? 11:12
colomon moritz_: when compiling Test.pir? can you narrow it down to particular operators that cause the trouble? 11:13
moritz_ Method 'incorporate_candidates' not found for invocant of class 'MultiSub'
I suspect it happens when I try to add a multi that's not yet defined in Perl 6
testing this hypothesis now
jnthn moritz_: Yes, sounds like it. 11:14
moritz_: Sounds like it's a case of it already existing in PIR perhaps
moritz_ aye 11:16
I just comment them out 11:17
and for now only active those ops that are actually defined in Perl 6
jnthn wfm
11:17 xinming joined
jnthn Though we should also move those ones not defined in Perl 6 into being. 11:17
11:18 riffraff joined
clintongormley moritz_: thanks for the strace suggestion yesterday - it helped me figure out what was going wrong 11:18
moritz_ clintongormley: so, what was wrong? 11:19
clintongormley a child was exiting inbetween steps in LWP::Protocol::http, setting $! to a spurious value
so local'izing $! and %! in my reaper solved that
moritz_ evil action at a distance 11:20
we know why $! is not a global variable in Perl 6 anymore
clintongormley indeed!
moritz_ just like sub DESTROY { eval { # this resets $@ implicitly } } 11:21
clintongormley yeah
btw, how is performance in p6 these days? has it improved dramatically with rx? or not yet? 11:22
11:23 snarkyboojum left
dalek kudo: 1c57374 | moritz++ | src/core/metaops.pm:
implement 0-ary infix operators, to be used as the degenerated case by the reduce meta operator
11:23
moritz_ clintongormley: actually just yesterday there was a decent performance boost, due to some optimizations by parrot folks
bacek++
chromatic++
clintongormley oh yes - i saw a tweet about that, a 4 line change
nice :)
so could you compare it to p5 performance? as in 30% as fast a the equiv in p5 or something like that? 11:24
moritz_ it halfed time and memory usage of rakudo compilation
clintongormley wow!
moritz_ will, it's still orders of magnitudes slower
as in, typically takes about 100x of the Perl 5 code 11:25
clintongormley ok
i realise that you're not in the optimisation stage yet, but any ideas about the likely final outcome? eg it'll always be slower because it is doing more, but we expect to reach X 11:26
moritz_ I have no idea, actually
when parrot gets a decent JIT engine, much is possible
clintongormley ok
moritz_ but there's no way I could predict that
clintongormley whyever not? 11:27
don't ever let reality get in the way of predictions!
moritz_ :-)
colomon moritz_, jnthn: I'm working on a new reduce function specifically for [op]
moritz_ colomon++
jnthn colomon: Cool. 11:28
colomon: I guess the question is, should .reduce given an op know what to do with it just automatically or not...
Or should have have ot pass in adverbs to specify the assoc or chaining, etc.
moritz_ which boils down to the question: does a multi know its own associativity etc.? 11:29
jnthn Well, I guess it'd be done by traits.
But we don't implement protos sharing the love^Wtraits yet. 11:30
11:30 Chillance joined 11:36 masak joined
masak oh hai, #perl6! 11:36
phenny masak: 01 Apr 23:33Z <snarkyboojum> tell masak 'lid' is an awesome name for the coverage tool :)
masak: 00:19Z <diakopter> tell masak rakudo: 0 but last
masak rakudo: 0 but last
p6eval rakudo 63ff06: OUTPUT«Warning␤Null PMC access in can()␤current instr.: 'parrot;P6protoobject;ACCEPTS' pc -1 ((unknown file):-1)␤»
masak submits rakudobug
moritz_ rakudo: last
p6eval rakudo 63ff06: OUTPUT«Warning␤»
moritz_ std: 1 ?? 2 : 3
p6eval std 30265: OUTPUT«===SORRY!===␤Precedence too loose within ??!!; use ??()!! instead at /tmp/Wx3K3jQgcH line 1:␤------> 1 ?? 2 ⏏: 3␤ expecting an infix operator with precedence tighter than item assignment␤FAILED 00:01 109m␤»
masak \o/
a bit LTA, but much better than before. 11:37
moritz_ rakudo: 1 ?? 2 : 3
p6eval rakudo 63ff06: OUTPUT«Confused at line 11, near "1 ?? 2 : 3"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak rakudo: die "A"; CATCH { say "OH HAI" }; CATCH { say "OH NOES" }
p6eval rakudo 63ff06: OUTPUT«OH HAI␤»
masak std: die "A"; CATCH { say "OH HAI" }; CATCH { say "OH NOES" }
p6eval std 30265: OUTPUT«ok 00:01 106m␤»
masak what actually *does* happen when you have to CATCH blocks in a scope? 11:38
S04 only says that it's disallowed.
should it be a compile-time error?
moritz_ hopes so
masak s/to/two/
masak submits rakuodbug
jnthn masak: oh hai! 11:40
masak loljnthnonatrain! 11:41
moritz_ rakudo: say <a b c> Z (1, *)
p6eval rakudo 63ff06: OUTPUT«a1b!whatever_dispatch_helper␤»
masak rakudo: my $a; CHECK { $a = 42 }' 11:42
p6eval rakudo 63ff06: OUTPUT«Confused at line 11, near "CHECK { $a"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak rakudo: my $a; INIT { $a = 42 }'
p6eval rakudo 63ff06: OUTPUT«Confused at line 11, near "INIT { $a "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak submits rakudobug
moritz_ masak: there's a trailing ' in your input
masak argh.
rakudo: my $a; CHECK { $a = 42 }
p6eval rakudo 63ff06: OUTPUT«Null PMC access in getprop()␤current instr.: '&infix:<=>' pc 16888 (src/builtins/Junction.pir:228)␤»
masak rakudo: my $a; INIT { $a = 42 }
p6eval rakudo 63ff06: OUTPUT«Null PMC access in getprop()␤current instr.: '&infix:<=>' pc 16888 (src/builtins/Junction.pir:228)␤»
masak moritz_: thanks.
jnthn masak: Ja, jag är i tåget. :-) 11:43
masak: Men nu jag vill äta lunch. bbiab :-) 11:44
masak technically right to use 'i', but we use 'på' as to the Englishmen.
s/nu jag vill/nu vill jag/
jnthn ...you can explain why that last one when I arrive. :-)
masak (there's a rule that puts the predicate before the subject if the sentence starts with an adverbial)
jnthn ->> nomvagn
masak :)
moritz_ rakudo: my $x; say $x * 3 11:45
p6eval rakudo 63ff06: OUTPUT«0␤»
masak no warning?
moritz_ alpha: my $x; say $x * 3
p6eval alpha 30e0ed: OUTPUT«Use of uninitialized value␤0␤»
masak there we go.
masak submits regression rakudobug
moritz_ masak: there's already a ticket for it
for warnings with undefined values
masak then I won't submit one :P
moritz_ alpha: my $x; $x *= 4; say $x
p6eval alpha 30e0ed: OUTPUT«4␤»
masak s/as to/as do/
moritz_ rakudo: my $x; $x *= 4; say $x
p6eval rakudo 1c5737: OUTPUT«0␤»
moritz_ now that's a more interesting regression 11:46
rakudo: say infix:<*>()
p6eval rakudo 1c5737: OUTPUT«1␤»
masak moritz_: is there a ticket for the more interesting regression?
moritz_ masak: not that I'm aware of
masak submits one
I couldn't sleep last night. I laid up thinking about phasers. :/ 11:47
moritz_ Actions.pm line 2008 looks wrong to me 11:48
what if $<infix_prefix_meta_operator><sym> is something other than !?
masak write a test that makes it fail :P 11:49
moritz_ I guess that doesn't work easily, since we can't define custom infix_prefix_meta_operator's yet 11:50
oh
rakudo: say 3 R!= 3
p6eval rakudo 1c5737: OUTPUT«0␤»
moritz_ rakudo: say 3 R!= 4
p6eval rakudo 1c5737: OUTPUT«1␤»
moritz_ hm
rakudo: say 3 Z!= 4 11:51
p6eval rakudo 1c5737: OUTPUT«1␤»
moritz_ rakudo: say 3 Z!= 0 11:52
p6eval rakudo 1c5737: OUTPUT«1␤»
moritz_ rakudo: say 3 !!= 0
p6eval rakudo 1c5737: OUTPUT«0␤»
moritz_ rakudo: say 3 !!= 3
p6eval rakudo 1c5737: OUTPUT«1␤»
moritz_ givez up
still, this unconditional special-casing of infix:<!=> makes me uneasy 11:55
colomon moritz_: line 2008 is only supposed to trigger on that particular operator.
moritz_ colomon: yes, but independent of the meta op
11:56 payload joined
moritz_ if $metaop eq '!' && $opsub eq "&infix:<!=>" { 11:56
colomon moritz_: no, that factors in the meta op
moritz_ oh.
you're right
and I'm stupid :-)
11:58 payload left
colomon it is a weird special case, I admit. :) 11:58
11:58 payload joined
colomon and at least in theory, the grammar should handle it. But in practice, I needed to add the special case to make things work. 12:00
moritz_ i can see - it would take assignment operator and negate the result 12:01
12:03 snarkyboojum joined 12:05 envi^home joined, molaf joined
masak snarkyboojum: oh hai! 12:07
snarkyboojum masak: hello!
masak snarkyboojum: we had a successful first release yesterday! \o/
now there's a bit of a technical debt in the form of tests that should've been written for the runtime... :) 12:08
snarkyboojum masak: congratulations :) enjoyed the release email :) o/
masak thanks. :)
snarkyboojum ah yes - played with it a bit today - fun stuff 12:09
masak snarkyboojum: if you want some LHF, see if you can make the 'say' op go through an object with a .say method -- that'll help us mocking for the tests.
snarkyboojum what is missing in master to stop it from working there
masak: ok - will take a gander
masak don't know exactly what's missing in master, but I expect us to go with alpha for as long as GGE doesn't run on master. 12:10
snarkyboojum masak: ah - good point
masak snarkyboojum: I think making an $!output attribute and passing an object in with the constructor Runtime.new would be enough. 12:11
I plan to write up a more detailed roadmap for the coming month, thereby hopefully increasing the bus number by some fractions at least. 12:12
takadonet morning all 12:13
12:13 wknight8111 joined
masak takadonet: \o 12:13
12:13 payload left
masak well, time to go home and have lunch. see y'all tonight. 12:15
12:15 masak left, fda314925 left
takadonet rakudo: ??? 'Warning....' 12:16
p6eval rakudo 1c5737: OUTPUT«Stub code executed␤»
12:17 fda314925 joined 12:23 opx^on left
pugssvn r30266 | moritz++ | [t/spec] partially fudge reduce.t for rakudo 12:43
r30267 | moritz++ | [t/spec] unfudge a given test for rakudo
moritz_ rakudo: my $x = 3; say "foo \$x" 12:46
p6eval rakudo 1c5737: OUTPUT«foo \3␤»
moritz_ reports bug
12:48 payload joined 12:52 molaf left
snarkyboojum phenny: tell masak, not sure if you meant something like this re making the say 'op' go through an object with a .say method? gist.github.com/353097 12:54
phenny snarkyboojum: I'll pass that on when masak is around.
pugssvn r30268 | moritz++ | [t/spec] fudge identity.t for rakudo 12:55
r30269 | moritz++ | [t/spec] account for the fact that subs are lexical by default; fudge an integration test for rakudo
snarkyboojum rakudo: class A { method test($message) { say $message } }; A.new.test("hello") 12:59
p6eval rakudo 1c5737: OUTPUT«hello␤»
snarkyboojum rakudo: class A { method test($message) { say $message } }; my A $a .= new; $a.test("hello"); 13:00
p6eval rakudo 1c5737: OUTPUT«hello␤»
snarkyboojum rakudo: class A { method test($message) { say $message } }; my A $a .= new; $a.test "hello"; 13:01
p6eval rakudo 1c5737: OUTPUT«Confused at line 11, near "$a.test \"h"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
13:03 payload left, payload joined
moritz_ $a.test: 'hello' 13:04
snarkyboojum moritz_: thanks :) 13:05
13:05 envi^home left
m6locks happy easter y'all! :3 13:07
now it's time for sum sushi -> 13:08
PerlJam wonders how the Catalysty style of using sub foo : bar() baz() { ... } will be reconciled with the perl6y sub foo :bar() :baz() { ... }
Seems like it would be nice to get the perl5 folks to start leaning in a perl6 direction on that one 13:09
13:09 proller left
moritz_ PerlJam: nope, attributes will be replaced by 'sub foo is bar' 13:09
traits 13:10
13:10 proller joined, iblechbot left
snarkyboojum I really like that $a.test: 'hello' syntax 13:11
moritz_ masak does not :-)
PerlJam oh, that's right. I've been doing to much Perl 5 lately that I don't sufficiently context switch
moritz_ likes it, too
snarkyboojum the colon just seems to make so much sense, more natural to me :)
PerlJam s/to/too/
snarkyboojum oic
I've seen it in some of his code tho :) 13:12
13:12 envi^home joined 13:13 rgrau joined 13:16 meppl joined
dalek kudo: dd2043b | moritz++ | t/spectest.data:
we pass 4 more tests
13:22
colomon \o/ 13:23
jnthn Is that 4 more tests, or test files? :-) 13:24
moritz_ test files 13:25
jnthn \o/
takadonet how well do Grammar work in the current master branch? 13:27
moritz_ quite OK
proto regexes work! 13:28
takadonet ok, Having some trouble on some old code that worked before the NG branch was merged back into the master
moritz_ one thing that doesn't work in master is backslash escapes in character classes 13:29
PerlJam takadonet: show the code (and error) and maybe one of us can tell you where things go awry
takadonet PerlJam:I will as soon as I narrow down the bug little more. The application is over 4 files right now... 13:30
PerlJam takadonet++ I like that ... talking about a Perl 6 application :)
takadonet finally!
snarkyboojum anon subtypes in method signatures rock 13:32
jnthn :-) 13:33
Perl 6 signatures are generally pretty cool.
Ooh, there's snow here. :-D 13:34
(Well, outside the train.)
snarkyboojum was just reading "The Next Mainstream Programming Language" preso by Tim Sweeney, and he was talking about dependent types, and I thought - hey Perl 6 can do that.. I think that's how :)
jnthn Yeah. :-) 13:35
snarkyboojum too advanced ;)
jnthn Heh. Perl is all about taking cool things and getting mere mortals using them without realising it.
PerlJam the next mainstream programming language will do all the things that Perl 6 can do, but will it be Perl 6? 13:36
jnthn "I'm not currying! I just call .assuming!"
snarkyboojum hehe
partial function application? what's that?
13:42 arnsholt joined 13:44 synth joined, payload left
TimToady moritz_: .*? is supposed to work fine in a token, just as .*! does; in either case the greedy or frugal behavior overrides context 13:49
takadonet there is no debugger for parrot code is there? 13:52
moritz_ TimToady: ah, ok 13:53
29057 passing tests 13:54
jnthn moritz_: \o/
moritz_++
13:55 xabbu42 joined
moritz_ barely involved 13:55
lisppaste3 colomon pasted "Start of new reduce for [op]" at paste.lisp.org/display/97233 13:58
13:58 M_o_C left
TimToady takadonet: no, not yet; I think writing a debugger for parrot would involve several yaks. 13:58
colomon hey guys, I'm running around doing moving stuff for the next bit, but I got this far before I got distracted. This doesn't handle the new modifiers, but should do a pretty good job of handling the basic we handle now... (untested)
takadonet TimToady:indeed 13:59
moritz_ colomon: will take a closer look soon
TimToady in particular, being able to backmap reliably from bytecode position to source code position 14:00
14:00 wormwood_ joined
jnthn TimToady: The sad bit is that for a little while that actually worked reasonably. :-( 14:01
moritz_ jnthn: it seems the parrot folks are willing to work on the annotation stuff if they get a test case
jnthn Evidently I didn't write sufficient tests to make sure it kept working...was sure I'd written some though.
TimToady "reliably" :/
jnthn moritz_: Yeah, I'll have to look at how the tests I wrote last time around are and perhaps just add to those. 14:02
TimToady not sure the parrot introspection is up to snuff either
(for a debugger)
14:03 wormwood left
jnthn longs for the day that Rakudo has a .Net backend and he can debug Perl 6 in Visual Studio... 14:03
TimToady and you have to have better resolution of position than just line level
since you can have multiple statements on a line
jnthn TimToady: Yeah, the Parrot one can in theory handle column as weel 14:04
It's a general purpose bytecode annotaation system
Rather than just line and file.
You can stash all kinds in there.
14:04 arnsholt left
TimToady all you really need is file and position in file 14:04
line/column should be derivable from that 14:05
jnthn True.
TimToady however you care to define "line" and "column"
two users can, in fact, have different definitions
14:05 broquain1 is now known as broquaint
TimToady depending on how their editor counts them 14:06
but position is basic
assuming, of course, a reasonable definition of position :)
STD currently assumes precanonicalized Unicode, and positions of codepoints, as unpacked by "U* in p5 14:07
er, "U*" 14:08
anyway, STD doesn't track line numbers at all, it merely calls .lineof to get the actual line of a position when it needs to print a line number 14:09
seems to work out very well in practice
and it's *so* easy to miss a line transition while parsing 14:10
PerlJam TimToady: and .lineof rescans counting newlines? 14:14
TimToady no, just builds the table once on first use 14:15
doesn't take very long
jnthn ooh, time for a train change soon. 14:17
back later
14:18 pyrimidine joined
TimToady presumably if someone's editor uses a different line number scheme, that can be taken into account in .lineof 14:18
.u paragraph 14:19
phenny U+2029 PARAGRAPH SEPARATOR (
)
14:19 astrojp joined
TimToady that's almost certainly another line from the user's point of view, but I'll bet neither vim nor emacs thinks so 14:19
14:20 justatheory joined
TimToady yes, vim renders it as a space. :) 14:21
14:22 wknight8111 left
moritz_ rakudo: say [+] 4..445 14:26
p6eval rakudo dd2043: OUTPUT«99229␤»
14:26 wormwood joined
moritz_ I've implemented that in O(1) in rakudo locally, but I'm not sure if my multi is actually called :-) 14:27
14:29 wormwood_ left
moritz_ hm, it's not :( 14:30
14:32 jaldhar left 14:35 nihiliad joined 14:51 molaf joined 14:52 REPLeffect joined
diakopter rakudo: say || () 14:56
p6eval rakudo dd2043: OUTPUT«␤»
14:59 kcwu_ left, mberends joined 15:02 kcwu joined, jaldhar joined
colomon moritz_: did you get a chance to look at that code? 15:04
TimToady std: my $a; CHECK { $a = 42 }'
p6eval std 30269: OUTPUT«===SORRY!===␤Missing punctuation (semicolon or comma?) after block at /tmp/7poTgRn7qh line 1:␤------> my $a; CHECK { $a = 42 }⏏'␤ expecting any of:␤ POST␤ bracketed infix␤ horizontal whitespace␤ infix or meta-infix␤ postfix␤
.. postfix_prefix_me…
TimToady hmm
another one of those SLTA messages that probably isn't worth fixing 15:05
diakopter S[lightly|uper] 15:06
15:06 molaf left
TimToady slightly in this case 15:10
an extra ' right there is not the usual failure mode in the typical program 15:11
in a sense, the syntax error occurs before it ever tries to parse the ' as a term 15:14
because the check to see if there's more on the line after }, and whether it's a valid continuation, is a lookahead from the } 15:15
15:15 arthur-_ joined
PerlJam The error message is awesome-enough for now I think :) 15:15
TimToady "something there, I don't recognize it, therefore there should have been punctuation"
diakopter std: my $a; CHECK { $a = 42 }{} 15:16
p6eval std 30269: OUTPUT«ok 00:01 107m␤»
diakopter subscript
TimToady postfixes
std: my $a CHECK { $a = 42}.foo 15:17
p6eval std 30269: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/68K3fpdpBj line 1:␤------> my $a ⏏CHECK { $a = 42}.foo␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤ trait␤FAILED 00:01 107m␤»
TimToady hmm, or not...
oh
duh
PerlJam heh
TimToady std: my $a; CHECK { $a = 42}.foo
p6eval std 30269: OUTPUT«ok 00:01 107m␤»
PerlJam those pesky semis
15:22 snarkyboojum left 15:27 lichtkind joined
lichtkind jnthn: thanks i found out that prompt works exactly like ask, si i will make an alias 15:28
since i think ask is a much nicer name and shorter
and fits better to say
15:33 arnsholt joined 15:34 jhuni left 15:35 ash_ joined 15:36 M_o_C joined
pmurias ruoso: ping 15:38
15:44 Jedai joined
moritz_ colomon: notreally 15:50
ash_ www.youtube.com/watch?v=jl9HVEJl_-w is an interesting video, its a visualization of the commits to perl, the beginning is funny how larry is the one running around all the branches and so many others come and go 15:53
15:56 iblechbot joined 16:00 ggoebel joined 16:07 cotto_work left, cotto_work joined 16:08 mikehh joined
colomon moritz_: okay, I'm working on it in bits and pieces between running out on errands. :) 16:08
16:20 arthur-_ left 16:23 opx^on joined 16:24 xinming left, riffraff left 16:26 jaldhar left
pugssvn r30270 | lwall++ | [STD] SMA message on strange stuff after block error 16:27
jaffa4 hi 16:29
Are regular expressions implemented in Perl 6 fully? 16:30
I mean the library behind the regular expressions.
moritz_ jaffa4: stop asking questions to which you should long know the answer
jaffa4 I mean the library behind it.
l i b r a r y
16:32 xinming joined
jaffa4 I know it does not work fully in rakudo 16:32
I am not asking that
I guess there must be functions that are called when a regular expression is met in a perl 6 code.
ash_ the regex stuff in perl 6 is written in nqp 16:33
s/perl 6/rakudo/
jaffa4 and where is it? 16:35
arnsholt NQP lives on GitHub
jaffa4 where is the regex stuff? 16:36
moritz_ hugme: show nqp-rx
arnsholt In NQP.
hugme moritz_: the following people have power over 'nqp-rx': PerlJam, TimToady, [particle], jnthn, masak, moritz_, pmichaud. URL: github.com/perl6/nqp-rx/
ash_ you mean the implementation? under src/Regex
its written in pir
jaffa4 yes, the implementation
arnsholt There's also some interesting code in src/cheats 16:37
jaffa4 did you not write it is writen in nqp?
ash_ well, parts of nqp are in nqp and other parts are in pir, it depends on which parts your looking for 16:38
for instance the Cursor is in pir, but the grammar is in nqp
arnsholt NQP was started by pmichaud originally (I think). The list of people above are those who now have commitbits to it
moritz_ arnsholt: not quite - it's those who have permissions on hugme to add new contributors 16:39
arnsholt Oh, right. Important difference, that
16:42 hercynium joined 16:47 Sanitoeter_ joined 16:48 prism is now known as daemon 16:49 Sanitoeter_ is now known as `Sanitoeter 16:50 xinming left 16:53 wormwood left
moritz_ std: /<[...b]>/ 16:55
p6eval std 30269: OUTPUT«ok 00:01 109m␤»
moritz_ rakudo: say 'b' ~~ /<[...b]>/
p6eval rakudo dd2043: OUTPUT«b␤»
16:55 riffraff joined 16:57 Sanitoeter left
ash_ does ...b mean like Mu ... b ? or something 17:00
17:01 jaldhar joined
moritz_ . .. . 17:03
erm
. .. b
pugssvn r30271 | moritz++ | [t/spec] test for RT #64220, strange error for <[...b]> 17:05
takadonet hmmm trans is not fix yet.... 17:06
ash_ ah, thats confusing, i was expecting ... to match the ... operator (i was kinda assuming longest token matching, but i guess thats not a token in regexs)
moritz_ std: List
p6eval std 30270: OUTPUT«ok 00:01 108m␤»
17:06 payload joined
colomon pugs: say [**] 1..4 17:06
p6eval pugs: OUTPUT«1␤»
colomon pugs: say [**] 2..5 17:07
p6eval pugs: OUTPUT«Inf␤»
takadonet rakudo: "beer\n4\nme".trans(/\n/ => '')
p6eval rakudo dd2043: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expected␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
colomon pugs: say [**] 2..4
p6eval pugs: OUTPUT«2417851639229258349412352␤»
colomon pugs: say (2 ** 3) ** 4
p6eval pugs: OUTPUT«4096␤»
colomon pugs: say 2 ** (3 ** 4) 17:08
p6eval pugs: OUTPUT«2417851639229258349412352␤»
colomon > say reducewith(&infix:<**>, (2, 3, 4)); 17:09
4096
> say reducewith(&infix:<**>, (2, 3, 4), :right-assoc);
2.41785163922926e+24
takadonet rakudo: say "beer\n4\nme".trans(/\n/,'')
p6eval rakudo dd2043: OUTPUT«beer␤4␤me␤»
TimToady ash_: and if it were a token in regexes, it wouldn't necessarily be a token in character classes 17:10
ash_ oh, character classes have their own set of tokens?
TimToady the token set depends on which sublanguage you're in
ash_ i didn't realize character classes were another sublanguage 17:11
TimToady well, of course they do, even in any other regex language
pugssvn r30272 | moritz++ | [t/spec] test for RT #71086, .kv within class Parcel does not work
17:11 molaf joined
TimToady if you say [a-z] in old fashioned regexes, the - is special in that sublanguage; a - doesn't mean anything in normal regex 17:12
pugssvn r30273 | moritz++ | [t/spec] label test appropriately
TimToady and * is a token outside, but not inside 17:13
ash_ hmm, i wasn't thinking of it like that, i just figured you could contextually tell if you were inside a [ ] that - was a range operator, but it does make more sense to consider it a sublanguage than a contextual thing 17:14
takadonet rakudo: say "beer\n4\nme".trans(/\n/,'')
p6eval rakudo dd2043: OUTPUT«beer␤4␤me␤»
takadonet rakudo: "beer\n4\nme".trans(/\n/ => '')
p6eval rakudo dd2043: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expected␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
TimToady sublanguages *are* context
takadonet Are both format allowed?
17:14 `Sanitoeter left
takadonet Second did work before the ng merge 17:15
moritz_ I think .trans hasn't been ported yet, and it defaults to the parrot .trans method
17:15 Sanitoeter_ joined
TimToady one could take the stronger view that all context is your current language, too 17:15
takadonet mortiz_: so that why the first version works? Since it's using parrot .trans 17:16
moritz_ takadonet: at least that's my interpretation
TimToady rakudo: say ' ' ~~ /<[! .. ~]>/ 17:17
p6eval rakudo dd2043: OUTPUT«␤»
TimToady rakudo: say '!' ~~ /<[! .. ~]>/
p6eval rakudo dd2043: OUTPUT«!␤»
ash_ TimToady: yeah, that makes sense, i was thinking more that a context wasn't a sublanguage since its rules might only vaguely differ from its parent language, but it makes more sense to view them as individual languages
TimToady rakudo: say '~' ~~ /<[! .. ~]>/
p6eval rakudo dd2043: OUTPUT«~␤»
takadonet mortiz_: time to get my hands a little dirty in rakudo guts. Can you point in a general direction to get .trans into master branch please ? :)
TimToady rakudo: say '~' ~~ /<[. .. .]>/
p6eval rakudo dd2043: OUTPUT«␤»
TimToady rakudo: say '.' ~~ /<[. .. .]>/
ash_ rakudo: say '!' .. '~';
p6eval rakudo dd2043: OUTPUT«.␤» 17:18
rakudo dd2043: ( no output )
ash_ is there anything between '!' and '~' ?
TimToady string ranges are different from character ranges
ash_ ah, dang, the nuances 17:19
TimToady you can't increment ! and get to ~
(in strings)
because strings do "carry" 17:20
17:20 Sanitoeter_ left
TimToady a character range is really an integer range in disguise 17:21
ash_ so how would the character class define the range !..~
i see
makes sense, but i don't see why .. for a string couldn't attempt the same thing, although that might not be what you'd expect from a string i suppose 17:22
TimToady rakudo: say (ord('!') .. ord('~')).map: *.chr
p6eval rakudo dd2043: OUTPUT«invoke() not implemented in class 'String'␤current instr.: 'perl6;Code;signature' pc 13159 (src/builtins/Str.pir:115)␤»
TimToady rakudo: say (ord('!') .. ord('~')).map: {.chr}
p6eval rakudo dd2043: OUTPUT«!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~␤»
TimToady like that
17:22 kaare joined
TimToady rakudo: say 'a'..'zz' 17:22
p6eval rakudo dd2043:
..OUTPUT«abcdefghijklmnopqrstuvwxyzaaabacadaeafagahaiajakalamanaoapaqarasatauavawaxayazbabbbcbdbebfbgbhbibjbkblbmbnbobpbqbrbsbtbubvbwbxbybzcacbcccdcecfcgchcicjckclcmcncocpcqcrcsctcucvcwcxcyczdadbdcdddedfdgdhdidjdkdldmdndodpdqdrdsdtdudvdwdxdydzeaebecedeeefegeheiejekelemeneoepeqereseteuevewex…
TimToady not if you expect that 17:23
17:23 kaare is now known as Guest50464
TimToady that's "carry" 17:23
ash_ true, i wasn't thinking of that case...
your right, you could always treat your string as an integer, and do it that way
TimToady but carry doesn't make sense for individual characters, since <[]> are just character sets
ash_ ya, not full strings, just the characters themselves 17:24
TimToady so it dwym, if ym the right thing :)
ash_ TimToady: is github.com/ashgti/nq-nqp-rx/blob/ma...%20Map.png roughly correct? in a vauge ish sorta way
17:25 xinming joined, Sanitoeter_ joined
TimToady I have no idea what some of your lines mean 17:26
what does the line between lexical stash and class instance mean?
ash_ yeah, me either, i am trying to figure some of that out, what i was thinking was if you looked up (for instance) "Mu" it would check the lexical scope, right? then travese up the OUTER's till it finds a match
It would be a lexical value, like my $a, where '$a' is defined in the current lexical scope 17:27
17:27 payload left, mikehh left
ash_ i think i might be mixing terms up here, but the CurLex stash should contain the lexically scoped variables 17:27
17:27 payload joined
TimToady how is that different from the lexical stash on the left? 17:28
ash_ the left diagram is more the general case, the right diagram i was trying to match to what it might be in an instance (like "my $a;" since it should default to Any, and be a lexical value)
well, i guess i didn't show it right, but the current stash should have a pointer to OUTER, so you can go form the current lexical scope all the way to the outermost scope 17:29
17:30 Guest50464 left, payload left
TimToady not sure what your Anys and colons mean either 17:31
17:31 payload joined, Sanitoeter_ is now known as `Sanitoeter
TimToady the Any has a WHAT too 17:31
rakudo: say Any.WHAT 17:32
ash_ $a : Any means $a is an instance of many, the Any : ClassHOW sould probably be AnyHOW : ClassHOW, i guess, or maybe not...
p6eval rakudo dd2043: OUTPUT«Any()␤»
17:32 payload left
ash_ does that .WHAT refer to itself? 17:32
TimToady in that case, yes
17:32 payload joined
TimToady .WHAT always gets you the type object, even from the type object itself 17:32
ash_ k, so, with class instances, .WHAT refers to itself, that makes sense 17:33
TimToady $a just has extra stuff and is defined
ash_ should any two instances return the same .WHAT ?
TimToady only if they are of the same type
WHAT is the nominal type 17:34
ash_ so, my $a; my $b; $a.WHAT =:= $b.WHAT =:= Any.WHAT?
TimToady HOW has nothing to do with that, only with behavior
which is why it's called HOW, after all
17:34 envi^home left
ash_ yeah, that makes sense 17:34
TimToady rakudo: my $a; my $b; say $a.WHAT =:= $b.WHAT =:= Any.WHAT 17:35
p6eval rakudo dd2043: OUTPUT«1␤»
17:35 cotto_work left
TimToady but those are types of the initial contents, not of the container 17:35
jnthn oh hai
TimToady O/ <-- swelled head
rakudo: my $a; say VAR($a).WHAT 17:36
p6eval rakudo dd2043: OUTPUT«Could not find sub &VAR␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
TimToady alpha: my $a; say VAR($a).WHAT
p6eval alpha 30e0ed: OUTPUT«Method 'WHAT' not found for invocant of class 'MutableVAR'␤in Main (file src/gen_setting.pm, line 324)␤»
TimToady pugs: my $a; say VAR($a).WHAT
p6eval pugs: OUTPUT«Scalar␤»
TimToady pugs: my @a; say VAR(@a).WHAT 17:37
p6eval pugs: OUTPUT«Array␤»
ash_ I am not sure what you mean, TimToady...
TimToady the type of $a is Scalar, not Any
ash_ ah
TimToady the type of the contents of $a is Any
scalar vars always like to deref themselves though 17:38
ash_ oooo, i see now, yeah, that makes sense, i was thinking of the '$a' as an alias to an object, not as a container
TimToady unlike arrays
jnthn nqp: my $a = 42; say "the answer is $a";
p6eval nqp: OUTPUT«Assignment ("=") not supported in NQP, use ":=" instead at line 1, near " 42; say \""␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤»
bkeeler Morning, #p6
jnthn nqp: my $a := 42; say "the answer is $a";
p6eval nqp: OUTPUT«Confused at line 1, near "say \"the a"␤current instr.: 'parrot;HLL;Grammar;panic' pc 500 (src/cheats/hll-grammar.pir:197)␤»
jnthn nqp: my $a := 42; say("the answer is $a");
p6eval nqp: OUTPUT«the answer is 42␤»
jnthn nqp: my $a := 42; say("the answer is \$a");
p6eval nqp: OUTPUT«the answer is \42␤»
17:38 `Sanitoeter is now known as Sanitoeter
jnthn nqp: my @a; @a.push(1); say("the answer is @a[0]"); 17:38
p6eval nqp: OUTPUT«the answer is @a[0]␤»
TimToady pugs: my $a = 42; say $a.WHAT, ' ', VAR($a).WHAT
p6eval pugs: OUTPUT«Int Int␤»
ash_ hmm, well then i need to re-approach some of my current work then, i think 17:39
TimToady hmm, I think pugs is wrong on that last one
17:39 elmex left
ash_ so, the container acts as a forwarder sorta, right? since when you do $a.perl its not going to call Scalar's .perl, its going to call whatever is in $a's .perl 17:40
TimToady std: my $a; CHECK { $a = 42}'
p6eval std 30273: OUTPUT«===SORRY!===␤Strange text after block (missing comma, semicolon, comment marker?) at /tmp/Zow8yy3cwo line 1:␤------> my $a; CHECK { $a = 42}⏏'␤ expecting any of:␤ POST␤ bracketed infix␤ horizontal whitespace␤ infix or meta-infix␤
.. postfix␤ pos…
TimToady yes, most methods forward 17:41
some things that look like methods may be macros really
like .HOW
ash_ yeah
17:42 Sanitoeter is now known as `Sanitoeter
TimToady rakudo: say 42.HOW === 43.HOW 17:43
p6eval rakudo dd2043: OUTPUT«1␤»
TimToady rakudo: say 42.HOW === 'lue'.HOW
p6eval rakudo dd2043: OUTPUT«0␤»
TimToady rakudo: my $x = 1; say $x.HOW === 1.HOW 17:44
p6eval rakudo dd2043: OUTPUT«1␤»
TimToady but even there, you get the autoderef
that's why we need VAR($x) if we really want to talk about the variable object
ash_ so, for instance, my $a; would make a container called "$a" and add it to the lexical scope, that would have an internal value of Any 17:46
TimToady alpha: my $x; say VAR($x) === VAR($x) 17:47
p6eval alpha 30e0ed: OUTPUT«Method 'HOW' not found for invocant of class 'MutableVAR'␤in Main (file src/gen_setting.pm, line 324)␤»
TimToady might also have a type constraint of Any, which stays, even if the contents changes to some other type of object
rakudo: my Any $x = 1; say $x.WHAT 17:48
p6eval rakudo dd2043: OUTPUT«Int()␤»
17:48 `Sanitoeter is now known as Sanitoeter
TimToady rakudo: my Any $x = 1; $x = Mu; 17:48
p6eval rakudo dd2043: OUTPUT«Type check failed for assignment␤current instr.: '&die' pc 17192 (src/builtins/Junction.pir:399)␤»
ash_ yeah, that makes sense, the constraint hangs around
TimToady rakudo: my Any $x = 1; $x = 'lue';
p6eval rakudo dd2043: ( no output )
TimToady rakudo: my Any $x = 1; $x = 'lue'; say $x
p6eval rakudo dd2043: OUTPUT«lue␤»
TimToady you see the constraint is still Any, not Int 17:49
the type on a variable is essentially just a smartmatcher 17:50
ash_ yeah, i see that, i'll have to look at how to implement a container in my program
TimToady biab &
ash_ rakudo: say Scalar; 17:51
p6eval rakudo dd2043: OUTPUT«Could not find sub &Scalar␤current instr.: '_block14' pc 29 (EVAL_1:0)␤» 17:52
17:52 elmex joined
ash_ i guess in rakudo there isn't access to the scalar container currently 17:52
moritz_ rakudo: say VAR(my $x) 17:53
p6eval rakudo dd2043: OUTPUT«Could not find sub &VAR␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
17:55 proller left 17:56 bbkr left 18:01 cotto_work joined
ash_ lunch & 18:02
18:02 ash_ left 18:06 wknight8111 joined 18:09 SmokeMachine joined, mikehh joined
moritz_ rakudo: class A { has $!b; method x { say (:$!b).perl } }; A.new(b => 3).x 18:11
p6eval rakudo dd2043: OUTPUT«Symbol '$!b' not predeclared in x␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 152 (compilers/pct/src/PCT/HLLCompiler.pir:108)␤»
colomon integration/99problems-01-to-10.t crashing in my spec test....
moritz_ :(
what's wrong with it
lisppaste3 colomon pasted "crash" at paste.lisp.org/display/97243 18:12
moritz_ colomon: looks like one instance of *-1 needs to be fudged out 18:13
colomon what changes today would have triggered that?!
moritz_ it's new in spectest.data
I added it a few hours ago
colomon ah 18:14
moritz_ I don't understand why it fails for you, and passes for me 18:15
colomon: did you svn up?
colomon integration/99problems-11-to-20.t seems to be in an endless loop or something...
r30273 18:16
moritz_ oooh, I forgot to svn dcommit
pugssvn r30274 | moritz++ | [t/spec] fudge some integration tests for rakudo
moritz_ my fault
colomon no worries 18:17
I'm glad you're getting those tsets going 18:19
*tests 18:20
pyrimidine colomon: I saw the same thing (infinite loop on 99problems-11-to-20.t) 18:24
moritz_ pyrimidine: should now be fixed by 'svn up'
colomon pyrimidine: believe moritz_ just checked in the fix 18:25
pyrimidine ok, updating...
18:28 wknight8111 left
colomon gack, going to run out of battery before spectest finishes.... 18:33
moritz_ then don't spectest :-) 18:35
TimToady I prefer plugging in to not running spectests... 18:36
perhaps colomon is living in one of those benighted parts of the world where only aristocrats are allowed to have power 18:37
colomon sleeping boy on lap, power cord in other room
TimToady it's the boy that's benighted then. :) 18:38
pyrimidine running spectest now as well...
colomon done!
and pushed
dalek kudo: 8f35ce2 | (Solomon Foster)++ | src/core/metaops.pm:
Add new reducewith sub intended to be the backend for [op] (though that is not wired up yet).
18:41
pyrimidine only saw on fail, same one I've been seeing intermittently (on S12-methods/instance.rakudo) 18:44
*one
moritz_ has seen that too
TimToady std: 3 !!= 4 18:45
p6eval std 30274: OUTPUT«===SORRY!===␤Ternary !! seems to be missing its ?? at /tmp/jAUGxap574 line 1:␤------> 3 !!⏏= 4␤FAILED 00:01 108m␤»
TimToady kinda the wrong message, but it's supposed to blow up
colomon rakudo: 3 !!= 4
p6eval rakudo dd2043: ( no output )
18:45 colomon left
TimToady according to S03:3965 18:46
std: 3 ![!=] 4
p6eval std 30274: OUTPUT«ok 00:01 106m␤»
TimToady that's fine though
18:48 riffraff left 18:49 colomon joined
colomon he woke up about 30 seconds after the machine shut down, so we've relocated to the living room and the MBP is plugged in. :) 18:50
rakudo: say 3 !!= 4 18:52
p6eval rakudo dd2043: OUTPUT«0␤»
colomon rakudo: say 3 != 4
p6eval rakudo dd2043: OUTPUT«1␤»
colomon rakudo: say 3 !!!!!!!= 4
p6eval rakudo dd2043: OUTPUT«1␤»
colomon rakudo: say 3 !!!!!!!!= 4
p6eval rakudo dd2043: OUTPUT«0␤»
colomon perhaps that's overkill... ;)
moritz_ std: 1 !!!!= 3
p6eval std 30274: OUTPUT«===SORRY!===␤Ternary !! seems to be missing its ?? at /tmp/L6BZ77s1V3 line 1:␤------> 1 !!⏏!!= 3␤FAILED 00:01 106m␤»
18:52 ShaneC joined
colomon is still irrationally pleased that works... 18:53
moritz_ maybe !== is not iffy enough :-)
18:53 ShaneC left 18:55 M_o_C left
moritz_ std: [\==] 1, 2, 3 18:56
p6eval std 30274: OUTPUT«ok 00:01 107m␤»
colomon rakudo: say 3 !!!!!!!!== 4
p6eval rakudo dd2043: OUTPUT«0␤»
dalek kudo: 0ccaf6c | moritz++ | src/core/metaops.pm:
implement :$chaining in reducewith()
18:58
colomon moritz_++
pugssvn r30275 | lwall++ | [STD] Be more forthright on !!op prohibition.
18:58 ash_ joined
colomon re r30275: awwww.... 18:59
sorear TimToady: In Pod6, is it possible to interleave a long block (say, =begin METHODS) with ambient code?
jnthn
.oO( The prohibition didn't work out too well. )
colomon
.oO(Am I a !!op bootleggger?)
19:01
19:01 moritz_ sets mode: +oo colomon sorear
TimToady sorear: no 19:01
such things should be accumulated by name, not by structure 19:02
moritz_ colomon: some initial tests show that calling reducewith() directly seems to work 19:03
TimToady bbl & 19:04
sorear TimToady: oh, so multiple METHOD blocks are legal and concatenated?
colomon I forgot we also need the "triangle" versions for reducewith.
moritz_ colomon: not forgot, postponed :-)
colomon You may have postponed, I just plain forgot. ;) 19:05
lots of distractions today
moritz_ currently trying triangle 19:09
colomon btw, you appear to have skipped the case where chaining and right-assoc are both turned on. don't know if that's ever a real issue.... 19:10
moritz_ aye, doing that now 19:12
19:12 rbaumer left
colomon \o/ 19:15
moritz_ my current version just doesn't combine triangle with chaining yet
colomon wonders if the spec actually describes that.... 19:16
moritz_ Triangular reductions of chaining operators always consist of one or 19:17
more C<True> values followed by 0 or more C<False> values.
so yes, should be implemented
dalek kudo: bcdee8e | moritz++ | src/core/metaops.pm:
reducewith with triangle; implement combination of chaining and right-assoc
19:18
19:19 am0c joined
colomon \o/ 19:19
moritz_ now it "just" needs to plugged into Actions.pm 19:20
jnthn oh hai 19:21
:-)
jnthn knows how to do that bit, probably
What do we need? Just to detect chaning, \ and right associativity?
colomon right.
PerlJam colomon++ moritz++ jnthn++ just reading the scrollback it seems like a little bit of positive synergy going on.
[particle] considers "negative synergy" 19:22
jnthn masak++ and I some stuff coming that fixes 5 (!) bugs.
*have some
Also, masak++ bakes awesome bread.
19:22 ive joined
colomon hacking with moritz_++ is fun. :) 19:22
it's been far too long since we last had the chance.
PerlJam [particle]: I suppose the opposite of "synergy" would be "antergy"? 19:24
[particle] you'll have to ask bucky about that
hopefully there aren't too many examples of antergy such that it needs a name :) 19:25
colomon btw, masak and jnthn, my wife wanted to know if I could get you guys to ship us some tea. :)
apparently she fell in love years ago with a Swedish tea that isn't available hereabouts, and has been trying to figure out how to get more ever since... 19:27
jnthn Got the name of it? 19:28
colomon not on me, but if you're game I'll ask her when she gets home.
jnthn++
jnthn I think we're game. :-) 19:30
moritz_ hopes it's not hunting season
PerlJam wabbit season!
colomon duck season!
PerlJam :-)
jnthn lol xx 2 19:31
moritz_ who wants to be release manager for the April release? (won't be the Rakudo * release) 19:36
dalek kudo: eaf92e0 | moritz++ | docs/ChangeLog:
[docs] start ChangeLog for next release
19:41
colomon jnthn: Kobbs tea "Sörgårdste" 19:45
colomon hopes that pasted correctly, looks properly Swedish here... 19:46
19:47 alester left 19:48 alester joined
Coke-san colomon: +1 19:49
jnthn looks properly Swedish here too :-) 19:53
colomon: Ah, masak++ recognizes the name. 19:54
moritz_ colomon: do you want to do the April release? 19:56
in general we're looking for release managers for the next few months 19:58
colomon moritz_: May would be much better for me. :)
jnthn: \o/
moritz_ colomon: ok, I'll enter you for May
phenny: tell pmichaud that you're noted as release manager for the April release (with questionmark) - should I try to find somebody else for that task? 19:59
phenny moritz_: I'll pass that on when pmichaud is around.
dalek kudo: fc30fad | moritz++ | docs/release_guide.pod:
[docs] the Copenhagen release has already happend; colomon++ voluntueered for May
20:05
20:06 mikehh left
moritz_ rakudo: say Rat.new() 20:11
p6eval rakudo bcdee8: ( no output )
moritz_ rakudo: say Rat.new().perl
p6eval rakudo bcdee8: OUTPUT«Any()/Any()␤»
moritz_ any objections to making Rat.new() without args just die?
I don't see what good it would do to have it
[particle] rakudo: say Int.new().perl 20:12
p6eval rakudo bcdee8: OUTPUT«0␤»
[particle] why isn't Rat.new() 1/1?
jnthn Well, it's kinda immutable once crated. :-)
[particle] or 0/1
jnthn or 0/0 20:13
;-) ;-)
[particle] *nudge* *nudge*
jnthn Rat.new would just set 0/1, anyways.
moritz_ sound sensible
moritz_ spectests 20:14
pugssvn r30276 | moritz++ | [t/spec] unfudge tests for Rat.new.perl, RT #68958 20:19
dalek kudo: cfc139f | moritz++ | src/core/Rat.pm:
trivial Rat.new() without arguments (returns 0/1)
20:22
20:23 skyler_ joined, skyler__ left
diakopter std: blah: goto blah; sub blah() { } 20:23
p6eval std 30275: OUTPUT«===SORRY!===␤Illegal redeclaration of routine 'blah' (see line 1) at /tmp/2gkNuDCu65 line 1:␤------> blah: goto blah; sub blah⏏() { }␤ expecting new name to be defined␤FAILED 00:01 106m␤»
diakopter TimToady: is that a stdbug?
dalek p-rx: 67a8eaf | jonathan++ | src/Regex/P6Regex/Actions.pm:
Correct action methods for \e and \f sequences in regexes.
20:24
p-rx: e3f10da | jonathan++ | src/HLL/ (2 files):
Add detection of unknown backslash sequences and fix the \$ bug along the way. masak++ too. :-)
p-rx: b17415a | jonathan++ | src/HLL/ (2 files):
Properly implement \f, \e and \0 escapes in strings.
p-rx: 88873ca | jonathan++ | src/stage0/ (3 files):
Update the bootstrap.
20:24 molaf left
diakopter if not, I didn't realize subs & label namespaces coincided 20:24
20:25 kfo_ joined
pmurias diakopter: subs have a & sigil 20:28
jnthn I suspect stdbug.
20:29 kfo left, kfo_ is now known as kfo 20:30 [particle] left
diakopter pmurias: I was referring to the label "blah" 20:30
std: blah: sub blah() { }
p6eval std 30276: OUTPUT«===SORRY!===␤Illegal redeclaration of routine 'blah' (see line 1) at /tmp/gDCxGQr2eI line 1:␤------> blah: sub blah⏏() { }␤ expecting new name to be defined␤FAILED 00:01 106m␤»
pmurias std: sub blah() {};blah: 1 20:31
p6eval std 30276: OUTPUT«ok 00:01 107m␤»
pmurias diakopter: what i meant is that even if labels and routines shared namespaces blah and &blah shouldn't collide 20:32
jnthn sees it like pmurias 20:33
diakopter oh
diakopter comprehends, finally
20:34 [particle] joined, [particle] left, pmurias left
sorear jnthn++ 20:36
jnthn: you ought to fix your parrot U:line 20:37
jnthn U:line?
sorear look in parrot:CREDITS 20:38
N: Jonathan Worthington
U: jonathan
jnthn omgz karma loss!
sorear also "who's that jonathan guy who keeps committing"
jnthn Well, my svn handle is jonathan for Parrot svn. 20:39
ash_ sorear: i don't think its jnthn, that would be just silly
jnthn Yeah, jnthn never commits!
ash_ add a second U?
20:44 ive left, ive joined
takadonet rakudo: say "beer\n4\nme".trans(/\n/,'') 20:52
p6eval rakudo cfc139: OUTPUT«beer␤4␤me␤»
takadonet rakudo: say "beer\n4\nme".trans(/\n/ =>'')
p6eval rakudo cfc139: OUTPUT«too few positional arguments: 2 passed, 3 (or more) expected␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
dalek kudo: 0893322 | jonathan++ | build/PARROT_REVISION:
Bump PARROT_REVISION to get latest nqp-rx fixes.
21:03
kudo: 50fa7b0 | jonathan++ | t/spectest.data:
Turn S02-literals/fmt-interpolation.t back on.
moritz_ wonders if Good Friday was a public holliday in other countries too
m6locks yes it was 21:06
but we were prepared :)
pugssvn r30277 | jnthn++ | [t/spec] Unfudge a few tests that we now pass. 21:07
jnthn moritz_: Yes, it is here in Sweden too
21:11 payload left, pyrimidine left
pugssvn r30278 | jnthn++ | [t/spec] Few more unfudges from rx.t for \e and \f fixes. 21:13
jnthn The first results and the masak+jnthn easter hackathon!
Time for us to go for a walk now. bbiab. :-) 21:14
Coke-san moritz: it's per-company here in the US. I have it off. Whee. 21:15
also, moritz++ # nqp help!
21:26 arnsholt left 21:27 cognominal joined 21:32 ash_ left 21:37 [synth] joined 21:38 Su-Shee left 21:39 synth left 21:41 [synth] left
pugssvn r30279 | lwall++ | [STD] add label as constant rather than type as noticed by diakopter++ 21:46
r30279 | [STD] report EOF correctly now that we no longer add ';' to original text
r30279 | [Cursor] add .label_id method so we can tell labels from other constants
r30279 | [std] add filename to 'ok' for more visibility into sub-compilation by 'use'
21:46 snarkyboojum joined 21:51 eternaleye left, kolibrie left, broquaint left, breinbaas left, awwaiid left, TimToady left, gbacon left, szbalint left 21:53 eternaleye joined, kolibrie joined, Lorn joined, broquaint joined, breinbaas joined, frew joined, _sri joined, awwaiid joined, TimToady joined, gbacon joined, szbalint joined, verne.freenode.net sets mode: +o TimToady
diakopter aiiiiieeeeee 21:56
jnthn I'm in masak's office, nabbing his pens. ;-)
21:56 masak joined
masak oh hai, #perl6! 21:56
phenny masak: 12:54Z <snarkyboojum> tell masak not sure if you meant something like this re making the say 'op' go through an object with a .say method? gist.github.com/353097
masak snarkyboojum: it's an excellent commit. next time, favor forgiveness to permission -- you have write access to the Yapsi repo already :) 21:57
cognominal Yapsi?
masak :)
cognominal what is that?
masak colomon: it's a compiler announced on April 1 on p6c. 21:58
arg, cognominal.
tab completion fejl.. :/
rakudo: /<[a..\]]>/ 21:59
p6eval rakudo 50fa7b: OUTPUT«regex assertion not terminated by angle bracket at line 11, near "]>/"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak submits rakudobug
21:59 alester left
masak rakudo: /<[a..\\]>/ 21:59
p6eval rakudo 50fa7b: OUTPUT«Confused at line 11, near "/<[a..\\\\]>"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
jnthn std: /<[a..\]]>/
p6eval std 30279: OUTPUT«ok 00:01 109m␤»
jnthn std: /<[a..\\]>/
p6eval std 30279: OUTPUT«ok 00:01 107m␤»
masak it's almost cheating after you've looked at the nqp-rx source :P 22:00
22:00 awwaiid left, awwaiid joined
masak rakudo: say "e" ~~ /<[a..\e]>/ 22:02
p6eval rakudo 50fa7b: OUTPUT«e␤»
masak same bug. :)
22:04 constant joined
masak rakudo: say 'foto' ~~ /<-[\t]>+/ 22:05
p6eval rakudo 50fa7b: OUTPUT«fo␤»
jnthn rakudo: my $x = 3; say "foo \$x"
p6eval rakudo 50fa7b: OUTPUT«foo $x␤»
22:06 lichtkind left 22:08 nihiliad left 22:10 eternaleye left, kolibrie left, Lorn left, broquaint left, breinbaas left, _sri left, TimToady left, gbacon left, szbalint left, frew left, meppl left 22:12 broquaint joined, szbalint joined 22:13 _sri joined 22:16 eternaleye joined, breinbaas joined, kolibrie joined, Lorn joined, frew joined, TimToady joined, verne.freenode.net sets mode: +o TimToady, Sanitoeter left
diakopter std: blah: sub blah() { } 22:18
p6eval std 30279: OUTPUT«ok 00:01 107m␤»
jnthn rakudo: foo()
p6eval rakudo 50fa7b: OUTPUT«Could not find sub &foo␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
pugssvn r30280 | masak++ | [t/spec/S05-mass] fudged properties-general.t
22:20 astrojp left, eternaleye left, breinbaas left, kolibrie left, Lorn left, TimToady left, frew left 22:22 arthur-_ joined, eternaleye joined, arthur-_ left, Sanitoeter joined 22:24 TimToady joined, kolibrie joined, frew joined
dalek kudo: e889ed4 | masak++ | t/spectest.data:
[spectest.data] uncommented two test files
22:25
masak that's 1264 more tests run, most of them passing, I think.
22:25 ggoebel left
jnthn We probably just broke 30,000. masak++! 22:25
masak spectests
jnthn rakudo: /foo/i 22:28
p6eval rakudo 50fa7b: OUTPUT«Unsupported use of /i; in Perl 6 please use :i at line 11, near ""␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
masak \o/
22:28 arthur-_ joined
colomon \o/ 22:29
\o/ 22:30
jnthn colomon: Has you a happy?
masak are those three happy people?
22:30 breinbaas joined
masak or the same happy person thrice? 22:30
colomon one very happy person
snarkyboojum masak: cheers :) consider it commited then
colomon I didn't think we'd hit 30,000 for another week or more... 22:31
masak snarkyboojum++
snarkyboojum s/commited/committed/
masak snarkyboojum: I do have a question and a pondering, however... :)
22:32 breinbaas left
masak the question has to do with the TODO comment; why couldn't you just use 'say' rather than 'print ... "\n"'? 22:32
snarkyboojum masak: thought you might
masak: didn't know how to ;) it thinks I'm referring to the current say sub if I do that I think (expected 2 args, got 1 type error message) 22:33
masak sounds like a bug.
22:33 jaffa4 left
snarkyboojum ah 22:33
well how would it work out which say I want to use?
22:34 iblechbot left
masak rakudo: class A { method say($x) { say $x } }; A.new.say("OH HAI") 22:34
p6eval rakudo 50fa7b: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤current instr.: 'perl6;A;say' pc 425 (EVAL_1:190)␤»
snarkyboojum yeah that sort of thing :)
masak snarkyboojum: subs are orthogonal to methods.
jnthn That's...wrong. :|
wtf.
masak submits a rakudobug
:)
snarkyboojum ah - excellent :) 22:35
22:36 breinbaas joined
masak the pondering has to do with making Yapsi::Runtime::IO a class. 22:36
might we make it a subtype instead?
diakopter ISpay
snarkyboojum yeah.. has similar doubts about it being a class
s/has/had 22:37
masak something like subset Yapsi::IO where { .can('say') }
snarkyboojum masak: sounds cool - didn't know enough to have that exact thought :)
masak anyway, all that's just details. nice commit! now we can write tests for the runtime! 22:38
snarkyboojum masak: yay! those comments are great - I learn a lot from them :) 22:41
pugssvn r30281 | jnthn++ | [t/spec] Unfudge a test for NoSuch::Class error message. 22:44
dalek kudo: 9a20634 | jonathan++ | src/ (2 files):
Make A::B.new in the case that A::B doens't exist emit a message that mentions A::B, not just a null PMC access.
22:48
masak \o/ jnthn++
colomon \o/ 22:49
seems like you guys are on fire today!
lue O HAI! I have an extinguisher! 22:50
22:50 ive left
colomon lue: no! let them burn! 22:51
we need their light.
.oO(metaphor out of control!)
lue I could use it in a few hours when the big ball of nuclear fusion/fission is not in the sky
jnthn colomon: Is the new reducewith ready to be wired up?
masak .oO( fired up ) 22:52
colomon jnthn: go for it!
I reckon it still needs some work, but it will be easier to test once it is wired up.
lue: as I hear it "The sun is a miasma / Of incandescent plasma" 22:53
I get 29080 passing tests here.
lue I like the nuclear bit. It can scare some people who've heard of Chernobyl :) 22:54
colomon jnthn: also note that you can bind all the parameters but the iterable one. 22:55
assume, curry, whatever. :)
masak mmm... curry assumptions. 22:56
jnthn: I fixed up use.perl.org/~masak/journal/40167 to reflect that you fixed up Rakudo. :)
colomon would like to make triangle reduce lazy...
jnthn masak: I assume we're going for a curry sometime? ;-) 22:57
masak definitely.
22:57 Schwern joined
jnthn \o/ 22:57
masak maybe not before tomorrow, though :)
jnthn it's already tomorrow
oh, wait...
masak bans jnthn from implementing S32::Temporal :P 22:58
jnthn THANK YOU! :-D
lue THAT'S MY JOB! :)
masak that's what you wanted all along, isn't it? :P
jnthn Actually I wanted somewhere to keep my bike nice and dry... 22:59
masak lue: I was hoping you'd just retro-commit the Temporal module from Perl 6.3.8, released in 2149... :)
talk about bootstrapping the Temporal module :P
lue I would, but then 6.3.8 would be derived from 6.3.8, and that's not good :/ 23:00
masak .oO( Art of the Metatemporal Protocol )
lue I'd have to transfer it through the sub-etha, and reroute it into hyperspace, to try and bypass the laws, but... 23:01
I suppose it couldn't hurt. Alright, I'm go 23:03
23:03 lue left 23:05 masak left 23:06 masak joined 23:07 lue joined
lue oh wow. Let's NOT do that! 23:07
masak: are you there? 23:09
masak lue: think so. 23:10
lue How to define a Duration object... 23:13
masak I guess it's rooted in two Instants...
lue the current spec says it's TAI-seconds aware 23:14
masak well, so is Instant.
lue If you would like a _complete_ revision, I'll define things that can't be implemented :)
jnthn rakudo: say [<] 1,3,2,4 23:15
masak rakudo: say 2 ** 3 ** 4; say [**] 2, 3, 4
p6eval rakudo 9a2063: OUTPUT«1␤»
rakudo 9a2063: OUTPUT«2.41785163922926e+24␤4096␤»
lue rakudo: say 2 * 3 ** 4; say 2 ** 3 * 4; 23:17
p6eval rakudo 9a2063: OUTPUT«162␤32␤»
colomon well, that's two wrong answers. :(
masak colomon: jnthn has a nice surprise coming, though :P
colomon oooooooo 23:18
lue rakudo: say 2 ** (3 ** 4);
p6eval rakudo 9a2063: OUTPUT«2.41785163922926e+24␤»
lue rakudo: say (2 ** 3) ** 4; 23:19
p6eval rakudo 9a2063: OUTPUT«4096␤»
lue that's where it goes wrong :)
colomon rakudo: say reducewith(&infix:<**>, (2, 3, 4), :right-assoc); 23:20
p6eval rakudo 9a2063: OUTPUT«2.41785163922926e+24␤»
23:21 opx^on is now known as opx^away
lue for a duration _object_, how would you define what duration it measures? (seconds, minutes, etc.) 23:28
dalek kudo: 3469ffe | jonathan++ | src/Perl6/ (2 files):
Wire reduce meta op up to use the new reducewith that can handle chaining, triangle form and right-associative ops.
masak lue: well, it's clearly defined in terms of Instants, but if you want to convert it into civil time, it possibly depends on where you are on the globe, and what religion you belong to, etc. 23:29
jnthn++!
lue yes, I'm just wondering how the coder would define the object...
my Duration $something something something
colomon jnthn++
lue jnthn++
masak lue: maybe Duration.new( :from(Instant.new(...)), :to(Instant.new(...)) ) ? 23:30
23:30 eternaleye left
lue my Duration $var = 3 #`(TAI seconds); say $var.Gregorian::Minutes ? 23:32
23:33 opx^away is now known as opx^on, opx^on is now known as opx^away 23:34 Sarten-X left
masak lue: it's concrete questions such as the ones you're asking that would be nice to answer in order to build a fine Temporal module. 23:36
I'm increasingly thinking about going back to First Principles: how would I *like* a Time object to work? 23:37
lue Whoever wrote it just said "This is a doughnut" without describing it
Would you like a revision, or an overhaul? <:)>.evil
masak thinks the spec doesn't say "This is a doughnut" nearly enough :) 23:38
jnthn Is it a sugary one?
masak it does, however, say "You need a wormhole for that."
jnthn: the S04 and S05 doughnuts are sugary :) 23:39
and the S12 one, I s'pose.
lue is it toruses or torii ?
jnthn Donoughts have a hole too...I see opportunities for unification here.
masak lue: 'tori'.
lue alright 23:40
masak jnthn: "The Grand Spec-Doughnut Unification of 2010"!
lue is quietly rewriting all of Temporal to his own design, toning it down so you have a chance of implementing it :)
23:43 eternaleye joined, lue left 23:44 lue joined
lue oh! disconnections are no fun :/ 23:44
(I much prefer Unix Epoch over TAI...) 23:46
23:46 SmokeMachine left
lue rakudo: say time() 23:47
p6eval rakudo 3469ff: OUTPUT«1270251136.55319␤»
jnthn rt.perl.org/rt3/Ticket/Display.html?id=64968 23:48
masak looks
lue shinky hypertext (looking)
s/shinky/shiny/
rakudo: my $a; say $a.defined
p6eval rakudo 3469ff: OUTPUT«0␤» 23:49
lue rakudo: my $a=3; say $a.defined
p6eval rakudo 3469ff: OUTPUT«1␤»
jnthn std: say (0,0,0,0,0,0) >>+>> ((1,2) xx *) 23:50
p6eval std 30281: OUTPUT«ok 00:01 109m␤»
lue rakudo: say time()
jnthn rakudo: say (0,0,0,0,0,0) >>+>> ((1,2) xx *)
p6eval rakudo 3469ff: OUTPUT«1270251341.38794␤»
rakudo 3469ff: ( no output )
jnthn colomon: Maybe one for you to look at: (1,2) xx * ain't lazy, it seems 23:51
(should be) 23:52
colomon jnthn: I actually looked at that a few days ago, and it was a bloodbath.
jnthn Ouch.
colomon I will try again at some point, but it was discouraging, to say the least.
> say [**] 2, 3, 4
2.41785163922926e+24
jnthn rakudo: sub foo(*@data, $bar) { say $bar }; my @data = 1,2,3; foo(@data, 'OH HAI') 23:53
p6eval rakudo 3469ff: OUTPUT«Not enough positional parameters passed; got 2 but expected between 1 and 0␤current instr.: 'foo' pc 250 (EVAL_1:95)␤»
23:54 mikehh joined
snarkyboojum wowsers - 32190 tests - did I read that correctly? :) 23:56
masak :) 23:59