Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2010-02-25

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:00 snarkyboojum hey, is proto supposed to work on the latest Rakudo?
00:00 masak snarkyboojum: define 'supposed' :)
00:00 masak snarkyboojum: (it doesn't)
00:00 snarkyboojum masak: k
00:00 snarkyboojum I get Null PMC errors
00:00 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.
00:01 snarkyboojum masak: excellent
00:01 masak (I mean jnthn++, of course.)
00:01 snarkyboojum masak: I'm keen, will probably just need a kick in the right direction initially (re Tardis) :)
00:01 masak snarkyboojum: I've not yet developed a sense for when you're usually around. when are you usually around? :)
00:02 lue Time And Relative Debugging In Space (TARDIS) :)
00:02 masak I'll concede that Tardis is just a work-in-progress name :)
00:02 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)
00:02 snarkyboojum s/even/evening/
00:02 masak cool.
00:03 * masak waves through the planet
00:03 snarkyboojum :)
00:03 masak must be summer where you're at.
00:03 snarkyboojum masak: aye, and loving it (spend the last Oz summer in London)
00:03 masak and midday.
00:03 snarkyboojum spent
00:03 snarkyboojum yep
00:03 lue Oh, I waved through the center of the universe :)
00:04 masak snarkyboojum: and upside down. man, you people are inverted! :)
00:04 snarkyboojum masak: and entirely aware of it :)
00:05 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
00:05 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.
00:05 lue He's halfway across the world in the X/Y/Z axes, and ~5 hours back along the T axis :)
00:06 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:07 masak :/
00:07 masak snarkyboojum: clearly, we need that time device sooner rather than later.
00:07 snarkyboojum have done quite a bit of "work" with the laptop in the sun in a park somewhere near the harbour this time around ;)
00:07 masak now that's just teasing.
00:08 * snarkyboojum doesn't mention the cold beer then
00:08 jnthn snarkyboojum: We do have fridges in the Northern Hemisphere.
00:08 masak we're wading in snow up here. my hands are frostbitten by the cold.
00:08 masak perhaps not frostbitten. but very sad hands, anyway.
00:08 snarkyboojum jnthn: I was more in love with the central heating you guys have up there
00:09 masak snarkyboojum: must not have been .uk :)
00:09 jnthn masak: All my snow here is has a melt.
00:09 lue Time-Augmented Relative Debugging In Style :D
00:09 masak jnthn: weather forecast here says snow+snow+snow+snow.
00:09 snarkyboojum masak: heh - London for 9 months when it snowed last time.. central heating saved my soft Aussie bacon
00:10 jnthn masak: Wow.
00:11 comwt joined #perl6
00:11 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.
00:11 jnthn masak: Ouch! :-( But glad you're OK.
00:12 masak I've only fallen on my bike three times this winter. all three quite benign.
00:12 masak considering that the rest of Sweden is basically dumbstruck by the cold and snow, I consider that a success :)
00:12 jnthn Is it an unusually cold winter in Sweden this year?
00:13 masak yes, but not by a great lot.
00:13 jnthn oh huzzah deferal works again.
00:13 jnthn > class Pub { method bar() { say "beer!" } }
00:13 jnthn > class Bar is Pub { method bar() { print "Mmmmm..."; nextsame() } }
00:13 jnthn > Bar.new.bar
00:13 jnthn Mmmmm...beer!
00:13 snarkyboojum sounds like you need tire chains for a bike wheel!
00:13 masak jnthn++
00:13 jnthn well, sort of.
00:13 masak jnthn: that reminds me. a question fell out of our last discussion on inheritance and multis.
00:14 jnthn masak: Poor question. Did it land softly?
00:14 masak jnthn: how does a method call the same method(s) in its superclasses?
00:14 masak jnthn: we'll see if it lands softly :)
00:15 jnthn Only the ones in its immediate superclasses?
00:15 jnthn In general you use deferal
00:15 masak yeah. like super() in Java.
00:15 masak but 'nextsame()' will defer to methods in the same class too.
00:15 jnthn Yeah, true
00:15 masak I don't want that.
00:15 jnthn I think there's maybe a SUPER pseudo-package.
00:16 masak ok.
00:16 TimToady what about sister classes?
00:16 masak TimToady: I'm thinking of the case where Child.foo() calls Parent.foo().
00:16 lue (time-travelling debug name): Debugging A Load of Erroneous Kode  :D
00:16 TimToady that's where nextsame is designed to Work Right
00:17 TimToady (sister classes)
00:17 jnthn S12 mentions SUPER
00:17 jnthn But doesn't define how it works in a multiple inheritance situation.
00:17 TimToady that's because it doesn't
00:17 jnthn :-)
00:18 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 :)
00:18 jnthn masak: You maybe can convince .WALK to give you the methods you want too.
00:19 masak snarkyboojum: I'll get back to you. need to de-hardcode it a bit for that.
00:19 snarkyboojum masak: ah k
00:19 masak snarkyboojum: and whatever comes up will be very temporary. :)
00:19 masak jnthn: oh, cool.
00:19 lue masak: Debugging Overlooked Code (Time OverRated)
00:20 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.
00:21 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
00:22 masak whoa :)
00:22 * lue will come up with more Dr. Who related debugger names later
00:22 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
00:22 jnthn Didn't put WALK back into master yet.
00:22 snarkyboojum is that stuff accessbile?
00:22 jnthn snarkyboojum: --target=past
00:22 snarkyboojum jnthn: ah! thanks :)
00:22 jnthn snarkyboojum: There's also --target=parse and --target=pir
00:23 snarkyboojum jnthn: sweet - thanks muchly
00:23 masak but I believe it only works when class definitions are not involved. or something like that.
00:23 masak well, --target=pir will work always.
00:23 masak but not --target=parse. :/
00:23 lue time traveling debugger: travelling to the past'd be easy enough, but what about to the future?
00:23 masak don't remember about --target=past. it probably works.
00:25 arlinius there's --target=post, too
00:25 snarkyboojum booshka! --target=past certainly spits out a tonne of stuff :)
00:25 arlinius post spits out even more :)
00:26 lue snarkyboojum: you certainly are british (use of tonne) :D
00:26 jnthn --target=post is thankfully not very useful though :-)
00:26 snarkyboojum lue: bit of a mongrel really :)
00:27 * masak zzz &
00:27 snarkyboojum masak: see ya, nice to chat :)
00:27 lue aw! I got to go in the past to talk to masak!
00:28 lue Check the irclog for a few hours ago. If you see __rnddim__, then you ought to be really creeped out.
00:28 lue That's also me, and I haven't logged in as that for a long time.
00:34 ggoebel joined #perl6
00:36 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:38 arlinius so, this debugger can make it so a bug never existed?
00:38 jnthn TimToady: hmm.
00:39 lue ask masak (who's not here). He came up with it.
00:39 jnthn TimToady: Well, nextsame goes to the next best multis in the same class.
00:39 jnthn TimToady: And only then up the inheritance hierarchy
00:39 jnthn So we get that bit right.
00:40 jnthn lastcall blows the two though.
00:40 jnthn Since we aren't really doing nested dispatchers, it essentially splices the multi dispathcer's candidates into a (lazily formed) list.
00:40 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
00:40 jnthn Yeah
00:41 jnthn We've a bunch of caching in to try and keep that lot cheap for common cases. :-)
00:41 jnthn (Rakudo has the hilarious situation that multi-dispatch is >10% faster than single dispatch... :-/)
00:42 jnthn Anyway, yeah, can likely get lastcall to do something like that.
00:42 jnthn Not going to do that tonight though. :-)
00:43 TimToady I guess the nested dispatcher view is hinted at in S12:1176 and following
00:43 TimToady though not terribly explicit
00:44 jnthn Well
00:44 TimToady would be nice to have lastcall working the same everywhere though....
00:44 jnthn I actually *do* have us calling another dispatcher in a sense.
00:44 jnthn It's just that it's giving us back all the possibilities.
00:44 TimToady and the word "tie-breaking" tends to make it read flatly instead of nested
00:44 jnthn Rather than us continually re-entering into it.
00:45 TimToady but I do think that these calls need to be able to distinguish which level they mean
00:45 yinyin joined #perl6
00:45 jnthn (I considered both...then did the one I figured I was likely to come out of with a sliver of sanity remaining. :-))
00:46 jnthn 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
00:46 TimToady not a problem for you, a problem for the user though, perhaps
00:46 jnthn Or at least, it's not hard for me to make it so we can know.
00:47 jnthn Hmm, yeah.
00:47 TimToady we should probably make some way to name our dispatcher levels
00:47 TimToady (as conjectured)
00:48 TimToady we also need to be careful that a wrapped routine doesn't hane to know that fact
00:48 TimToady *have
00:48 jnthn Yes, we may well have some tricksy issues there.
00:49 jnthn Wrapping a routine that does nextsame...how do the candidate lists play together, etc.
00:49 jnthn That's potentially nasty to handle.
00:49 TimToady perhaps that dispatcher is invisible by default, outside a wrapper itself
00:50 jnthn I did see your "should be same mechanism" and make that so.
00:50 jnthn I didn't manage to write a .wrap implementation I felt was beautiful yet though.
00:51 * 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
00:52 TimToady 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. :-(
00:52 TimToady rakudo: my $x = 1,2,3; say $x.WHAT
00:52 p6eval rakudo 59c65b: OUTPUT«Seq()␤»
00:52 jnthn TimToady: should be 1?
00:52 TimToady should be Int, with 2 and 3 in sink context
00:52 jnthn oh, Int, but yes
00:53 lue how should that parse?
00:53 TimToady and presumably Useless use of warnings
00:53 dalek rakudo/master: 5d38786 | jonathan++ | src/core/Mu.pm:
00:53 dalek rakudo/master: Add back default .perl.
00:53 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/5​d387865deb66d9a4a1a61e7b0f691c4ff4319dc
00:53 dalek rakudo/master: 88f57f6 | jonathan++ | t/spectest.data:
00:53 dalek rakudo/master: We pass three more spectests now (deferal related stuff).
00:53 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/8​8f57f6273a71e009cd0ca52af2fb615ec82b301
00:53 dalek rakudo/master: 1cdb0d8 | jonathan++ | src/ (4 files):
00:53 dalek rakudo/master: Get deferal stuff back in place, to the degree we had it in alpha.
00:53 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/1​cdb0d867be54eb587f51c5bb1de82f3a1ecfe98
00:53 diakopter std: m'$a'
00:53 p6eval std 29829: OUTPUT«Potential difficulties:␤  Variable $a is not predeclared at /tmp/OzJgbq3vmp line 1:␤------> [32mm'$a[33m⏏[31m'[0m␤ok 00:01 106m␤»
00:53 TimToady otherwise loop (my $a = 1, my $b = 2; ...; ...) doesn't work
00:53 jnthn lue: lajk (my $x = 1), 2, 3
00:54 TimToady diakopter: Perl 6 doesn't make choose-your-own single quotes special like Pelr 5
00:54 diakopter o
00:54 lue You should rename pugssvn to kaled while you're at naming these 'upload reporting' bots after Dr. Who enemies.
00:54 TimToady S02:3437
00:55 diakopter std: m'$'\++
00:55 p6eval std 29829: OUTPUT«ok 00:01 105m␤»
00:55 TimToady that's one of the places where I decided Perl 5 made a mistake
00:55 TimToady .oO(not nice to blame Perl 5 for that...)
00:56 diakopter std: m'$'\++\--
00:56 p6eval std 29829: OUTPUT«ok 00:01 105m␤»
00:56 lue rakudo: my $x, $y, $z = 1,2,3; say $x,$y,$x;
00:56 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)␤»
00:56 TimToady is that the Long Tail?
00:57 TimToady std: m'$'++++++----------------
00:57 p6eval std 29830: OUTPUT«ok 00:01 109m␤»
00:57 jnthn ...
00:57 jnthn line noise WIN.
00:57 lue aw, should that work?
00:57 diakopter std: m'$'\[]
00:57 p6eval std 29830: OUTPUT«ok 00:01 105m␤»
00:57 lue alpha: my $x, $y, $z = 1,2,3; say $x,$y,$x;
00:57 TimToady std: .........
00:57 p6eval alpha 30e0ed: OUTPUT«Symbol '$y' not predeclared in <anonymous> (/tmp/85QFhcRH69:10)␤in Main (file <unknown>, line <unknown>)␤»
00:57 p6eval std 29830: OUTPUT«ok 00:01 105m␤»
00:58 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:␤------> [32mmy $x, $y[33m⏏[31m, $z = 1,2,3; say $x,$y,$x;[0m␤  Variable $z is not predeclared at /tmp/I4jQS7V81M line 1:␤------> [32mmy $x, $y, $z[33m⏏[31m = 1,2,3; say $x,$y,$x;[0m␤
00:58 p6eval ..Variab…
00:58 diakopter rakudo: my ($x, $y, $z) = 1,2,3; say $x,$y,$x;
00:58 p6eval rakudo 59c65b: OUTPUT«121␤»
00:58 TimToady you'll note the erro is after the first $y, not the second
00:58 TimToady r
00:58 diakopter o_O
00:59 diakopter oh,
00:59 diakopter rakudo: my ($x, $y, $z) = 1,2,3; say $x,$y,$z;
00:59 p6eval rakudo 59c65b: OUTPUT«123␤»
00:59 lue .oO(It's probably not the best of ideas (for most people) to brush up on epo while studying fr)
00:59 diakopter std: my ($x, $y, $z) = 1,2,3; say $x,$y,$z;
00:59 p6eval std 29830: OUTPUT«ok 00:01 108m␤»
00:59 TimToady that's fine
00:59 TimToady it's only single $ vars that change the parsing to item assignment
01:00 jnthn Once they're married, it's list assignment all the way.
01:00 krzys joined #perl6
01:00 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)␤»
01:01 jnthn Curious. :-)
01:01 TimToady std: my ($x, $y, ($z = 1,2,3; $x,$y,$z));
01:01 p6eval std 29830: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't put required parameter after optional parameters at /tmp/V5bFrV6SsY line 1:␤------> [32mmy ($x, $y, ($z = 1,2[33m⏏[31m,3; $x,$y,$z));[0m␤    expecting any of:␤       an infix operator with precedence tighter than item assignment␤
01:01 p6eval ..constraint␤       numis…
01:01 jnthn Ah
01:01 jnthn Missing error detection on that.
01:01 jnthn It's correctly parsing it as a sub-sig though, I expect.
01:01 TimToady interesting that it thinks 2 is a required parameter
01:01 TimToady I guess that's fine
01:02 jnthn heh
01:02 TimToady since we allow constant constraints on anon params
01:02 jnthn Well, it's just the precedence level default terms parse at I guess.
01:02 diakopter .... inanity in, insanity out
01:02 TimToady woulda complained on the ; in any case, I suspect
01:02 jnthn But yes, :(2) is a totally fine signature. :-)
01:02 TimToady std: my ($x, $y, ($z = 1; $x,$y,$z));
01:02 p6eval std 29830: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't put required parameter after optional parameters at /tmp/MAfi7dsD5q line 1:␤------> [32mmy ($x, $y, ($z = 1; $x[33m⏏[31m,$y,$z));[0m␤    expecting any of:␤   constraint␤       parameter␤       trait␤Other potential difficulties:␤  Useless
01:02 p6eval ..redeclaration of…
01:03 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:␤------> [32mmy ($x, $y, ($z = 1; [33m⏏[31m$x?,$y?,$z?));[0m␤  Useless redeclaration of variable $y (from line 1) at /tmp/o2vLNFG1Yy line 1:␤------> [32mmy ($x, $y, ($z = 1;
01:03 p6eval ..…
01:03 * lue is updating the system using the Perl6-coded time-travelling updater (with the ExplosionPrinciple module, of course :D )
01:03 jnthn Should redeclarations be a warning, not an error?
01:03 TimToady I guess it still allows ; in sigs
01:03 * lue not really, but updating nonetheless
01:03 jnthn ; in sigs is conjectural, iirc.
01:04 TimToady STD is just being soft there :)
01:04 TimToady std: my $x; ... ; my $x;   # explicitly legal
01:04 jnthn I figured it if became unconjectural, it'd be similar issue to doing multisig.
01:04 p6eval std 29830: OUTPUT«Potential difficulties:␤  Useless redeclaration of variable $x (from line 1) at /tmp/QCQbt5Wv7J line 1:␤------> [32mmy $x; ... ; my $x[33m⏏[31m;   # explicitly legal[0m␤ok 00:01 105m␤»
01:04 jnthn OK, just warning.
01:04 TimToady that one is supposed to be a warning only
01:04 diakopter std: my ($x = 1, ($z = $x));
01:04 TimToady and triggering the same code
01:04 p6eval std 29830: OUTPUT«[31m===[0mSORRY![31m===[0m␤Can't put required parameter after optional parameters at /tmp/YdD8LqoU7Y line 1:␤------> [32mmy ($x = 1, ($z = $x)[33m⏏[31m);[0m␤    expecting any of:␤    constraint␤       parameter␤       trait␤FAILED 00:02 108m␤»
01:04 jnthn std: my $x; my $x;
01:04 p6eval std 29830: OUTPUT«Potential difficulties:␤  Useless redeclaration of variable $x (from line 1) at /tmp/6WtKQGvytC line 1:␤------> [32mmy $x; my $x[33m⏏[31m;[0m␤ok 00:01 105m␤»
01:04 jnthn std: proto my $x; my $x;
01:05 p6eval std 29830: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed block at /tmp/pjwfqhhl5h line 1:␤------> [32mproto my [33m⏏[31m$x; my $x;[0m␤    expecting any of:␤       block␤  routine_def␤        trait␤FAILED 00:01 105m␤»
01:05 jnthn std: my proto $x; my $x;
01:05 p6eval std 29830: OUTPUT«ok 00:01 105m␤»
01:05 jnthn that way.
01:05 TimToady std: my multi $x; my multi $x;
01:05 p6eval std 29830: OUTPUT«ok 00:01 105m␤»
01:05 ihrd joined #perl6
01:05 TimToady or that way
01:05 diakopter rakudo: my ($x = 1; $z = $x); say $x
01:05 p6eval rakudo 59c65b: OUTPUT«Mu()␤»
01:06 jnthn Yup.
01:06 TimToady s/b Any by current spec :)
01:06 jnthn TimToady: Give us a chance, that only changed today! :-P
01:06 TimToady oh, wait
01:07 TimToady yes, I guess
01:07 jnthn diakopter: You need to bind if you want the default params to apply.
01:07 TimToady my ($x = 1; $z = $x) := () would be different
01:07 jnthn rakudo: my ($x = 1; $z = $x) := (); say $x
01:07 p6eval rakudo 59c65b: OUTPUT«1␤»
01:07 TimToady ++
01:07 diakopter rakudo: my ($x = 1; $z = $x):my say $x
01:07 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 #perl6
01:08 jnthn I'd panic too :-)
01:08 diakopter panic if you couldn't panic?
01:08 jnthn ...wtf did it try to do with it? :-)
01:08 TimToady std: my ($x = 1; $z = $x):my say $x
01:08 p6eval std 29830: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/ZDX3fehEqQ line 1:␤------> [32mmy ($x = 1; $z = $x):my [33m⏏[31msay $x[0m␤    expecting any of:␤ bracketed infix␤  infix or meta-infix␤      statement modifier loop␤  trait␤FAILED 00:01 108m␤»
01:08 ihrd left #perl6
01:09 jnthn STD's panic is better than ours.
01:09 diakopter rakudo: say my ($x = 1; $z = $x)*say*say $x
01:09 p6eval rakudo 59c65b: OUTPUT«␤Mu()␤2␤»
01:09 lue if you can't panic, then the best way to panic is don't.
01:10 TimToady what if you can't don't?
01:10 diakopter then do?
01:10 lue then you just don't
01:10 TimToady seems like a design smell...
01:12 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)␤»
01:12 lue If you can't panic and you can't don't, then you neither panic nor don't panic
01:12 lue at the same time
01:13 lue 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)␤»
01:13 lue I think it panicked when it couldn't find panic
01:14 TimToady std: my (::say $x = 1; $z = $x);
01:14 p6eval std 29830: OUTPUT«ok 00:01 108m␤»
01:14 TimToady std: my (::say $x = 1; say $z = $x);
01:14 p6eval std 29830: OUTPUT«ok 00:01 108m␤»
01:14 TimToady std: my (::say $x = 1; say $z = $x); my say $x;
01:14 p6eval std 29830: OUTPUT«Potential difficulties:␤  Useless redeclaration of variable $x (from line 1) at /tmp/MjWPyTNOBL line 1:␤------> [32my (::say $x = 1; say $z = $x); my say $x[33m⏏[31m;[0m␤ok 00:01 108m␤»
01:15 TimToady std: my (::say $x = 1; say $z = $x); my say $y;
01:15 p6eval std 29830: OUTPUT«ok 00:01 108m␤»
01:15 diakopter std: say my $f; my (::say $x = 1; say $z = $x); my say $y; say my $z;
01:15 p6eval std 29830: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/Sj5Ic4G7TI line 1:␤------> [32may $x = 1; say $z = $x); my say $y; say [33m⏏[31mmy $z;[0m␤    expecting any of:␤ bracketed infix␤  infix or meta-infix␤      statement modifier loop␤Other potential difficulties:␤
01:15 p6eval ..Unsupported u…
01:16 diakopter O_O
01:16 TimToady you turned say into a value
01:16 cotto joined #perl6
01:16 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;
01:16 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)␤»
01:17 TimToady std: constant say = 'you said it'; say $x
01:17 p6eval std 29830: OUTPUT«[31m===[0mSORRY![31m===[0m␤Two terms in a row at /tmp/DADI3zG7Kr line 1:␤------> [32mconstant say = 'you said it'; say [33m⏏[31m$x[0m␤    expecting any of:␤   bracketed infix␤  infix or meta-infix␤      statement modifier loop␤Other potential difficulties:␤  Unsupported
01:17 p6eval ..use of bare…
01:17 lue I think, to make Rakudo/P6 friendlier, every error message should begin with Don't Panic!
01:18 arlinius Don't Panic! Method 'panic' not found for invocant of class 'Regex;Match'
01:18 diakopter rakudo: say my ::say (say $z)
01:18 p6eval rakudo 88f57f: OUTPUT«Null PMC access in type()␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
01:18 TimToady surely it should be Don't panic.
01:18 TimToady case matters...
01:19 TimToady if this were ruby we could have a Panic! method
01:19 lue Capitalizing each word makes it more pronounced, APART FROM SHOUTING .
01:19 TimToady does it now, Gentle Reader?
01:20 diakopter std: my int (int (int $z))
01:20 p6eval std 29830: OUTPUT«ok 00:01 108m␤»
01:20 lue quite. especially in an error message, Where THings::may be capi:TA:lized at will, so it shouldBe Don't Panic.
01:23 TimToady std: while (my $x = shift) {...}
01:23 p6eval std 29830: OUTPUT«ok 00:01 106m␤»
01:23 diakopter std: my Int (Int $y, (Int $z), Str $z); say $z
01:23 p6eval std 29830: OUTPUT«Potential difficulties:␤  Useless redeclaration of variable $z (from line 1) at /tmp/tt8vfMjtdY line 1:␤------> [32mmy Int (Int $y, (Int $z), Str [33m⏏[31m$z); say $z[0m␤ok 00:01 108m␤»
01:23 diakopter std: my Int (Int $y, (Int $z), Str $z);
01:23 p6eval std 29830: OUTPUT«Potential difficulties:␤  Useless redeclaration of variable $z (from line 1) at /tmp/GJsNQz0ha7 line 1:␤------> [32mmy Int (Int $y, (Int $z), Str [33m⏏[31m$z);[0m␤ok 00:01 108m␤»
01:23 diakopter oh
01:23 TimToady std: while (my $x = <STDIN>) {...}
01:23 p6eval std 29830: OUTPUT«[31m===[0mSORRY![31m===[0m␤This appears to be Perl 5 code at /tmp/G3AiP2eQH6 line 1:␤------> [32mwhile [33m⏏[31m(my $x = <STDIN>) {...}[0m␤FAILED 00:01 104m␤»
01:23 TimToady there, "Perl 5" is more pronounced.  :)
01:23 jnthn rakudo: while (my $x = <STDIN>) {...}
01:23 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)␤»
01:24 TimToady (it's also a capital 5, though it's hard to see.)
01:24 diakopter rakudo: my Int (Str $x); say $x
01:24 p6eval rakudo 88f57f: OUTPUT«Int()␤»
01:24 jnthn TimToady: I vote Rakudo more helpful there. :-P
01:24 jnthn ;-)
01:25 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
01:25 p6eval rakudo 88f57f: OUTPUT«Lexical 'eval' not found␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
01:26 jnthn Anyways, it draws late.
01:26 diakopter rakudo: my Int (Str $x); say $x.WHAT
01:26 * jnthn -> sleepies
01:26 p6eval rakudo 88f57f: OUTPUT«Int()␤»
01:26 TimToady n8
01:26 lue rakudo: my @a=1,2,3; say $a[2];
01:26 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)␤»
01:27 TimToady ooh, there's an opportunity for a better message
01:27 TimToady (std will fail similarly)
01:31 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)␤»
01:32 diakopter std: my $::x; $::::x
01:33 p6eval std 29830: OUTPUT«ok 00:01 105m␤»
01:38 cognominal S02-bits.pod:1181:    Slicel      Arguments in a semicolon list (or equiv, like Z)
01:39 cognominal I suppose that should be a Splice, or the euphony whith Parcel is really intended?
01:40 cognominal Anyway, whatever the spelling, I don't see that type anywhere else in the Synopses
01:43 pugssvn r29831 | lwall++ | [STD] make undeclared variable more fatal
01:43 pugssvn r29831 | try to be helpful if they made the typical P5-ish variant-sigil mistake
01:46 cognominal I meant "a Slice"
01:49 athenot joined #perl6
01:51 diakopter Splicel
01:53 diakopter std: my ($x does CORE)
01:53 p6eval std 29830: OUTPUT«ok 00:01 106m␤»
01:57 diakopter std: my ()
01:57 p6eval std 29831: OUTPUT«ok 00:01 106m␤»
01:58 diakopter std: {($:s)}
01:58 p6eval std 29831: OUTPUT«ok 00:01 105m␤»
02:03 eternaleye joined #perl6
02:05 diakopter rakudo: {say $^s}($s((my $s = { $^a, $^b; }), $s))
02:05 p6eval rakudo 88f57f: OUTPUT«2␤»
02:06 * diakopter looks around for "2"
02:08 agentzh joined #perl6
02:08 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)␤»
02:09 diakopter rakudo: my $a = sub { say $^a }; $a(4);
02:09 p6eval rakudo 88f57f: OUTPUT«4␤»
02:11 TimToady std: my @a=1,2,3; say $a[2];
02:11 p6eval std 29831: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $a is not predeclared (did you mean @a?) at /tmp/oplNTqJod9 line 1:␤------> [32mmy @a=1,2,3; say $a[2[33m⏏[31m];[0m␤    expecting any of:␤ POST␤   numish␤   postfix␤  postfix_prefix_meta_operator␤       prefix or term␤ semicolon list␤
02:11 p6eval ..statement modi…
02:11 TimToady there you go
02:12 TimToady rakudo: my $a = sub { say $^a + $a }; $a(4);
02:12 p6eval rakudo 88f57f: OUTPUT«8␤»
02:15 diakopter rakudo: my $a = sub { say $^a + $^a }; $a(4, 5); # this is still a biggish bug
02:15 p6eval rakudo 88f57f: OUTPUT«10␤»
02:15 diakopter hee
02:17 * diakopter invokes masakbot deferentially.
02:17 * diakopter and deferredly
02:22 diakopter still no one's replied to http://groups.google.com/group/parrot-de​v/browse_thread/thread/7905c2e289393b06
02:23 diakopter rakudo: my $a = { a => 3 }; say (%$a).WHAT
02:23 TimToady is it in RT?
02:24 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 diakopter dunno
02:24 TimToady if it's not in RT it's not officially a Bug
02:24 diakopter someone on #parrot suggested I email it to parrot-dv
02:24 diakopter dev
02:25 diakopter I thought parrot used trac for bugs now
02:25 TimToady mebbe it does
02:27 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/l​ibparrot.so.2.1.0(Parrot_confess+0x87) [0x2b32978f2e37]␤/home/p6eva​l//p1/lib/libparrot.so.2.1.0
02:27 p6eval ..[0x2b329…
02:27 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 [0x2b6535c3dd03]␤/home/p6eval//p1/lib/l​ibparrot.so.2.1.0(Parrot_confess+0x87) [0x2b6535c3de37]␤/home/p6eva​l//p1/lib/libparrot.so.2.1.0
02:27 p6eval ..[0x2b653…
02:28 diakopter std: [5]=.=[5]
02:28 p6eval std 29831: OUTPUT«ok 00:01 106m␤»
02:29 galf1 joined #perl6
02:29 TimToady how...palindromedary
02:30 diakopter std: []=.=[]
02:30 p6eval std 29831: OUTPUT«ok 00:01 106m␤»
02:30 diakopter std: []++=.=++[]
02:30 p6eval std 29831: OUTPUT«ok 00:01 106m␤»
02:30 galf joined #perl6
02:32 diakopter std: []++<>=.=<>++[] # here's one
02:32 p6eval std 29831: OUTPUT«ok 00:01 106m␤»
02:33 TimToady std: [][+]=.=[+][]
02:33 p6eval std 29831: OUTPUT«[31m===[0mSORRY![31m===[0m␤Preceding context expects a term, but found infix + instead at /tmp/tTl5OQ5iwL line 1:␤------> [32m[][+[33m⏏[31m]=.=[+][][0m␤    expecting any of:␤ prefix or meta-prefix␤    prefix_postfix_meta_operator␤     term␤FAILED 00:01 106m␤»
02:34 TimToady std: [][[+]]=.=[[+]][]
02:34 p6eval std 29831: OUTPUT«ok 00:01 106m␤»
02:36 lue joined #perl6
02:37 galf left #perl6
02:39 diakopter rakudo: my $b = {.000000000000000000000000000000000000​0000000000000000000000000000000000001 => $b}.perl; say $b
02:39 p6eval rakudo 88f57f: OUTPUT«{Pair.new(:key("Inf"), :value(Mu))}␤»
02:39 diakopter erm
02:40 diakopter rakudo: my $b = {.000000000000000000000000000000000000​0000000000000000000000000000000000001 => $b}; say $b{Inf}
02:40 p6eval rakudo 88f57f: OUTPUT«Mu()␤»
02:40 diakopter rakudo: my $b = {.000000000000000000000000000000000000​0000000000000000000000000000000000001 => $b}; say $b{"Inf"}
02:40 p6eval rakudo 88f57f: OUTPUT«Mu()␤»
02:41 * diakopter cornfuzzled
02:41 diakopter rakudo: my $b = {1e-700 => $b}; say $b.perl
02:41 p6eval rakudo 88f57f: OUTPUT«{Pair.new(:key("0"), :value(Mu))}␤»
02:44 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 TimToady rakudo: my $b = { 'foo' => \$b }; say $b.perl
02:44 p6eval rakudo 88f57f: OUTPUT«{Pair.new(:key("foo"), :value(Capture.new()))}␤»
02:45 TimToady rakudo: my $b = { 'foo' => \($b) }; say $b.perl
02:45 p6eval rakudo 88f57f: OUTPUT«{Pair.new(:key("foo"), :value(Capture.new()))}␤»
02:48 diakopter std: my $b = { 'foo' => 4}; say $b->{'foo'}
02:48 p6eval std 29831: OUTPUT«[31m===[0mSORRY![31m===[0m␤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:␤------> [32mmy $b = { 'foo' => 4}; say $b->[33m⏏[31m{'foo'}[0m␤FAILED 00:01 106m␤»
02:49 diakopter .. or drop the -> to index into a Hash
02:49 diakopter (ref)
02:57 cls_bsd joined #perl6
03:05 colomon joined #perl6
03:10 justatheory joined #perl6
03:11 cotto joined #perl6
03:16 colomon Slicel?
03:17 nihiliad joined #perl6
03:18 TimToady easy to google for, probably :)
03:18 colomon yes, I imagine.  :)
03:25 pugssvn r29832 | lwall++ | [STD] improve error message on ->{} etc as suggested by diakopter++
03:37 lue joined #perl6
03:38 pugssvn r29833 | lwall++ | [lvalue-sub] put band-aid on parsefail
03:39 TimToady std: my $b = { 'foo' => 4}; say $b->{'foo'}
03:39 p6eval std 29831: OUTPUT«[31m===[0mSORRY![31m===[0m␤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:␤------> [32mmy $b = { 'foo' => 4}; say $b->[33m⏏[31m{'foo'}[0m␤FAILED 00:01 108m␤»
03:46 athenot_ joined #perl6
03:48 fda314925 joined #perl6
04:05 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:06 bkeeler Probably not, because it won't have the setting loaded
04:06 snarkyboojum d;oh
04:06 snarkyboojum cheers :)
04:06 TimToady well, it's a parsefail unless G'day is defined
04:06 bkeeler that too, heh
04:06 TimToady std: say G'day
04:07 p6eval std 29833: OUTPUT«Undeclared name:␤      'G'day' used at line 1␤ok 00:01 107m␤»
04:07 snarkyboojum hehe
04:07 TimToady std: my $b = { 'foo' => 4}; say $b->{'foo'}
04:07 p6eval std 29833: OUTPUT«[31m===[0mSORRY![31m===[0m␤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:␤------> [32mmy $b = { 'foo' => 4}; say $b->{[33m⏏[31m'foo'}[0m␤FAILED 00:01
04:07 p6eval ..106m␤»
04:07 snarkyboojum whoops
04:07 TimToady just testing the diakopter memorial error message :)
04:08 bkeeler I keep making that mistake too
04:08 bkeeler hard habit to break
04:14 TimToady I wonder if the p5 folks will start adding in "This looks like Perl 6" error messages into perl5...
04:14 pmichaud :-)
04:15 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"  :-)
04:16 zpmorgan differentiable == distinguishable?
04:16 TimToady yes
04:16 TimToady to differentiate is to "tell apart"
04:16 TimToady or to treat different things differently
04:17 TimToady "differentiate the sheep from the goats"
04:17 TimToady distinguish is mostly a mental act, differentiate usually has more pragmatic results
04:19 TimToady you can also differentiate yourself from your competitors
04:25 athenot_ joined #perl6
04:40 NOTevil joined #perl6
04:44 eternaleye TimToady: And by doing so become a distinguished personage!
04:46 TimToady I'd rather be well integrated...
04:56 eternaleye TimToady: As long as you aren;t purely derivative
04:56 snarkyboojum and can be distinguished by being so well integrated
04:56 TimToady the slope of my forehead is against me...
04:56 eternaleye snarkyboojum: You are really taking it to the limit
04:57 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?
04:58 TimToady lost on the server migration?
05:00 eternaleye Maybe, but irclog.perlgeek.de hasn't seen him since the new year
05:00 eternaleye Which was before the switchover
05:00 eternaleye Same for the bots
05:00 eternaleye (25th and 12th of December for zaslon and mubot respectively)
05:02 eternaleye brb, rebooting
05:22 lue updating my system is a chore. Especially when in the middle of it it starts whining about not allocating memory.
05:22 lue So you ^C it, then try again. 2nd try hangs, you ^C it. Then, trying a third time, it's apparently still running.
05:23 lue SIGTERM won't kill it, so you send yum a SIGKILL. I learned my lesson. :(
05:25 desertm4x_ joined #perl6
05:26 nihiliad left #perl6
06:00 athenot joined #perl6
06:02 lue anyone there?
06:04 bkeeler yep
06:05 lue hooray! (updating system, getting KDE 4.4 \o/)
06:12 bkeeler Now even bloatier!
06:12 lue Aw, it's not that bad! Linus uses it!
06:13 lue 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 lue It's really creepy how similar my linux box is to his...
06:17 lue I didn't choose Fedora/KDE becuase Linus uses it, mind you. It's just by (creepy) chance.
06:17 lue s/becuase/because/
06:24 lue left #perl6
06:45 JimmyZ joined #perl6
06:54 pugssvn r29834 | bkeeler++ | Can't use a named regex here, but an anonymous one will suffice
06:54 kaare joined #perl6
06:56 pugssvn r29835 | duff++ | [t/spec] Add more signature unpacking tests to S06-signature/unpack-array.t
06:57 JimmyZ rakudo: my $a = sub { say $a; say $^a}; $a(3);
06:57 p6eval rakudo 88f57f: OUTPUT«3␤3␤»
06:57 JimmyZ rakudo: my $a = sub { say $a; say $^b}; $a(3);
06:57 p6eval rakudo 88f57f: OUTPUT«_block48␤3␤»
06:57 JimmyZ rakudo: my $a = sub { say $a; }; $a(3)
06:57 p6eval rakudo 88f57f: OUTPUT«Too many positional parameters passed; got 1 but expected 0␤current instr.: '_block48' pc 329 (EVAL_1:133)␤»
06:59 * JimmyZ wonders whether it's right or not.
06:59 pugssvn r29836 | duff++ | [t/spec] Add some tests for multi-dispatch based on unpackability
07:06 TimToady std: my $a = sub { say $a; say $^a}; $a(3);
07:06 p6eval std 29833: OUTPUT«[31m===[0mSORRY![31m===[0m␤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:␤------>
07:06 p6eval ..[32mm…
07:09 ewilhelm is there any documentation on metaclasses outside of S12?
07:09 dalek rakudo/master: e79112d | duff++ | t/spectest.data:
07:09 dalek rakudo/master: Add S06-multi/unpackability.t to spectest.data
07:09 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/e​79112d12ab61d512ed8bfc1cd6acdc2121c1977
07:10 TimToady not sure
07:10 TimToady jnthn may have some somewhere
07:12 ewilhelm Mu?
07:14 bkeeler Is that a question?
07:14 TimToady it is to a cow
07:14 ewilhelm yeah, I'm still looking for a better question :-D
07:15 ewilhelm saw Mu mentioned in S12, was hoping to read some docs or source for Mu
07:15 ewilhelm looks like rakudo aliases Mu to Object
07:16 TimToady Mu is the new Object
07:16 TimToady it is no longer aliased
07:16 TimToady rakudo: say Object.WHAT
07:16 p6eval rakudo 88f57f: OUTPUT«Could not find non-existent sub &Object␤current instr.: '_block14' pc 29 (EVAL_1:0)␤»
07:16 ewilhelm ah, reading old source
07:16 ewilhelm rakudo: say Mu.WHAT
07:16 p6eval rakudo 88f57f: OUTPUT«Mu()␤»
07:17 Su-Shee joined #perl6
07:17 Su-Shee good morning.
07:20 quietfanatic joined #perl6
07:20 JimmyZ std: my $a = sub { say $a; }; $a(3)
07:20 p6eval std 29833: OUTPUT«ok 00:01 106m␤»
07:20 JimmyZ std: my $a = sub { say $a; say $^a + $a;  }; $a(3);
07:20 p6eval std 29833: OUTPUT«[31m===[0mSORRY![31m===[0m␤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:␤------>
07:20 p6eval ..[32mm…
07:20 JimmyZ rakudo: my $a = sub { say $a; say $^a + $a;  }; $a(3);
07:20 p6eval rakudo 88f57f: OUTPUT«3␤6␤»
07:21 TimToady rakudo is incorrect here
07:21 uniejo joined #perl6
07:21 JimmyZ gotcha
07:23 ewilhelm ah, src/core/Mu.pm
07:25 ewilhelm more pod in src/builtins/Mu.pir
07:26 ewilhelm and src/metamodel/ClassHOW.pir
07:26 JimmyZ Mu is still a alias of Object.
07:27 ewilhelm not in ng?
07:27 JimmyZ ng was already master
07:28 JimmyZ ewilhelm: http://github.com/rakudo/rakudo​/blob/master/docs/metamodel.pod
07:29 ewilhelm thanks
07:30 ewilhelm sounds like a fair bit of that is leading the spec.  Are other implementations also working-out the details of metamodel?
07:36 JimmyZ I dont't think so
07:37 JimmyZ 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.
07:38 TimToady I think we originally invented knowhows for smop
07:39 TimToady much of the metamodel was originally invented for Moose, actually
07:40 TimToady and was about to get into pugs, when that project crashed
07:41 JimmyZ I don't like the name of Mu. ;)
07:42 ewilhelm it's not much harder to search for than Object, really :-D
07:42 TimToady "object" does not sound very undef-ish
07:43 spinclad in fact, first prototyped for pugs, then ported to p5 as Moose
07:43 spinclad (to my hazy recall)
07:43 TimToady mine too
07:44 ewilhelm is that basically Class::MOP, or also Moose?
07:45 spinclad both, i think, but first Class::MOP then Moose on top of it
07:46 JimmyZ rakudo: my $a = Mu; say $a.WHAT
07:46 p6eval rakudo e79112: OUTPUT«Mu()␤»
07:47 spinclad and (as deeper roots) it comes from The Art of the Meta-Object Protocol (CLOS, Common Lisp's object system)
07:48 spinclad (see READTHEM)
07:52 * TimToady .= zzz();
07:56 ewilhelm rakudo: say Mu.HOW
07:56 p6eval rakudo e79112:  ( no output )
07:57 ewilhelm alpha: say Mu.HOW
07:57 p6eval alpha 30e0ed: OUTPUT«Object()<0x2b44f738bce8>␤»
08:10 iblechbot joined #perl6
08:19 alexn_org joined #perl6
08:28 Su-Shee_ joined #perl6
08:34 alexn_or1 joined #perl6
08:36 Trashlord joined #perl6
08:37 eternaleye joined #perl6
08:37 xabbu42 joined #perl6
08:42 moritz_ good morning
08:44 ewilhelm std: say class {has $.foo;}.^methods(:local).join(',');
08:44 p6eval std 29836: OUTPUT«ok 00:01 108m␤»
08:44 ewilhelm early morning
08:44 ewilhelm rakudo: say class {has $.foo;}.^methods(:local).join(',');
08:44 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)␤»
08:44 ewilhelm rakudo: say (class {has $.foo;}).^methods(:local).join(',');
08:44 p6eval rakudo e79112: OUTPUT«Invalid namespace key in set_pmc_keyed␤current instr.: 'perl6;ClassHOW;new' pc 3527 (src/metamodel/ClassHOW.pir:27)␤»
08:45 ewilhelm alpha: say (class {has $.foo;}).^methods(:local).join(',');
08:45 p6eval alpha 30e0ed:  ( no output )
08:45 ewilhelm alpha: say class {has $.foo;}.^methods(:local);
08:45 p6eval alpha 30e0ed: OUTPUT«Confused at line 10, near ".^methods("␤in Main (file <unknown>, line <unknown>)␤»
08:45 ewilhelm alpha: say (class {has $.foo;}).^methods(:local);
08:46 p6eval alpha 30e0ed:  ( no output )
08:46 moritz_ ewilhelm: the evalbot somehow provokes timeouts on alpha if you declare a new class
08:46 moritz_ ewilhelm: I've never found out why :(
08:46 ewilhelm ah. my alpha says 'foo' there
08:46 moritz_ that looks right
08:47 ewilhelm but only with the parens around class {...}
08:47 moritz_ a public attribute is just a private attribute plus an accessor
08:47 moritz_ that's a known parsing limitation in rakudo/alpha
08:48 ewilhelm ah, ok.  So if rakudo says "confused", and std says ok, it's probably a NYI?
08:49 moritz_ ewilhelm: yes
08:52 ewilhelm rakudo: class Thing {has $.foo}; say Thing.new().^methods(:local)
08:52 p6eval rakudo e79112: OUTPUT«accessor_helper_ro␤»
08:53 ewilhelm odd, I just built master and got "maximum recursion depth exceeded" for that one
08:53 ewilhelm oh, wait. not with :local
08:53 moritz_ ewilhelm: please submit a bug report to rakudobug@perl.org
09:05 moritz_ t/spec/S02-whitespace_and_comments/one-pass-parsing.t fails for me :/
09:11 dakkar joined #perl6
09:17 eternaleye joined #perl6
09:28 barney joined #perl6
09:33 jferrero joined #perl6
09:36 hanekomu joined #perl6
09:38 pdcawley joined #perl6
09:44 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)␤»
09:44 moritz_ rakudo: say (1...*)[2]
09:45 p6eval rakudo e79112:  ( no output )
09:45 moritz_ not that lazy yet, it seems
09:58 pugssvn r29837 | moritz++ | [t/spec] some unfudges for rakudo
10:02 cosimo joined #perl6
10:20 pmurias joined #perl6
10:23 * moritz_ wants an offline version of the perl6 queue from RT
10:25 mssm joined #perl6
10:26 orafu joined #perl6
10:34 masak joined #perl6
10:34 masak oh hai, #perl6.
10:37 masak 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:38 frettled Good, ehrm, morning, sortof.
10:40 masak a bit late, yes... :/
10:44 mathw oh hai
10:44 masak mathw: \o
10:45 masak what wonders await today in the world of Perl 6?
10:57 xalbo joined #perl6
11:11 masak std: my $x, $y
11:11 p6eval std 29837: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $y is not predeclared at /tmp/sXl06T7fdf line 1:␤------> [32mmy $x, $y[33m⏏[31m<EOL>[0m␤    expecting any of:␤     POST␤   postfix␤  postfix_prefix_meta_operator␤FAILED 00:01 108m␤»
11:12 masak would it be possible to make this error say "you need to put in parens"?
11:12 sjohnson say ~Array.^Methods
11:12 sjohnson rakudo: say ~Array.^Methods
11:12 p6eval rakudo e79112: OUTPUT«Method 'Methods' not found for invocant of class 'ClassHOW'␤current instr.: '!dispatch_.^' pc 410 (src/glue/dispatch.pir:100)␤»
11:12 masak sjohnson: small 'm'
11:12 sjohnson rakudo: say ~Array.^methods
11:12 p6eval rakudo e79112: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 13433 (src/builtins/Multi.pir:22)␤»
11:12 masak o.O
11:12 sjohnson i broketed it!
11:12 * masak submits rakudobug
11:13 masak 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)␤»
11:13 sjohnson rakudo: say ~Array.^Methods.perl
11:13 p6eval rakudo e79112: OUTPUT«Method 'Methods' not found for invocant of class 'ClassHOW'␤current instr.: '!dispatch_.^' pc 410 (src/glue/dispatch.pir:100)␤»
11:13 sjohnson rakudo: say ~Array.^methods.perl
11:13 p6eval rakudo e79112: OUTPUT«maximum recursion depth exceeded␤current instr.: 'perl6;Seq;!fill' pc 13433 (src/builtins/Multi.pir:22)␤»
11:13 sjohnson rakudo: say Array.^methods.count
11:14 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... :)
11:15 masak sjohnson: look, if Array.^methods loops infinitely...
11:15 masak ...Array.^methods.count will, too.
11:15 masak think of the order of the calls.
11:16 sjohnson i didn't recognize the error
11:17 masak it's reported now, anyhow.
11:23 payload joined #perl6
11:26 xalbo joined #perl6
11:29 sjohnson cool
11:29 sjohnson thanks
11:29 sjohnson i decided.. i shall not go to work tomorrow
11:35 cjk101010 joined #perl6
11:35 m-locks that epic
11:35 m-locks 's
11:37 jnthn o/
11:44 colomon o/
11:46 daemon joined #perl6
11:58 sjohnson \o
12:05 masak o/
12:09 colomon Hmmm, 1101... must look that up in the Rakudo code book.
12:09 meppl joined #perl6
12:11 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:12 bbkr joined #perl6
12:13 mikehh joined #perl6
12:14 computerquip joined #perl6
12:15 masak where does the flattener come into the picture?
12:15 Maddingue joined #perl6
12:15 rhr joined #perl6
12:15 frettled joined #perl6
12:17 jnthn Not sure, without looking deeper.
12:17 masak ok, no worries.
12:17 jnthn rakudo: Array.^parents
12:17 p6eval rakudo e79112:  ( no output )
12:18 jnthn Not there at least then.
12:18 ggoebel joined #perl6
12:18 cognominal joined #perl6
12:27 simcop2387 joined #perl6
12:27 jjore joined #perl6
12:28 hicx174 joined #perl6
12:37 payload joined #perl6
12:47 takadonet hey everyone
12:47 masak takadonet: \o
12:47 colomon o/
12:47 takadonet you guys are quick :)
12:47 masak spacial implants.
12:48 masak 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:49 masak (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:53 pugssvn r29838 | pmurias++ | [mildew] added -BoptC
12:53 pugssvn r29838 | say "hello world" works under -BoptC
12:53 pugssvn r29838 | (still have to fix the setr error)
12:55 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:56 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
12:56 m-locks ;P
12:57 * masak .oO( worse-is-better, Peter Gabriel )
12:57 masak 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.
12:58 m-locks well i guess it's a matter of evolution, adapting the technology and stuff
12:58 m-locks like hd-dvd vs. blueray
12:58 masak I'm with mst++ on that one. we have reasons to be proud, but it's earlier than we sometimes make light of.
12:59 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 m-locks and also, writing that perl6 for complete idiots
12:59 masak yeah. people should write modules.
13:00 masak 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
13:01 m-locks i'm rather a scientist-type than a programmer
13:01 * takadonet whistle innocent
13:01 takadonet I will start writing module for Perl 6 soon
13:02 takadonet http://github.com/cjfields/bioperl6
13:02 m-locks how about doing fast hacking with perl5toperl6 compiler and using those modules
13:02 m-locks could transfer some functionality
13:02 masak easier said than done.
13:03 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.
13:03 m-locks aye
13:05 astrojp left #perl6
13:05 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:06 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 masak s/than/that/
13:07 ignacio_ joined #perl6
13:07 m-locks i agree, better not expect anything and just do some stuff
13:07 m-locks and get larger communities to go with you
13:07 m-locks to do some stuff
13:08 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.
13:08 masak nod.
13:09 masak killer apps matter. development tools matter.
13:09 pmurias CPAN matters
13:09 masak indeed.
13:09 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.
13:09 masak give me a Rakudo-capable Perl 6 implementation with a fully functional CPAN bridge, and we're golden.
13:10 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.
13:10 pmurias m-locks: re real OO - MooseX::Declare gives you real OO in perl 5
13:15 wknight8111 joined #perl6
13:15 payload joined #perl6
13:16 ruoso joined #perl6
13:16 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:17 masak colomon: yeah. I'm not one of those, but I see that this might be the motivation of some.
13:18 masak colomon: there's a big danger of attracting idealists.
13:18 colomon It's not an idealism thing, it's just practical.
13:19 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?
13:20 masak where 'capabilities' means 'potential capabilities'.
13:20 pmurias ruoso: hi
13:21 ruoso hi pmurias
13:22 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".
13:22 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
13:23 masak mathw: implementation, tooling, module ecosystem, community.
13:23 mathw yes
13:23 mathw all those things are required for an awesome language to get going
13:23 masak yes.
13:23 mathw The honest answer to most questions of 'should I learn Perl 6' at this point is 'no'
13:24 mathw I really look forward to the day when it's 'yes'
13:27 mathw And yes, I should do more to help that day come around
13:27 * mathw hugs everyone who helps
13:27 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.
13:28 mathw Mmm, Perl 5 is awesome, but dragging a lot of historical crud behind it
13:28 mathw It's worth making a clean break and rebooting the concept. Like the new Battlestar Galactica, only on a much smaller budget.
13:29 mathw (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...
13:31 mathw yes it does make me think that society's got some priorities wrong
13:32 mathw maybe rakudo needs to have advert breaks in it
13:32 colomon Sponsored awesome error messages.
13:33 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.
13:33 buu Ageism affects many things in the computer world.
13:35 mathw * sigh * Don't get me started on the prevalence of PHP and Java...
13:37 * jnthn is doing some Java bits today
13:37 jnthn Mostly because there's some Good Stuff out there already written in Java.
13:37 jnthn Well written is a whole other matter though. :-/
13:37 colomon I just realized my last spectest run came in at 412 wallclock, which I think is a new record.
13:38 jnthn colomon: Nice :-)
13:39 colomon and Tests=24798, which is tantalizingly close to 25000....
13:39 pugssvn r29839 | pmurias++ | [mildew]
13:39 pugssvn r29839 | optC handles submolds and branches are compiled correctly
13:39 jnthn Did anyone add PerlJam++'s S06-multi/unpackability.t to spectest.data yet?
13:39 jnthn That may win us a few more. :-)
13:40 colomon I think I saw that in the github commit list.
13:40 jnthn ok, cool
13:40 colomon but it wasn't included in that test run.  :)
13:42 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:43 jnthn mathw: Indeed.
13:47 pugssvn r29840 | pmurias++ | [mildew] fix setr error in optC
13:48 ruoso pmurias, does it run faster?
13:49 * jnthn -> last Slovak class
13:49 pmurias ruoso: haven't benchmarked it yet
13:49 ruoso ok... but does it look faster ;) ?
13:49 pmurias ruoso: it doesn't optimise stuff yet
13:51 m-locks are all those other languages parrot can use really complete ones?
13:51 colomon Tests=24816 with unpackability.t.
13:51 m-locks that's a long list
13:53 m-locks php, java, python, ruby, c, basic
13:53 m-locks ...brainfuck...
13:54 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:55 m-locks heh
13:56 ruoso pmurias, how do I look at that output?
13:57 pmurias if you run perl mildew -BoptC it print out the file name of the c file
13:57 ruoso okay
13:59 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
13:59 ruoso pmurias, cool
14:00 pmurias does -BoptC work for you?
14:00 * ruoso have a new perl binary, so waiting some other modules to be installed
14:00 pugssvn r29841 | pmurias++ | [mildew] add ->type_info to AST::StringConstant
14:03 * pmurias goes out to fetche some food
14:03 pmurias * fetch
14:06 rv2733 joined #perl6
14:10 Lorn joined #perl6
14:13 iblechbot joined #perl6
14:20 silug joined #perl6
14:33 pmurias joined #perl6
14:37 ruoso pmurias, it seems you forgot to publish Forest::Gtk2
14:38 meppl joined #perl6
14:40 pmurias yes, it's only required for a cool visualization of the AST
14:42 pmurias ruoso: that is everything except -Cgtk should work without it
14:42 ive joined #perl6
14:44 ruoso er... Can't locate Forest/Gtk2.pm in @INC (...) at mildew line 364
14:45 ruoso (you probably should require instead of use)
14:46 pugssvn r29842 | pmurias++ | [mildew] optC: ignore phi functions when emitting code
14:46 pugssvn r29843 | pmurias++ | [mildew] require Forest::Gtk2 instead of use Forest::Gtk2
14:47 pmurias ruoso: yes, i thought i did like that
14:49 pmurias ruoso: did the commit help?
14:50 ruoso re-making perl6
14:54 ruoso pmurias, I got an error compiling CORE::int
14:55 * pmurias investigates
14:55 ruoso it complaints that $LexicalPrelude is not declared
14:56 pmurias a recent STD commit made using undeclared variables fatal
14:59 pmurias ruoso: not sure how to solve that, the spec states that SETTING is the Lexical symbols in the unit's DSL"
14:59 pmurias ruoso: maybe we could rename $LexicalPrelude to that?
15:03 hejki joined #perl6
15:04 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)␤»
15:04 hejki rakudo: multi sub postfix:<!> (Int $x) { $x.say; }; !(5);
15:04 p6eval rakudo e79112:  ( no output )
15:04 pmichaud rakudo master doesn't know operator overloading yet
15:04 pmichaud alpha does, though:
15:04 pmichaud alpha:  multi sub postfix:<!>(Int $x) { $x.say; };  5!
15:04 p6eval alpha 30e0ed: OUTPUT«5␤»
15:04 pmichaud jnthn: ping
15:07 pmichaud actually, this question can go to others as well
15:08 pmichaud 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:09 Su-Shee make *, **, *** and so on.
15:09 pmichaud yeah, that might be best
15:09 pmichaud Su-Shee++
15:10 Su-Shee and it's like in primary school  where you get little stars and bees and all when you've done stuff :)
15:15 justatheory joined #perl6
15:16 PerlJam for calibration, what's one-* effort and what's 5-* effort?
15:21 pmichaud one-* is "could likely do very quickly"
15:21 pmichaud three-* is "likely to take a couple of days or needs coordination/research with others"
15:21 pmichaud five-* is "omg"
15:22 pmichaud (at the moment I don't have any 5-star items in the roadmap :)
15:23 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)␤»
15:23 colomon whoops, that was a complete failure in terms of demonstrating the bug I was worrying about...
15:23 colomon rakudo: my @a; @a[1] = 2; say ~@a
15:23 p6eval rakudo e79112: OUTPUT« 2␤»
15:24 PerlJam colomon++  failure is how we learn :)
15:25 colomon rakudo: my @a = 1, 2, 4, 3; undefine @a[1]; say @a.perl
15:25 p6eval rakudo e79112: OUTPUT«[1, Mu, 4, 3]␤»
15:25 colomon rakudo: my @a = 1, 2, 4, 3; undefine @a[1]; say ~@a
15:25 p6eval rakudo e79112: OUTPUT«1 Mu() 4 3␤»
15:25 PerlJam rakudo: my @a; @a[13] = 42; say ~@a;
15:25 p6eval rakudo e79112: OUTPUT«             42␤»
15:25 colomon There we go, that's what I was after.
15:26 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 ''
15:28 pmichaud colomon: does this just come down to "Mu should stringify differently?"
15:28 colomon pmichaud: That'
15:28 PerlJam that's what I think
15:28 colomon That's what I'm trying to figure out.
15:29 colomon 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)
15:29 jnthn pmichaud: pong
15:30 pmichaud jnthn: Su-Shee answered for me :)
15:30 colomon Really, Any instead of Mu?
15:30 jnthn Yay
15:30 pmichaud yes, recent spec change is that variable declarations default to Any
15:30 pmichaud rakudo:  my $a;  say $a.WHAT;
15:30 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.
15:30 p6eval rakudo e79112: OUTPUT«Mu()␤»
15:30 pmichaud should now be Any()
15:30 * masak submits rakuodbug
15:30 m-locks heh
15:30 pmichaud masak: correct, undefine is supposed to set the element to its declared element type
15:31 masak pmichaud: what if the declared element type is a subtype? :)
15:31 * masak loves being difficult
15:31 pmichaud then likely its underlying nominal type for the subtype
15:31 masak ok.
15:31 jnthn (underlying nominal type) correct
15:31 PerlJam rakudo: my Int @a = 1,2,3,4;  undefine @a[1]; say ~@a
15:32 p6eval rakudo e79112: OUTPUT«1 Mu() 3 4␤»
15:32 jnthn subset Foo of Int where ...; my Foo $x; say $x.WHAT; # Int
15:32 pmichaud we don't do typed arrays yet.
15:32 colomon so should ~Any() also be ''    ?
15:32 masak but the type object of the nominal type won't satisfy the subtype in the general case.
15:32 masak so then you have elements in the array which don't belong to the subtype.
15:32 pmichaud masak: it doesnt have to -- undefined values are always allowed in containers
15:32 masak pmichaud: oh, ok.
15:32 masak pmichaud: can I declare them not to be allowed?
15:32 pmichaud masak: I'm not aware of a way to do that
15:32 masak with :D or something.
15:33 jnthn subset Foo of Any where .defined
15:33 jnthn Or some such
15:33 pmichaud jnthn: but containers still allow undefined values
15:33 jnthn True
15:33 jnthn OK, then no. :-)
15:34 am0c joined #perl6
15:34 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"
15:35 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.
15:35 jnthn PerlJam: Don't remember seeing that.
15:35 masak so that's like a security hole in the type system, then.
15:36 jnthn masak: Only for containers.
15:36 masak right.
15:36 jnthn masak: In signatures, undefs ain't gonna slip through.
15:36 jnthn That also means that:
15:36 jnthn my (Int $x) = Mu; # OK
15:36 jnthn my (Int $x) := Mu; # dies
15:36 jnthn Since the latter has signature binding semantics.
15:37 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)␤»
15:37 jnthn So you do have a way to enforce it if you really want to has an exploshun.
15:37 jnthn colomon: Maybe tweak the signature of undefine.
15:37 colomon yup, looking for it now.
15:37 jnthn oh, wait
15:37 pmichaud undefine likely needs a Mu parameter
15:37 jnthn Oh, yes
15:37 jnthn That probably will d it.
15:37 jnthn *do
15:37 pmichaud from S02:
15:37 colomon our sub undefine(\$x) {
15:37 colomon my $undefined;
15:37 colomon $x = $undefined;
15:37 colomon }
15:38 jnthn Change to Mu \$x
15:38 pmichaud Variables with non-native types can always contain I<undefined> values,
15:38 pmichaud such as C<Any>, C<Whatever> and C<Failure> objects.
15:38 colomon apparently my $undefined still does the wrong thing in Rakudo?
15:39 pmichaud colomon: the switch from Mu->Any is very recent
15:39 pmichaud as in, within the last 4 or 5 days
15:39 colomon pmichaud: ah.
15:42 mberends joined #perl6
15:42 masak lolitsmberends
15:43 jnthn yayitsmberends!
15:43 mberends oh hai #perl6, I got a bit stuck in PIR land :(
15:43 jnthn mberends: Snowstorm delayed flights outta there?
15:44 masak probably snowy in PIR land too...
15:46 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 Psyche^ joined #perl6
15:46 jnthn Well that sucks.
15:47 jnthn mberends: Pastie?
15:47 mberends wrong computer for that, this is @work
15:47 mberends later today will be ok
15:47 jnthn OK.
15:51 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:57 colomon okay, I've got delete.t passing except for the 6 tests that expect Mu() to stringify to ''.
15:57 ive left #perl6
15:57 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
15:57 jnthn method Str($self where .notdef: ) { '' } # iirc
15:58 jnthn 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 ?
15:59 jnthn pmichaud: Because we don't want any old object that doesn't say how it can stringify to stringify to ''
15:59 jnthn Only undefineds.
15:59 pmichaud jnthn: but how does that resolve the Mu case?
15:59 pmichaud or are you saying that all protoobjects should stringify to '' ?
15:59 jnthn I'm guessing so
15:59 jnthn Since we'd like my $x; $x ~= 'lol'; to work
16:00 jnthn So I guess Any needs to also.
16:00 pmichaud that's different
16:00 jnthn Why?
16:00 pmichaud the = metaop explicitly says what to do with undefineds
16:00 jnthn :-S
16:00 jnthn That feels...superfluous.
16:00 pmichaud my question is:
16:01 pmichaud my XYZ $a;   say $a;  #  ?
16:01 jnthn oh
16:01 jnthn ffs
16:01 jnthn Yes, I see your point
16:01 * jnthn evidently should have had more coffee today
16:01 athenot joined #perl6
16:02 nihiliad joined #perl6
16:02 ggoebel joined #perl6
16:02 colomon I guess I don't see the point?
16:02 pmichaud colomon: what should my last line output?
16:03 colomon same thing as my $a; say $a -- I presume just a newline.
16:03 pmurias ruso: btw Forest::Gtk2 is avalible from http://github.com/pmurias/Forest-Gtk2
16:03 colomon if you want the type, there's always say $a.perl;
16:03 pmichaud colomon: what about    say XYZ;   ?
16:03 pmurias * ruoso: btw Forest::Gtk2 is avalible from http://github.com/pmurias/Forest-Gtk2
16:03 pmichaud rakudo:  say Rat;
16:04 p6eval rakudo e79112: OUTPUT«Rat()␤»
16:04 pmichaud rakudo:  my Rat $x;  say $x;
16:04 p6eval rakudo e79112: OUTPUT«Rat()␤»
16:04 colomon I think for sure it's a bad idea to have ~Mu eq '' but ~Rat eq 'Rat()'
16:04 pmichaud protoobjects can't simultaneously stringify to a type name and to ''  :-)
16:04 jnthn pmichaud: Right, that's what I suddenly realized. :-)
16:04 colomon (I don't really care what the answer is one way or another, mind you.
16:05 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?
16:06 jnthn pmichaud: I was thinking more of the Mu ~ 'abc' case.
16:06 jnthn er
16:06 jnthn colomon: ^^
16:06 jnthn :-)
16:06 pmichaud istr that at one point it was speculated that protoobjects stringify to empty string, but print as the typename
16:07 pmichaud however, it's pretty explicit in S12:
16:07 pmichaud WHAT        the type object of the type, .Str returns MyClass()
16:07 jnthn Yeah
16:08 jnthn I think that has to stay the same.
16:08 pmichaud this feels like a pm.txt question, then.
16:09 masak nod.
16:10 masak 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 masak :)
16:10 masak it's almost like an A09 deserves to be written after that nice description of it.
16:11 pmichaud "This apocalypse describes the design of Perl 6 data structures.  Unfortunately, it's been written using Acme::Bleach."
16:11 masak dang :/
16:12 masak pmichaud: wait. how do you know it says that, then?
16:12 pmichaud I have a sekret decoder ring.
16:13 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".
16:13 colomon 006, eh?
16:14 masak when's Perl 006 coming out?
16:15 pmichaud 00xmas
16:15 masak :0
16:18 pugssvn r29845 | pmurias++ | [mildew] quote " and \ when emitting string constants in optC
16:19 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?
16:19 pmichaud I arrive on Thursday afternoon
16:19 jnthn I arrive on Saturday morning.
16:19 m-locks is there a gathering?
16:19 pmichaud I depart on Wednesday morning (early).  Tuesday afternoon/evening I need to spend a few hours meeting with someone about non-Perl stuff.
16:19 PerlJam m-locks: fortunately not in a Highlander sense.  :)
16:20 m-locks ;P
16:20 pmichaud ...I shouldn't bring my broadsword?
16:20 jnthn If you try, send us photos of what the TSA guy's face looked like.
16:21 pmichaud will do!
16:21 pmichaud "It's not a sword... it's an antenna!"
16:22 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.
16:22 pmichaud just pushed ROADMAP updates -- comments and patches welcome
16:24 pmichaud it's a somewhat significant refactor (apropriate, given that we don't have large-scale tasks as the previous ROADMAP did)
16:24 pmichaud *appropriate
16:24 PerlJam pm: so all of the 1s and 2s should be in R* ?
16:24 pmichaud all of the 1s have to be there
16:24 pmichaud the 2s would be good to be there, but I'm not going to panic if some don't make it
16:25 PerlJam heh, I like "attention-grabbing examples"  :)
16:25 dalek rakudo/master: 37e2865 | pmichaud++ | docs/ROADMAP:
16:25 dalek rakudo/master: Refactor ROADMAP with recent accomplishments and task estimates.
16:25 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/3​7e2865ac5602b7a3821132a21356f0316034fff
16:26 pmichaud if others wish to tweak my star estimates, that'd be great
16:26 jnthn pmichaud: At a first glance, looks sane.
16:26 pmichaud installation standards might be 2-stars
16:26 jnthn 1 ?     lexical classes and roles (jnthn)
16:26 jnthn **
16:26 jnthn (will patch later, I'm meant to be writing some $work code that I've put off all day ATM)
16:27 pmichaud I can patch it now.
16:27 pmichaud any others?
16:28 athenot_ joined #perl6
16:28 jnthn Perl 6 interop probably deserves four
16:28 pmichaud .... you mean Perl 5 interop, I hope?  ;-)
16:28 jnthn pseudo packages 2
16:28 jnthn oh, er, yes
16:28 jnthn :-)
16:29 jnthn Well
16:29 pmichaud I think pseudo packages 3
16:29 jnthn It depends which angle you're looking at it. ;-)
16:30 jnthn I can go with 3.
16:30 jnthn Just don't blame me if I do it and only use 2 stars worth of effort. :-)
16:30 PerlJam pmichaud: What's "domain specific languages" meant to represent exactly?  Do you mean Perl 6 grammar extension?
16:31 pmichaud PerlJam: I don't know exactly -- it's left over from the previous roadmap.  :-|
16:31 dalek rakudo/master: 1926c29 | pmichaud++ | docs/ROADMAP:
16:31 dalek rakudo/master: Update difficulty estimate for lexical classes and roles (jnthn++).
16:31 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/1​926c2988f0c73c974690529dc4cb13a83060db6
16:31 jnthn pmichaud: iirc it was grammar tweaks, esp. slang.
16:31 pmichaud oh, that makes sense
16:31 pmichaud updating.
16:32 PerlJam you've got slice context on there twice
16:32 pmichaud one of them is now gone.
16:34 pmichaud okay, next is to put together a schedule/plan for the hackathon.
16:36 dalek rakudo/master: a21f056 | pmichaud++ | docs/ROADMAP:
16:36 dalek rakudo/master: More difficulty estimate updates from jnthn++ .
16:36 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/a​21f05651c9933337e8afc9e71e9dbfd4a4f5b39
16:36 dalek rakudo/master: b06dfe5 | pmichaud++ | docs/ROADMAP:
16:36 dalek rakudo/master: More ROADMAP tweaks.
16:36 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/b​06dfe5dceda01b3b3348392634b04020252d301
16:36 dalek rakudo/master: 1d4a471 | (Solomon Foster)++ | src/core/Array.pm:
16:36 dalek rakudo/master: Simple port of Array.delete from alpha.
16:36 dalek rakudo/master: This implementation works but is not lazy.
16:36 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/1​d4a471e182914ed5a7027ab59f4e85b4423bdd5
16:36 dalek rakudo/master: 2c553a5 | (Solomon Foster)++ | src/core/operators.pm:
16:36 dalek rakudo/master: Change the signature of undefine to accept Mu too -- otherwise you cannot undefine something twice at the moment.
16:36 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/2​c553a5cc219dd730c471a6020ccddb4d7f65aec
16:40 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:42 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.
16:42 pmichaud at least for basic s///
16:42 masak \o/
16:42 pmichaud for the larger   "assign to s//", that's probably 3 or 4 stars
16:43 pmichaud 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.
16:44 pmichaud looking
16:44 pmichaud actually, it may be fairly tricky now
16:44 masak why?
16:44 pmichaud my $a = 'abc';  my $b = $a;   $a ~~ s/b/x/;   say $b;
16:45 masak the assignment to $b makes a copy?
16:45 pmichaud we don't exactly have "make a copy" semantics in place anymore
16:45 masak o.O
16:45 pmichaud strings are supposedly immutable
16:45 masak I'd expect such semantics out of binding, but not assignment.
16:46 masak compare assignment of arrays.
16:46 pmichaud well, how does one do   s///  on an immutable string?
16:46 masak one doesn't, I suppose.
16:46 masak one chucks in another string in its place.
16:46 PerlJam so, s/// depends on implementation of Buf, so maybe s/// needs another *
16:47 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.
16:47 PerlJam Isn't Buf our "mutable string" ?
16:47 pmichaud I suppose that can work, but.... hmmmm
16:47 masak aye.
16:47 masak PerlJam: well yes, but not just.
16:50 pmichaud S05 says
16:50 pmichaud Any scalar assignment operator may be used; the substitution macro
16:50 pmichaud knows how to turn
16:50 pmichaud $target ~~ s:g[pattern] op= expr
16:50 pmichaud into something like:
16:50 pmichaud $target.subst(rx[pattern], { $() op expr }, :g)
16:50 pmichaud ---
16:50 pmichaud I think that it must be  $target .= subst(...)   instead
16:52 TimToady well, that's something like :)
16:52 pmichaud :)
16:52 pmichaud troo
16:53 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"?
16:54 TimToady someone's gotta do the trimming occasionally
16:54 masak Perl 6: hedging our way into the future.
16:54 TimToady and gardeners aren' cheap these days
16:54 PerlJam pmichaud: in any case, maybe break s/// into two items?  "** basic s///" and "*** full s/// including s[\d+] = 42" or something ?
16:54 TimToady *aren't
16:54 TimToady My keyboard doesn't work right before I've had coffee.
16:55 TimToady especially while still under the influence of multiple antihistamines...
16:59 dalek rakudo/master: c9e1981 | pmichaud++ | docs/ROADMAP:
16:59 dalek rakudo/master: Update s/// roadmap items based on comments from PerlJam++ .
16:59 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/c​9e1981a4b221f27c9c2d64fbecf107a045a410f
16:59 dalek rakudo/master: a725daa | pmichaud++ | src/core/ (2 files):
16:59 dalek rakudo/master: Merge branch 'master' of git@github.com:rakudo/rakudo
16:59 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/a​725daaedf69537d2e725a8b849be5f08d4fbdfe
17:01 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:02 pmichaud (I'm trying to decide how/if a Rakudo "hacker orientation" talk is useful and where it should go)
17:03 TimToady maybe s should (internally) turn anything immutable into a Cat of refs into the orignal string and new chunks interspersed
17:03 TimToady which still looks like the original string from the container's viewpoint
17:04 pmichaud ...when stringified
17:04 TimToady then we only reflatten the Cat lazily when we decide it's needed
17:05 pmichaud well, that perhaps argues that .subst also returns a Cat
17:06 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  :-|
17:06 PerlJam does rakudo have cats?
17:06 PerlJam I guess not
17:06 TimToady I have on in a box somewhere around here...
17:06 TimToady *one
17:07 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 masak s/syntax Perl 6/syntax of Perl 6/
17:07 pmichaud masak: okay, that tells me what I need to know then :)
17:07 pmichaud thanks
17:08 masak np.
17:08 pmichaud anyone have a recommendation for order of talks on Saturday?
17:08 masak only that I think it'd be wise to put my talk after moritz_++'s.
17:08 masak 'after' as in 'not before', not as in 'directly after'.
17:08 jnthn Mine can probably go anywhere.
17:09 jnthn It's just lots of examples.
17:09 jnthn masak++ has already seen it. :-)
17:09 pmichaud I'm thinking that I might do an extended talk about the compiler structure
17:09 Trashlord hello
17:09 masak Trashlord: hi!
17:09 pmichaud more specifically, I'm wondering what points we need to cover for people who are wanting to get started in hacking on Rakudo
17:10 pmichaud (I have my previous presentations on the topic, I'm wondering what has changed or what I've missed in previous talks)
17:11 pmichaud or, perhaps a short 20-minute "hackathon goals and organization" talk
17:12 masak swimming &
17:12 cosimo joined #perl6
17:13 jnthn pmichaud: I'm happy to do part of a compiler structure talk on the type/dispatch/meta-model bits, if that helps.
17:14 jnthn (That is, cover the areas I've worked on a lot.)
17:14 jnthn pmichaud: Is this for the hackathon on the Sunday?
17:14 pmichaud jnthn: okay, will keep it in mind.  I'm going to update the wiki page shortly.
17:14 pmichaud yes, for the hackathon on Sunday
17:14 jnthn OK
17:15 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 pmichaud it might also be worthy as a written article somewhere
17:16 pmichaud which reminds me, I need to review mberends++ updates to compiler_overview.pod
17:16 pmichaud maybe lunch first, then that.
17:17 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:18 pugssvn r29846 | lwall++ | [S12] failure to communicate noticed by masak++
17:18 wasy joined #perl6
17:26 cdarroch joined #perl6
17:26 cdarroch joined #perl6
17:34 diakopter masak: I had a bunch of rakuodbugs from yesterday waiting for masakbot to report
17:34 diakopter maybe some dupes
17:37 stephenlb joined #perl6
17:56 ShaneC joined #perl6
18:06 stephenlb joined #perl6
18:07 payload joined #perl6
18:17 cjk101010 joined #perl6
18:18 wasy joined #perl6
18:19 ggoebel joined #perl6
18:23 wasy_ joined #perl6
18:24 wknight8111 joined #perl6
18:38 f00li5h[HireMe] joined #perl6
18:43 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))]))␤»
18:43 pmichaud ...why Pair.new, ooc?
18:43 pmichaud is that some sort of default?
18:43 colomon darned if I know.
18:43 pmichaud hmmmm.
18:43 colomon Oh, I'll bet it is.
18:44 colomon probably lots of .perl functions haven't been written yet.
18:44 jnthn Yeah, probably .perl needs doing for Pair.
18:44 jnthn lhf :-)
18:44 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.
18:45 pmichaud please tell me it's Seq.kv :-)
18:45 colomon Any.kv, actually.  :)
18:45 colomon for the S32-array/kv.t tests, it needs to work on Parcel and Int, too.
18:46 mberends joined #perl6
18:47 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 colomon rakudo: say ('a' => 42).kv
18:47 p6eval rakudo a725da: OUTPUT«a42␤»
18:47 pmichaud rakudo:  say ('a' => 42).kv.perl
18:47 colomon rakudo: say ('a' => 42).kv.perl
18:47 p6eval rakudo a725da: OUTPUT«List.new()␤»
18:47 p6eval rakudo a725da: OUTPUT«List.new()␤»
18:47 colomon okay, now that's just trouble.
18:47 pmichaud looks like a bug.
18:47 jnthn List.perl is missing I guess.
18:47 pmichaud either that or  .kv shouldn't be returning a List
18:48 jnthn No, it's just hitting the default in Mu.
18:48 pmichaud I suspect it should be a Parcel
18:48 pmichaud anyway,  Pair.kv is just  ($!key, $!value);
18:48 colomon rakudo:  say ('a' => 42).kv.batch(2).perl
18:48 p6eval rakudo a725da: OUTPUT«("a", 42)␤»
18:48 jnthn I'd expect it to just be doing return $.key, $.value
18:48 pmichaud right
18:48 colomon rakudo:  say ('a' => 42).kv.eager.perl
18:48 p6eval rakudo a725da: OUTPUT«("a", 42)␤»
18:48 pmichaud but no "return"
18:49 jnthn well, yeah, makes no difference semantically though.
18:49 jnthn But yes, no need to write the return in the setting; it's kidna suboptimal.
18:49 colomon Pair is Enum, perhaps?
18:49 colomon method kv() {
18:49 colomon return list($.key, $.value);
18:49 colomon }
18:49 colomon That's in Enum.pm
18:49 pmichaud don't need list()
18:49 pmichaud don't need 'return'
18:49 colomon or return.  :)
18:50 colomon does it need parens?
18:50 pmichaud probably not, but I'd leave the parens
18:50 colomon Okay, trying that.
18:50 jnthn Yeah, heck knows what the guy who put that in Enum was thinking.
18:51 jnthn <sheepish look>
18:51 pmichaud I've updated the hackathon wiki page with some more goals and scheduling notes... comments/additions welcomed:  http://conferences.yapceurope.or​g/hack2010dk/wiki?node=HomePage
18:51 ggoebel joined #perl6
18:53 colomon Hmmm.... S32-array/kv.t still fails.
18:55 colomon Think I'm going to push what I have so far and go exercise.
18:57 ignacio__ joined #perl6
18:59 Chillance joined #perl6
18:59 payload joined #perl6
19:03 avuserow joined #perl6
19:06 dalek rakudo/master: 0bcb821 | pmichaud++ | docs/spectest-progress.csv:
19:06 dalek rakudo/master: spectest-progress.csv update: 204 files, 24339 (68.2% of 35695) pass, 0 fail
19:06 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/0​bcb821a37938c0a353787233929f4f87be191ae
19:08 meppl joined #perl6
19:12 dalek rakudo/master: 64305d7 | (Solomon Foster)++ | src/core/Any-list.pm:
19:12 dalek rakudo/master: Add Any.kv to provide .kv for Positionals and scalars, as well as a proto sub for kv.
19:12 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/6​4305d79677c359a2a49f9e8fe05f1267cd8877e
19:12 dalek rakudo/master: 9f11da6 | (Solomon Foster)++ | src/core/Enum.pm:
19:12 dalek rakudo/master: Enum.kv should return a Parcel, not a list.
19:12 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/9​f11da61d06b75808009821562f31551f44143d5
19:16 bkeeler_ joined #perl6
19:18 clintongormley joined #perl6
19:24 lichtkind joined #perl6
19:25 lichtkind Tene: ping
19:25 Tene lichtkind: pong
19:25 Tene lichtkind: I'm about to be AFK, but if it's short, I'm here for now.
19:25 lichtkind Tene: great i would like have some infos
19:49 athenot joined #perl6
19:52 colomon rakudo: my $x = bar => [ baz => 42, sloth => 43 ]; say $x.kv.elems
19:52 p6eval rakudo 64305d: OUTPUT«3␤»
19:52 colomon pmichaud, jnthn: could the problem there be that the array is flattening somehow?
19:54 pmichaud yes.
19:55 pmichaud more likely that $.value isn't marked as a scalar container, though.
19:55 pmichaud (well, that would be the underlying cause)
19:56 colomon should it be, in this case?
19:56 pmichaud sure, it's a scalar
19:57 pmichaud 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))]))␤»
19:57 pmichaud rakudo:  my $x = bar => [ baz => 42, sloth => 43];  say $x.kv.perl
19:57 p6eval rakudo 64305d: OUTPUT«("bar", [Pair.new(:key("baz"), :value(42)), Pair.new(:key("sloth"), :value(43))])␤»
19:57 colomon Is that something that Enum.kv should be doing, or is that something that should be happening intenally?
19:57 pmichaud happening internally
19:58 pmichaud whatever creates the $!value attribute should also be setting it to be scalar
19:59 pmichaud rakudo:  my $x = bar => [3, 4];  say $x.kv.elems;  # should be 2
19:59 p6eval rakudo 64305d: OUTPUT«3␤»
19:59 pmichaud I suspect a problem in BUILD
19:59 colomon rakudo: my $y = :bar[ baz => 42, sloth => 43 ]; say $x.kv.perl
19:59 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)␤»
19:59 pmichaud or create
19:59 colomon rakudo: my $y = :bar[ baz => 42, sloth => 43 ]; say $y.kv.perl
19:59 p6eval rakudo 64305d: OUTPUT«("bar", [Pair.new(:key("baz"), :value(42)), Pair.new(:key("sloth"), :value(43))])␤»
20:01 pmichaud looks like the culprit would be src/builtins/Mu.pir:263-274
20:02 jonasbn joined #perl6
20:02 * 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.
20:03 jonasbn pmichaud: ping
20:03 jonasbn pmichaud: lodging should be booked I will try to get a status and an address
20:03 jnthn pmichaud: May be in CREATE also.
20:03 pmichaud jonasbn: great
20:03 pmichaud jnthn: yes, CREATE is where 263-274 are :)
20:04 pmichaud I think I have it fixed.  Also, CREATE was still doing Perl6Hash, which is out-of-date :)
20:06 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
20:06 jnthn bkeeler_: With difficulty. :-/
20:06 bkeeler_ Eep
20:06 bkeeler_ really?
20:06 jnthn yeah, it's a pita
20:06 jnthn bkeeler_: Are you doing something within Rakudo?
20:06 bkeeler_ yeah
20:06 jnthn ah, then it's less bad
20:07 jnthn Do get_hll_global to retrieve your parent's type object
20:07 * pmichaud attempts a fix to Mu.CREATE
20:07 jnthn Then use find_method on that to get hold of the method
20:07 jnthn And then invoke what you get.
20:07 bkeeler_ thanks
20:07 jnthn Alternatively, give your PIR method a .lex '__CANDIDATE_LIST__', $P0 or so
20:08 jnthn And then you can do a call to callwith or nextwith
20:09 pmichaud oh dear, looks like fixing CREATE might be a bit more involved.
20:10 jnthn :-/
20:10 jnthn pmichaud: I'm sorta here (but cooking and eating) but cna take any questions.
20:10 pmichaud do we have type attributes on attributes working yet?
20:10 pmichaud e.g.,    my Foo $!x;
20:10 jnthn pmichaud: I fear not.
20:11 pmichaud okay, that might actually help then :-)
20:11 jnthn rakudo: class Foo { has Int $.x }; Foo.new(x => 1/2)
20:11 p6eval rakudo 64305d:  ( no output )
20:11 jnthn rakudo: class Foo { has Int $.x }; Foo.new(x => 1/2).x.say
20:11 p6eval rakudo 64305d: OUTPUT«0.5␤»
20:11 jnthn yes, NYI
20:11 jnthn Feel free to rip out whatever code is there for doing those.
20:11 jnthn It'll have to be re-done anyway.
20:12 frettled jnthn: Is orc implemented?
20:12 pmichaud yeah -- it was being done previously with an attrinit hash or something
20:12 pmichaud oh, an itype hash
20:12 frettled jnthn: because if it isn't, then we have... NYI-orc
20:14 jnthn pmichaud: that's dobutless gone/changing.
20:14 jnthn frettled: :-P
20:17 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.
20:17 dalek rakudo/master: 2df2463 | (Solomon Foster)++ | t/spectest.data:
20:17 dalek rakudo/master: Turn on S32-array/kv.t.
20:17 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/2​df2463fe02b1eb17a29d577eb727814c4fd2581
20:17 colomon These.  :)
20:17 mberends :) thanks for the heads up :)
20:18 jnthn mberends++
20:18 colomon Oh, I guess the other two were pushed an hour ago.
20:19 ggoebel joined #perl6
20:19 jnthn Now Rakudo has a pirate's favorite feature again.
20:19 bkeeler_ That would be spelled @*AAAARRRRRRRRRG
20:19 jnthn :-D
20:20 pmichaud > my $b = x => [1,2];  say $b.kv.elems;
20:20 pmichaud 2
20:20 colomon \o/
20:20 jnthn \o/
20:20 pmichaud > my $x = bar => [ baz => 42, sloth => 43 ];  say $x.kv.elems;
20:20 pmichaud 2
20:20 colomon That will win us back four more test cases, I think.  :)
20:20 pmichaud spectesting.
20:20 jnthn rakudo: sub foo($a) { say $a.perl }; foo(<a b c>)
20:20 p6eval rakudo 64305d: OUTPUT«Too many positional parameters passed; got 3 but expected 1␤current instr.: 'foo' pc 182 (EVAL_1:77)␤»
20:21 pmichaud yes, but it may break a lot of other stuff.
20:21 jnthn pmichaud: Dunno if you know how to fix that one.
20:21 pmichaud jnthn: I do.
20:21 jnthn OK, I'll not worry about it then. :-)
20:22 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?
20:22 jnthn Otherwise, it's just the usual "make more tests pass again"
20:22 bkeeler_ My grammar patch is aaaaalllmost ready for review if you'd like
20:23 m-locks does that ncurses stuff work? anybody made any scripts and try it out?
20:23 m-locks this wild idea of an ncurses database-editor/spreadsheet app crossed my mind
20:25 aartist- joined #perl6
20:26 ignacio_ joined #perl6
20:27 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
20:27 bkeeler_ Pretty close now, just need to make it set $/ properly
20:31 pugssvn r29848 | colomon++ | [t/spec] Unfudge keys_values.t.
20:35 TimToady Any.Str makes 'Any()', but ~Any make '' with a warning that is supressed for ~=
20:36 colomon TimToady: is that spec or a suggestion?
20:39 mj41_ joined #perl6
20:39 pmichaud and is that true only for Any?
20:39 pmichaud how about Str ?
20:40 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:<~>
20:40 pmichaud (unless Array.Str is supposed to explicitly use prefix:<~> somehow)
20:41 dalek rakudo/master: 9a1d71b | (Martin Berends)++ | src/glue/run.pir:
20:41 dalek rakudo/master: [glue/run.pir] when running as a main program, create $*PROGRAM_NAME and @*ARGS
20:41 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/9​a1d71b2e34e17b29cc8c9267b29a17214582b8f
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:<[ ]>'
20:41 TimToady use [~] if that's what you want
20:41 TimToady I don't see why ~@array can't use .Str instide
20:41 TimToady s/t//
20:42 pmichaud okay, so then    my @array = 1..3;  @array[1] = Any;    say ~@array;   #   "1 Any() 3"  ?
20:42 TimToady seems fine to me
20:42 pmichaud colomon:  there's your answer, then :-)
20:43 pmichaud jnthn:
20:43 colomon Oh my.  So Rakudo is right and the tests are wrong, eh?
20:43 colomon I guess it's a pretty simple fix.
20:43 pmichaud > sub foo($a) { say $a.perl; };  foo(<1 2 3>);
20:43 pmichaud ("1", "2", "3")
20:43 pmichaud spectesting now.
20:43 colomon Except that it will break when we switch from Mu to Any....
20:43 pmichaud colomon: the correct answer now is Any()
20:44 colomon (The tests, I mean.)
20:44 pmichaud the tests should test for Any(), yes :-)
20:44 TimToady unless declared Mu
20:44 pmichaud correct, unless declared Mu.
20:44 colomon So rakudo and the tests are both wrong!   \o/
20:44 jnthn mberends: will do after nom :-)
20:45 jnthn pmichaud: yay!
20:46 TimToady btw, ~ is really .Stringy, and + is really .Numeric
20:47 pmichaud oops, you're right -- thanks for the correction/reminder :-)
20:48 pmichaud so most of the places we've been doing .Str should really be .Stringy ?
20:48 TimToady if you want undef -> '' semantics, yes
20:48 pmichaud well, I mean even for things like Seq and Array and the like
20:48 pmichaud and Rat
20:49 pmichaud currently I think we have Rat.Str as the code for stringifying a Rat.  I'm guessing that should be Rat.Stringy instead?
20:49 TimToady the most important place for .Str is in print/say
20:50 TimToady since .Str doesn't even autothread
20:50 TimToady so you can stringify junctions
20:50 TimToady everything else is somewhat negotiable, but the desire to autothread will push these towards .Stringy
20:51 pmichaud Stringy autothreads, while Str doesn't?
20:51 TimToady correc
20:51 TimToady t
20:51 TimToady that is, Junctions provide a .Str method to the user
20:51 TimToady but not a .Stringy one
20:51 pmichaud so what happens with  ~(3|4)   then?
20:52 pmichaud it autothreads to produce  "3"|"4"  ?
20:52 TimToady you get ~3 | ~4
20:52 pmichaud okay.
20:52 lisppaste3 bkeeler_ pasted "Grrrrrr" at http://paste.lisp.org/display/95618
20:52 bkeeler_ Can someone take a look at that paste and tell me what I'm doing wrong?
20:52 bkeeler_ Specfically the $/ assigning part
20:52 pmichaud so, what's the code path for   ~@array, then?
20:53 pmichaud it goes from prefix:<~>(@array)  to become  @array.Stringy ?
20:53 TimToady calls Array.Stringy
20:53 pmichaud that in turn forwards to Array.Str, or is Array.Stringy the base method?
20:54 TimToady and that can do whatever we prefer internally, but it would be nice not to duplicate [~]
20:54 TimToady well, it wouldn't dup anyway
20:54 TimToady since ~ puts spaces
20:54 pmichaud doesn't Array.Stringy put spaces also?
20:54 TimToady yes
20:55 TimToady but for each element, we have to decide what to call
20:55 TimToady and .Str seems okay for that to me
20:55 TimToady ~« being available for distributing .Stringy
20:56 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 pmichaud bkeeler_: what are you trying to implement?
20:57 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
20:57 TimToady .Stringy is make it okay to do subsequent string ops on me
20:57 TimToady and more abstract
20:57 snarkyboojum joined #perl6
20:57 TimToady and ~ is abstract
20:57 pmichaud and Array.Stringy is abstract, but it still chooses to force .Str on its elements?
20:58 TimToady as is the implied ~ in leg and + in <=>
20:58 dalek rakudo/master: 795e94c | (Solomon Foster)++ | t/spectest.data:
20:58 dalek rakudo/master: Turn on S32-array/keys_values.t.
20:58 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/7​95e94c363ea2387823f4f999d1d1b11e84ace06
20:58 dalek rakudo/master: 72a95fc | (Solomon Foster)++ | src/core/Any-list.pm:
20:58 dalek rakudo/master: Quick lazy implementations of Any.keys and Any.values, plus matching protos.
20:58 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/7​2a95fc00152996805a09c9961c7a95ba6dd0863
20:58 TimToady it could be argued either way
20:58 pmichaud okay
20:58 TimToady in a sense ~Array is 'outputting' to a string
20:58 TimToady not making the bits available for subsequent string processing individually
20:58 pmichaud I understand the meaning behind .Str and .Stringy now; we'll see where we can take it in implementation
20:59 * jnthn back
20:59 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 :/
20:59 pmichaud bkeeler_: you almost certainly don't want to be using find_caller_lex -- I think it's a bit out of date
21:00 bkeeler_ Ahh, good to know
21:00 pmichaud also, I don't think that it's Grammar.parse's responsibility to be setting $/
21:00 pmichaud I think that normally comes from ~~
21:00 bkeeler_ What's the proper way then?
21:01 pmichaud although I guess it doesn't come from ~~  in the case of matching against a grammar.
21:01 TimToady ~~ seems too high
21:01 pmichaud looking
21:01 TimToady it's whatever takes a regex and applies it to a string
21:01 pmichaud that would likely be Regex.match, I guess?
21:02 TimToady or Regex.ACCEPTS
21:03 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 #perl6
21:03 pmichaud bkeeler_: in the case of a grammar, it's already a cursor
21:03 bkeeler_ Indeed
21:03 pmichaud but yes, it's Regex.ACCEPTS that is setting $/
21:03 pmichaud (in current implementation)
21:03 pmichaud currently it's doing a direct bind -- that probably needs to become an assignment.
21:03 bkeeler_ pmichaud: I guess the tests need updating then.  They assume $/ is set after calling .parse on a grammar
21:04 pmichaud I'm open for a spec clarification there.  :-)
21:04 jnthn mberends: Looks sane to me.
21:05 pmichaud but I'm used to seeing:   my $parse = MyGrammar.parse(...)
21:05 pmichaud which would imply to me that $/ shouldn't be set.
21:05 bkeeler_ I'm fine with that
21:05 TimToady maybe there's some kind of .updatematch that can slip into the pipeline and set $/
21:05 TimToady takes a Match (or Cursor?) en passant and sets $/
21:06 TimToady so while .subst() might not set $/, .subst().updatematch might
21:06 ignacio_ joined #perl6
21:06 TimToady well, give or take a few levels of caller :/
21:06 crazed left #perl6
21:06 pmichaud in which case I'd just prefer to see   $/ = .subst
21:06 TimToady or CALLER::<$/> or ..
21:06 pmichaud right
21:07 pmichaud anyway, Regex.ACCEPTS seems right-ish for the moment
21:07 TimToady I think it's defined a rebinding though
21:07 pmichaud and I think that Grammar.parse should not be setting $/ by default
21:07 mberends jnthn: thanks, although you'll have to show me why it needs to be that way next week ;)
21:07 TimToady since $/ refers to the outer $/ until rebound
21:07 jnthn :-)
21:08 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.
21:08 TimToady see S05:816
21:09 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
21:10 pmichaud could perhaps save an RPA
21:10 colomon subst has to set $/ internally, no?  (with no effect, one would hope, on the calling level's $/)
21:10 mberends pmichaud: nope, it was already there
21:10 pmichaud mberends: yes, I'm wondering if I put it that way just for convenience.
21:10 pmichaud anyway, as-is is fine now
21:11 mberends :)
21:11 pmichaud I suspect the direct call to &circumfix:<[ ]>  might be a bit simpler
21:11 pmichaud in particular, the Array that gets built might need transform_to_p6opaue
21:11 pmichaud *to_p6opaque
21:11 jnthn Yeah, there is that...
21:11 pmichaud (which &circumfix:<[ ]> would handle for you)
21:12 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....
21:13 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?
21:13 pmichaud (you're avoiding the extra sub invocation, fine)
21:13 pmichaud maybe we should make a p6opaque_new dynop, then.
21:13 jnthn Do it now to get the correct dispatcher.
21:13 jnthn wfm
21:14 bkeeler_ t/spec/S05-grammar/action-stubs.t ..Result: PASS
21:14 bkeeler_ Woot
21:15 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.
21:15 pmichaud Currently we aren't cloning closures when something does    $a = { ... }
21:16 jnthn Ah.
21:16 jnthn That'd do it.
21:16 pmichaud because we changed assignment to change references instead of make copies.
21:16 pmichaud It may be as simple as defining Block.item or some such
21:17 pugssvn r29849 | bkeeler++ | :action should be :actions
21:17 pugssvn r29849 | Grammar.parse doesn't assign to $/, just use return value
21:17 pugssvn r29849 | rules have implicit {*} at the end
21:18 jferrero joined #perl6
21:20 jnthn heh
21:20 jnthn What does anyone make of these tests:
21:20 jnthn # things that should be valid
21:20 jnthn # these tests are probably going to fail if declaring a magical var ever becomes unallowed
21:20 jnthn eval_lives_ok 'my $!', '$! parses ok';
21:20 jnthn eval_lives_ok 'my $/', 'as does $/';
21:20 pmichaud fail, unless they have an implicit 'proto'
21:20 bkeeler_ jnthn, pmichaud: Want to take a preliminary skim of this grammar patch while I see what other tests I can make pass?
21:21 pmichaud bkeeler_: yes, please
21:21 jnthn aye
21:21 bkeeler_ http://drangle.com/~bruce/grammar.patch
21:21 jnthn pmichaud: Will update them. :-)
21:22 pmichaud bkeeler_: this patch doesn't handle regex signatures?
21:22 dalek rakudo/master: 46bc261 | jonathan++ | t/spectest.data:
21:22 dalek rakudo/master: Turn on S02-magicals/progname.t, thanks to patch from mberends++.
21:22 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/4​6bc26177efc65023df31bb38a066de63bcdf469
21:22 aartist- I know parrot is VM, but is it included in Rakudo?
21:22 bkeeler_ Hmm, can they take signatures?
21:22 pmichaud bkeeler_: yes.  they're just like methods.
21:23 bkeeler_ Ahh.  I guess that wouldn't be too difficult
21:23 pugssvn r29850 | jnthn++ | [t/spec] Update/correct a test file.
21:23 pmichaud it bugs me a little that we seem to be duplicating so much of the method actions code
21:23 pmichaud seems like that should be re-used or refactored
21:23 bkeeler_ pmichaud: Good point, I can look at that
21:23 pmichaud instead of copy-paste
21:24 aartist- xb
21:24 jnthn aartist-: No, though Rakudo uses Parrot.
21:24 jnthn aartist-: Also it's Configure script knows how to get and build Parrot for you.
21:24 PerlJam deja vu
21:24 jnthn *its
21:25 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 bkeeler_ not sure what to do about that
21:25 pmichaud that's okay, actually -- it's strictly internal.
21:25 pmichaud you don't need to wrap it in a Code object of any sort.
21:26 bkeeler_ OK, good to know
21:26 pugssvn r29851 | jnthn++ | [t/spec] Oops, fudge fail in last patch.
21:26 pmichaud in fact, it's probably better if the metamodel doesn't know anything about it
21:27 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
21:27 pmichaud ...&make ?
21:27 pmichaud oh, that
21:27 pmichaud it might go in src/cheats somewhere
21:28 dalek rakudo/master: 6373c3b | jonathan++ | t/spectest.data:
21:28 dalek rakudo/master: Another test file we can run again.
21:28 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/6​373c3bd3608860a8ed6edf1f5a39b94bee7da30
21:29 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
21:29 pmichaud generally I put such global functions either in cheats, or into the builtins/class file that is most closely associated
21:29 bkeeler_ So I just stuck it somewhere temporary
21:29 pmichaud so perhaps &make goes in src/builtins/grammar.pir or src/builtins/regex.pir
21:30 pmichaud anyway, whenver not sure where to put something, src/cheats is always a safe bet
21:30 pmichaud (because then we have to revisit it to figure out where it should really go.)
21:30 bkeeler_ Grammar.pir sounds reasonable though
21:32 pmichaud for example, I have &infix:<,>  in Parcel.pir, because it constructs parcels
21:32 pmichaud and &circumfix:<[ ]>  is in Array.pir, because it constructs arrays
21:32 pmichaud so &make  perhaps goes into Match.pir, since it modifies match objects
21:32 pmichaud that would seem to make the most sense.
21:32 bkeeler_ Done
21:33 bkeeler_ What's the new alternative to find_caller_lex then?
21:33 pmichaud find_dynamic_lex is the correct one
21:33 pmichaud bkeeler_: why is your patch modifying ClassHOW ?
21:33 pmichaud that seems.... wrongish
21:33 bkeeler_ Because it's not properly polymophic the way it is
21:34 bkeeler_ GrammarHOW ends up making a new ClassHOW at compose time
21:34 pmichaud oh, that could be.
21:34 pmichaud I had forgotten about GrammarHOW objects
21:34 pmichaud (I still tend to think of grammars as always being simple classes.)
21:35 bkeeler_ All GrammarHOW does is make it derive from Grammar by default
21:35 jnthn *nod*
21:35 jnthn Yes, I can believe it has that issue.
21:37 synth joined #perl6
21:37 pmichaud anyway, I was somewhat hoping that we could get the regex doe to share the method_def code
21:37 pmichaud s/doe/code/
21:38 bkeeler_ Seems reasonable
21:38 pmichaud also, we definitely want to have  a regex_def rule, to match STD.pm
21:38 pmichaud instead of just regex_declarator
21:38 ignacio_ joined #perl6
21:39 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 :-)
21:40 bkeeler_ I started by making the most minimal changes to Grammar.pm that I could get away with, heh
21:40 pmichaud Grammar.pm ?
21:41 pmichaud ouch ouch ouch
21:41 pmichaud who added src/builtins/Grammar.pir ?
21:41 * pmichaud hopes it wasn't him
21:41 bkeeler_ Grammar.pir was there already
21:41 pmichaud right, I mean historically
21:42 bkeeler_ Grammar.pir could actually be rewritten in perl, it doesn't do anything special
21:42 pmichaud Grammar.pir is loading PGE :-(
21:42 bkeeler_ It was, I commented that out
21:43 pmichaud which means we're getting some significant additional footprint and startup cost :-(
21:43 gbarr joined #perl6
21:43 gbarr left #perl6
21:43 jnthn pmichaud: Heh, at least the fix is easy.
21:44 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 :-)
21:44 pmichaud looks like jnthn added Grammar.pir :-) :-)
21:44 pmichaud that definitely needs to disappear
21:45 pmichaud I'm not sure Grammar.pir can become .pm -- we still need it to inherit from somewhere other than Any
21:45 jnthn :-( :-(
21:45 jnthn Sorry.
21:45 jnthn I think I put it back when I was madly meta-model hacking.
21:45 bkeeler_ class Grammar is Regex::Cursor { method parsefile($f) {...} } ?
21:46 bkeeler_ I'll give it a try and see if it works
21:50 pmichaud that won't work
21:50 pmichaud Regex::Cursor is outside of our metamodel
21:50 pmichaud it's a striclty internal classname.
21:50 pmichaud *strictly
21:50 bkeeler_ Hmmm
21:51 pmichaud that's why it needs to be done from PIR.
21:51 bkeeler_ So where does it go, if not Grammar.pir?
21:51 pmichaud Grammar.pir is fine -- it's just that the current Grammar.pir has issues :)
21:51 bkeeler_ It has fewer issues after my patch I hope
21:55 bkeeler_ Hmm, we fail some tests because you can't say   <Foo::bar> in a regex
21:55 bkeeler_ I guess that's a Regex core issue though
21:55 pmichaud yes
21:55 pmichaud haven't put that back into the engine yet
21:56 bkeeler_ I'll leave that ball in your court then
21:57 bkeeler_ Time to pop some nosh in the microwave, brb...
21:58 pmurias joined #perl6
21:59 pugssvn r29852 | lwall++ | [STD] my $a, $b now gives better message as suggested by masak++
22:03 TimToady std: my $a, $b;
22:03 p6eval std 29851: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $b is not predeclared at /tmp/JeirIQYHFi line 1:␤------> [32mmy $a, $b[33m⏏[31m;[0m␤FAILED 00:01 108m␤»
22:06 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 #perl6
22:07 deathmask_ joined #perl6
22:07 deathmask_ hi
22:07 deathmask_ Is there anybody alive?
22:07 Tene Yes!
22:08 deathmask_ how would you check the existance of a file in Perl 6?
22:08 pmichaud afk for a bit
22:09 deathmask_ is -e supposed to work?
22:09 deathmask_ Rakudo does not like it.
22:09 TimToady rakudo: '.' ~~ :e
22:09 Tene if '/etc/passwd' ~~ :f
22:09 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)␤»
22:09 Tene rakudo: say '/etc/passwd' ~~ :f
22:09 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)␤»
22:09 TimToady alpha: '.' ~~ :e
22:09 p6eval alpha 30e0ed:  ( no output )
22:09 TimToady alpha: say '.' ~~ :e
22:09 p6eval alpha 30e0ed: OUTPUT«1␤»
22:10 m-locks alpha does it
22:10 TimToady appears not to be implemented in the new master yet
22:10 Tene deathmask_: looks like the latest branch of rakudo, which rewrites quite a bit, doesn't have file tests added back in yet.
22:10 Tene but it's :e instead of -e in Perl 6.
22:10 jnthn May be able to pop those back quite trivially.
22:11 vorner left #perl6
22:11 TimToady and it's a pattern match, not a function
22:11 deathmask_ why?
22:11 TimToady so you can say things like $filename ~~ :e & :f & :w
22:12 TimToady you can gets against a junction of tests
22:12 TimToady s/gets/test/
22:12 deathmask_ ok
22:12 TimToady and you get negated tests out of it
22:12 TimToady alpha: say '.' ~~ :!f
22:12 p6eval alpha 30e0ed: OUTPUT«0␤»
22:12 TimToady ooh, bug
22:13 Tene alpha: say '/etc/passwd' ~~ :f
22:13 p6eval alpha 30e0ed: OUTPUT«1␤»
22:13 Tene alpha: say '/etc/passwd' ~~ :d
22:13 p6eval alpha 30e0ed: OUTPUT«0␤»
22:13 jnthn alpha: say '/etc/passwd' ~~ :!f
22:13 p6eval alpha 30e0ed: OUTPUT«1␤»
22:13 TimToady seems to be ignoring the !
22:13 jnthn yeah!
22:13 jnthn fail!
22:14 deathmask_ what is alpha?
22:14 TimToady previous version of rakudo
22:14 TimToady before the refactor
22:14 Tene deathmask_: alpha was the last release of the previous development line of rakudo, before the big refactor we're recovering from.
22:14 TimToady which gained some cool new stuff, but broke a few things
22:15 computerquip joined #perl6
22:15 deathmask_ I guess you know what you are doing.
22:15 TimToady std: my $a, $b;
22:15 p6eval std 29851: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $b is not predeclared at /tmp/3fo27q2btd line 1:␤------> [32mmy $a, $b[33m⏏[31m;[0m␤FAILED 00:01 106m␤»
22:16 TimToady hmm, still not updated
22:17 deathmask_ ok
22:17 deathmask_ So when are you going to fix it?
22:18 TimToady file tests?
22:18 deathmask_ yes
22:18 PerlJam deathmask_: as soon as someone finds the tuits.
22:18 deathmask_ tuits?
22:18 PerlJam deathmask_: everything that was in alpha and more will be available for the Rakudo Star release in April.
22:19 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?
22:19 * bkeeler_ wishes he could go
22:19 PerlJam deathmask_: What do you mean?
22:20 dalek rakudo/master: 2ab6b38 | jonathan++ | src/pmc/perl6multisub.pmc:
22:20 dalek rakudo/master: Fix .clone on multis.
22:20 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/2​ab6b38ebdd291b5a8a4e37ccc327ae484610f85
22:20 dalek rakudo/master: abd99af | jonathan++ | src/core/Any-str.pm:
22:20 dalek rakudo/master: Add back sprintf.
22:20 deathmask_ I wonder how you will call the next Rakudo?
22:20 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/a​bd99af55f2219c8363c7257fd31a939469a710c
22:20 dalek rakudo/master: d798874 | jonathan++ | t/spectest.data:
22:20 dalek rakudo/master: We now pass S32-str/sprintf.t again.
22:20 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/d​7988741953be329173b96b7cc6ebbf218504a96
22:20 deathmask_ Rakudo Gold?
22:20 bkeeler_ *+1?
22:20 deathmask_ Rakudo Bronz?
22:20 mberends Rakudo **
22:21 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 ;)
22:21 TimToady well, the subsequent ASCII characters are: + , - .
22:21 deathmask_ I am not sure about -?
22:22 Tene
22:22 diakopter considering star can mean zero or more, plus could mean 1 more than that
22:22 PerlJam I'd like to riff on the celestial theme personally.
22:22 PerlJam Rakudo Nebula
22:22 PerlJam :)
22:22 TimToady Black Hole
22:23 snarkyboojum Nova
22:23 deathmask_ that has negative connotations I htink
22:23 deathmask_ I mean black hole
22:23 TimToady certainly in russia it does...
22:23 snarkyboojum Rakudo Naked Singularity
22:24 TimToady Brown Dwarf
22:24 snarkyboojum heh
22:24 jnthn Red Giant
22:24 PerlJam Rakudo Planet
22:24 TimToady Green Giant...oh wait...
22:24 snarkyboojum Uranus (ambiguous pronunciation)
22:24 PerlJam Rakudo-do-do
22:24 TimToady the milky 道
22:25 supernovus joined #perl6
22:25 sjohnson heh
22:25 TimToady speaking of supernovas...
22:26 PerlJam he must've felt a disturbance in the force
22:26 TimToady Rakudo That's No Moon
22:26 deathmask_ Rakudo Diamond.
22:26 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) ?
22:27 supernovus Uh oh, was someone speaking of me?
22:27 TimToady we were just debating what comes after Rakudo Star
22:27 PerlJam supernovus: you probably want to ask in #parrot about mod_parrot
22:28 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 ;-)
22:29 deathmask_ I am off, bye...
22:29 PerlJam supernovus: there's always fastcgi  :)
22:30 Tene deathmask_: mod_parrot was last updated on september 7
22:30 Tene So, probably not.
22:30 Tene erm.
22:30 Tene supernovus: mod_parrot was last updated on september 7, so probably not
22:31 Tene supernovus: I just checked, and no, it doesn't compile.
22:31 TimToady std: my $a, $b;
22:31 p6eval std 29852: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $b is not predeclared (declarators are tighter than comma, so maybe your 'my' signature needs parens?) at /tmp/4aNZCAr1oz line 1:␤------> [32mmy $a, $b[33m⏏[31m;[0m␤FAILED 00:01 108m␤»
22:31 PerlJam std: our $a, $b;
22:31 p6eval std 29852: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $b is not predeclared (declarators are tighter than comma, so maybe your 'our' signature needs parens?) at /tmp/oQPWP3CJUK line 1:␤------> [32mour $a, $b[33m⏏[31m;[0m␤FAILED 00:01 107m␤»
22:31 deathmask_ good luck!
22:33 PerlJam std: our ($a,$b), $c;
22:33 p6eval std 29852: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $c is not predeclared at /tmp/ss4Ms0BlP2 line 1:␤------> [32mour ($a,$b), $c[33m⏏[31m;[0m␤FAILED 00:01 108m␤»
22:33 TimToady :P
22:35 sjohnson std: our ($a,$b,$c);
22:35 p6eval std 29852: OUTPUT«ok 00:01 107m␤»
22:35 Tene std: our ($a, my $b, my ($c, our $d));
22:35 p6eval std 29852: OUTPUT«[31m===[0mSORRY![31m===[0m␤In parameter declaration, typename 'my' must be predeclared (or marked as declarative with :: prefix) at /tmp/pndjEhalzd line 1:␤------> [32mour ($a, my[33m⏏[31m $b, my ($c, our $d));[0m␤FAILED 00:01 108m␤»
22:35 TimToady it doesn't try to catch every possible permutation, just the common mistakes
22:36 TimToady won't catch this either:
22:36 PerlJam TimToady: could you do the same trick for temp?
22:36 TimToady std: my $a, Int $b
22:36 p6eval std 29852: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/ryRVfVES6G line 1:␤------> [32mmy $a, Int [33m⏏[31m$b[0m␤    expecting any of:␤    bracketed infix␤  infix or meta-infix␤      statement modifier loop␤FAILED 00:01 107m␤»
22:36 TimToady std: my $a, Int $b;
22:36 p6eval std 29852: OUTPUT«[31m===[0mSORRY![31m===[0m␤Confused at /tmp/C0bHkYoOUf line 1:␤------> [32mmy $a, Int [33m⏏[31m$b;[0m␤    expecting any of:␤   bracketed infix␤  infix or meta-infix␤      statement modifier loop␤FAILED 00:01 107m␤»
22:37 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.
22:37 supernovus Well, time to see if I can make FastCGI and Perl 6 get along. Should be fun :-)
22:37 PerlJam so much that I think there's a large part of the perl community that doesn't even know that local  exists.
22:38 PerlJam supernovus: good luck!
22:39 jnthn my local is where I go for a pint, no?
22:39 TimToady I don't like lo-cal pints
22:39 PerlJam jnthn: let's find out.
22:39 PerlJam std: my local is where I go for a pint
22:40 p6eval std 29852: OUTPUT«[31m===[0mSORRY![31m===[0m␤Malformed my at /tmp/Kowmpm8JED line 1:␤------> [32mmy [33m⏏[31mlocal is where I go for a pint[0m␤    expecting any of:␤    scoped declarator␤        typename␤FAILED 00:01 105m␤»
22:40 PerlJam you're malformed.
22:40 jnthn Thanks, always good to know.
22:40 jnthn :-P
22:40 TimToady std: constant local is where I go for a pint
22:40 p6eval std 29852: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing initializer on constant declaration at /tmp/4sCFdtWAFK line 1:␤------> [32mconstant local is where [33m⏏[31mI go for a pint[0m␤    expecting trait␤FAILED 00:01 105m␤»
22:41 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?
22:42 PerlJam supernovus: if not, would you consider it?
22:43 PerlJam 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 PerlJam :-)
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.
22:43 PerlJam supernovus++
22:44 PerlJam supernovus: you get exponential karma if that causes any ruby wonks to start hacking Perl 6  ;)
22:45 colomon "Tests=24896" -- we're getting there....
22:45 jnthn colomon: Let's do 25,000 today!
22:46 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?
22:46 TimToady let's see, that'll make 49896 total...
22:46 jnthn TimToady: :-P
22:46 colomon jnthn: Today doesn't end until you go to sleep.  That's one of the rules.  :)
22:46 TimToady nap &
22:46 jnthn \o/
22:47 PerlJam uhoh TimToady's day just ended.
22:48 PerlJam 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. :-/
22:50 jnthn OH!
22:50 jnthn Duh.
22:50 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...)
22:51 jnthn .+ and .* were fine, the test had a multi taking a Num, which was now a Rat.
22:53 pmichaud std:  constant local is where i go for a pint
22:53 p6eval std 29852: OUTPUT«[31m===[0mSORRY![31m===[0m␤Missing initializer on constant declaration at /tmp/MWKkO8a47G line 1:␤------> [32mconstant local is where [33m⏏[31mi go for a pint[0m␤    expecting trait␤FAILED 00:01 105m␤»
22:54 pmichaud hmmm, I somewhat hoped it would get past the "i", at least :-)
22:54 pmichaud std: i
22:54 p6eval std 29852: OUTPUT«ok 00:01 105m␤»
22:55 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 ggoebel joined #perl6
22:55 pmichaud rakudo:  sub foo($a) { say $a.perl; };  foo <1 2 3>;
22:56 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
22:56 p6eval elf 29852, pugs, rakudo d79887: OUTPUT«3␤»
22:56 pmichaud spectesting fix, will commit then
22:56 jnthn colomon: spectesting, got another 30 passes coming. :-)
22:56 pmichaud (I like 1-line fixes :)
22:57 jnthn My fixes for this test were not too long. :-)
22:57 ggoebel rakudo: .WHAT
22:57 p6eval rakudo d79887:  ( no output )
22:57 jnthn (calling-sets.t)
22:57 ggoebel say .WHAT
22:57 ggoebel rakudo: say .WHAT
22:57 p6eval rakudo d79887: OUTPUT«Mu()␤»
22:58 ggoebel rakudo: say 3.WHAT
22:58 p6eval rakudo d79887: OUTPUT«Int()␤»
22:58 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)
22:58 PerlJam (in case you missed it)
22:58 ggoebel okay... just scratching an itch... (I did miss it btw)
22:58 pugssvn r29854 | colomon++ | [t/spec] Fix delete.t in light of ~Any discussion, and fudge for current Rakudo.
22:59 jnthn hmmm...when/how has S02-whitespace_and_comments\one-pass-parsing.t broked?
22:59 ggoebel say NaN.WHAT
22:59 ggoebel rakudo: say NaN.WHAT
22:59 bkeeler_ It was passing for bogus reasons anyway
22:59 p6eval rakudo d79887: OUTPUT«Num()␤»
22:59 PerlJam ggoebel: you can also /msg the p6eval bot  :)
22:59 jnthn bkeeler_: ah, ok
23:00 colomon just pushed a test file with another 23 passing tests.
23:00 PerlJam 4~4~/win 22
23:00 jnthn \o/
23:00 bkeeler_ And it started not passing when grammars starting working
23:00 pmichaud jnthn: what do you say to the notion that 'empty type property'  means 'Any' ?
23:00 ggoebel Interesting that NaN is a Num
23:00 dalek rakudo/master: 740ce02 | (Solomon Foster)++ | t/spectest.data:
23:00 dalek rakudo/master: Turn on S32-array/delete.t.
23:00 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/7​40ce02a0f3e2b96b11c5de3db7cb93725b40c90
23:00 ggoebel colomon++
23:01 jnthn pmichaud: 'empty type property'?
23:01 jnthn oh, sorry, I get it now
23:01 jnthn pmichaud: Sounds sane.
23:01 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'
23:02 jnthn supernovus: Yes, Rakudo master's use still has issues. Sorry.
23:02 jnthn There's always alpha for now.
23:02 pmichaud jnthn: that seems easier than writing the code to attach 'Any' to all of the untyped variables.
23:02 jnthn pmichaud: aye
23:02 pmichaud supernovus: I may be able to bump up the priority a bit on 'use'
23:02 jnthn pmichaud: Costs us some extra checks of course.
23:02 mberends supernovus: is that file in the current directory? there are no paths yet.
23:02 pmichaud it's not that difficult
23:02 colomon lives_ok { for %hash.pairs -> $pair {
23:02 colomon $pair.value += 100;
23:02 colomon } }, 'aliases returned by %hash.pairs should be rw (1)';
23:02 colomon Is that still right?
23:03 pmichaud afaik, yes.
23:03 masak joined #perl6
23:03 masak aloha, #perl6!
23:03 mberends pmichaud: +1 to 'use' priority, it will be useful for proto very soon
23:03 bkeeler_ hallo masak!
23:04 masak bkeeler_: hey there! :)
23:04 mberends masak: ahola too!
23:04 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.
23:04 jnthn supernovus: Aha, cool.
23:04 * masak hangs a lei around mberends' neck
23:04 pmichaud supernovus++
23:04 jnthn pmichaud: +1 for use too
23:04 pmichaud .oO( masak++ is in Hawai'i ? )
23:04 jnthn pmichaud: I suspect plenty of folks could use it.
23:04 supernovus pmichaud: The libraries are kept in 'lib' which my script has a BEGIN { @*INC.push: './lib' }  at the top of it...
23:04 pugssvn r29855 | colomon++ | [t/spec] Fudge failing test.
23:04 jnthn hejhejitsmasak
23:04 * masak looks out window
23:04 masak pmichaud: nope.
23:05 masak not Hawai'i.
23:05 masak jnthn: 'hejhej' decidedly does not have the same ring to it as 'lol' or 'yay'... :/
23:05 masak jnthn: 'hejhej' sounds almost resigned to my Swedish ears.
23:05 jnthn masak: Meh. Swedish.
23:05 jnthn ;-)
23:06 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...'
23:06 jnthn masak: You gotta remember it's all new to me. I'm still at the point where rulltrappa is a hilarious word.
23:06 jnthn ;-)
23:06 masak jnthn: the whole concept of rulltrappa is pretty hilarious.
23:07 masak can't be bothered to walk upstairs? invent a flight of stairs which moves!
23:07 masak jnthn: has someone told you about 'rulltårta' yet?
23:08 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.
23:08 jnthn tårta is some kinda cake, no?
23:08 mberends masak: is that a Swiss Roll that went North?
23:08 masak jnthn: http://sv.wikipedia.org/wiki/Rulltårta
23:08 masak mberends: no idea.
23:08 jnthn nice
23:08 jnthn Yes, we'd call it Swiss Role in English.
23:08 jnthn erm
23:08 jnthn Roll
23:09 masak mberends: Wikipedia says yes.
23:09 jnthn .oO( guess what I'm hacking on... )
23:09 colomon rakudo: say (1, 3, 2).sort.perl
23:09 p6eval rakudo d79887: OUTPUT«(1, 2, 3)␤»
23:09 masak jnthn: a rulltårta?
23:09 masak :D
23:09 jnthn I wish!
23:09 masak jnthn: S09? :P
23:09 bkeeler__ joined #perl6
23:10 mberends masak: yup, that's called a Swiss Roll (but probably not so in Switzerland ;)
23:10 colomon woah, do not touch S32-hash/slice.t!!!!!
23:10 jnthn colomon: 30 more passing tests...pushed.
23:10 jnthn colomon: Is it terrifying?
23:10 masak mberends: it never is. (plz apply obvious generalization)
23:11 colomon After I fudged to skip a hyper-op-based test, I had 11 fails in a row, followed by 12 skips, followed by a crash.
23:11 colomon I deduce it is not LHF.
23:11 mberends http://en.wikipedia.org/wiki/Swiss_roll
23:11 masak I sat down and read through all of S09. it's officially my favourite synopsis. ♡
23:11 jnthn I think hash slices are still teh broked.
23:12 masak I found an STD bug, I think.
23:12 jnthn masak: Oh noes...
23:12 jnthn :-)
23:12 masak std: 100_000
23:12 p6eval std 29852: OUTPUT«ok 00:01 107m␤»
23:12 masak std: my @a[100_000]
23:12 p6eval std 29852: OUTPUT«ok 00:02 105m␤»
23:12 masak std: my @a[%100_000]
23:12 p6eval std 29852: OUTPUT«[31m===[0mSORRY![31m===[0m␤Whitespace is required between alphanumeric tokens at /tmp/MHUWHMaBu9 line 1:␤------> [32mmy @a[%100[33m⏏[31m_000][0m␤FAILED 00:01 106m␤»
23:12 dalek rakudo/master: 6ffe11a | jonathan++ | src/metamodel/RoleToClassApplier.nqp:
23:12 dalek rakudo/master: Just rely on code thingies stringifying sanely; means Parrot subs just work in the role composer too.
23:12 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/6​ffe11a1dcdf010f35893c2e382780cd39aed996
23:12 dalek rakudo/master: 7ce3765 | jonathan++ | src/glue/dispatch.pir:
23:12 dalek rakudo/master: Fix up .+ and .* with multis.
23:12 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/7​ce3765cedd60758f436789fd9c8424e0ad65087
23:12 dalek rakudo/master: 3be16bb | jonathan++ | t/spectest.data:
23:12 dalek rakudo/master: We now pass S12-methods/calling_sets.t again.
23:12 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/3​be16bb47d9dff3b967f6eccdf34af2d7a817961
23:13 jnthn rakudo: my %h = a => 4, b => 2; say %h<a>
23:13 p6eval rakudo d79887: OUTPUT«4␤»
23:13 masak TimToady: the above happens because you use <semilist> inside the [], and the %100_000 gets interpreted as a variable name, and thus illegal.
23:13 jnthn rakudo: my %h = a => 4, b => 2; say %h<a b>
23:13 p6eval rakudo d79887: OUTPUT«␤»
23:13 colomon rakudo: grep(Int, 2, [], 4, [], 5).join(',')
23:13 p6eval rakudo d79887: OUTPUT«Too many positional parameters passed; got 6 but expected 2␤current instr.: 'grep' pc 233356 (src/gen/core.pir:5327)␤»
23:14 jnthn colomon: We must be around 24950-ish now?
23:14 colomon probably, but I don't to run spectest to see -- would slow me down too much!  ;)
23:15 IllvilJa joined #perl6
23:15 masak colomon++ # wow!
23:15 * pmichaud runs a spectest just to see.
23:16 pmichaud we should be able to unfudge some of the .kv tests involving pairs now, too :)
23:16 pmichaud S32-array/kv.t shows 4 passing todos on my system
23:16 jnthn \o/
23:17 colomon pmichaud++ # for fixing them!
23:18 dalek rakudo/master: cf150fc | pmichaud++ | src/Perl6/Actions.pm:
23:18 dalek rakudo/master: Quoted lists should act like ('1', '2', '3') instead of '1', '2', '3'
23:18 dalek rakudo/master: (especially in function calls).
23:18 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/c​f150fc08a41f72fbcc9a1ac54f8ce6348141a48
23:18 dalek rakudo/master: b3fcd6c | pmichaud++ |  (5 files):
23:18 dalek rakudo/master: Merge branch 'master' of git@github.com:rakudo/rakudo
23:18 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/b​3fcd6cbb06f623135f8379a0a15710c1c4fcb16
23:18 dalek rakudo/master: a215ee5 | pmichaud++ |  (3 files):
23:18 dalek rakudo/master: Merge branch 'master' of git@github.com:rakudo/rakudo
23:18 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/a​215ee54d77686b4c9f9246a255f157d0882cb0f
23:18 colomon (now rebuilding after a small patch to grep)
23:21 colomon (now rebuilding again after a slightly larger patch to grep)
23:21 quietfanatic joined #perl6
23:21 jferrero joined #perl6
23:22 masak oh, and I have a question about PRE phasers, too. I understand that the POST phaser might as well have && semantics with corresponding methods in ancestor classes. but what's the rationale for the PRE phaser having || semantics with its ancestor methods? I don't see it.
23:26 bpalmer joined #perl6
23:27 masak [backlog] dang, I see you discovered bugs in alpha! I guess I can't submit those either. :P
23:28 masak std: temp $a, $b;
23:28 p6eval std 29855: OUTPUT«[31m===[0mSORRY![31m===[0m␤Variable $a is not predeclared at /tmp/eO5ACbHIG3 line 1:␤------> [32mtemp $a[33m⏏[31m, $b;[0m␤    expecting any of:␤       POST␤   postfix␤  postfix_prefix_meta_operator␤FAILED 00:01 108m␤»
23:29 masak oh, right. temp is not a declarator.
23:30 gbarr joined #perl6
23:35 jnthn masak: BTW, I started to procrastinate for the workshops! :-)
23:36 bkeeler_ I'd be happy to help out with procrastination
23:36 masak jnthn: nice! I plan to do that after I go offline. I'll have a script this time :)
23:36 bkeeler_ It could be a concerted effort
23:36 jnthn ooh :-)
23:37 masak just thought I should try that out. create the script first, then the slides.
23:37 masak I'll probably not read directly from the script when I'm doing the talk.
23:37 jnthn Hmm...interesting idea.
23:37 jnthn Your procrastination is so much more planned out and organized than mine.
23:37 bkeeler_ Just write a script to autogenerate the slides from the script
23:38 masak jnthn: it's just that I'm still trying out my optimal presentation making style :)
23:38 pugssvn r29856 | colomon++ | [t/spec] Refudge grep.t.
23:38 bkeeler_ It takes years of dedicated practice to refine the subtle art of procrastination
23:38 jnthn masak: Yeah, I know that one.
23:39 masak bkeeler_: I feel pretty skilled at it already. :P
23:39 jnthn masak: One of the talks people have liked most has been one I didn't expect to be that popular. :-)
23:39 jnthn It's hard to tell.
23:39 masak jnthn: yes, it is.
23:40 masak jnthn: and often, the same talk will have different reception with different audiences.
23:40 bkeeler_ The truly devoted can procrastinate on multiple tasks simultaneously
23:40 masak bkeeler_: oh, that's even easier. I do that all the time.
23:40 masak actually doing a task just means that I'm procrastinating on one less thing.
23:41 mberends I stopped procrastinating about a week ago, but managed to resume it again.
23:41 masak mberends: nice!
23:41 bkeeler_ Procrastination on procrastination itself:  that's where it gets all zen
23:41 masak mberends: you're doing the implementations talk, right?
23:41 mberends masak: yes. lichtkind++ wrote about half my talk for me :)
23:42 lichtkind mberends: what you stole frome me ? :)
23:42 lichtkind mberends: good that you here i can drag you by the earrs there is lot to do in the wiki
23:42 mberends perl 6 implementations notes.
23:43 masak nothing like lichtkind's violent metaphors for encouraging collaboration. if it isn't ass-kickin', it's dragging by the ears.
23:44 jnthn Ano je strasne.
23:44 jnthn ;-)
23:44 mberends lichtkind: I do plan to store most of the coming talk information in the wiki.
23:44 pmichaud 24486 passing
23:44 jnthn pmichaud: Are you and colomon++ counting differently somehow? :-)
23:45 pugssvn r29857 | pmichaud++ | [t/spec]:  Fudge a test in sprintf.t .
23:45 colomon he's counting passing, I'm counting total tests.
23:45 jnthn Oh.
23:45 colomon I don't know how to count passing?
23:45 jnthn pmichaud: huh, you got an extra fail in sprintf.t?
23:45 jnthn Odd.
23:46 lichtkind mberends: just check this list :) http://use.perl.org/~perl6doc/journal/
23:47 mberends here passing 24416/24945 on linux/amd64
23:48 mberends lichtkind: excellent, I shall fill out the implementation stubs.
23:48 lichtkind mberends: yes :)
23:49 masak lichtkind: you should provide more irclog-friendly permanent links, such as http://use.perl.org/~perl6doc/journal/40211
23:49 lichtkind mberends: the whole wiki has now a sane structure, no orphant pages and i cut a lot of clutter and spam
23:49 lichtkind masak: yes
23:49 masak s/you should/consider/ :)
23:49 lichtkind masak: you read it? :)
23:49 masak I am now.
23:50 ilogger2 joined #perl6
23:51 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.
23:51 lichtkind mberends: thanks but i got help, conrads back :)
23:51 lichtkind masak: i dont understand
23:51 lichtkind :(
23:52 masak lichtkind: I like how you get things done.
23:52 masak 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. :/
23:52 masak it's less fun that way, and more of a chore.
23:53 masak also, this bug seems especially unfair, since I'm not aware of changing anything in the code or the configuration.
23:53 synth joined #perl6
23:53 diakopter masak: [backlog] the bugs I mentioned?
23:54 masak diakopter: oh, I saw you mention that you had bugs. didn't actually see any. URL?
23:54 * diakopter looks
23:54 diakopter some/all could be dupes
23:54 masak sure.
23:55 masak 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
23:55 * colomon is suddenly imagining a "Masak: Bug Hunter" theme song...
23:55 diakopter rakudo: my Int (Str $x); say $x.WHAT # unspecced behavior?
23:55 p6eval rakudo a215ee: OUTPUT«Int()␤»
23:55 lichtkind mberends: gut nacht, süsse träume
23:55 masak diakopter: whoa.
23:56 synth joined #perl6
23:56 masak never seen that one.
23:56 diakopter rakudo: my $::x  # who knows on this one
23:56 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)␤»
23:56 colomon Tests=25015
23:56 * masak submits the Int (Str $x) one
23:56 diakopter rakudo: my $a = sub { say $^a + $^a }; $a(4); # first of 2
23:56 p6eval rakudo a215ee: OUTPUT«Not enough positional parameters passed; got 1 but expected 2␤current instr.: '_block48' pc 329 (EVAL_1:133)␤»
23:56 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
23:56 masak std: my $::x
23:56 p6eval std 29857: OUTPUT«ok 00:01 107m␤»
23:57 diakopter rakudo: my $a = sub { say $^a + $^a }; $a(4, 5); # second of 2
23:57 p6eval rakudo a215ee: OUTPUT«10␤»
23:57 * masak submits rakudobug
23:57 * masak submits rakudobug
23:57 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)␤»
23:58 diakopter whaaa
23:58 diakopter different from yesterday
23:58 diakopter yesterday it said
23:58 masak I don't like those.
23:58 diakopter rakudo 88f57f: OUTPUT«{Pair.new(:key("Inf"), :value(Mu))}␤»
23:58 masak ok.
23:58 diakopter first and second of 2?
23:59 masak diakopter: there seems to be a space between the zeroes. is that intentional?
23:59 diakopter ahah
23:59 dalek rakudo/master: 852213b | (Solomon Foster)++ | t/spectest.data:
23:59 dalek rakudo/master: Turn on S32-hash/pairs.t and S32-list/grep.t.
23:59 dalek rakudo/master: review: http://github.com/rakudo/rakudo/commit/8​52213bcf7d80ff4f3efc206817fd4a648462d90
23:59 arlinius joined #perl6
23:59 diakopter rakudo: my $b = {.000000000000000000000000000000000000​0000000000000000000000000000000000001 => $b}.perl; say $b
23:59 p6eval rakudo a215ee: OUTPUT«{Pair.new(:key("Inf"), :value(Mu))}␤»
23:59 masak diakopter: yeah, submitted the $::x and sub { $^a + $^a } as separate tickets.
23:59 * masak submits rakudobug
23:59 diakopter there was another one with $^a and $^a

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

Perl 6 | Reference Documentation | Rakudo