»ö« | 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.
masak snarkyboojum: define 'supposed' :) 00:00
snarkyboojum: (it doesn't)
snarkyboojum masak: k
I get Null PMC errors
masak snarkyboojum: but mberends++ was looking into it. he and jnthn said they'd whack on Rakudo next week, trying to make proto run again on master.
snarkyboojum masak: excellent 00:01
masak (I mean jnthn++, of course.)
snarkyboojum masak: I'm keen, will probably just need a kick in the right direction initially (re Tardis) :)
masak snarkyboojum: I've not yet developed a sense for when you're usually around. when are you usually around? :)
lue Time And Relative Debugging In Space (TARDIS) :) 00:02
masak I'll concede that Tardis is just a work-in-progress name :)
snarkyboojum masak: well I'm in Oz and work from home - so I'm around during daylight hours and early even Oz-time (e.g. 11am here)
s/even/evening/
masak cool.
masak waves through the planet 00:03
00:03 mberends left
snarkyboojum :) 00:03
masak must be summer where you're at.
snarkyboojum masak: aye, and loving it (spend the last Oz summer in London)
masak and midday.
snarkyboojum spent
yep
lue Oh, I waved through the center of the universe :)
masak snarkyboojum: and upside down. man, you people are inverted! :) 00:04
snarkyboojum masak: and entirely aware of it :)
masak snarkyboojum: I was in .nz a few years back, and a prophet-like guy in Christchurch was selling upside-down maps. 00:05
snarkyboojum masak: heh - crazy kiwis - may have originated in the Northern Hemisphere tho :P
masak he said that turning the maps upside down would basically make everyone happier. and then he listed different ethnic groups who would benefit from this.
lue He's halfway across the world in the X/Y/Z axes, and ~5 hours back along the T axis :)
snarkyboojum masak: spent the summer before that working in Wellington (NZ), which felt like an Australian winter anyway, so effectively 3 winters in a row == not a happy camper 00:06
masak :/ 00:07
snarkyboojum: clearly, we need that time device sooner rather than later.
snarkyboojum have done quite a bit of "work" with the laptop in the sun in a park somewhere near the harbour this time around ;)
masak now that's just teasing.
snarkyboojum doesn't mention the cold beer then 00:08
jnthn snarkyboojum: We do have fridges in the Northern Hemisphere.
masak we're wading in snow up here. my hands are frostbitten by the cold.
perhaps not frostbitten. but very sad hands, anyway.
snarkyboojum jnthn: I was more in love with the central heating you guys have up there
masak snarkyboojum: must not have been .uk :) 00:09
jnthn masak: All my snow here is has a melt.
lue Time-Augmented Relative Debugging In Style :D
masak jnthn: weather forecast here says snow+snow+snow+snow.
snarkyboojum masak: heh - London for 9 months when it snowed last time.. central heating saved my soft Aussie bacon
jnthn masak: Wow. 00:10
00:10 ComWT left 00:11 nihiliad left, comwt joined
masak jnthn: yesterday, my bike slipped on an icy groove in the road. luckily, I fell right down into a pile of snow, so I wasn't hurt or anything. 00:11
jnthn will miss this appartment's underfloor heating.
masak: Ouch! :-( But glad you're OK.
00:11 comwt left
masak I've only fallen on my bike three times this winter. all three quite benign. 00:12
considering that the rest of Sweden is basically dumbstruck by the cold and snow, I consider that a success :)
jnthn Is it an unusually cold winter in Sweden this year?
masak yes, but not by a great lot. 00:13
jnthn oh huzzah deferal works again.
> class Pub { method bar() { say "beer!" } }
> class Bar is Pub { method bar() { print "Mmmmm..."; nextsame() } }
> Bar.new.bar
Mmmmm...beer!
snarkyboojum sounds like you need tire chains for a bike wheel!
masak jnthn++
00:13 Chillance left
jnthn well, sort of. 00:13
masak jnthn: that reminds me. a question fell out of our last discussion on inheritance and multis.
jnthn masak: Poor question. Did it land softly? 00:14
masak jnthn: how does a method call the same method(s) in its superclasses?
jnthn: we'll see if it lands softly :)
00:14 TimToady sets mode: +vv buubot dalek, TimToady sets mode: +v ilogger2, TimToady sets mode: +vvv lisppaste3 p6eval phenny
jnthn Only the ones in its immediate superclasses? 00:15
In general you use deferal
masak yeah. like super() in Java.
but 'nextsame()' will defer to methods in the same class too.
jnthn Yeah, true
masak I don't want that.
jnthn I think there's maybe a SUPER pseudo-package.
masak ok. 00:16
TimToady what about sister classes?
masak TimToady: I'm thinking of the case where Child.foo() calls Parent.foo().
lue (time-travelling debug name): Debugging A Load of Erroneous Kode :D
TimToady that's where nextsame is designed to Work Right
(sister classes) 00:17
jnthn S12 mentions SUPER
But doesn't define how it works in a multiple inheritance situation.
TimToady that's because it doesn't
jnthn :-)
Guess it's easy to implement then. :-) 00:18
snarkyboojum masak: well, you'll have to chuck tote(ish) up on github so I can take a look :)
jnthn masak: You maybe can convince .WALK to give you the methods you want too.
masak snarkyboojum: I'll get back to you. need to de-hardcode it a bit for that. 00:19
snarkyboojum masak: ah k
masak snarkyboojum: and whatever comes up will be very temporary. :)
jnthn: oh, cool.
lue masak: Debugging Overlooked Code (Time OverRated)
masak lue: your suggestions are much appreciated :) 00:20
jnthn masak: Then >>. to dispatch to the lot of 'em if order matters to you not.
masak it doth not, since this is a hypothetical case. :P 00:21
jnthn .WALK(:name<foo>, :include(any(Thingy.^parents(:local)))) or some such
masak whoa :) 00:22
lue will come up with more Dr. Who related debugger names later
snarkyboojum can I/how do I, dump the AST that rakudo is constructing internally? I remember watching a vid of jnthn demonstrating how to do it, but can't find that vid
jnthn Didn't put WALK back into master yet.
snarkyboojum is that stuff accessbile?
jnthn snarkyboojum: --target=past
snarkyboojum jnthn: ah! thanks :)
jnthn snarkyboojum: There's also --target=parse and --target=pir
snarkyboojum jnthn: sweet - thanks muchly 00:23
masak but I believe it only works when class definitions are not involved. or something like that.
well, --target=pir will work always.
but not --target=parse. :/
lue time traveling debugger: travelling to the past'd be easy enough, but what about to the future?
masak don't remember about --target=past. it probably works.
00:24 xabbu42 left
arlinius there's --target=post, too 00:25
snarkyboojum booshka! --target=past certainly spits out a tonne of stuff :)
arlinius post spits out even more :)
lue snarkyboojum: you certainly are british (use of tonne) :D 00:26
jnthn --target=post is thankfully not very useful though :-)
snarkyboojum lue: bit of a mongrel really :)
masak zzz & 00:27
00:27 masak left
snarkyboojum masak: see ya, nice to chat :) 00:27
lue aw! I got to go in the past to talk to masak!
Check the irclog for a few hours ago. If you see __rnddim__, then you ought to be really creeped out. 00:28
00:28 ggoebel left
lue That's also me, and I haven't logged in as that for a long time. 00:28
00:34 ggoebel joined
lue The only (relatively) difficult part of the time-traveling debugger is the going into the future part (the past is easier) 00:36
pugssvn r29830 | lwall++ | [S12] note how lastcall allows nextsame control of nested dispatchers
00:37 pmurias left
arlinius so, this debugger can make it so a bug never existed? 00:38
jnthn TimToady: hmm.
lue ask masak (who's not here). He came up with it. 00:39
00:39 quietfanatic left
jnthn TimToady: Well, nextsame goes to the next best multis in the same class. 00:39
TimToady: And only then up the inheritance hierarchy
So we get that bit right.
lastcall blows the two though. 00:40
Since we aren't really doing nested dispatchers, it essentially splices the multi dispathcer's candidates into a (lazily formed) list.
TimToady well, those are two different dispatches in my head, but the first lastcall would have to just advance past the multis if you've artifically flattenened them into one dispatch
jnthn Yeah
We've a bunch of caching in to try and keep that lot cheap for common cases. :-) 00:41
(Rakudo has the hilarious situation that multi-dispatch is >10% faster than single dispatch... :-/)
Anyway, yeah, can likely get lastcall to do something like that. 00:42
Not going to do that tonight though. :-)
TimToady I guess the nested dispatcher view is hinted at in S12:1176 and following 00:43
though not terribly explicit
jnthn Well 00:44
TimToady would be nice to have lastcall working the same everywhere though....
jnthn I actually *do* have us calling another dispatcher in a sense.
It's just that it's giving us back all the possibilities.
TimToady and the word "tie-breaking" tends to make it read flatly instead of nested
jnthn Rather than us continually re-entering into it.
TimToady but I do think that these calls need to be able to distinguish which level they mean 00:45
00:45 yinyin joined
jnthn (I considered both...then did the one I figured I was likely to come out of with a sliver of sanity remaining. :-)) 00:45
Oh, it's not a problem for us to know whether we're deferring through multis spliced in or inheritance. 00:46
TimToady I'd think the nested one would be more sane, in the just-looping-over-a-simple-list sense
not a problem for you, a problem for the user though, perhaps
jnthn Or at least, it's not hard for me to make it so we can know.
Hmm, yeah. 00:47
TimToady we should probably make some way to name our dispatcher levels
(as conjectured)
we also need to be careful that a wrapped routine doesn't hane to know that fact 00:48
*have
jnthn Yes, we may well have some tricksy issues there.
Wrapping a routine that does nextsame...how do the candidate lists play together, etc. 00:49
That's potentially nasty to handle.
TimToady perhaps that dispatcher is invisible by default, outside a wrapper itself
jnthn I did see your "should be same mechanism" and make that so. 00:50
I didn't manage to write a .wrap implementation I felt was beautiful yet though.
lue wishes not entrude on such an enthralling conversation... too late 00:51
TimToady I'll have to think about that some more in my copious free neurons
lue: note that my $x = 1,2,3 is misparsed by rakudo 00:52
jnthn oh noes, we don't have item assignment parsing right yet. :-(
TimToady rakudo: my $x = 1,2,3; say $x.WHAT
p6eval rakudo 59c65b: OUTPUT«Seq()␤»
jnthn TimToady: should be 1?
TimToady should be Int, with 2 and 3 in sink context
jnthn oh, Int, but yes
lue how should that parse? 00:53
TimToady and presumably Useless use of warnings
dalek kudo/master: 5d38786 | jonathan++ | src/core/Mu.pm:
Add back default .perl.
kudo/master: 88f57f6 | jonathan++ | t/spectest.data:
We pass three more spectests now (deferal related stuff).
kudo/master: 1cdb0d8 | jonathan++ | src/ (4 files):
Get deferal stuff back in place, to the degree we had it in alpha.
diakopter std: m'$a'
p6eval std 29829: OUTPUT«Potential difficulties:␤ Variable $a is not predeclared at /tmp/OzJgbq3vmp line 1:␤------> m'$a⏏'␤ok 00:01 106m␤»
TimToady otherwise loop (my $a = 1, my $b = 2; ...; ...) doesn't work
jnthn lue: lajk (my $x = 1), 2, 3
TimToady diakopter: Perl 6 doesn't make choose-your-own single quotes special like Pelr 5 00:54
diakopter o
lue You should rename pugssvn to kaled while you're at naming these 'upload reporting' bots after Dr. Who enemies.
TimToady S02:3437
diakopter std: m'$'\++ 00:55
p6eval std 29829: OUTPUT«ok 00:01 105m␤»
TimToady that's one of the places where I decided Perl 5 made a mistake
.oO(not nice to blame Perl 5 for that...)
diakopter std: m'$'\++\-- 00:56
p6eval std 29829: OUTPUT«ok 00:01 105m␤»
lue rakudo: my $x, $y, $z = 1,2,3; say $x,$y,$x;
p6eval rakudo 59c65b: OUTPUT«Symbol '$y' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
TimToady is that the Long Tail?
std: m'$'++++++---------------- 00:57
p6eval std 29830: OUTPUT«ok 00:01 109m␤»
jnthn ...
line noise WIN.
lue aw, should that work?
diakopter std: m'$'\[]
p6eval std 29830: OUTPUT«ok 00:01 105m␤»
lue alpha: my $x, $y, $z = 1,2,3; say $x,$y,$x;
TimToady std: .........
p6eval alpha 30e0ed: OUTPUT«Symbol '$y' not predeclared in <anonymous> (/tmp/85QFhcRH69:10)␤in Main (file <unknown>, line <unknown>)␤»
std 29830: OUTPUT«ok 00:01 105m␤»
TimToady std: my $x, $y, $z = 1,2,3; say $x,$y,$x; 00:58
p6eval std 29830: OUTPUT«Potential difficulties:␤ Variable $y is not predeclared at /tmp/I4jQS7V81M line 1:␤------> my $x, $y⏏, $z = 1,2,3; say $x,$y,$x;␤ Variable $z is not predeclared at /tmp/I4jQS7V81M line 1:␤------> my $x, $y, $z⏏ = 1,2,3; say $x,$y,$x;␤
..Variab…
diakopter rakudo: my ($x, $y, $z) = 1,2,3; say $x,$y,$x;
p6eval rakudo 59c65b: OUTPUT«121␤»
TimToady you'll note the erro is after the first $y, not the second
r
diakopter o_O
oh, 00:59
rakudo: my ($x, $y, $z) = 1,2,3; say $x,$y,$z;
p6eval rakudo 59c65b: OUTPUT«123␤»
lue
.oO(It's probably not the best of ideas (for most people) to brush up on epo while studying fr)
diakopter std: my ($x, $y, $z) = 1,2,3; say $x,$y,$z;
p6eval std 29830: OUTPUT«ok 00:01 108m␤»
TimToady that's fine
it's only single $ vars that change the parsing to item assignment
jnthn Once they're married, it's list assignment all the way. 01:00
01:00 krzys joined
diakopter rakudo: my ($x, $y, ($z = 1,2,3; $x,$y,$z)); 01:00
p6eval rakudo 59c65b: OUTPUT«Redeclaration of symbol $x at line 11, near ",$y,$z));"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
jnthn Curious. :-) 01:01
TimToady std: my ($x, $y, ($z = 1,2,3; $x,$y,$z));
p6eval std 29830: OUTPUT«===SORRY!===␤Can't put required parameter after optional parameters at /tmp/V5bFrV6SsY line 1:␤------> my ($x, $y, ($z = 1,2⏏,3; $x,$y,$z));␤ expecting any of:␤ an infix operator with precedence tighter than item assignment␤
..constraint␤ numis…
jnthn Ah
Missing error detection on that.
It's correctly parsing it as a sub-sig though, I expect.
TimToady interesting that it thinks 2 is a required parameter
I guess that's fine
jnthn heh 01:02
TimToady since we allow constant constraints on anon params
01:02 cdarroch left
jnthn Well, it's just the precedence level default terms parse at I guess. 01:02
diakopter .... inanity in, insanity out
TimToady woulda complained on the ; in any case, I suspect
jnthn But yes, :(2) is a totally fine signature. :-)
TimToady std: my ($x, $y, ($z = 1; $x,$y,$z));
p6eval std 29830: OUTPUT«===SORRY!===␤Can't put required parameter after optional parameters at /tmp/MAfi7dsD5q line 1:␤------> my ($x, $y, ($z = 1; $x⏏,$y,$z));␤ expecting any of:␤ constraint␤ parameter␤ trait␤Other potential difficulties:␤ Useless
..redeclaration of…
TimToady std: my ($x, $y, ($z = 1; $x?,$y?,$z?)); 01:03
p6eval std 29830: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $x (from line 1) at /tmp/o2vLNFG1Yy line 1:␤------> my ($x, $y, ($z = 1; ⏏$x?,$y?,$z?));␤ Useless redeclaration of variable $y (from line 1) at /tmp/o2vLNFG1Yy line 1:␤------> my ($x, $y, ($z = 1;
..…
lue is updating the system using the Perl6-coded time-travelling updater (with the ExplosionPrinciple module, of course :D )
jnthn Should redeclarations be a warning, not an error?
TimToady I guess it still allows ; in sigs
lue not really, but updating nonetheless
jnthn ; in sigs is conjectural, iirc.
TimToady STD is just being soft there :) 01:04
std: my $x; ... ; my $x; # explicitly legal
jnthn I figured it if became unconjectural, it'd be similar issue to doing multisig.
p6eval std 29830: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $x (from line 1) at /tmp/QCQbt5Wv7J line 1:␤------> my $x; ... ; my $x⏏; # explicitly legal␤ok 00:01 105m␤»
jnthn OK, just warning.
TimToady that one is supposed to be a warning only
diakopter std: my ($x = 1, ($z = $x));
TimToady and triggering the same code
p6eval std 29830: OUTPUT«===SORRY!===␤Can't put required parameter after optional parameters at /tmp/YdD8LqoU7Y line 1:␤------> my ($x = 1, ($z = $x)⏏);␤ expecting any of:␤ constraint␤ parameter␤ trait␤FAILED 00:02 108m␤»
jnthn std: my $x; my $x;
p6eval std 29830: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $x (from line 1) at /tmp/6WtKQGvytC line 1:␤------> my $x; my $x⏏;␤ok 00:01 105m␤»
jnthn std: proto my $x; my $x;
p6eval std 29830: OUTPUT«===SORRY!===␤Malformed block at /tmp/pjwfqhhl5h line 1:␤------> proto my ⏏$x; my $x;␤ expecting any of:␤ block␤ routine_def␤ trait␤FAILED 00:01 105m␤» 01:05
jnthn std: my proto $x; my $x;
p6eval std 29830: OUTPUT«ok 00:01 105m␤»
jnthn that way.
01:05 bkeeler_ left
TimToady std: my multi $x; my multi $x; 01:05
p6eval std 29830: OUTPUT«ok 00:01 105m␤»
01:05 ihrd joined
TimToady or that way 01:05
diakopter rakudo: my ($x = 1; $z = $x); say $x
p6eval rakudo 59c65b: OUTPUT«Mu()␤»
jnthn Yup. 01:06
TimToady s/b Any by current spec :)
jnthn TimToady: Give us a chance, that only changed today! :-P
01:06 athenot left
TimToady oh, wait 01:06
yes, I guess 01:07
jnthn diakopter: You need to bind if you want the default params to apply.
TimToady my ($x = 1; $z = $x) := () would be different
jnthn rakudo: my ($x = 1; $z = $x) := (); say $x
p6eval rakudo 59c65b: OUTPUT«1␤»
TimToady ++
diakopter rakudo: my ($x = 1; $z = $x):my say $x
p6eval rakudo 59c65b: OUTPUT«Method 'panic' not found for invocant of class 'Regex;Match'␤current instr.: 'perl6;Perl6;Actions;trait' pc 187819 (src/gen/perl6-actions.pir:7199)␤»
01:07 athenot joined
jnthn I'd panic too :-) 01:07
diakopter panic if you couldn't panic? 01:08
jnthn ...wtf did it try to do with it? :-)
TimToady std: my ($x = 1; $z = $x):my say $x
p6eval std 29830: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/ZDX3fehEqQ line 1:␤------> my ($x = 1; $z = $x):my ⏏say $x␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤ trait␤FAILED 00:01 108m␤»
01:08 athenot left, ihrd left
jnthn STD's panic is better than ours. 01:09
diakopter rakudo: say my ($x = 1; $z = $x)*say*say $x
p6eval rakudo 59c65b: OUTPUT«␤Mu()␤2␤»
lue if you can't panic, then the best way to panic is don't.
TimToady what if you can't don't? 01:10
diakopter then do?
lue then you just don't
TimToady seems like a design smell...
diakopter rakudo: my (::say $x = 1; $z = $x); 01:12
p6eval rakudo 88f57f: OUTPUT«Lexical 'say' not found␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
lue If you can't panic and you can't don't, then you neither panic nor don't panic
01:12 eternaleye left
lue at the same time 01:12
rakudo: my ($x = 1; $z = $x):my say $x 01:13
p6eval rakudo 88f57f: OUTPUT«Method 'panic' not found for invocant of class 'Regex;Match'␤current instr.: 'perl6;Perl6;Actions;trait' pc 188147 (src/gen/perl6-actions.pir:7201)␤»
lue I think it panicked when it couldn't find panic
TimToady std: my (::say $x = 1; $z = $x); 01:14
p6eval std 29830: OUTPUT«ok 00:01 108m␤»
TimToady std: my (::say $x = 1; say $z = $x);
p6eval std 29830: OUTPUT«ok 00:01 108m␤»
TimToady std: my (::say $x = 1; say $z = $x); my say $x;
p6eval std 29830: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $x (from line 1) at /tmp/MjWPyTNOBL line 1:␤------> y (::say $x = 1; say $z = $x); my say $x⏏;␤ok 00:01 108m␤»
TimToady std: my (::say $x = 1; say $z = $x); my say $y; 01:15
p6eval std 29830: OUTPUT«ok 00:01 108m␤»
diakopter std: say my $f; my (::say $x = 1; say $z = $x); my say $y; say my $z;
p6eval std 29830: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/Sj5Ic4G7TI line 1:␤------> ay $x = 1; say $z = $x); my say $y; say ⏏my $z;␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Other potential difficulties:␤
..Unsupported u…
diakopter O_O 01:16
TimToady you turned say into a value
01:16 cotto joined
TimToady specifically, a type value 01:16
diakopter rakudo: say my $f; my (::say $x = 1; say $z = $x); my say $y; say my $z;
p6eval rakudo 88f57f: OUTPUT«Confused at line 11, near "say my $z;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
TimToady std: constant say = 'you said it'; say $x 01:17
p6eval std 29830: OUTPUT«===SORRY!===␤Two terms in a row at /tmp/DADI3zG7Kr line 1:␤------> constant say = 'you said it'; say ⏏$x␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤Other potential difficulties:␤ Unsupported
..use of bare…
lue I think, to make Rakudo/P6 friendlier, every error message should begin with Don't Panic!
arlinius Don't Panic! Method 'panic' not found for invocant of class 'Regex;Match' 01:18
diakopter rakudo: say my ::say (say $z)
p6eval rakudo 88f57f: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
TimToady surely it should be Don't panic.
case matters...
if this were ruby we could have a Panic! method 01:19
lue Capitalizing each word makes it more pronounced, APART FROM SHOUTING .
TimToady does it now, Gentle Reader?
01:19 krzys left
diakopter std: my int (int (int $z)) 01:20
p6eval std 29830: OUTPUT«ok 00:01 108m␤»
lue quite. especially in an error message, Where THings::may be capi:TA:lized at will, so it shouldBe Don't Panic.
01:22 am0c left
TimToady std: while (my $x = shift) {...} 01:23
p6eval std 29830: OUTPUT«ok 00:01 106m␤»
diakopter std: my Int (Int $y, (Int $z), Str $z); say $z
p6eval std 29830: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $z (from line 1) at /tmp/tt8vfMjtdY line 1:␤------> my Int (Int $y, (Int $z), Str ⏏$z); say $z␤ok 00:01 108m␤»
diakopter std: my Int (Int $y, (Int $z), Str $z);
p6eval std 29830: OUTPUT«Potential difficulties:␤ Useless redeclaration of variable $z (from line 1) at /tmp/GJsNQz0ha7 line 1:␤------> my Int (Int $y, (Int $z), Str ⏏$z);␤ok 00:01 108m␤»
diakopter oh
TimToady std: while (my $x = <STDIN>) {...}
p6eval std 29830: OUTPUT«===SORRY!===␤This appears to be Perl 5 code at /tmp/G3AiP2eQH6 line 1:␤------> while ⏏(my $x = <STDIN>) {...}␤FAILED 00:01 104m␤»
TimToady there, "Perl 5" is more pronounced. :)
jnthn rakudo: while (my $x = <STDIN>) {...}
p6eval rakudo 88f57f: OUTPUT«Unsupported use of <STDIN>; in Perl 6 please use $*IN.lines at line 11, near "<STDIN>) {"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
TimToady (it's also a capital 5, though it's hard to see.) 01:24
diakopter rakudo: my Int (Str $x); say $x
p6eval rakudo 88f57f: OUTPUT«Int()␤»
jnthn TimToady: I vote Rakudo more helpful there. :-P
;-)
TimToady not if they just fed a Perl 5 program to a Perl 6 interpreter :P 01:25
diakopter rakudo: my (::eval $x); say $x
p6eval rakudo 88f57f: OUTPUT«Lexical 'eval' not found␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
jnthn Anyways, it draws late. 01:26
diakopter rakudo: my Int (Str $x); say $x.WHAT
jnthn -> sleepies
p6eval rakudo 88f57f: OUTPUT«Int()␤»
TimToady n8
lue rakudo: my @a=1,2,3; say $a[2];
p6eval rakudo 88f57f: OUTPUT«Symbol '$a' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
TimToady ooh, there's an opportunity for a better message 01:27
(std will fail similarly)
01:29 justatheory left
diakopter rakudo: my $::x 01:31
p6eval rakudo 88f57f: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
diakopter std: my $::x; $::::x 01:32
p6eval std 29830: OUTPUT«ok 00:01 105m␤»
01:38 fda314925 left
cognominal S02-bits.pod:1181: Slicel Arguments in a semicolon list (or equiv, like Z) 01:38
I suppose that should be a Splice, or the euphony whith Parcel is really intended? 01:39
Anyway, whatever the spelling, I don't see that type anywhere else in the Synopses 01:40
pugssvn r29831 | lwall++ | [STD] make undeclared variable more fatal 01:43
r29831 | try to be helpful if they made the typical P5-ish variant-sigil mistake
cognominal I meant "a Slice" 01:46
01:49 athenot joined
diakopter Splicel 01:51
std: my ($x does CORE) 01:53
p6eval std 29830: OUTPUT«ok 00:01 106m␤»
diakopter std: my () 01:57
p6eval std 29831: OUTPUT«ok 00:01 106m␤»
diakopter std: {($:s)} 01:58
p6eval std 29831: OUTPUT«ok 00:01 105m␤»
02:03 lue left, eternaleye joined
diakopter rakudo: {say $^s}($s((my $s = { $^a, $^b; }), $s)) 02:05
p6eval rakudo 88f57f: OUTPUT«2␤»
diakopter looks around for "2" 02:06
02:08 agentzh joined
diakopter rakudo: my $a = sub { say $^a + $^a }; $a(4); # this is still a biggish bug 02:08
p6eval rakudo 88f57f: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤current instr.: '_block48' pc 329 (EVAL_1:133)␤»
diakopter rakudo: my $a = sub { say $^a }; $a(4); 02:09
p6eval rakudo 88f57f: OUTPUT«4␤»
TimToady std: my @a=1,2,3; say $a[2]; 02:11
p6eval std 29831: OUTPUT«===SORRY!===␤Variable $a is not predeclared (did you mean @a?) at /tmp/oplNTqJod9 line 1:␤------> my @a=1,2,3; say $a[2⏏];␤ expecting any of:␤ POST␤ numish␤ postfix␤ postfix_prefix_meta_operator␤ prefix or term␤ semicolon list␤
..statement modi…
TimToady there you go
rakudo: my $a = sub { say $^a + $a }; $a(4); 02:12
p6eval rakudo 88f57f: OUTPUT«8␤»
diakopter rakudo: my $a = sub { say $^a + $^a }; $a(4, 5); # this is still a biggish bug 02:15
p6eval rakudo 88f57f: OUTPUT«10␤»
diakopter hee
diakopter invokes masakbot deferentially. 02:17
diakopter and deferredly
still no one's replied to groups.google.com/group/parrot-dev/...e289393b06 02:22
02:23 ShaneC left
diakopter rakudo: my $a = { a => 3 }; say (%$a).WHAT 02:23
TimToady is it in RT?
p6eval rakudo 88f57f: OUTPUT«Confused at line 11, near "say (%$a)."␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤» 02:24
02:24 meppl left
diakopter dunno 02:24
TimToady if it's not in RT it's not officially a Bug
diakopter someone on #parrot suggested I email it to parrot-dv
dev
I thought parrot used trac for bugs now 02:25
TimToady mebbe it does
diakopter rakudo: {}.=() 02:27
p6eval rakudo 88f57f: OUTPUT«src/hash.c:144: failed assertion 's'␤Backtrace - Obtained 17 stack frames (max trace depth is 32).␤/home/p6eval//p1/lib/libparrot.so.2.1.0 [0x2b32978f2d03]␤/home/p6eval//p1/lib/libparrot.so.2.1.0(Parrot_confess+0x87) [0x2b32978f2e37]␤/home/p6eval//p1/lib/libparrot.so.2.1.0
..[0x2b329…
diakopter rakudo: .=()
p6eval rakudo 88f57f: OUTPUT«src/hash.c:144: failed assertion 's'␤Backtrace - Obtained 17 stack frames (max trace depth is 32).␤/home/p6eval//p1/lib/libparrot.so.2.1.0 [0x2b6535c3dd03]␤/home/p6eval//p1/lib/libparrot.so.2.1.0(Parrot_confess+0x87) [0x2b6535c3de37]␤/home/p6eval//p1/lib/libparrot.so.2.1.0
..[0x2b653…
02:27 cotto left
diakopter std: [5]=.=[5] 02:28
p6eval std 29831: OUTPUT«ok 00:01 106m␤»
02:29 galf1 joined, galf1 left
TimToady how...palindromedary 02:29
diakopter std: []=.=[] 02:30
p6eval std 29831: OUTPUT«ok 00:01 106m␤»
diakopter std: []++=.=++[]
p6eval std 29831: OUTPUT«ok 00:01 106m␤»
02:30 galf joined
diakopter std: []++<>=.=<>++[] # here's one 02:32
p6eval std 29831: OUTPUT«ok 00:01 106m␤»
TimToady std: [][+]=.=[+][] 02:33
p6eval std 29831: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix + instead at /tmp/tTl5OQ5iwL line 1:␤------> [][+⏏]=.=[+][]␤ expecting any of:␤ prefix or meta-prefix␤ prefix_postfix_meta_operator␤ term␤FAILED 00:01 106m␤»
TimToady std: [][[+]]=.=[[+]][] 02:34
p6eval std 29831: OUTPUT«ok 00:01 106m␤»
02:36 lue joined 02:37 galf left
diakopter rakudo: my $b = {.0000000000000000000000000000000000000000000000000000000000000000000000001 => $b}.perl; say $b 02:39
p6eval rakudo 88f57f: OUTPUT«{Pair.new(:key("Inf"), :value(Mu))}␤»
diakopter erm
rakudo: my $b = {.0000000000000000000000000000000000000000000000000000000000000000000000001 => $b}; say $b{Inf} 02:40
p6eval rakudo 88f57f: OUTPUT«Mu()␤»
diakopter rakudo: my $b = {.0000000000000000000000000000000000000000000000000000000000000000000000001 => $b}; say $b{"Inf"}
p6eval rakudo 88f57f: OUTPUT«Mu()␤»
diakopter cornfuzzled 02:41
rakudo: my $b = {1e-700 => $b}; say $b.perl
p6eval rakudo 88f57f: OUTPUT«{Pair.new(:key("0"), :value(Mu))}␤»
TimToady rakudo: my $b = { 'foo' => VAR($b) }; say $b.perl 02:44
p6eval rakudo 88f57f: OUTPUT«Could not find non-existent sub &VAR␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
02:44 lichtkind left
TimToady rakudo: my $b = { 'foo' => \$b }; say $b.perl 02:44
p6eval rakudo 88f57f: OUTPUT«{Pair.new(:key("foo"), :value(Capture.new()))}␤»
TimToady rakudo: my $b = { 'foo' => \($b) }; say $b.perl 02:45
p6eval rakudo 88f57f: OUTPUT«{Pair.new(:key("foo"), :value(Capture.new()))}␤»
diakopter std: my $b = { 'foo' => 4}; say $b->{'foo'} 02:48
p6eval std 29831: OUTPUT«===SORRY!===␤Unsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy block at /tmp/a1bejKZir2 line 1:␤------> my $b = { 'foo' => 4}; say $b->⏏{'foo'}␤FAILED 00:01 106m␤»
diakopter .. or drop the -> to index into a Hash 02:49
(ref)
02:57 cls_bsd joined 03:03 wknight8111 left 03:05 colomon joined 03:10 justatheory joined 03:11 cotto joined
colomon Slicel? 03:16
03:17 nihiliad joined
TimToady easy to google for, probably :) 03:18
03:18 lestrrat is now known as lest_away
colomon yes, I imagine. :) 03:18
pugssvn r29832 | lwall++ | [STD] improve error message on ->{} etc as suggested by diakopter++ 03:25
03:31 lest_away is now known as lestrrat 03:33 lue left 03:37 stephenlb left, lue joined
pugssvn r29833 | lwall++ | [lvalue-sub] put band-aid on parsefail 03:38
TimToady std: my $b = { 'foo' => 4}; say $b->{'foo'} 03:39
p6eval std 29831: OUTPUT«===SORRY!===␤Unsupported use of -> as postfix; in Perl 6 please use either . to call a method, or whitespace to delimit a pointy block at /tmp/4EKBKPDXk3 line 1:␤------> my $b = { 'foo' => 4}; say $b->⏏{'foo'}␤FAILED 00:01 108m␤»
03:43 mssm left, justatheory left 03:46 athenot_ joined 03:48 fda314925 joined 03:49 athenot left, athenot_ is now known as athenot 03:52 ggoebel left
snarkyboojum should I be able to do something like: ./perl6 --target=pir -e "say G'day" > ~/gday.pir; parrot/parrot ~/gday.pir and have it work? 04:05
bkeeler Probably not, because it won't have the setting loaded 04:06
snarkyboojum d;oh
cheers :)
TimToady well, it's a parsefail unless G'day is defined
bkeeler that too, heh
TimToady std: say G'day
p6eval std 29833: OUTPUT«Undeclared name:␤ 'G'day' used at line 1␤ok 00:01 107m␤»
snarkyboojum hehe 04:07
TimToady std: my $b = { 'foo' => 4}; say $b->{'foo'}
p6eval std 29833: OUTPUT«===SORRY!===␤Unsupported use of '->{' as postfix dereferencer; in Perl 6 please use '.{' or just '{' to deref, or whitespace to delimit a pointy block at /tmp/FXnSwMRRnV line 1:␤------> my $b = { 'foo' => 4}; say $b->{⏏'foo'}␤FAILED 00:01
..106m␤»
snarkyboojum whoops
TimToady just testing the diakopter memorial error message :)
bkeeler I keep making that mistake too 04:08
hard habit to break
TimToady I wonder if the p5 folks will start adding in "This looks like Perl 6" error messages into perl5... 04:14
pmichaud :-)
TimToady we've tried very hard to make p6 differentiable from p5, so maybe it works the other way too 04:15
pmichaud and I wonder if the error messages will be a little less "friendly" :-)
zpmorgan differentiable == distinguishable? 04:16
TimToady yes
to differentiate is to "tell apart"
or to treat different things differently
"differentiate the sheep from the goats" 04:17
distinguish is mostly a mental act, differentiate usually has more pragmatic results
you can also differentiate yourself from your competitors 04:19
04:25 athenot_ joined 04:26 athenot left, athenot_ is now known as athenot 04:40 NOTevil joined
eternaleye TimToady: And by doing so become a distinguished personage! 04:44
TimToady I'd rather be well integrated... 04:46
eternaleye TimToady: As long as you aren;t purely derivative 04:55
04:56 athenot left
snarkyboojum and can be distinguished by being so well integrated 04:56
TimToady the slope of my forehead is against me...
eternaleye snarkyboojum: You are really taking it to the limit
snarkyboojum which I'm doomed never to reach :) 04:57
eternaleye By the way, where did carlin's bots go, zaslon and mubot and such?
TimToady lost on the server migration? 04:58
eternaleye Maybe, but irclog.perlgeek.de hasn't seen him since the new year 05:00
Which was before the switchover
05:00 rv2733 left
eternaleye Same for the bots 05:00
(25th and 12th of December for zaslon and mubot respectively)
brb, rebooting 05:02
05:02 eternaleye left
lue updating my system is a chore. Especially when in the middle of it it starts whining about not allocating memory. 05:22
So you ^C it, then try again. 2nd try hangs, you ^C it. Then, trying a third time, it's apparently still running.
SIGTERM won't kill it, so you send yum a SIGKILL. I learned my lesson. :( 05:23
05:25 desertm4x_ joined 05:26 nihiliad left 05:29 desertm4x left 06:00 athenot joined 06:01 agentzh left
lue anyone there? 06:02
bkeeler yep 06:04
lue hooray! (updating system, getting KDE 4.4 \o/) 06:05
bkeeler Now even bloatier! 06:12
lue Aw, it's not that bad! Linus uses it!
He also uses Fedora (which I use), because it had great support for the PPC he had (just like me, I think this is the best for PPC) 06:13
It's really creepy how similar my linux box is to his...
I didn't choose Fedora/KDE becuase Linus uses it, mind you. It's just by (creepy) chance. 06:17
s/becuase/because/
06:24 lue left 06:45 JimmyZ joined
pugssvn r29834 | bkeeler++ | Can't use a named regex here, but an anonymous one will suffice 06:54
06:54 kaare joined 06:55 kaare is now known as Guest44302
pugssvn r29835 | duff++ | [t/spec] Add more signature unpacking tests to S06-signature/unpack-array.t 06:56
JimmyZ rakudo: my $a = sub { say $a; say $^a}; $a(3); 06:57
p6eval rakudo 88f57f: OUTPUT«3␤3␤»
JimmyZ rakudo: my $a = sub { say $a; say $^b}; $a(3);
p6eval rakudo 88f57f: OUTPUT«_block48␤3␤»
JimmyZ rakudo: my $a = sub { say $a; }; $a(3)
p6eval rakudo 88f57f: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤current instr.: '_block48' pc 329 (EVAL_1:133)␤»
JimmyZ wonders whether it's right or not. 06:59
pugssvn r29836 | duff++ | [t/spec] Add some tests for multi-dispatch based on unpackability
TimToady std: my $a = sub { say $a; say $^a}; $a(3); 07:06
p6eval std 29833: OUTPUT«===SORRY!===␤Lexical symbol '$a' (from line 1) is already bound to an outer scope implicitly␤ and must therefore be rewritten explicitly as 'OUTER::<$a>' before you can␤ unambiguously declare a new '$a' in the same scope at /tmp/cVEH894wef line 1:␤------>
..m…
ewilhelm is there any documentation on metaclasses outside of S12? 07:09
dalek kudo/master: e79112d | duff++ | t/spectest.data:
Add S06-multi/unpackability.t to spectest.data
TimToady not sure 07:10
jnthn may have some somewhere
ewilhelm Mu? 07:12
07:13 desertm4x_ left
bkeeler Is that a question? 07:14
TimToady it is to a cow
ewilhelm yeah, I'm still looking for a better question :-D
saw Mu mentioned in S12, was hoping to read some docs or source for Mu 07:15
looks like rakudo aliases Mu to Object
TimToady Mu is the new Object 07:16
it is no longer aliased
rakudo: say Object.WHAT
p6eval rakudo 88f57f: OUTPUT«Could not find non-existent sub &Object␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
ewilhelm ah, reading old source
rakudo: say Mu.WHAT
p6eval rakudo 88f57f: OUTPUT«Mu()␤»
07:17 Su-Shee joined
Su-Shee good morning. 07:17
07:20 quietfanatic joined
JimmyZ std: my $a = sub { say $a; }; $a(3) 07:20
p6eval std 29833: OUTPUT«ok 00:01 106m␤»
JimmyZ std: my $a = sub { say $a; say $^a + $a; }; $a(3);
p6eval std 29833: OUTPUT«===SORRY!===␤Lexical symbol '$a' (from line 1) is already bound to an outer scope implicitly␤ and must therefore be rewritten explicitly as 'OUTER::<$a>' before you can␤ unambiguously declare a new '$a' in the same scope at /tmp/leAx8zbBz0 line 1:␤------>
..m…
JimmyZ rakudo: my $a = sub { say $a; say $^a + $a; }; $a(3);
p6eval rakudo 88f57f: OUTPUT«3␤6␤»
TimToady rakudo is incorrect here 07:21
07:21 uniejo joined
JimmyZ gotcha 07:21
ewilhelm ah, src/core/Mu.pm 07:23
more pod in src/builtins/Mu.pir 07:25
and src/metamodel/ClassHOW.pir 07:26
JimmyZ Mu is still a alias of Object.
ewilhelm not in ng? 07:27
JimmyZ ng was already master
ewilhelm: github.com/rakudo/rakudo/blob/maste...amodel.pod 07:28
ewilhelm thanks 07:29
sounds like a fair bit of that is leading the spec. Are other implementations also working-out the details of metamodel? 07:30
JimmyZ I dont't think so 07:36
What follows is the current way this works in Rakudo. Parts of it may one day become spec, other bits likely never will 07:37
spinclad iirc mildew has some metawork based on KnowHow's (like ClassHOW etc), and jnthn and ruoso have compared notes.
TimToady I think we originally invented knowhows for smop 07:38
much of the metamodel was originally invented for Moose, actually 07:39
and was about to get into pugs, when that project crashed 07:40
JimmyZ I don't like the name of Mu. ;) 07:41
ewilhelm it's not much harder to search for than Object, really :-D 07:42
TimToady "object" does not sound very undef-ish
spinclad in fact, first prototyped for pugs, then ported to p5 as Moose 07:43
(to my hazy recall)
TimToady mine too
ewilhelm is that basically Class::MOP, or also Moose? 07:44
spinclad both, i think, but first Class::MOP then Moose on top of it 07:45
JimmyZ rakudo: my $a = Mu; say $a.WHAT 07:46
p6eval rakudo e79112: OUTPUT«Mu()␤»
spinclad and (as deeper roots) it comes from The Art of the Meta-Object Protocol (CLOS, Common Lisp's object system) 07:47
(see READTHEM) 07:48
TimToady .= zzz(); 07:52
07:56 JimmyZ left
ewilhelm rakudo: say Mu.HOW 07:56
p6eval rakudo e79112: ( no output )
ewilhelm alpha: say Mu.HOW 07:57
p6eval alpha 30e0ed: OUTPUT«Object()<0x2b44f738bce8>␤»
08:10 iblechbot joined 08:18 Sarten-X2 left 08:19 alexn_org joined 08:24 athenot left 08:28 Su-Shee_ joined 08:31 Su-Shee left 08:34 alexn_or1 joined, alexn_or1 left, alexn_org left 08:36 Trashlord joined 08:37 eternaleye joined, xabbu42 joined 08:40 Su-Shee_ is now known as Su-Shee 08:41 xabbu42 left
moritz_ good morning 08:42
ewilhelm std: say class {has $.foo;}.^methods(:local).join(','); 08:44
p6eval std 29836: OUTPUT«ok 00:01 108m␤»
ewilhelm early morning
rakudo: say class {has $.foo;}.^methods(:local).join(',');
p6eval rakudo e79112: OUTPUT«Confused at line 11, near "say class "␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
ewilhelm rakudo: say (class {has $.foo;}).^methods(:local).join(',');
p6eval rakudo e79112: OUTPUT«Invalid namespace key in set_pmc_keyed␤current instr.: 'perl6;ClassHOW;new' pc 3527 (src/metamodel/ClassHOW.pir:27)␤»
ewilhelm alpha: say (class {has $.foo;}).^methods(:local).join(','); 08:45
p6eval alpha 30e0ed: ( no output )
ewilhelm alpha: say class {has $.foo;}.^methods(:local);
p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near ".^methods("␤in Main (file <unknown>, line <unknown>)␤»
ewilhelm alpha: say (class {has $.foo;}).^methods(:local);
p6eval alpha 30e0ed: ( no output ) 08:46
moritz_ ewilhelm: the evalbot somehow provokes timeouts on alpha if you declare a new class
ewilhelm: I've never found out why :(
ewilhelm ah. my alpha says 'foo' there
moritz_ that looks right
ewilhelm but only with the parens around class {...} 08:47
moritz_ a public attribute is just a private attribute plus an accessor
that's a known parsing limitation in rakudo/alpha
ewilhelm ah, ok. So if rakudo says "confused", and std says ok, it's probably a NYI? 08:48
moritz_ ewilhelm: yes 08:49
08:50 yinyin left
ewilhelm rakudo: class Thing {has $.foo}; say Thing.new().^methods(:local) 08:52
p6eval rakudo e79112: OUTPUT«accessor_helper_ro␤»
ewilhelm odd, I just built master and got "maximum recursion depth exceeded" for that one 08:53
oh, wait. not with :local
moritz_ ewilhelm: please submit a bug report to [email@hidden.address]
t/spec/S02-whitespace_and_comments/one-pass-parsing.t fails for me :/ 09:05
09:11 dakkar joined 09:16 eternaleye left 09:17 eternaleye joined 09:28 barney joined 09:33 jferrero joined 09:36 hanekomu joined 09:38 pdcawley joined
moritz_ rakudo: say (1..*)[2] 09:44
p6eval rakudo e79112: OUTPUT«Method 'postcircumfix:<[ ]>' not found for invocant of class 'Range'␤current instr.: '!postcircumfix:<[ ]>' pc 10852 (src/builtins/Iterator.pir:25)␤»
moritz_ rakudo: say (1...*)[2]
p6eval rakudo e79112: ( no output ) 09:45
moritz_ not that lazy yet, it seems
09:55 pdcawley left
pugssvn r29837 | moritz++ | [t/spec] some unfudges for rakudo 09:58
10:02 cosimo joined 10:04 xalbo left 10:20 pmurias joined 10:22 lestrrat is now known as lest_away
moritz_ wants an offline version of the perl6 queue from RT 10:23
10:25 mssm joined 10:26 orafu left, orafu joined 10:34 masak joined
masak oh hai, #perl6. 10:34
TimToady: [r29830] it does not feel to me like 'lastcall' is a no-op even in the case of the last candidate, since it actually gives you another dispatch queue. 10:37
10:38 frettled sets mode: +o masak
frettled Good, ehrm, morning, sortof. 10:38
masak a bit late, yes... :/ 10:40
mathw oh hai 10:44
masak mathw: \o
what wonders await today in the world of Perl 6? 10:45
10:57 xalbo joined 10:59 lest_away is now known as lestrrat 11:09 daemon left
masak std: my $x, $y 11:11
p6eval std 29837: OUTPUT«===SORRY!===␤Variable $y is not predeclared at /tmp/sXl06T7fdf line 1:␤------> my $x, $y⏏<EOL>␤ expecting any of:␤ POST␤ postfix␤ postfix_prefix_meta_operator␤FAILED 00:01 108m␤»
masak would it be possible to make this error say "you need to put in parens"? 11:12
sjohnson say ~Array.^Methods
rakudo: say ~Array.^Methods
p6eval rakudo e79112: OUTPUT«Method 'Methods' not found for invocant of class 'ClassHOW'␤current instr.: '!dispatch_.^' pc 410 (src/glue/dispatch.pir:100)␤»
masak sjohnson: small 'm'
sjohnson rakudo: say ~Array.^methods
p6eval rakudo e79112: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 13433 (src/builtins/Multi.pir:22)␤»
masak o.O
sjohnson i broketed it!
masak submits rakudobug
rakudo: Array.^methods 11:13
p6eval rakudo e79112: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 13433 (src/builtins/Multi.pir:22)␤»
sjohnson rakudo: say ~Array.^Methods.perl
p6eval rakudo e79112: OUTPUT«Method 'Methods' not found for invocant of class 'ClassHOW'␤current instr.: '!dispatch_.^' pc 410 (src/glue/dispatch.pir:100)␤»
sjohnson rakudo: say ~Array.^methods.perl
p6eval rakudo e79112: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 13433 (src/builtins/Multi.pir:22)␤»
sjohnson rakudo: say Array.^methods.count
p6eval rakudo e79112: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 13433 (src/builtins/Multi.pir:22)␤» 11:14
sjohnson son of a... :)
masak sjohnson: look, if Array.^methods loops infinitely... 11:15
...Array.^methods.count will, too.
think of the order of the calls.
sjohnson i didn't recognize the error 11:16
masak it's reported now, anyhow. 11:17
11:23 payload joined 11:26 xalbo left, xalbo joined
sjohnson cool 11:29
thanks
i decided.. i shall not go to work tomorrow
11:35 cjk101010 joined
m-locks that epic 11:35
's
jnthn o/ 11:37
colomon o/ 11:44
11:46 daemon joined
sjohnson \o 11:58
masak o/ 12:05
12:09 payload left
colomon Hmmm, 1101... must look that up in the Rakudo code book. 12:09
12:09 meppl joined 12:10 hicx174 left, mikehh left, cognominal left, arlinius left, simcop2387 left, bbkr left, frettled left, rhr left, jjore left
jnthn I suspect that Array.^methods fail is because the flattener ignores the fact that it has a proto-object, not an actual Array, and tries to flatten the proto-object, with innevitable bad consequences. 12:11
12:12 bbkr joined 12:13 mikehh joined 12:14 computerquip joined
masak where does the flattener come into the picture? 12:15
12:15 Maddingue joined, rhr joined, frettled joined
jnthn Not sure, without looking deeper. 12:17
masak ok, no worries.
jnthn rakudo: Array.^parents
p6eval rakudo e79112: ( no output )
jnthn Not there at least then. 12:18
12:18 ggoebel joined, cognominal joined 12:24 iblechbot left 12:27 simcop2387 joined, jjore joined 12:28 hicx174 joined 12:36 ggoebel left 12:37 payload joined
takadonet hey everyone 12:47
masak takadonet: \o
colomon o/
takadonet you guys are quick :)
masak spacial implants.
reading through the exigeses, where Damian keeps saying "look -- it's a little different, but kinda mostly the same all the way" actually causes me to have a little more sympathy for people who nowadays say "it's like it's not even Perl anymore". 12:48
(whether it's still Perl or not is still a matter of sophistry, of course. just saying I see more clearly that Perl 6 used to be closer to Perl 5 than it is nowadays.) 12:49
pugssvn r29838 | pmurias++ | [mildew] added -BoptC 12:53
r29838 | say "hello world" works under -BoptC
r29838 | (still have to fix the setr error)
m-locks just a sec ago some people ripped me a new one on #perl because they keep insisting that they are two separate languages 12:55
masak yeah, they tend to do that over there. 12:56
m-locks i guess they might have a point, but dismissing perl6 completely because of lack of motivation of learning a BETTER language seems lame to me
;P
masak .oO( worse-is-better, Peter Gabriel ) 12:57
all I'm saying is I'm not going to lean to hard on the superiority of Perl 6 over Perl 5 while the latter is the one with CPAN and thousands of modules, stability, speed, community, etc.
m-locks well i guess it's a matter of evolution, adapting the technology and stuff 12:58
like hd-dvd vs. blueray
masak I'm with mst++ on that one. we have reasons to be proud, but it's earlier than we sometimes make light of.
m-locks well yes, it would pay off for some people to start writing modules with perl6 like crazy to make people see that it's usable and doable and nice and pretty 12:59
and also, writing that perl6 for complete idiots
masak yeah. people should write modules.
also, it would be nice to focus more on Perl 5/Perl 6 integration, just as diakopter pointed out a couple months ago. 13:00
m-locks i was thinking of trying to write some neural network experiments
i'm rather a scientist-type than a programmer 13:01
takadonet whistle innocent
I will start writing module for Perl 6 soon
github.com/cjfields/bioperl6 13:02
m-locks how about doing fast hacking with perl5toperl6 compiler and using those modules
could transfer some functionality
masak easier said than done.
m-locks although if we'd like to see some real OO paradigms being used, it's mostly completely rewriting stuff 13:03
masak also, I don't think it's reasonable to expect Perl 5 users to port all their code, even if it's automatic.
m-locks aye
masak basically, Perl 6 is in an underdog position. what's most pissed of (some of) the Perl 5 community members is our attitude of superiority -- in the sense that we find it 'obvious' that people will want to switch over to Perl 6, than Perl 6 is a better language with better foundations and so on. 13:05
13:05 astrojp left 13:06 payload left
masak I hold all those to be true in some sense, but I also see that not much in way of facts help support those views presently. 13:06
s/than/that/
13:07 ignacio_ joined
m-locks i agree, better not expect anything and just do some stuff 13:07
and get larger communities to go with you
to do some stuff
jnthn The problem is perhaps more that even if we can comfortably claim Perl 6 as a language is superior, we've way behind on having anything to compare on the implementation front. 13:08
Su-Shee the porting of code isn't really the issue. many people would do that, if the environment is so much better.
masak nod.
killer apps matter. development tools matter. 13:09
pmurias CPAN matters
masak indeed.
Su-Shee exactly. there are many great programming languages which people abondon their projects from because of lack of "the environment". see reddit's switch.
masak give me a Rakudo-capable Perl 6 implementation with a fully functional CPAN bridge, and we're golden.
Su-Shee and I'm personally not even really a fan of heavy module usage. 13:10
masak coming soon: grammar trace tool, time-traveling debugger.
pmurias m-locks: re real OO - MooseX::Declare gives you real OO in perl 5
13:15 wknight8111 joined, wknight8111 is now known as whiteknight, whiteknight is now known as wknight8111, payload joined 13:16 ruoso joined
colomon masak: It seems to me a lot of the reason there is "attitude of superiority" in the Perl 6 camp is precisely that most of the people in that camp are former (or current!) Perl 5 users that are investing time / energy in Perl 6 because in their opinion it is so much better than Perl 5 that it is worth putting up with slow, buggy implementations and a still-shifting spec. 13:16
masak colomon: yeah. I'm not one of those, but I see that this might be the motivation of some. 13:17
colomon: there's a big danger of attracting idealists. 13:18
colomon It's not an idealism thing, it's just practical.
masak well, claiming that Perl 6 is superior is a statement based in idealism :) 13:19
colomon If I thought Perl 5 were even close to Perl 6 in capabilities, why would I be spending time mucking about with Perl 6 when Perl 5 has an awesome implementation?
masak where 'capabilities' means 'potential capabilities'. 13:20
pmurias ruoso: hi
ruoso hi pmurias 13:21
mathw I always see it as Perl 6 being a superior language, but unfortunately lacking a suitably complete and polished implementation. 13:22
colomon Well, a lot of the capabilities are there now, just not up to their full potential. But yes, if they weren't to some extent potential, Rakudo would be "done".
mathw It's impossible to recommend Perl 6 to anybody who's doing more than dabbling, because there isn't a compiler or interpreter which can run it in a useful manner except under very particular, rather unusual circumstances
masak mathw: implementation, tooling, module ecosystem, community. 13:23
mathw yes
all those things are required for an awesome language to get going
masak yes.
mathw The honest answer to most questions of 'should I learn Perl 6' at this point is 'no'
I really look forward to the day when it's 'yes' 13:24
And yes, I should do more to help that day come around 13:27
mathw hugs everyone who helps
colomon That's kind of my point here. If you think that -- in terms of potential -- Perl 6 is no better than Perl 5, what would be the point of trying to make Perl 6 work? Perl 6 is 80% potential, Perl 5 is 110% actual.
mathw Mmm, Perl 5 is awesome, but dragging a lot of historical crud behind it 13:28
It's worth making a clean break and rebooting the concept. Like the new Battlestar Galactica, only on a much smaller budget.
(one episode's budget... wouldn't that be nice to push into Perl 6 development) 13:29
colomon is now fantasizing about how much language development could be afforded on the cost of one episode of a TV show...
mathw yes it does make me think that society's got some priorities wrong 13:31
maybe rakudo needs to have advert breaks in it 13:32
colomon Sponsored awesome error messages.
buu Yes, but I bet more people enjoy a single episode of tv 13:33
Su-Shee the problem is that in the meanwhile, companies decide against perl day by day and choose java or php instead. which is rather sad.
buu Ageism affects many things in the computer world.
mathw * sigh * Don't get me started on the prevalence of PHP and Java... 13:35
jnthn is doing some Java bits today 13:37
Mostly because there's some Good Stuff out there already written in Java.
Well written is a whole other matter though. :-/
colomon I just realized my last spectest run came in at 412 wallclock, which I think is a new record.
jnthn colomon: Nice :-) 13:38
colomon and Tests=24798, which is tantalizingly close to 25000.... 13:39
pugssvn r29839 | pmurias++ | [mildew]
r29839 | optC handles submolds and branches are compiled correctly
jnthn Did anyone add PerlJam++'s S06-multi/unpackability.t to spectest.data yet?
That may win us a few more. :-)
colomon I think I saw that in the github commit list. 13:40
jnthn ok, cool
13:40 meppl left
colomon but it wasn't included in that test run. :) 13:40
mathw 'There's some Good Stuff already written I can use' is a good reason to use Perl 5 a lot of the time :) 13:42
jnthn mathw: Indeed. 13:43
pugssvn r29840 | pmurias++ | [mildew] fix setr error in optC 13:47
ruoso pmurias, does it run faster? 13:48
jnthn -> last Slovak class 13:49
pmurias ruoso: haven't benchmarked it yet
ruoso ok... but does it look faster ;) ?
pmurias ruoso: it doesn't optimise stuff yet
m-locks are all those other languages parrot can use really complete ones? 13:51
colomon Tests=24816 with unpackability.t.
m-locks that's a long list
php, java, python, ruby, c, basic 13:53
...brainfuck...
colomon I have had the urge to hack on Forth in Parrot since I first heard about Parrot. Wandered in Perl 6 work somehow instead. ;) 13:54
m-locks heh 13:55
ruoso pmurias, how do I look at that output? 13:56
pmurias if you run perl mildew -BoptC it print out the file name of the c file 13:57
ruoso okay
pmurias the output iss similiar to the yeast backend but it's written in perl5 so it will be easier to plug in optimalisations 13:59
PerlJam good morning all
ruoso pmurias, cool
pmurias does -BoptC work for you? 14:00
ruoso have a new perl binary, so waiting some other modules to be installed
pugssvn r29841 | pmurias++ | [mildew] add ->type_info to AST::StringConstant
pmurias goes out to fetche some food 14:03
* fetch
14:06 rv2733 joined 14:10 Lorn joined 14:13 iblechbot joined 14:20 silug joined 14:27 jferrero left 14:33 pmurias left, pmurias joined
ruoso pmurias, it seems you forgot to publish Forest::Gtk2 14:37
14:38 meppl joined
pmurias yes, it's only required for a cool visualization of the AST 14:40
ruoso: that is everything except -Cgtk should work without it 14:42
14:42 ive joined
ruoso er... Can't locate Forest/Gtk2.pm in @INC (...) at mildew line 364 14:44
(you probably should require instead of use) 14:45
pugssvn r29842 | pmurias++ | [mildew] optC: ignore phi functions when emitting code 14:46
r29843 | pmurias++ | [mildew] require Forest::Gtk2 instead of use Forest::Gtk2
pmurias ruoso: yes, i thought i did like that 14:47
14:49 Guest44302 left
pmurias ruoso: did the commit help? 14:49
ruoso re-making perl6 14:50
pmurias, I got an error compiling CORE::int 14:54
pmurias investigates 14:55
ruoso it complaints that $LexicalPrelude is not declared
pmurias a recent STD commit made using undeclared variables fatal 14:56
ruoso: not sure how to solve that, the spec states that SETTING is the Lexical symbols in the unit's DSL" 14:59
ruoso: maybe we could rename $LexicalPrelude to that?
15:02 payload left 15:03 hejki joined
hejki rakudo: multi sub postfix:<!> (Int $x) { $x.say; }; 5!; 15:04
p6eval rakudo e79112: OUTPUT«Confused at line 11, near "5!;"␤current instr.: 'perl6;HLL;Grammar;panic' pc 500 (ext/nqp-rx/src/stage0/HLL-s0.pir:328)␤»
hejki rakudo: multi sub postfix:<!> (Int $x) { $x.say; }; !(5);
p6eval rakudo e79112: ( no output )
pmichaud rakudo master doesn't know operator overloading yet
alpha does, though:
alpha: multi sub postfix:<!>(Int $x) { $x.say; }; 5!
p6eval alpha 30e0ed: OUTPUT«5␤»
pmichaud jnthn: ping
actually, this question can go to others as well 15:07
I'm revising/updating the roadmap, and I'm looking for a good way to indicate "degree of effort required" for individual items. any suggestions? I've tried a 1-5 scale, but I fear that gets a little confusing with the 1,2,3 "priority" scale we already have 15:08
Su-Shee make *, **, *** and so on. 15:09
pmichaud yeah, that might be best
Su-Shee++
Su-Shee and it's like in primary school where you get little stars and bees and all when you've done stuff :) 15:10
15:15 justatheory joined
PerlJam for calibration, what's one-* effort and what's 5-* effort? 15:16
pmichaud one-* is "could likely do very quickly" 15:21
three-* is "likely to take a couple of days or needs coordination/research with others"
five-* is "omg"
(at the moment I don't have any 5-star items in the roadmap :) 15:22
colomon rakudo: my @a; @a[1] = 2; say @a.perl 15:23
p6eval rakudo e79112: OUTPUT«Null PMC access in isa_pmc()␤current instr.: 'perl6;Iterator;batch' pc 10144 (src/gen/RoleToInstanceApplier.pir:133)␤»
colomon whoops, that was a complete failure in terms of demonstrating the bug I was worrying about...
rakudo: my @a; @a[1] = 2; say ~@a
p6eval rakudo e79112: OUTPUT« 2␤»
PerlJam colomon++ failure is how we learn :) 15:24
colomon rakudo: my @a = 1, 2, 4, 3; undefine @a[1]; say @a.perl 15:25
p6eval rakudo e79112: OUTPUT«[1, Mu, 4, 3]␤»
colomon rakudo: my @a = 1, 2, 4, 3; undefine @a[1]; say ~@a
p6eval rakudo e79112: OUTPUT«1 Mu() 4 3␤»
PerlJam rakudo: my @a; @a[13] = 42; say ~@a;
p6eval rakudo e79112: OUTPUT« 42␤»
colomon There we go, that's what I was after.
PerlJam interesting obfuscation for space padding :) 15:26
colomon There seem to be a good number of tests that assume you'll get the same behavior for array elements that have been undefined as you do for those never defined, ie the stringification is ''
pmichaud colomon: does this just come down to "Mu should stringify differently?" 15:28
colomon pmichaud: That'
PerlJam that's what I think
colomon That's what I'm trying to figure out.
I'm also open to "The tests are wrong", or "undefine is wrong". 15:29
pmichaud undefine looks like it's doing the right thing to me -- it's setting the element to Mu (although with recent spec change, should be Any)
jnthn pmichaud: pong
pmichaud jnthn: Su-Shee answered for me :) 15:30
colomon Really, Any instead of Mu?
jnthn Yay
pmichaud yes, recent spec change is that variable declarations default to Any
rakudo: my $a; say $a.WHAT;
masak what if it's a typed array? then &undefine can't set the element to Any, but must set it to the declared element type.
p6eval rakudo e79112: OUTPUT«Mu()␤»
pmichaud should now be Any()
masak submits rakuodbug
m-locks heh
pmichaud masak: correct, undefine is supposed to set the element to its declared element type
masak pmichaud: what if the declared element type is a subtype? :) 15:31
masak loves being difficult
pmichaud then likely its underlying nominal type for the subtype
masak ok.
jnthn (underlying nominal type) correct
PerlJam rakudo: my Int @a = 1,2,3,4; undefine @a[1]; say ~@a
p6eval rakudo e79112: OUTPUT«1 Mu() 3 4␤» 15:32
jnthn subset Foo of Int where ...; my Foo $x; say $x.WHAT; # Int
pmichaud we don't do typed arrays yet.
colomon so should ~Any() also be '' ?
masak but the type object of the nominal type won't satisfy the subtype in the general case.
so then you have elements in the array which don't belong to the subtype.
pmichaud masak: it doesnt have to -- undefined values are always allowed in containers
masak pmichaud: oh, ok.
pmichaud: can I declare them not to be allowed?
pmichaud masak: I'm not aware of a way to do that
masak with :D or something.
jnthn subset Foo of Any where .defined 15:33
Or some such
pmichaud jnthn: but containers still allow undefined values
jnthn True
OK, then no. :-)
15:34 am0c joined
colomon Heh: Nominal type check failed for parameter '$x'; expected Any but got Mu instead 15:34
PerlJam Isn't there a "default" property or something? my @a is default(42) = 1,2,3,4; undefine @a[1]; say ~@a; # "14234"
masak ok, so an Array typed to contain elements of type A must contain elements of tpye A... except if their .defined property is False, then the elements can be of any type? 15:35
pmichaud masak: that's my current understanding, yes.
jnthn PerlJam: Don't remember seeing that.
masak so that's like a security hole in the type system, then.
jnthn masak: Only for containers. 15:36
masak right.
jnthn masak: In signatures, undefs ain't gonna slip through.
That also means that:
my (Int $x) = Mu; # OK
my (Int $x) := Mu; # dies
Since the latter has signature binding semantics.
colomon rakudo: my @a = 1..3; undefine @a[1]; undefine @a[1] 15:37
p6eval rakudo e79112: OUTPUT«Nominal type check failed for parameter '$x'; expected Any but got Mu instead␤current instr.: 'undefine' pc 223850 (src/gen/core.pir:2337)␤»
jnthn So you do have a way to enforce it if you really want to has an exploshun.
colomon: Maybe tweak the signature of undefine.
colomon yup, looking for it now.
jnthn oh, wait
pmichaud undefine likely needs a Mu parameter
jnthn Oh, yes
That probably will d it.
*do
pmichaud from S02:
colomon our sub undefine(\$x) {
my $undefined;
$x = $undefined;
}
jnthn Change to Mu \$x 15:38
pmichaud Variables with non-native types can always contain I<undefined> values,
such as C<Any>, C<Whatever> and C<Failure> objects.
colomon apparently my $undefined still does the wrong thing in Rakudo?
pmichaud colomon: the switch from Mu->Any is very recent 15:39
as in, within the last 4 or 5 days
colomon pmichaud: ah.
15:42 mberends joined
masak lolitsmberends 15:42
jnthn yayitsmberends! 15:43
mberends oh hai #perl6, I got a bit stuck in PIR land :(
jnthn mberends: Snowstorm delayed flights outta there?
masak probably snowy in PIR land too... 15:44
mberends jnthn: yes :( you suggestion for the args PMC in glue/run.pir didn't work. It looks like it always gives the arg count, not the arg values from the command line. 15:46
jnthn Well that sucks.
15:46 Psyche^ joined
jnthn mberends: Pastie? 15:47
mberends wrong computer for that, this is @work
later today will be ok
jnthn OK.
15:48 snarkyboojum left 15:50 Patterner left, Psyche^ is now known as Patterner
pugssvn r29844 | pmurias++ | ugly hack to make STD temporarly ignore $LexicalPrelude and $OUT 15:51
pmurias ruoso: that commmit should HACK around the problem with $LexicalPrelude
15:56 barney left
colomon okay, I've got delete.t passing except for the 6 tests that expect Mu() to stringify to ''. 15:57
15:57 ive left
colomon I'm not quite sure the best approach for dealing with that? 15:57
pmichaud I think the issue may already be addressed in the spec -- we just need to remember/find what it is
jnthn method Str($self where .notdef: ) { '' } # iirc
I didn't implement Mu:U yet, but I guess that'd do it in the future too. 15:58
pmichaud what's the point of the .notdef ?
jnthn pmichaud: Because we don't want any old object that doesn't say how it can stringify to stringify to '' 15:59
Only undefineds.
pmichaud jnthn: but how does that resolve the Mu case?
or are you saying that all protoobjects should stringify to '' ?
jnthn I'm guessing so
Since we'd like my $x; $x ~= 'lol'; to work
So I guess Any needs to also.
pmichaud that's different 16:00
jnthn Why?
pmichaud the = metaop explicitly says what to do with undefineds
jnthn :-S
That feels...superfluous.
pmichaud my question is:
my XYZ $a; say $a; # ? 16:01
jnthn oh
ffs
Yes, I see your point
jnthn evidently should have had more coffee today
16:01 athenot joined 16:02 nihiliad joined, ggoebel joined
colomon I guess I don't see the point? 16:02
pmichaud colomon: what should my last line output?
colomon same thing as my $a; say $a -- I presume just a newline. 16:03
pmurias ruso: btw Forest::Gtk2 is avalible from github.com/pmurias/Forest-Gtk2
colomon if you want the type, there's always say $a.perl;
pmichaud colomon: what about say XYZ; ?
pmurias * ruoso: btw Forest::Gtk2 is avalible from github.com/pmurias/Forest-Gtk2
pmichaud rakudo: say Rat;
p6eval rakudo e79112: OUTPUT«Rat()␤» 16:04
pmichaud rakudo: my Rat $x; say $x;
p6eval rakudo e79112: OUTPUT«Rat()␤»
colomon I think for sure it's a bad idea to have ~Mu eq '' but ~Rat eq 'Rat()'
pmichaud protoobjects can't simultaneously stringify to a type name and to '' :-)
jnthn pmichaud: Right, that's what I suddenly realized. :-)
colomon (I don't really care what the answer is one way or another, mind you.
jnthn pmichaud: At which point, it seens that it's up to operators that want to treat undefs specially to do so. 16:05
colomon jnthn: even that doesn't help here, does it?
jnthn pmichaud: I was thinking more of the Mu ~ 'abc' case. 16:06
er
colomon: ^^
:-)
pmichaud istr that at one point it was speculated that protoobjects stringify to empty string, but print as the typename
however, it's pretty explicit in S12: 16:07
WHAT the type object of the type, .Str returns MyClass()
jnthn Yeah
I think that has to stay the same. 16:08
pmichaud this feels like a pm.txt question, then.
masak nod. 16:09
from S09: "This synopsis summarizes the non-existent Apocalypse 9, which discussed in detail the design of Perl 6 data structures. It was primarily a discussion of how the existing features of Perl 6 combine to make it easier for the PDL folks to write numeric Perl." 16:10
:)
it's almost like an A09 deserves to be written after that nice description of it.
pmichaud "This apocalypse describes the design of Perl 6 data structures. Unfortunately, it's been written using Acme::Bleach." 16:11
masak dang :/
pmichaud: wait. how do you know it says that, then? 16:12
pmichaud I have a sekret decoder ring.
colomon I've got t/spec/S02-whitespace_and_comments/one-pass-parsing.t failing, is anyone else seeing that? 16:13
Su-Shee "michaud, james michaud".
colomon 006, eh?
masak when's Perl 006 coming out? 16:14
pmichaud 00xmas 16:15
masak :0
pugssvn r29845 | pmurias++ | [mildew] quote " and \ when emitting string constants in optC 16:18
masak when'll people be arriving to Copenhagen? I'm thinking whether to arrive on the Thursday or the Friday. also, people are staying until the Tuesday, right?
pmichaud I arrive on Thursday afternoon 16:19
jnthn I arrive on Saturday morning.
m-locks is there a gathering?
pmichaud I depart on Wednesday morning (early). Tuesday afternoon/evening I need to spend a few hours meeting with someone about non-Perl stuff.
PerlJam m-locks: fortunately not in a Highlander sense. :)
m-locks ;P 16:20
pmichaud ...I shouldn't bring my broadsword?
jnthn If you try, send us photos of what the TSA guy's face looked like.
pmichaud will do! 16:21
"It's not a sword... it's an antenna!"
m-locks will trade my +2 shield of laziness to +5 enchanted ring of programming knowledge 16:22
masak sounds like a fair deal. I need to become a bit lazier.
pmichaud just pushed ROADMAP updates -- comments and patches welcome
it's a somewhat significant refactor (apropriate, given that we don't have large-scale tasks as the previous ROADMAP did) 16:24
*appropriate
PerlJam pm: so all of the 1s and 2s should be in R* ?
pmichaud all of the 1s have to be there
the 2s would be good to be there, but I'm not going to panic if some don't make it
PerlJam heh, I like "attention-grabbing examples" :) 16:25
dalek kudo/master: 37e2865 | pmichaud++ | docs/ROADMAP:
Refactor ROADMAP with recent accomplishments and task estimates.
16:25 f00li5h[HireMe] left
pmichaud if others wish to tweak my star estimates, that'd be great 16:26
jnthn pmichaud: At a first glance, looks sane.
pmichaud installation standards might be 2-stars
jnthn 1 ? lexical classes and roles (jnthn)
**
(will patch later, I'm meant to be writing some $work code that I've put off all day ATM)
pmichaud I can patch it now. 16:27
any others?
16:28 athenot_ joined
jnthn Perl 6 interop probably deserves four 16:28
pmichaud .... you mean Perl 5 interop, I hope? ;-)
jnthn pseudo packages 2
oh, er, yes
:-)
Well 16:29
pmichaud I think pseudo packages 3
jnthn It depends which angle you're looking at it. ;-)
16:30 athenot left
jnthn I can go with 3. 16:30
Just don't blame me if I do it and only use 2 stars worth of effort. :-)
PerlJam pmichaud: What's "domain specific languages" meant to represent exactly? Do you mean Perl 6 grammar extension?
pmichaud PerlJam: I don't know exactly -- it's left over from the previous roadmap. :-| 16:31
dalek kudo/master: 1926c29 | pmichaud++ | docs/ROADMAP:
Update difficulty estimate for lexical classes and roles (jnthn++).
jnthn pmichaud: iirc it was grammar tweaks, esp. slang.
pmichaud oh, that makes sense
updating.
PerlJam you've got slice context on there twice 16:32
16:32 athenot_ left
pmichaud one of them is now gone. 16:32
16:34 mberends left
pmichaud okay, next is to put together a schedule/plan for the hackathon. 16:34
dalek kudo/master: a21f056 | pmichaud++ | docs/ROADMAP:
More difficulty estimate updates from jnthn++ .
16:36
kudo/master: b06dfe5 | pmichaud++ | docs/ROADMAP:
More ROADMAP tweaks.
kudo/master: 1d4a471 | (Solomon Foster)++ | src/core/Array.pm:
Simple port of Array.delete from alpha.
kudo/master: 2c553a5 | (Solomon Foster)++ | src/core/operators.pm:
Change the signature of undefine to accept Mu too -- otherwise you cannot undefine something twice at the moment.
PerlJam pmichaud: what does s/// need to be implemented? I was thinking that it was waiting on some deeper changes, but you've put it at ** and so I'm not so sure now :) 16:40
colomon subst doesn't work fully yet either... 16:42
pmichaud we need subst to work, and we need to put it in the grammar. I think that's about it at the moment.
at least for basic s///
masak \o/
pmichaud for the larger "assign to s//", that's probably 3 or 4 stars
I'd have to review the spec again. it's possible it should be more stars. 16:43
masak it's a special form, which should actually make it slightly easier.
pmichaud looking 16:44
actually, it may be fairly tricky now
masak why?
pmichaud my $a = 'abc'; my $b = $a; $a ~~ s/b/x/; say $b;
masak the assignment to $b makes a copy? 16:45
pmichaud we don't exactly have "make a copy" semantics in place anymore
masak o.O
pmichaud strings are supposedly immutable
masak I'd expect such semantics out of binding, but not assignment.
compare assignment of arrays. 16:46
pmichaud well, how does one do s/// on an immutable string?
masak one doesn't, I suppose.
one chucks in another string in its place.
PerlJam so, s/// depends on implementation of Buf, so maybe s/// needs another *
masak why would s/// depend on implementation of Buf?! 16:47
pmichaud if "one chucks another string in its place", that means s/// is an operation on a container, not on a string.
PerlJam Isn't Buf our "mutable string" ?
pmichaud I suppose that can work, but.... hmmmm
masak aye.
PerlJam: well yes, but not just.
pmichaud S05 says 16:50
Any scalar assignment operator may be used; the substitution macro
knows how to turn
$target ~~ s:g[pattern] op= expr
into something like:
$target.subst(rx[pattern], { $() op expr }, :g)
---
I think that it must be $target .= subst(...) instead
TimToady well, that's something like :) 16:52
pmichaud :)
troo
TimToady engineers like to hedge, and are even more delighted when one of their hedges "works" 16:53
pmichaud so, the synopses are your version of a "hedge fund"?
TimToady someone's gotta do the trimming occasionally 16:54
masak Perl 6: hedging our way into the future.
TimToady and gardeners aren' cheap these days
PerlJam pmichaud: in any case, maybe break s/// into two items? "** basic s///" and "*** full s/// including s[\d+] = 42" or something ?
TimToady *aren't
My keyboard doesn't work right before I've had coffee.
especially while still under the influence of multiple antihistamines... 16:55
dalek kudo/master: c9e1981 | pmichaud++ | docs/ROADMAP:
Update s/// roadmap items based on comments from PerlJam++ .
16:59
kudo/master: a725daa | pmichaud++ | src/core/ (2 files):
Merge branch 'master' of [email@hidden.address]
pmichaud masak: could you give me a bit more detail about your talk -- what sorts of things do you plan to focus on or cover? 17:01
(I'm trying to decide how/if a Rakudo "hacker orientation" talk is useful and where it should go) 17:02
TimToady maybe s should (internally) turn anything immutable into a Cat of refs into the orignal string and new chunks interspersed 17:03
which still looks like the original string from the container's viewpoint
pmichaud ...when stringified 17:04
TimToady then we only reflatten the Cat lazily when we decide it's needed
pmichaud well, that perhaps argues that .subst also returns a Cat 17:05
colomon which is probably a very straightforward way to implement it -- if we have Cat. :) 17:06
pmichaud although I have a cat nature, I'm not familiar with Cats yet in Perl 6 :-|
PerlJam does rakudo have cats?
I guess not
TimToady I have on in a box somewhere around here...
*one
masak pmichaud: I'm going to start talking about different types of introspection/reflection/homoiconicity, and then explain how Perl 6 does this on the parsing level. I'll be going through operators and their different types/priority/associativity quite a lot, and then talk about how the syntax Perl 6 can be extended from inside. 17:07
s/syntax Perl 6/syntax of Perl 6/
pmichaud masak: okay, that tells me what I need to know then :)
thanks
masak np. 17:08
pmichaud anyone have a recommendation for order of talks on Saturday?
masak only that I think it'd be wise to put my talk after moritz_++'s.
'after' as in 'not before', not as in 'directly after'.
jnthn Mine can probably go anywhere.
It's just lots of examples. 17:09
masak++ has already seen it. :-)
pmichaud I'm thinking that I might do an extended talk about the compiler structure
Trashlord hello
masak Trashlord: hi!
pmichaud more specifically, I'm wondering what points we need to cover for people who are wanting to get started in hacking on Rakudo
(I have my previous presentations on the topic, I'm wondering what has changed or what I've missed in previous talks) 17:10
or, perhaps a short 20-minute "hackathon goals and organization" talk 17:11
17:11 cjk101010 left 17:12 cosimo left
masak swimming & 17:12
17:12 masak left, cosimo joined
jnthn pmichaud: I'm happy to do part of a compiler structure talk on the type/dispatch/meta-model bits, if that helps. 17:13
(That is, cover the areas I've worked on a lot.) 17:14
pmichaud: Is this for the hackathon on the Sunday?
pmichaud jnthn: okay, will keep it in mind. I'm going to update the wiki page shortly.
yes, for the hackathon on Sunday
jnthn OK
pmichaud I'm thinking we may have some presentation time available on Saturday, so might as well use it to help orient people towards being productive on Sunday 17:15
it might also be worthy as a written article somewhere
which reminds me, I need to review mberends++ updates to compiler_overview.pod 17:16
maybe lunch first, then that.
17:16 wknight8111 left
jnthn pmichaud: Well, having to write the talk would give me a reason to explain a bunch of stuff that isn't explained anywhere now, which would be a side-benefit, yes. :-) 17:17
pugssvn r29846 | lwall++ | [S12] failure to communicate noticed by masak++ 17:18
17:18 wasy joined, wasy left 17:26 cdarroch joined, cdarroch left, cdarroch joined
diakopter masak: I had a bunch of rakuodbugs from yesterday waiting for masakbot to report 17:34
maybe some dupes
17:37 stephenlb joined 17:51 meppl left 17:56 ShaneC joined 18:04 stephenlb left 18:06 stephenlb joined 18:07 payload joined 18:16 ggoebel left 18:17 quietfanatic left, cjk101010 joined 18:18 dakkar left, wasy joined 18:19 ggoebel joined 18:21 wasy left 18:23 wasy_ joined 18:24 wknight8111 joined 18:26 wasy_ is now known as wasy 18:38 f00li5h[HireMe] joined
colomon rakudo: my $x = bar => [ baz => 42, sloth => 43 ]; say $x.perl 18:43
p6eval rakudo a725da: OUTPUT«Pair.new(:key("bar"), :value([Pair.new(:key("baz"), :value(42)), Pair.new(:key("sloth"), :value(43))]))␤»
pmichaud ...why Pair.new, ooc?
is that some sort of default?
colomon darned if I know.
pmichaud hmmmm.
colomon Oh, I'll bet it is.
probably lots of .perl functions haven't been written yet. 18:44
jnthn Yeah, probably .perl needs doing for Pair.
lhf :-)
colomon I've been working on Array.kv (for some definition of array, anyway), and the tests on these pairs are the failing tests right now.
pmichaud please tell me it's Seq.kv :-) 18:45
colomon Any.kv, actually. :)
for the S32-array/kv.t tests, it needs to work on Parcel and Int, too.
18:45 ggoebel left 18:46 mberends joined
colomon wait, these tests shouldn't be here at all, I don't think. Surely Pair has its own .kv which doesn't have anything to do with that for arrays? 18:47
rakudo: say ('a' => 42).kv
p6eval rakudo a725da: OUTPUT«a42␤»
colomon rakudo: say ('a' => 42).kv.perl
pmichaud rakudo: say ('a' => 42).kv.perl
p6eval rakudo a725da: OUTPUT«List.new()␤»
colomon okay, now that's just trouble.
pmichaud looks like a bug.
jnthn List.perl is missing I guess.
pmichaud either that or .kv shouldn't be returning a List
jnthn No, it's just hitting the default in Mu. 18:48
pmichaud I suspect it should be a Parcel
anyway, Pair.kv is just ($!key, $!value);
colomon rakudo: say ('a' => 42).kv.batch(2).perl
p6eval rakudo a725da: OUTPUT«("a", 42)␤»
jnthn I'd expect it to just be doing return $.key, $.value
pmichaud right
colomon rakudo: say ('a' => 42).kv.eager.perl
p6eval rakudo a725da: OUTPUT«("a", 42)␤»
pmichaud but no "return"
jnthn well, yeah, makes no difference semantically though. 18:49
But yes, no need to write the return in the setting; it's kidna suboptimal.
colomon Pair is Enum, perhaps?
method kv() {
return list($.key, $.value);
}
That's in Enum.pm
pmichaud don't need list()
don't need 'return'
colomon or return. :)
does it need parens? 18:50
pmichaud probably not, but I'd leave the parens
colomon Okay, trying that.
jnthn Yeah, heck knows what the guy who put that in Enum was thinking.
<sheepish look> 18:51
pmichaud I've updated the hackathon wiki page with some more goals and scheduling notes... comments/additions welcomed: conferences.yapceurope.org/hack2010...e=HomePage
18:51 payload left, ggoebel joined
colomon Hmmm.... S32-array/kv.t still fails. 18:53
Think I'm going to push what I have so far and go exercise. 18:55
18:57 ignacio__ joined 18:58 ignacio_ left 18:59 Chillance joined, payload joined 19:03 avuserow joined
dalek kudo/master: 0bcb821 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 204 files, 24339 (68.2% of 35695) pass, 0 fail
19:06
19:08 meppl joined
dalek kudo/master: 64305d7 | (Solomon Foster)++ | src/core/Any-list.pm:
Add Any.kv to provide .kv for Positionals and scalars, as well as a proto sub for kv.
19:12
kudo/master: 9f11da6 | (Solomon Foster)++ | src/core/Enum.pm:
Enum.kv should return a Parcel, not a list.
19:16 bkeeler_ joined 19:18 clintongormley joined 19:24 lichtkind joined
lichtkind Tene: ping 19:25
Tene lichtkind: pong
lichtkind: I'm about to be AFK, but if it's short, I'm here for now.
lichtkind Tene: great i would like have some infos
19:30 meteorjay left 19:42 eternaleye left 19:49 athenot joined
colomon rakudo: my $x = bar => [ baz => 42, sloth => 43 ]; say $x.kv.elems 19:52
p6eval rakudo 64305d: OUTPUT«3␤»
colomon pmichaud, jnthn: could the problem there be that the array is flattening somehow?
pmichaud yes. 19:54
more likely that $.value isn't marked as a scalar container, though. 19:55
(well, that would be the underlying cause)
19:55 athenot left
colomon should it be, in this case? 19:56
pmichaud sure, it's a scalar
rakudo: my $x = bar => [ baz => 42, sloth => 43]; say $x.perl; 19:57
p6eval rakudo 64305d: OUTPUT«Pair.new(:key("bar"), :value([Pair.new(:key("baz"), :value(42)), Pair.new(:key("sloth"), :value(43))]))␤»
pmichaud rakudo: my $x = bar => [ baz => 42, sloth => 43]; say $x.kv.perl
p6eval rakudo 64305d: OUTPUT«("bar", [Pair.new(:key("baz"), :value(42)), Pair.new(:key("sloth"), :value(43))])␤»
colomon Is that something that Enum.kv should be doing, or is that something that should be happening intenally?
pmichaud happening internally 19:58
whatever creates the $!value attribute should also be setting it to be scalar
rakudo: my $x = bar => [3, 4]; say $x.kv.elems; # should be 2 19:59
p6eval rakudo 64305d: OUTPUT«3␤»
pmichaud I suspect a problem in BUILD
colomon rakudo: my $y = :bar[ baz => 42, sloth => 43 ]; say $x.kv.perl
p6eval rakudo 64305d: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
pmichaud or create
colomon rakudo: my $y = :bar[ baz => 42, sloth => 43 ]; say $y.kv.perl
p6eval rakudo 64305d: OUTPUT«("bar", [Pair.new(:key("baz"), :value(42)), Pair.new(:key("sloth"), :value(43))])␤»
pmichaud looks like the culprit would be src/builtins/Mu.pir:263-274 20:01
20:02 jonasbn joined
pmichaud fixes 20:02
pugssvn r29847 | colomon++ | [t/spec] Refudge S32-array/kv.t -- approximately the same number of tests work as before, but which ones work have changed.
jonasbn pmichaud: ping 20:03
pmichaud: lodging should be booked I will try to get a status and an address
jnthn pmichaud: May be in CREATE also.
pmichaud jonasbn: great
jnthn: yes, CREATE is where 263-274 are :)
I think I have it fixed. Also, CREATE was still doing Perl6Hash, which is out-of-date :) 20:04
bkeeler_ How do I call a method in the parent class from pir? 20:06
jnthn pmichaud: I don't recall updating that code for ng
bkeeler_: With difficulty. :-/
bkeeler_ Eep
really?
jnthn yeah, it's a pita
bkeeler_: Are you doing something within Rakudo?
bkeeler_ yeah
jnthn ah, then it's less bad
Do get_hll_global to retrieve your parent's type object 20:07
pmichaud attempts a fix to Mu.CREATE
jnthn Then use find_method on that to get hold of the method
And then invoke what you get.
bkeeler_ thanks
jnthn Alternatively, give your PIR method a .lex '__CANDIDATE_LIST__', $P0 or so
And then you can do a call to callwith or nextwith 20:08
pmichaud oh dear, looks like fixing CREATE might be a bit more involved. 20:09
jnthn :-/ 20:10
pmichaud: I'm sorta here (but cooking and eating) but cna take any questions.
pmichaud do we have type attributes on attributes working yet?
e.g., my Foo $!x;
jnthn pmichaud: I fear not.
pmichaud okay, that might actually help then :-) 20:11
jnthn rakudo: class Foo { has Int $.x }; Foo.new(x => 1/2)
p6eval rakudo 64305d: ( no output )
jnthn rakudo: class Foo { has Int $.x }; Foo.new(x => 1/2).x.say
p6eval rakudo 64305d: OUTPUT«0.5␤»
jnthn yes, NYI
Feel free to rip out whatever code is there for doing those.
It'll have to be re-done anyway.
frettled jnthn: Is orc implemented? 20:12
pmichaud yeah -- it was being done previously with an attrinit hash or something
oh, an itype hash
frettled jnthn: because if it isn't, then we have... NYI-orc
jnthn pmichaud: that's dobutless gone/changing. 20:14
frettled: :-P
20:15 ggoebel left
mberends new $*PROGRAM_NAME and @*ARGS seem to be working, spectesting before committing glue/run.pir :) 20:17
colomon mberends: I just pushed a couple of mods.
dalek kudo/master: 2df2463 | (Solomon Foster)++ | t/spectest.data:
Turn on S32-array/kv.t.
colomon These. :)
mberends :) thanks for the heads up :)
jnthn mberends++ 20:18
colomon Oh, I guess the other two were pushed an hour ago.
20:19 ggoebel joined
jnthn Now Rakudo has a pirate's favorite feature again. 20:19
bkeeler_ That would be spelled @*AAAARRRRRRRRRG
20:19 ggoebel left
jnthn :-D 20:19
pmichaud > my $b = x => [1,2]; say $b.kv.elems; 20:20
2
colomon \o/
jnthn \o/
pmichaud > my $x = bar => [ baz => 42, sloth => 43 ]; say $x.kv.elems;
2
colomon That will win us back four more test cases, I think. :)
pmichaud spectesting.
jnthn rakudo: sub foo($a) { say $a.perl }; foo(<a b c>)
p6eval rakudo 64305d: OUTPUT«Too many positional parameters passed; got 3 but expected 1␤current instr.: 'foo' pc 182 (EVAL_1:77)␤»
pmichaud yes, but it may break a lot of other stuff. 20:21
jnthn pmichaud: Dunno if you know how to fix that one.
pmichaud jnthn: I do.
jnthn OK, I'll not worry about it then. :-)
20:22 ignacio__ left
pmichaud I can do that next. :-) 20:22
jnthn I've got Rakudo time after some nom...anyone got anything they'd especially like me to look at?
Otherwise, it's just the usual "make more tests pass again"
20:22 ruoso left
bkeeler_ My grammar patch is aaaaalllmost ready for review if you'd like 20:22
m-locks does that ncurses stuff work? anybody made any scripts and try it out? 20:23
this wild idea of an ncurses database-editor/spreadsheet app crossed my mind
20:25 aartist- joined 20:26 uniejo left, ignacio_ joined
jnthn bkeeler_: I suspect pmichaud++ would like a look at that too before it goes in, but I'm happy to give it a first pass, when you're ready. 20:27
bkeeler_ sweet
Pretty close now, just need to make it set $/ properly
pugssvn r29848 | colomon++ | [t/spec] Unfudge keys_values.t. 20:31
TimToady Any.Str makes 'Any()', but ~Any make '' with a warning that is supressed for ~= 20:35
colomon TimToady: is that spec or a suggestion? 20:36
20:39 mj41_ joined
pmichaud and is that true only for Any? 20:39
how about Str ?
20:39 mj41_ is now known as mj41
TimToady it's true for any type object 20:40
pmichaud and I'm not sure it helps for the ~@array case, which doesn't explicitly call prefix:<~>
(unless Array.Str is supposed to explicitly use prefix:<~> somehow)
dalek kudo/master: 9a1d71b | (Martin Berends)++ | src/glue/run.pir:
[glue/run.pir] when running as a main program, create $*PROGRAM_NAME and @*ARGS
20:41
mberends jnthn: please review the use of 2 x unless, Parcel, splice and !STORE just pushed. They were cribbed from builtins/Array.pir:59 .sub '&circumfix:<[ ]>'
TimToady use [~] if that's what you want
I don't see why ~@array can't use .Str instide
s/t//
pmichaud okay, so then my @array = 1..3; @array[1] = Any; say ~@array; # "1 Any() 3" ? 20:42
TimToady seems fine to me
pmichaud colomon: there's your answer, then :-)
jnthn: 20:43
colomon Oh my. So Rakudo is right and the tests are wrong, eh?
I guess it's a pretty simple fix.
pmichaud > sub foo($a) { say $a.perl; }; foo(<1 2 3>);
("1", "2", "3")
spectesting now.
colomon Except that it will break when we switch from Mu to Any....
pmichaud colomon: the correct answer now is Any()
colomon (The tests, I mean.) 20:44
TimToady unless declared Mu
pmichaud the tests should test for Any(), yes :-)
correct, unless declared Mu.
colomon So rakudo and the tests are both wrong! \o/
20:44 cjk101010 left
jnthn mberends: will do after nom :-) 20:44
pmichaud: yay!
TimToady btw, ~ is really .Stringy, and + is really .Numeric 20:46
pmichaud oops, you're right -- thanks for the correction/reminder :-) 20:47
20:48 payload left
pmichaud so most of the places we've been doing .Str should really be .Stringy ? 20:48
TimToady if you want undef -> '' semantics, yes
pmichaud well, I mean even for things like Seq and Array and the like
and Rat 20:49
currently I think we have Rat.Str as the code for stringifying a Rat. I'm guessing that should be Rat.Stringy instead?
TimToady the most important place for .Str is in print/say
since .Str doesn't even autothread 20:50
so you can stringify junctions
everything else is somewhat negotiable, but the desire to autothread will push these towards .Stringy
pmichaud Stringy autothreads, while Str doesn't? 20:51
TimToady correc
t
that is, Junctions provide a .Str method to the user
but not a .Stringy one
20:51 ignacio_ left
pmichaud so what happens with ~(3|4) then? 20:51
it autothreads to produce "3"|"4" ? 20:52
TimToady you get ~3 | ~4
pmichaud okay.
lisppaste3 bkeeler_ pasted "Grrrrrr" at paste.lisp.org/display/95618
bkeeler_ Can someone take a look at that paste and tell me what I'm doing wrong?
Specfically the $/ assigning part
pmichaud so, what's the code path for ~@array, then?
it goes from prefix:<~>(@array) to become @array.Stringy ? 20:53
TimToady calls Array.Stringy
pmichaud that in turn forwards to Array.Str, or is Array.Stringy the base method?
TimToady and that can do whatever we prefer internally, but it would be nice not to duplicate [~] 20:54
well, it wouldn't dup anyway
since ~ puts spaces
pmichaud doesn't Array.Stringy put spaces also?
TimToady yes
but for each element, we have to decide what to call 20:55
and .Str seems okay for that to me
~« being available for distributing .Stringy
pmichaud okay, I'm totally confused on the relationship between .Str and .Stringy. I understand that they produce different things in junctions, but for other types I don't really know if we should be focusing on .Str or .Stringy 20:56
bkeeler_: what are you trying to implement?
bkeeler_ Trying to get the match object stuck into $/. It's the last thing holding me up here 20:57
TimToady .Str is low-level, force me to a specific type for impending output
.Stringy is make it okay to do subsequent string ops on me
and more abstract
20:57 snarkyboojum joined
TimToady and ~ is abstract 20:57
pmichaud and Array.Stringy is abstract, but it still chooses to force .Str on its elements?
TimToady as is the implied ~ in leg and + in <=> 20:58
dalek kudo/master: 795e94c | (Solomon Foster)++ | t/spectest.data:
Turn on S32-array/keys_values.t.
kudo/master: 72a95fc | (Solomon Foster)++ | src/core/Any-list.pm:
Quick lazy implementations of Any.keys and Any.values, plus matching protos.
TimToady it could be argued either way
pmichaud okay
TimToady in a sense ~Array is 'outputting' to a string
not making the bits available for subsequent string processing individually
pmichaud I understand the meaning behind .Str and .Stringy now; we'll see where we can take it in implementation
jnthn back 20:59
20:59 crazed left
TimToady likely it's one of those decisions that's not going to be completely right either way 20:59
bkeeler_ pmichaud: though I saw in the latest p6 phone minutes that you were also planning on getting grammars done, so I guess I might be duplicating effort :/
pmichaud bkeeler_: you almost certainly don't want to be using find_caller_lex -- I think it's a bit out of date
bkeeler_ Ahh, good to know 21:00
pmichaud also, I don't think that it's Grammar.parse's responsibility to be setting $/
I think that normally comes from ~~
bkeeler_ What's the proper way then?
pmichaud although I guess it doesn't come from ~~ in the case of matching against a grammar. 21:01
TimToady ~~ seems too high
pmichaud looking
TimToady it's whatever takes a regex and applies it to a string
pmichaud that would likely be Regex.match, I guess?
TimToady or Regex.ACCEPTS 21:02
bkeeler_ Hmm, well that simplifies things then. I can just ditch Grammar.parse and let it fall through to Regex::Cursor.parse
21:03 crazed joined
pmichaud bkeeler_: in the case of a grammar, it's already a cursor 21:03
bkeeler_ Indeed
pmichaud but yes, it's Regex.ACCEPTS that is setting $/
(in current implementation)
currently it's doing a direct bind -- that probably needs to become an assignment.
bkeeler_ pmichaud: I guess the tests need updating then. They assume $/ is set after calling .parse on a grammar
21:04 synth left
pmichaud I'm open for a spec clarification there. :-) 21:04
jnthn mberends: Looks sane to me.
pmichaud but I'm used to seeing: my $parse = MyGrammar.parse(...) 21:05
which would imply to me that $/ shouldn't be set.
bkeeler_ I'm fine with that
TimToady maybe there's some kind of .updatematch that can slip into the pipeline and set $/
takes a Match (or Cursor?) en passant and sets $/
so while .subst() might not set $/, .subst().updatematch might 21:06
21:06 ignacio_ joined
TimToady well, give or take a few levels of caller :/ 21:06
21:06 crazed left
pmichaud in which case I'd just prefer to see $/ = .subst 21:06
TimToady or CALLER::<$/> or ..
pmichaud right
TimToady I think it's defined a rebinding though 21:07
pmichaud anyway, Regex.ACCEPTS seems right-ish for the moment
and I think that Grammar.parse should not be setting $/ by default
mberends jnthn: thanks, although you'll have to show me why it needs to be that way next week ;)
TimToady since $/ refers to the outer $/ until rebound
jnthn :-)
pmichaud yes, rebind, not assignment 21:08
jnthn mberends: You could also have done $P2 = '&circumfix:<[ ]>'($P1), but it all works out the same in the end, I expect.
TimToady see S05:816
pmichaud jnthn/mberends: in UNIT_START, any particular reason you know of that args has to be :slurpy ? 21:10
mberends jnthn: fine, may try that some time. starting to look at a tied %*ENV next
pmichaud could perhaps save an RPA
colomon subst has to set $/ internally, no? (with no effect, one would hope, on the calling level's $/)
mberends pmichaud: nope, it was already there
pmichaud mberends: yes, I'm wondering if I put it that way just for convenience.
anyway, as-is is fine now
mberends :) 21:11
pmichaud I suspect the direct call to &circumfix:<[ ]> might be a bit simpler
in particular, the Array that gets built might need transform_to_p6opaue
*to_p6opaque
jnthn Yeah, there is that...
pmichaud (which &circumfix:<[ ]> would handle for you)
mberends that step seemed to be redundant since the args were probably all strings... 21:12
pmichaud jnthn: I've been wondering if we should force a transform_to_p6opaque in Mu's init_pmc vtable....
jnthn pmichaud: I didn't want to do that for performance reasons, that's all. 21:13
pmichaud well, why do we do it now?
(you're avoiding the extra sub invocation, fine)
jnthn Do it now to get the correct dispatcher.
pmichaud maybe we should make a p6opaque_new dynop, then.
jnthn wfm
bkeeler_ t/spec/S05-grammar/action-stubs.t ..Result: PASS 21:14
Woot
jnthn pmichaud: I'm a little concerned that integration/man-or-boy.t is has a fail...it suggests something closure-y ain't quite right still. :-/ 21:15
pmichaud oh, I'm sure it's not.
Currently we aren't cloning closures when something does $a = { ... }
jnthn Ah. 21:16
That'd do it.
pmichaud because we changed assignment to change references instead of make copies.
It may be as simple as defining Block.item or some such
pugssvn r29849 | bkeeler++ | :action should be :actions 21:17
r29849 | Grammar.parse doesn't assign to $/, just use return value
r29849 | rules have implicit {*} at the end
21:18 jferrero joined
jnthn heh 21:20
What does anyone make of these tests:
# things that should be valid
# these tests are probably going to fail if declaring a magical var ever becomes unallowed
eval_lives_ok 'my $!', '$! parses ok';
eval_lives_ok 'my $/', 'as does $/';
pmichaud fail, unless they have an implicit 'proto'
bkeeler_ jnthn, pmichaud: Want to take a preliminary skim of this grammar patch while I see what other tests I can make pass?
pmichaud bkeeler_: yes, please 21:21
jnthn aye
bkeeler_ drangle.com/~bruce/grammar.patch
jnthn pmichaud: Will update them. :-)
pmichaud bkeeler_: this patch doesn't handle regex signatures? 21:22
dalek kudo/master: 46bc261 | jonathan++ | t/spectest.data:
Turn on S02-magicals/progname.t, thanks to patch from mberends++.
aartist- I know parrot is VM, but is it included in Rakudo?
bkeeler_ Hmm, can they take signatures?
pmichaud bkeeler_: yes. they're just like methods.
bkeeler_ Ahh. I guess that wouldn't be too difficult 21:23
pugssvn r29850 | jnthn++ | [t/spec] Update/correct a test file.
pmichaud it bugs me a little that we seem to be duplicating so much of the method actions code
seems like that should be re-used or refactored
bkeeler_ pmichaud: Good point, I can look at that
pmichaud instead of copy-paste
aartist- xb 21:24
jnthn aartist-: No, though Rakudo uses Parrot.
21:24 ignacio_ left
jnthn aartist-: Also it's Configure script knows how to get and build Parrot for you. 21:24
PerlJam deja vu
jnthn *its
bkeeler_ pmichaud: I tried to take the past block and make it use the metamodel to compose the methods, but one problem is that it emits two methods. I can't intercept the !PREFIX__ one, so it ends up being emitted as a regular pir method 21:25
not sure what to do about that
pmichaud that's okay, actually -- it's strictly internal.
you don't need to wrap it in a Code object of any sort.
bkeeler_ OK, good to know 21:26
pugssvn r29851 | jnthn++ | [t/spec] Oops, fudge fail in last patch.
pmichaud in fact, it's probably better if the metamodel doesn't know anything about it
jnthn So long as it doesn't expect it to be a method on the class itself. 21:27
bkeeler_ I wasn't sure where to stick '&make', so I put it in control.pir. That also uses find_caller_lex, so I guess I need to change that to whatever the new way is
pmichaud ...&make ?
oh, that
it might go in src/cheats somewhere
dalek kudo/master: 6373c3b | jonathan++ | t/spectest.data:
Another test file we can run again.
21:28
pmichaud control.pir definitely doesn't feel right for that, though. 21:29
bkeeler_ Agreed. I hemmed and hawed about it for a few minutes and could't make up my mind
pmichaud generally I put such global functions either in cheats, or into the builtins/class file that is most closely associated
bkeeler_ So I just stuck it somewhere temporary
pmichaud so perhaps &make goes in src/builtins/grammar.pir or src/builtins/regex.pir
anyway, whenver not sure where to put something, src/cheats is always a safe bet 21:30
(because then we have to revisit it to figure out where it should really go.)
bkeeler_ Grammar.pir sounds reasonable though
pmichaud for example, I have &infix:<,> in Parcel.pir, because it constructs parcels 21:32
and &circumfix:<[ ]> is in Array.pir, because it constructs arrays
so &make perhaps goes into Match.pir, since it modifies match objects
that would seem to make the most sense.
bkeeler_ Done
21:33 pmurias left
bkeeler_ What's the new alternative to find_caller_lex then? 21:33
pmichaud find_dynamic_lex is the correct one
bkeeler_: why is your patch modifying ClassHOW ?
that seems.... wrongish
bkeeler_ Because it's not properly polymophic the way it is
GrammarHOW ends up making a new ClassHOW at compose time 21:34
pmichaud oh, that could be.
I had forgotten about GrammarHOW objects
(I still tend to think of grammars as always being simple classes.)
bkeeler_ All GrammarHOW does is make it derive from Grammar by default 21:35
jnthn *nod*
Yes, I can believe it has that issue.
21:37 synth joined
pmichaud anyway, I was somewhat hoping that we could get the regex doe to share the method_def code 21:37
s/doe/code/
bkeeler_ Seems reasonable 21:38
pmichaud also, we definitely want to have a regex_def rule, to match STD.pm
instead of just regex_declarator
21:38 ignacio_ joined 21:39 ignacio_ left
bkeeler_ OK, I'll take a look at STD and see how it does thing 21:39
pmichaud (should always start by looking at STD :-)
bkeeler_ I started by making the most minimal changes to Grammar.pm that I could get away with, heh 21:40
pmichaud Grammar.pm ?
ouch ouch ouch 21:41
who added src/builtins/Grammar.pir ?
pmichaud hopes it wasn't him
bkeeler_ Grammar.pir was there already
pmichaud right, I mean historically
bkeeler_ Grammar.pir could actually be rewritten in perl, it doesn't do anything special 21:42
pmichaud Grammar.pir is loading PGE :-(
bkeeler_ It was, I commented that out
pmichaud which means we're getting some significant additional footprint and startup cost :-( 21:43
21:43 gbarr joined, gbarr left
jnthn pmichaud: Heh, at least the fix is easy. 21:43
bkeeler_ Though if Grammar.pir moves to core/Grammar.pm we need another home for &make, heh 21:44
pmichaud make can still go into Grammar.pm :-)
looks like jnthn added Grammar.pir :-) :-)
that definitely needs to disappear
I'm not sure Grammar.pir can become .pm -- we still need it to inherit from somewhere other than Any 21:45
jnthn :-( :-(
Sorry.
I think I put it back when I was madly meta-model hacking.
bkeeler_ class Grammar is Regex::Cursor { method parsefile($f) {...} } ?
I'll give it a try and see if it works 21:46
21:50 Trashlord left
pmichaud that won't work 21:50
Regex::Cursor is outside of our metamodel
it's a striclty internal classname.
*strictly
bkeeler_ Hmmm
pmichaud that's why it needs to be done from PIR. 21:51
bkeeler_ So where does it go, if not Grammar.pir?
pmichaud Grammar.pir is fine -- it's just that the current Grammar.pir has issues :)
bkeeler_ It has fewer issues after my patch I hope
21:52 computerquip left
bkeeler_ Hmm, we fail some tests because you can't say <Foo::bar> in a regex 21:55
I guess that's a Regex core issue though
pmichaud yes
haven't put that back into the engine yet
bkeeler_ I'll leave that ball in your court then 21:56
Time to pop some nosh in the microwave, brb... 21:57
21:58 pmurias joined
pugssvn r29852 | lwall++ | [STD] my $a, $b now gives better message as suggested by masak++ 21:59
TimToady std: my $a, $b; 22:03
p6eval std 29851: OUTPUT«===SORRY!===␤Variable $b is not predeclared at /tmp/JeirIQYHFi line 1:␤------> my $a, $b⏏;␤FAILED 00:01 108m␤»
pmichaud rakudo: my $a, $b; 22:06
p6eval rakudo 6373c3: OUTPUT«Symbol '$b' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
22:06 deathmask joined 22:07 deathmask_ joined
deathmask_ hi 22:07
22:07 Su-Shee left
deathmask_ Is there anybody alive? 22:07
Tene Yes!
deathmask_ how would you check the existance of a file in Perl 6? 22:08
pmichaud afk for a bit
deathmask_ is -e supposed to work? 22:09
Rakudo does not like it.
TimToady rakudo: '.' ~~ :e
Tene if '/etc/passwd' ~~ :f
p6eval rakudo 6373c3: OUTPUT«Method 'e' not found for invocant of class 'Perl6Str'␤current instr.: 'perl6;Enum;ACCEPTS' pc 344011 (src/gen/core.pir:47146)␤»
Tene rakudo: say '/etc/passwd' ~~ :f
p6eval rakudo 6373c3: OUTPUT«Method 'f' not found for invocant of class 'Perl6Str'␤current instr.: 'perl6;Enum;ACCEPTS' pc 344011 (src/gen/core.pir:47146)␤»
TimToady alpha: '.' ~~ :e
p6eval alpha 30e0ed: ( no output )
TimToady alpha: say '.' ~~ :e
p6eval alpha 30e0ed: OUTPUT«1␤»
m-locks alpha does it 22:10
TimToady appears not to be implemented in the new master yet
Tene deathmask_: looks like the latest branch of rakudo, which rewrites quite a bit, doesn't have file tests added back in yet.
but it's :e instead of -e in Perl 6.
jnthn May be able to pop those back quite trivially.
22:10 deathmask left 22:11 vorner left
TimToady and it's a pattern match, not a function 22:11
deathmask_ why?
TimToady so you can say things like $filename ~~ :e & :f & :w
you can gets against a junction of tests 22:12
s/gets/test/
deathmask_ ok
TimToady and you get negated tests out of it
alpha: say '.' ~~ :!f
p6eval alpha 30e0ed: OUTPUT«0␤»
TimToady ooh, bug
Tene alpha: say '/etc/passwd' ~~ :f 22:13
p6eval alpha 30e0ed: OUTPUT«1␤»
Tene alpha: say '/etc/passwd' ~~ :d
p6eval alpha 30e0ed: OUTPUT«0␤»
jnthn alpha: say '/etc/passwd' ~~ :!f
p6eval alpha 30e0ed: OUTPUT«1␤»
TimToady seems to be ignoring the !
jnthn yeah!
fail!
deathmask_ what is alpha? 22:14
TimToady previous version of rakudo
before the refactor
Tene deathmask_: alpha was the last release of the previous development line of rakudo, before the big refactor we're recovering from.
TimToady which gained some cool new stuff, but broke a few things
22:15 computerquip joined
deathmask_ I guess you know what you are doing. 22:15
TimToady std: my $a, $b;
p6eval std 29851: OUTPUT«===SORRY!===␤Variable $b is not predeclared at /tmp/3fo27q2btd line 1:␤------> my $a, $b⏏;␤FAILED 00:01 106m␤»
TimToady hmm, still not updated 22:16
22:16 aartist- left
deathmask_ ok 22:17
So when are you going to fix it?
TimToady file tests? 22:18
deathmask_ yes
PerlJam deathmask_: as soon as someone finds the tuits.
deathmask_ tuits?
PerlJam deathmask_: everything that was in alpha and more will be available for the Rakudo Star release in April.
22:19 jonasbn left
mberends deathmask_: definitely within 2 weeks, because there is a Perl 6 Hackathon in Copenhagen soon, perfect for this kind of patch. 22:19
deathmask_ what is next after star?
bkeeler_ wishes he could go
PerlJam deathmask_: What do you mean?
dalek kudo/master: 2ab6b38 | jonathan++ | src/pmc/perl6multisub.pmc:
Fix .clone on multis.
22:20
kudo/master: abd99af | jonathan++ | src/core/Any-str.pm:
Add back sprintf.
deathmask_ I wonder how you will call the next Rakudo?
kudo/master: d798874 | jonathan++ | t/spectest.data:
We now pass S32-str/sprintf.t again.
deathmask_ Rakudo Gold?
bkeeler_ *+1?
deathmask_ Rakudo Bronz?
mberends Rakudo **
PerlJam deathmask_: let's get Rakudo Star out first before we start thinking up names for the next distribution. 22:21
bkeeler_ I'm sure lue will come up with a million different names for it ;)
TimToady well, the subsequent ASCII characters are: + , - .
deathmask_ I am not sure about -?
Tene 22:22
diakopter considering star can mean zero or more, plus could mean 1 more than that
PerlJam I'd like to riff on the celestial theme personally.
Rakudo Nebula
:)
TimToady Black Hole
snarkyboojum Nova 22:23
deathmask_ that has negative connotations I htink
22:23 clintongormley left
deathmask_ I mean black hole 22:23
TimToady certainly in russia it does...
snarkyboojum Rakudo Naked Singularity
TimToady Brown Dwarf 22:24
snarkyboojum heh
jnthn Red Giant
PerlJam Rakudo Planet
TimToady Green Giant...oh wait...
snarkyboojum Uranus (ambiguous pronunciation)
PerlJam Rakudo-do-do
TimToady the milky 道
22:25 supernovus joined
sjohnson heh 22:25
TimToady speaking of supernovas...
PerlJam he must've felt a disturbance in the force 22:26
TimToady Rakudo That's No Moon
deathmask_ Rakudo Diamond.
supernovus Anyone had sucess building a recent version of mod_parrot that works with Parrot 2.0 (specifically, the build of parrot 2.0 that the January release of Rakudo builds with gen-parrot) ?
Uh oh, was someone speaking of me? 22:27
TimToady we were just debating what comes after Rakudo Star
PerlJam supernovus: you probably want to ask in #parrot about mod_parrot
deathmask_ ok... 22:28
supernovus PerlJam: Thanks, that seems appropriate. I'm playing with mod_perl6 to see if it will speed up page requests versus a CGI script using #!/usr/local/bin/perl6 which is, um, kinda slow at the moment ;-)
deathmask_ I am off, bye... 22:29
PerlJam supernovus: there's always fastcgi :)
Tene deathmask_: mod_parrot was last updated on september 7 22:30
So, probably not.
erm.
supernovus: mod_parrot was last updated on september 7, so probably not
TimToady std: my $a, $b; 22:31
Tene supernovus: I just checked, and no, it doesn't compile.
p6eval std 29852: OUTPUT«===SORRY!===␤Variable $b is not predeclared (declarators are tighter than comma, so maybe your 'my' signature needs parens?) at /tmp/4aNZCAr1oz line 1:␤------> my $a, $b⏏;␤FAILED 00:01 108m␤»
PerlJam std: our $a, $b;
p6eval std 29852: OUTPUT«===SORRY!===␤Variable $b is not predeclared (declarators are tighter than comma, so maybe your 'our' signature needs parens?) at /tmp/oQPWP3CJUK line 1:␤------> our $a, $b⏏;␤FAILED 00:01 107m␤»
deathmask_ good luck!
PerlJam std: our ($a,$b), $c; 22:33
p6eval std 29852: OUTPUT«===SORRY!===␤Variable $c is not predeclared at /tmp/ss4Ms0BlP2 line 1:␤------> our ($a,$b), $c⏏;␤FAILED 00:01 108m␤»
TimToady :P
sjohnson std: our ($a,$b,$c); 22:35
p6eval std 29852: OUTPUT«ok 00:01 107m␤»
Tene std: our ($a, my $b, my ($c, our $d));
p6eval std 29852: OUTPUT«===SORRY!===␤In parameter declaration, typename 'my' must be predeclared (or marked as declarative with :: prefix) at /tmp/pndjEhalzd line 1:␤------> our ($a, my⏏ $b, my ($c, our $d));␤FAILED 00:01 108m␤»
22:35 deathmask_ left
TimToady it doesn't try to catch every possible permutation, just the common mistakes 22:35
won't catch this either: 22:36
PerlJam TimToady: could you do the same trick for temp?
TimToady std: my $a, Int $b
p6eval std 29852: OUTPUT«===SORRY!===␤Confused at /tmp/ryRVfVES6G line 1:␤------> my $a, Int ⏏$b␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤FAILED 00:01 107m␤»
TimToady std: my $a, Int $b;
p6eval std 29852: OUTPUT«===SORRY!===␤Confused at /tmp/C0bHkYoOUf line 1:␤------> my $a, Int ⏏$b;␤ expecting any of:␤ bracketed infix␤ infix or meta-infix␤ statement modifier loop␤FAILED 00:01 107m␤»
TimToady PerlJam: I hope temp isn't used often enough to warrant it. 22:37
PerlJam probably not. local doesn't get used much anymore these days.
supernovus Well, time to see if I can make FastCGI and Perl 6 get along. Should be fun :-)
PerlJam so much that I think there's a large part of the perl community that doesn't even know that local exists.
supernovus: good luck! 22:38
jnthn my local is where I go for a pint, no? 22:39
TimToady I don't like lo-cal pints
PerlJam jnthn: let's find out.
std: my local is where I go for a pint
p6eval std 29852: OUTPUT«===SORRY!===␤Malformed my at /tmp/Kowmpm8JED line 1:␤------> my ⏏local is where I go for a pint␤ expecting any of:␤ scoped declarator␤ typename␤FAILED 00:01 105m␤» 22:40
PerlJam you're malformed.
jnthn Thanks, always good to know.
:-P
TimToady std: constant local is where I go for a pint
p6eval std 29852: OUTPUT«===SORRY!===␤Missing initializer on constant declaration at /tmp/4sCFdtWAFK line 1:␤------> constant local is where ⏏I go for a pint␤ expecting trait␤FAILED 00:01 105m␤»
supernovus PerlJam: Thanks. So far my fun side project to port my several-year-old non-Moose Perl 5 based CMS to Perl 6 has been interesting, including writing a data definition language that kinda resembles YAML... 22:41
PerlJam supernovus: have you written an article or anything about the experience?
supernovus: if not, would you consider it? 22:42
supernovus: if you look at docs/ROADMAP in the rakudo repo, there's an entry that says "attention-grabbing examples" yours might be one of those. 22:43
:-)
supernovus PerlJam: Not yet. I plan to do so shortly though. I will also expand my original article about my port of RSpec and Cucumber to Perl 6.
PerlJam supernovus++
supernovus: you get exponential karma if that causes any ruby wonks to start hacking Perl 6 ;) 22:44
colomon "Tests=24896" -- we're getting there.... 22:45
jnthn colomon: Let's do 25,000 today!
colomon That was my goal -- one of many goals for today yet unfinished. :) 22:46
jnthn Damm, can we pretend that my today doesn't end in 15 mins?
TimToady let's see, that'll make 49896 total...
jnthn TimToady: :-P
colomon jnthn: Today doesn't end until you go to sleep. That's one of the rules. :)
TimToady nap &
jnthn \o/
PerlJam uhoh TimToady's day just ended. 22:47
jnthn, colomon: also, you've got several hours yet where it's still Feb 25 somewhere on the planet. 22:48
jnthn I somehow thought getting calling_sets.t to pass again was gonna be easy. :-/
OH! 22:50
Duh.
supernovus PerlJam: I'm sure I can write up some good articles. The two "big" projects I've worked on so far have been VERY different experiences. PSpec+Pickle were based on the PSpec+Cucumber documentation and examples alone, whereas my website engine is a port of my own existing project (so I am a lot more familar with the existing codebase, and know what I want to keep, and what I want to do differently...)
jnthn .+ and .* were fine, the test had a multi taking a Num, which was now a Rat. 22:51
pmichaud std: constant local is where i go for a pint 22:53
p6eval std 29852: OUTPUT«===SORRY!===␤Missing initializer on constant declaration at /tmp/MWKkO8a47G line 1:␤------> constant local is where ⏏i go for a pint␤ expecting trait␤FAILED 00:01 105m␤»
pmichaud hmmm, I somewhat hoped it would get past the "i", at least :-) 22:54
std: i
p6eval std 29852: OUTPUT«ok 00:01 105m␤»
pugssvn r29853 | jnthn++ | [t/spec] Tweaks to a test, in light of Num -> Rat for literals like 2.5. Wish I hadn't written so many multi tests that relied on Int ~~ Num and 1.5 ~~ Num. :-/ 22:55
22:55 ggoebel joined
pmichaud rakudo: sub foo($a) { say $a.perl; }; foo <1 2 3>; 22:55
p6eval rakudo d79887: OUTPUT«Too many positional parameters passed; got 3 but expected 1␤current instr.: 'foo' pc 182 (EVAL_1:77)␤» 22:56
ggoebel perl6: say(3).WHAT
p6eval elf 29852, pugs, rakudo d79887: OUTPUT«3␤»
pmichaud spectesting fix, will commit then
jnthn colomon: spectesting, got another 30 passes coming. :-)
pmichaud (I like 1-line fixes :)
jnthn My fixes for this test were not too long. :-) 22:57
ggoebel rakudo: .WHAT
p6eval rakudo d79887: ( no output )
jnthn (calling-sets.t)
ggoebel say .WHAT
22:57 IllvilJa left
ggoebel rakudo: say .WHAT 22:57
p6eval rakudo d79887: OUTPUT«Mu()␤»
ggoebel rakudo: say 3.WHAT 22:58
p6eval rakudo d79887: OUTPUT«Int()␤»
PerlJam ggoebel: say(3).WHAT is the same as say(3) and then calling .WHAT on the value that say returns (and then discarding it)
(in case you missed it)
ggoebel okay... just scratching an itch... (I did miss it btw)
pugssvn r29854 | colomon++ | [t/spec] Fix delete.t in light of ~Any discussion, and fudge for current Rakudo.
jnthn hmmm...when/how has S02-whitespace_and_comments\one-pass-parsing.t broked? 22:59
ggoebel say NaN.WHAT
22:59 lestrrat is now known as lest_away
ggoebel rakudo: say NaN.WHAT 22:59
bkeeler_ It was passing for bogus reasons anyway
p6eval rakudo d79887: OUTPUT«Num()␤»
PerlJam ggoebel: you can also /msg the p6eval bot :)
jnthn bkeeler_: ah, ok
colomon just pushed a test file with another 23 passing tests. 23:00
PerlJam 4~4~/win 22
jnthn \o/
bkeeler_ And it started not passing when grammars starting working
pmichaud jnthn: what do you say to the notion that 'empty type property' means 'Any' ?
ggoebel Interesting that NaN is a Num
dalek kudo/master: 740ce02 | (Solomon Foster)++ | t/spectest.data:
Turn on S32-array/delete.t.
ggoebel colomon++
jnthn pmichaud: 'empty type property'? 23:01
oh, sorry, I get it now
pmichaud: Sounds sane.
supernovus Well, just rebuild rakudo master, and tried it with my CMS. Alas, it still apparently has issues with "use": "load_bytecode" couldn't find file 'Webtoo.pir'
jnthn supernovus: Yes, Rakudo master's use still has issues. Sorry. 23:02
There's always alpha for now.
pmichaud jnthn: that seems easier than writing the code to attach 'Any' to all of the untyped variables.
jnthn pmichaud: aye
pmichaud supernovus: I may be able to bump up the priority a bit on 'use'
jnthn pmichaud: Costs us some extra checks of course.
mberends supernovus: is that file in the current directory? there are no paths yet.
pmichaud it's not that difficult
colomon lives_ok { for %hash.pairs -> $pair {
$pair.value += 100;
} }, 'aliases returned by %hash.pairs should be rw (1)';
Is that still right?
pmichaud afaik, yes. 23:03
23:03 masak joined
masak aloha, #perl6! 23:03
mberends pmichaud: +1 to 'use' priority, it will be useful for proto very soon
bkeeler_ hallo masak!
23:04 hanekomu left
masak bkeeler_: hey there! :) 23:04
mberends masak: ahola too!
supernovus jnthn: I have a copy of the January release that I use for daily stuff, and keep trying out master to see how it's coming along.
jnthn supernovus: Aha, cool.
masak hangs a lei around mberends' neck
pmichaud supernovus++
jnthn pmichaud: +1 for use too
pmichaud
.oO( masak++ is in Hawai'i ? )
jnthn pmichaud: I suspect plenty of folks could use it.
supernovus pmichaud: The libraries are kept in 'lib' which my script has a BEGIN { @*INC.push: './lib' } at the top of it...
pugssvn r29855 | colomon++ | [t/spec] Fudge failing test.
jnthn hejhejitsmasak
masak looks out window
pmichaud: nope.
not Hawai'i. 23:05
jnthn: 'hejhej' decidedly does not have the same ring to it as 'lol' or 'yay'... :/
jnthn: 'hejhej' sounds almost resigned to my Swedish ears.
jnthn masak: Meh. Swedish.
;-)
23:06 iblechbot left
mberends supernovus: try copying the module files to the current dir and ignore directories. That's how master can read in Test.pir right now. 23:06
masak jnthn: it's like saying 'hej, but I've been saying "hej" to you for the past twelve months...'
jnthn masak: You gotta remember it's all new to me. I'm still at the point where rulltrappa is a hilarious word.
;-)
masak jnthn: the whole concept of rulltrappa is pretty hilarious.
can't be bothered to walk upstairs? invent a flight of stairs which moves! 23:07
jnthn: has someone told you about 'rulltårta' yet?
jnthn masak: No, what's that one? 23:08
supernovus mberends: Okay, I'll try a few combinations. I do have namespaces going on, my Webtoo.pm loads roles in the Webtoo:: namespace, and there are plugins in a Websight:: namespace which load a role stored in Websight.pm (convoluted, yes...) so I'm not sure how well it will work without directories, but I'll give it a try and report back.
jnthn tårta is some kinda cake, no?
mberends masak: is that a Swiss Roll that went North?
masak jnthn: sv.wikipedia.org/wiki/Rulltårta
mberends: no idea.
jnthn nice
Yes, we'd call it Swiss Role in English.
23:50 ilogger2 joined
mberends lichtkind: the wiki main page especially is far more attractive now, well done! 23:51
masak lichtkind: let me just say now that the quality I admire most with you is your unrelenting JFDIness.
lichtkind mberends: thanks but i got help, conrads back :)
masak: i dont understand
:(
masak lichtkind: I like how you get things done. 23:52
lichtkind: also, sorry again about the November bug. we used to be three active devs on that project, now it seems we're back to one... barely. :/
it's less fun that way, and more of a chore.
also, this bug seems especially unfair, since I'm not aware of changing anything in the code or the configuration. 23:53
23:53 synth joined
diakopter masak: [backlog] the bugs I mentioned? 23:53
masak diakopter: oh, I saw you mention that you had bugs. didn't actually see any. URL? 23:54
diakopter looks
some/all could be dupes
masak sure.
that's a risk I'm willing to take. :) 23:55
mberends lichtkind: I promise to expand the implementation wiki pages, but need sleep now
colomon is suddenly imagining a "Masak: Bug Hunter" theme song...
diakopter rakudo: my Int (Str $x); say $x.WHAT # unspecced behavior?
p6eval rakudo a215ee: OUTPUT«Int()␤»
23:55 synth left
lichtkind mberends: gut nacht, süsse träume 23:55
masak diakopter: whoa.
23:56 synth joined
masak never seen that one. 23:56
diakopter rakudo: my $::x # who knows on this one
p6eval rakudo a215ee: OUTPUT«Symbol '$x' not predeclared in <anonymous>␤current instr.: 'perl6;PCT;HLLCompiler;panic' pc 137 (compilers/pct/src/PCT/HLLCompiler.pir:101)␤»
colomon Tests=25015
masak submits the Int (Str $x) one
diakopter rakudo: my $a = sub { say $^a + $^a }; $a(4); # first of 2
p6eval rakudo a215ee: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤current instr.: '_block48' pc 329 (EVAL_1:133)␤»
lichtkind masak: what i especially like about the last entrys thast the wiki no tells a bit about which parrot guy did what, a world i head to access before
masak std: my $::x
p6eval std 29857: OUTPUT«ok 00:01 107m␤»
diakopter rakudo: my $a = sub { say $^a + $^a }; $a(4, 5); # second of 2 23:57
p6eval rakudo a215ee: OUTPUT«10␤»
masak submits rakudobug
23:57 synth left
diakopter rakudo: my $b = {.000000000000000000000000000000000000​0000000000000000000000000000000000001 => $b}.perl; say $b 23:57
p6eval rakudo a215ee: OUTPUT«Unable to parse blockoid, couldn't find final '}' at line 11␤current instr.: 'perl6;Regex;Cursor;FAILGOAL' pc 1664 (ext/nqp-rx/src/stage0/Regex-s0.pir:907)␤»
diakopter whaaa 23:58
different from yesterday
yesterday it said
masak I don't like those.
diakopter rakudo 88f57f: OUTPUT«{Pair.new(:key("Inf"), :value(Mu))}␤»
masak ok.
diakopter first and second of 2?
masak diakopter: there seems to be a space between the zeroes. is that intentional? 23:59
diakopter ahah
dalek kudo/master: 852213b | (Solomon Foster)++ | t/spectest.data:
Turn on S32-hash/pairs.t and S32-list/grep.t.
23:59 arlinius joined
diakopter rakudo: my $b = {.0000000000000000000000000000000000000000000000000000000000000000000000001 => $b}.perl; say $b 23:59
p6eval rakudo a215ee: OUTPUT«{Pair.new(:key("Inf"), :value(Mu))}␤»
masak diakopter: yeah, submitted the $::x and sub { $^a + $^a } as separate tickets.
masak submits rakudobug
diakopter there was another one with $^a and $^a