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