»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
00:02 fgomez left 00:04 benabik left 00:11 thou left 00:17 benabik joined, fgomez joined
flussence well, I've hit a stone wall. "psgi.input => Buf.new()" on a POST request - it's not getting set, which means POST doesn't work at all. 00:23
00:25 japhb_ left 00:26 whiteknight left
flussence ...I think IO::Socket.get is broken. 00:40
HTTP::Easy::PSGI only does reads by calling .get for the headers and a .read($len) later on, but that .read always ends up with no data 00:41
actually... I might be horribly wrong 00:49
yeah, it's the other way around: irclog.perlgeek.de/perl6/2012-10-24#i_6095161 00:50
diakopter I've had my head buried in a stone wall of a project for 2 weeks 00:51
er, 3
00:57 rindolf left 01:02 benabik_ joined 01:05 gdey left, benabik left, benabik_ is now known as benabik 01:13 PacoAir left
flussence oh. 01:14
figured out why it doesn't work.
in 837d0f8 moritz deleted the line in .read that... does the reading bit
01:16 benabik left, benabik joined
flussence more specifically, this one: github.com/rakudo/rakudo/commit/837d0f8#L2L30 01:18
01:20 Chillance left
flussence and with that fixed I can get back to fighting bugs in modules instead of the language itself... *sigh* 01:21
01:30 FROGGS_ joined 01:33 flightrecorder left 01:34 FROGGS left, flightrecorder joined 01:40 fgomez left, fgomez joined 01:44 MikeFair joined, benabik left 01:45 jerome left 01:50 benabik joined 01:56 DarthGandalf left 01:59 jerome joined, DarthGandalf joined 02:21 orafu left, orafu joined 02:40 skids joined 02:54 bapa left, bapa joined 03:10 jaldhar joined 03:12 flightrecorder left, FROGGS_ left 03:14 gregp joined, gregp is now known as Guest34516 03:15 Guest34516 is now known as gregster 03:17 gregster left 03:19 orafu left, OuLouFu joined, OuLouFu is now known as orafu 03:40 HarryS joined 03:51 armitage81 left 04:01 thou joined 04:04 cognominal left 04:22 Playb3yond joined 04:24 telex left 04:25 Playb3yond left 04:28 jaldhar left 04:34 telex joined, azawawi joined
azawawi hi #perl6 04:40
phenny azawawi: 26 Oct 22:13Z <rindolf> tell azawawi OK, I understand now - regarding HTTP::Easy.
azawawi rn: require File::Spec; 04:43
p6eval niecza v22-14-g136ddcf: OUTPUT«Unhandled exception: System.NotImplementedException: The requested feature is not implemented.␤ at Anon.1.Run.MAIN.C0mainline (Niecza.Frame ) [0x00000] in <filename unknown>:0 ␤ at Niecza.Kernel.RunCore (Niecza.Frame& cur) [0x00000] in <filename unknown>…
..rakudo 3619d7: OUTPUT«Could not find File::Spec in any of: /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/lib, /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/vendor/lib, /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/site/lib, /home/p6eval/.perl…
azawawi star: require File::Spec;
p6eval star 2012.07: OUTPUT«Could not find File::Spec in any of: /home/p6eval/.perl6/lib, /home/p6eval/star/lib/parrot/4.6.0/languages/perl6/lib␤ in any load_module at src/Perl6/ModuleLoader.pm:108␤ in block <anon> at /tmp/jQF2rCmulp:1␤␤»
04:43 jaldhar joined
azawawi star: if (1) { require File::Spec; } 04:45
p6eval star 2012.07: OUTPUT«Could not find File::Spec in any of: /home/p6eval/.perl6/lib, /home/p6eval/star/lib/parrot/4.6.0/languages/perl6/lib␤ in any load_module at src/Perl6/ModuleLoader.pm:108␤ in block <anon> at /tmp/yhJNoydXNT:1␤␤»
azawawi r: if (1) { require File::Spec; } 04:46
p6eval rakudo 3619d7: OUTPUT«Could not find File::Spec in any of: /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/lib, /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/vendor/lib, /home/p6eval/nom-inst/lib/parrot/4.8.0-devel/languages/perl6/site/lib, /home/p6eval/.perl…
04:48 telex left
azawawi moritz: ping 04:52
04:53 telex joined 04:55 jaldhar left
azawawi phenny: tell moritz Any chance star: is upgraded to 2012.09 or the upcoming 2012.10? Thanks. 04:56
phenny azawawi: I'll pass that on when moritz is around.
azawawi star: /clear 04:58
p6eval star 2012.07: OUTPUT«===SORRY!===␤Preceding context expects a term, but found infix / instead␤at /tmp/58T7rkhTy9:1␤»
04:59 jaldhar joined
azawawi do 'require' in Perl 6 work in the same way that it works in Perl 5 or not? 05:01
s/do/does/
azawawi walk & 05:02
05:02 azawawi left 05:04 tokuhir__ left 05:08 Entonian joined 05:09 Entonian left, Entonian joined 05:11 Entonian left, Entonian joined 05:16 Entonian left 05:43 sisar joined 05:48 bro_grammer left 05:52 Pleiades` left 05:58 Pleiades` joined 06:23 skids left 06:32 s1n left 06:37 sivoais left 06:42 sivoais joined 06:44 thou left, flightrecorder joined 07:02 GlitchMr joined 07:06 mucker joined 07:10 Rix joined 07:38 mucker left 07:40 SamuraiJack joined 07:46 gootle joined
moritz phenny: tell azawawi I'll upgrade p6eval once 2012.10 is released 08:22
phenny moritz: I'll pass that on when azawawi is around.
moritz: 04:56Z <azawawi> tell moritz Any chance star: is upgraded to 2012.09 or the upcoming 2012.10? Thanks.
08:28 havenn_ joined 08:29 sisar left 08:30 havenn left 08:44 havenn_ left 08:56 MayDaniel joined 08:58 SamuraiJack left, jaffa4 joined
jaffa4 hi ALL 08:59
how would you convert c flag in a regular expression to Perl 6 regular expression?
09:00 colomon left
sorear I need to look up what c does 09:12
09:15 cognominal joined
sorear jaffa4: /c is inapplicable in perl 6 because it modifies the behavior of pos(), which has been removed due to bad interaction with threads 09:15
jaffa4 well, I am not sure I understand you I mean the whys... but it does not work.. right... 09:16
sorear What are you trying to accomplish?
jaffa4 to continue matching if a previous match fails 09:17
sorear please elaborate
what is "continue"
jaffa4 continue from the same position which was before the last match failed.
sorear /c is meaningless in perl 5 except when it modifies scalar context /g 09:18
scalar context /g is gone
there is no 'same position'. perl 6 doesn't remember that, unless our communication is very confused 09:19
jaffa4 $/.pos
sorear hmm... probably you should save $/.pos in a variable if you want to still have it after the next match 09:20
jaffa4 yes, I can do that
sorear or write the code to not use $/ directly
e.g. $match //= m/foo/ 09:21
jaffa4 Not sure what I see
r:$match //= m/foo/ 09:25
std: match //= m/foo/ 09:26
p6eval std 64edd1c: OUTPUT«===SORRY!===␤Null regex not allowed at /tmp/9uSPFYSjs0 line 1:␤------> match //⏏= m/foo/␤Undeclared routine:␤ 'match' used at line 1␤Check failed␤FAILED 00:00 43m␤»
jaffa4 r: match //= m/foo/
p6eval rakudo 3619d7: OUTPUT«===SORRY!===␤Null regex not allowed at line 2, near "= m/foo/"␤» 09:27
jaffa4 r: $match //= m/foo/
p6eval rakudo 3619d7: OUTPUT«===SORRY!===␤Variable $match is not declared␤at /tmp/vap8A8vqAi:1␤»
jaffa4 r: my $match='m'; $match //= m/foo/
p6eval rakudo 3619d7: ( no output )
jaffa4 r: my $match='m'; $match //= m/fm/
p6eval rakudo 3619d7: ( no output )
jaffa4 r: my $match='m'; print $match //= m/fm/ 09:28
p6eval rakudo 3619d7: OUTPUT«m»
jaffa4 r: my $match='m'; print $match //= m/fm/ ; print $match.pos
p6eval rakudo 3619d7: OUTPUT«No such method 'pos' for invocant of type 'Str'␤ in block at /tmp/7KbbptzgN2:1␤␤m»
09:33 Su-Shee left
jaffa4 r: my $match='m'; print ($match //= m/fm/ ).pos; 09:42
p6eval rakudo 3619d7: OUTPUT«No such method 'pos' for invocant of type 'Str'␤ in block at /tmp/UhI6HfbiLN:1␤␤»
09:42 cognominal left 09:45 havenn joined 09:50 havenn left
masak good antenoon, #perl6 09:53
eiro hello guys
09:55 cognominal joined
eiro yeah cognominal :) 09:56
cognominal hi, eiro and the nice #perl6 crowd 09:57
masak .oO( are you saying eiro is not nice? ) :P 09:58
moritz jaffa4: simply store the $/.to from the previous successful match, and anchor to that with :c($pos) or :p($pos) 09:59
though for lexing (for which you use /c in Perl 5) you can just use a grammar instead
cognominal * and the rest of the nice ... 10:01
now, masak will say I downplay #perl6 compared to eiro 10:02
eiro haha. i'm confused, have poor skills in both perl6 and english6 but i'm trying. i want bailador to listen to other than localhost:3000 10:07
masak I ain't said nothin' :)
10:08 cognominal_ joined
eiro (btw the bailador message is a lie: it doesn't listen to 0.0.0.0 :) 10:08
10:08 cognominal left
eiro wow! another improved cognominal_ 10:08
imppressive update
10:10 spider-mario joined 10:13 cognominal__ joined 10:14 cognominal_ left 10:15 kurahaupo joined 10:16 not_gerd_ joined
not_gerd_ hello, #perl6 10:16
10:16 havenn joined
not_gerd_ r: sub foo(--> Str) { fail }; foo 10:16
p6eval rakudo 3619d7: OUTPUT«Type check failed for return value; expected 'Str' but got 'Failure'␤ in sub foo at /tmp/0ZrVGVmt0m:1␤ in block at /tmp/0ZrVGVmt0m:1␤␤»
not_gerd_ ^ bug? 10:17
10:17 whiteknight joined
jnthn morning o/ 10:19
not_gerd_ jnthn: good morning 10:20
jnthn er, afternoon :)
not_gerd_ ;)
jnthn: irclog.perlgeek.de/perl6/2012-10-27#i_6104324
10:21 kurahaupo left 10:22 havenn left
not_gerd_ using typed containers appears to be fraught with gotchas 10:23
Nominal type check failed for parameter '@triggers'; expected Positional but got Array instead
Ulti win 2
not_gerd_ lose 1
Ulti :( 10:24
not that this window isn't my fav ;)
jnthn not_gerd_: While the error isn't great, note that you can only pass a typed array to something expecting to be passed a typed array
r: sub foo(Int @a) { }; my @b = 1,2,3; foo(@b); 10:25
p6eval rakudo 3619d7: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional but got Array instead␤ in sub foo at /tmp/FudroQh7lM:1␤ in block at /tmp/FudroQh7lM:1␤␤»
jnthn r: sub foo(Int @a) { }; my Int @b = 1,2,3; foo(@b);
p6eval rakudo 3619d7: ( no output )
jnthn It's on my todo list to make the error include the parametric bit. I'm really not sure why it doesn't already...
10:25 cognominal__ left
not_gerd_ jnthn: any comments on returning Failure from subs with typed return values? 10:26
10:27 MayDaniel left
jnthn not_gerd_: In theory it should work. In practice, making it work may interact interestingly with the optimizer, which believes that if you say you're going to return a Str, you really are, and thus it can analyze/inline any call it's nested in based on that. 10:28
not_gerd_ r: (-> Str *@ {})() 10:29
p6eval rakudo 3619d7: OUTPUT«Nominal type check failed for parameter ''; expected Positional but got Array instead␤ in block at /tmp/8AuoXqKwID:1␤␤»
not_gerd_ r: (-> Str :@dummy {})() 10:30
p6eval rakudo 3619d7: OUTPUT«Nominal type check failed for parameter '@dummy'; expected Positional but got Array instead␤ in block at /tmp/nj6qHNDKgS:1␤␤»
10:30 pmurias joined
not_gerd_ these were my specific problems 10:30
10:31 not_gerd_ is now known as not_gerd, cognominal joined
jnthn I think typed slurpies ain't gonna work, but the second one is certainly an issue. I suspect it's creating an untyped default container. 10:31
moritz: flussence noticed that github.com/rakudo/rakudo/commit/837d0f8#L2L30 seems to have accidentally the line that does a read from a socket 10:34
moritz: I'm spectesting a patch that adds it back, but otoh the spectests didn't miss it in the first place... 10:36
I'm also thinking I'll include this patch in R* so we don't have a month of "R* won't .read from sockets", but I ain't gonna cut a separate Rakudo release in order to do that. 10:37
not_gerd r: (-> Str @ {})(Nil)
p6eval rakudo 3619d7: OUTPUT«Nominal type check failed for parameter ''; expected Positional but got Nil instead␤ in block at /tmp/gLih4ud_F7:1␤␤»
not_gerd another one I expected to work 10:38
jnthn Hm, not sure about that one. I can see why it perhaps should.
r: (-> @a { say @a.WHAT })(Nil)
p6eval rakudo 3619d7: OUTPUT«Nominal type check failed for parameter '@a'; expected Positional but got Nil instead␤ in block at /tmp/F4A9bzL7rE:1␤␤»
jnthn You don't even need to type it for that one though :)
10:43 cognominal left
dalek kudo/nom: 72ec639 | jnthn++ | src/core/IO/Socket.pm:
Restore accidentally removed read in IO::Socket.
10:43
jnthn phenny: tell flussence I restored the missing read in 72ec639
phenny jnthn: I'll pass that on when flussence is around.
jnthn flussence++ # bug report that specified why the code was wrong 10:44
10:48 havenn joined
not_gerd r: (-> Str() $ {})(42) 10:50
p6eval rakudo 3619d7: OUTPUT«===SORRY!===␤Missing block␤at /tmp/Kn4UVMdMLZ:1␤»
not_gerd not implemented or am I misremembering the syntax?
10:50 tokuhiro_ joined, cognominal joined
not_gerd std: (-> Str() $ {})(42) 10:50
p6eval std 64edd1c: OUTPUT«ok 00:00 46m␤»
cognominal jnthn++ # nice QAST doc 10:52
jnthn not_gerd: The new coercion syntax isn't implemented; Rakudo does support the old "as Str" way. 10:54
10:55 havenn left 11:01 rindolf joined
eiro pull request on vim-perl: gf navigation now works for perl6 11:02
moritz \o/ 11:03
11:16 cognominal left 11:19 cognominal_ joined 11:20 cognominal_ left 11:21 havenn_ joined
dalek ar: 742f9db | jnthn++ | docs/announce/2012.10:
Draft release announcement for 2012.10 release.
11:24
ar: 2651682 | jnthn++ | tools/star/Makefile:
Bump versions.
jnthn moritz: Any chance you could contribute something to the R* release announcement on the $*CUSTOM-LIB and related changes?
jnthn isn't sure exactly what it is about and would rather somebody who groks it well write that section of the announce ;) 11:25
Additionally, if anybody has suggestions of modules we really should include in R*, let me know. :) 11:27
(as in, ones we currently don't :))
11:27 havenn_ left
masak oh, we're in a-star-is-born mode? 11:27
11:27 Chillance joined
jnthn masak: I'll cut the star release during the weekend. 11:28
masak yay
11:31 cognominal joined
not_gerd lunch 11:43
11:43 not_gerd left 11:54 havenn joined 11:56 cognominal left 11:59 sisar joined 12:00 havenn left 12:02 colomon joined 12:03 cognominal joined 12:04 domidumont joined, domidumont left 12:06 domidumont joined 12:07 domidumont left, domidumont joined, domidumont left 12:08 domidumont joined, domidumont left
pmurias jnthn: when compiling 'module Foo {...}' GLOBALish should contain Foo? 12:10
12:11 domidumont joined 12:12 domidumont left
jnthn pmurias: Yes; done at src/NQP/Grammar.pm:392 12:17
pmurias: Presuming the module isn't nested in some other package, that is. 12:18
See 121 for the "default package is GLOBALish"
pmurias $block.symtable<$?PACKAGE> seems a correct way of extracting GLOBALish? (with $block being the topmost block) 12:22
I get the right things from $?PACKAGE at runtime, and NQP*HOW,etc. at compile time 12:23
jnthn It'd have to be $block.symtable<$?PACKAGE><value> to get the actual object. 12:24
But I'd usually write it as $block.symbol('$?PACKAGE')<value>
pmurias yes, I was adding <value> 12:25
I'll switch to .symbol
jnthn It's doing the same thing under the hood, it's just a little shorter
12:27 havenn joined 12:29 birdwindupbird joined
pmurias jnthn: for $node.symbol('$?PACKAGE')<value>.WHO -> $pkg_var {...} 12:30
12:30 tokuhiro_ left
pmurias jnthn: should that iterate all the pkg vars? 12:31
jnthn pmurias: Looks right.
Well
$pkg_var will be soemthing with .key and .value
pmurias it seems to work for packages other then GLOBALish 12:34
12:34 havenn left
pmurias moves to a room with internet good enough for pastebins ;) 12:36
dalek pan style="color: #395be5">perl6-examples: 00f5048 | (Gerhard R)++ | euler/prob009-gerdr.pl:
[euler/prob009] use naive expression for upper bound
12:38
pan style="color: #395be5">perl6-examples: ca200a0 | (Gerhard R)++ | euler/prob009-gerdr-feeds.pl:
[euler/prob009] add version using feed operators
moritz jnthn: re %*CUSTOM_LIB, there's a blurb already in docs/depreactions in the rakudo repo 12:41
jnthn: IMHO it would be fine just to copy it over; if you don't think that's good enough, I can write something else too 12:43
jnthn moritz: If you're happy with it, I'm sure it's fine :)
12:43 pmurias left
moritz well, it's hard for me to judge if it's informative/understandable, because I already know the stuff :-) 12:44
jnthn moritz: It looks OK to me :) 12:45
12:45 whiteknight left, pmurias joined
jnthn I understand it now anyways :) 12:45
moritz phenny: ask tadzik what he thinks of the panda/custom-lib branch, and if it's mergable before the star release 12:46
phenny moritz: I'll pass that on when tadzik is around.
moritz maybe not before the star release, but I hope before the the 2011.11 star release :-) 12:47
jnthn Perhaps best to wait for the 2011.11. 12:48
pmurias jnthn: that's what I find at compile time: pastie.org/5123213
jnthn er, 2012.11 :)
moritz erm yes ._)
jnthn pmurias: Are you looking at $*UNIT or $*UNIT_OUTER? 12:49
pmurias: I suspect you're looking at the setting's GLOBALish
As in, one frame too far out.
(We cheat a little here in so far as the setting's idea of global actually becomes invisible; dates back to before NQP had any export mechanism I guess...) 12:50
12:51 cognominal left
pmurias I'm looking at the $?PACKAGE of all the block in .load, but I guess I should look how the GLOBALish merging work 12:51
* works
moritz r: proto sub a($, $?) { }
p6eval rakudo 72ec63: ( no output ) 12:52
pmurias jnthn: the way nqp-js works is I grab the QAST from the compreg'ed nqp and compile it, so I don't have access to any of the contextuals from the compiler 12:53
jnthn pmurias: OK, to put it another way: what you get as the "top block" isn't UNIT, it's something that wraps it. 12:55
pmurias: So you need to look one block down for the one whose symbols table contains GLOBALish for the current unit.
12:59 cognominal joined 13:01 havenn joined 13:04 Psyche^ joined 13:07 havenn left, Patterner left, Psyche^ is now known as Patterner
flussence g'mornin, GMT-5 13:12
phenny flussence: 10:43Z <jnthn> tell flussence I restored the missing read in 72ec639
flussence yay
moritz flussence++, jnthn++ # noticing and cleaning up my mess 13:16
13:32 hash_table joined 13:34 havenn joined 13:41 havenn left
dalek kudo/Q: 5157d7f | jnthn++ | src/Perl6/ (2 files):
Stub in quoting grammar/actions.
13:54
kudo/Q: 5c6fc96 | jnthn++ | src/Perl6/Grammar.pm:
Start porting Q language from STD.
kudo/proto-arity: ce3b28d | moritz++ | src/core/ (2 files):
start to switch some protos to a more constraint signature

we want things like @list.map: &sin; to work, and that can only work if &sin is arity 1, so it cannot have a proto sig of (|)
14:01
kudo/proto-arity: 0315558 | moritz++ | src/core/ (7 files):
narrow down more protos
14:02 PacoAir joined 14:03 mucker joined 14:05 Pleiades` left 14:06 birdwind1pbird joined 14:07 havenn joined 14:11 Pleiades` joined 14:15 havenn left 14:19 cognominal left 14:22 ivan`` left 14:23 ivan`` joined 14:25 arlinius left 14:29 mikemol left 14:30 am0c joined
moritz if somebody could spectest the proto-arity branch against nom, that would be most welcome 14:32
jnthn moritz: "against nom"? Is the branch not directly from HEAD? 14:33
moritz s/spectest/benchmark/
moritz a bit distracted
it spectests fine
jnthn I can run the spectests and see if they're any slower than a normal run. Is there some other benchmark you have in mind?
moritz nothing in particular, no 14:34
jnthn OK
dalek kudo/Q: 6f1695e | jnthn++ | src/Perl6/Grammar.pm:
Add an STD role.

While we inherit a bunch of stuff from HLL::Grammar, STD has a few things factored out that we'd also like to share between languages. They shall go into this role.
masak "Q"? the guy from James Bond movies? 14:35
:P
jnthn No, Q the grammar :P
masak oh!
jnthn I'm working on aligning STDs and Rakudo's quote parsing.
So we can haz things like quote adverbs.
And then, like, heredocs.
masak cool. 14:37
moritz looks forward to it 14:38
jnthn too :P
dalek p: 686d9ed | jnthn++ | src/NQP/World.pm:
Fix composing roles with regexes in.

The runtime mixin case worked, but curiously not the compile time one.
jnthn moritz: building and spectesting your branch, so can compare times 14:39
14:41 havenn joined
dalek kudo/nom: e5b94e3 | masak++ | src/Perl6/World.pm:
[src/Perl6/World.pm] make comment more precise
14:41
14:45 am0c left 14:46 xinming left, xinming joined
jnthn moritz: No measurable difference. 14:46
moritz \o/
then I'll merge
jnthn moritz: It was a little faster than my last run in nom, but by second a couple of seconds, which is noise. 14:47
moritz++
Gee, it's still October and the November relesae is already starting to smell good :) 14:48
14:48 havenn left
moritz :-) 14:49
masak silently works on macros in the background
this roles fixup code doesn't look so bad. should be able to lift it over and declare D2 complete.
colomon \o/ 14:50
14:51 sisar left
dalek kudo/nom: ce3b28d | moritz++ | src/core/ (2 files):
start to switch some protos to a more constraint signature

we want things like @list.map: &sin; to work, and that can only work if &sin is arity 1, so it cannot have a proto sig of (|)
14:52
kudo/nom: 0315558 | moritz++ | src/core/ (7 files):
narrow down more protos
kudo/nom: 6cefb40 | moritz++ | src/core/ (9 files):
Merge branch 'proto-arity' into nom
kudo/nom: 6859fb6 | moritz++ | docs/ChangeLog:
update ChangeLog with proto arity changes
14:53 JJ6 joined 14:54 JJ6 left 14:59 mr007x joined 15:05 cognominal joined
dalek ast: 8ce7a4e | moritz++ | S (2 files):
rakudo unfudges
15:13
15:15 havenn joined 15:16 colomon left
masak r: macro einstein() { my $q = quasi { 2 }; $q = quasi { 1 + {{{$q}}} }; $q = quasi { 1 + {{{$q}}} }; $q }; say einstein() 15:21
p6eval rakudo 6859fb: OUTPUT«4␤»
15:21 MayDaniel joined
masak \o/ 15:21
r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say bohr() 15:22
p6eval rakudo 6859fb: OUTPUT«Cannot call 'infix:<+>'; none of these signatures match:␤:($x = { ... })␤:(int $a, int $b)␤:(num $a, num $b)␤:(Int:D \a, Int:D \b)␤:(Num:D \a, Num:D \b)␤:(Rational \a, Rational \b)␤:(Rational \a, Int \b)␤:(Int \a, Rational \b)␤:(Complex:D \a, Complex:D \b)␤:(Instan…
15:22 colomon joined
masak :/ 15:23
cognominal what is the meaning of {*} in qnp/src/QAST/Compiler.nqp?
masak r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { 66 + {{{$q3}}} } }; say bohr()
p6eval rakudo 6859fb: OUTPUT«666␤»
masak r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { 6 + {{{$q2}}} + {{{$q3}}} } }; say bohr()
p6eval rakudo 6859fb: OUTPUT«666␤» 15:24
masak r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} } }; say bohr()
p6eval rakudo 6859fb: OUTPUT«6␤»
masak vewwy weiwd...
jnthn cognominal: In a proto method? It's "call the appropriate multi here"
masak so it's only adding *three* things that fails? o.O
s/things/unquotes/
r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q1}}} + {{{$q1}}} } }; say bohr() 15:25
p6eval rakudo 6859fb: OUTPUT«18␤»
masak r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q2}}} + {{{$q2}}} + {{{$q2}}} } }; say bohr()
p6eval rakudo 6859fb: OUTPUT«180␤»
masak r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q3}}} + {{{$q3}}} + {{{$q3}}} } }; say bohr()
p6eval rakudo 6859fb: OUTPUT«1800␤»
cognominal jnthn, thx
masak what in the world...
jnthn masak: Did you meant to do $q3 in all the quasis? 15:26
pmurias jnthn: I put $*UNIT in every put and it still lacks the package
jnthn 'cus 600 + 600 + 600 is 1800 in my book :)
pmurias s/put/pad/
masak jnthn: only {{{$q1}}} + {{{$q2}}} + {{{$q3}}} fails. all other combos succeed. that's the weird thing. 15:27
my best guess is that it's something that trips on the exact shape of the AST created by combining those arithmetical expressions.
jnthn masak: It's nothing to do with the first quasi just having a literal in?
masak why would that make a difference?
jnthn I've no idea :) 15:28
masak {{{$q1}}} + {{{$q1}}} + {{{$q1}}} succeeds.
jnthn ah, true
15:29 domidumont joined
masak r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { say "are we failing in here?"; 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say bohr() 15:29
p6eval rakudo 6859fb: OUTPUT«Cannot call 'infix:<+>'; none of these signatures match:␤:($x = { ... })␤:(int $a, int $b)␤:(num $a, num $b)␤:(Int:D \a, Int:D \b)␤:(Num:D \a, Num:D \b)␤:(Rational \a, Rational \b)␤:(Rational \a, Int \b)␤:(Int \a, Rational \b)␤:(Complex:D \a, Complex:D \b)␤:(Instan…
pmurias jnthn: how does WHO work?
masak huh. which infix:<+> *is* failing? 15:30
jnthn: or, hm, is that a compile-time error?
r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; BEGIN { say "A" }; say bohr(); BEGIN { say "B" } 15:31
p6eval rakudo 6859fb: OUTPUT«A␤B␤Cannot call 'infix:<+>'; none of these signatures match:␤:($x = { ... })␤:(int $a, int $b)␤:(num $a, num $b)␤:(Int:D \a, Int:D \b)␤:(Num:D \a, Num:D \b)␤:(Rational \a, Rational \b)␤:(Rational \a, Int \b)␤:(Int \a, Rational \b)␤:(Complex:D \a, Complex:D \b)␤:(In…
masak r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say "alive"; say bohr()
p6eval rakudo 6859fb: OUTPUT«alive␤Cannot call 'infix:<+>'; none of these signatures match:␤:($x = { ... })␤:(int $a, int $b)␤:(num $a, num $b)␤:(Int:D \a, Int:D \b)␤:(Num:D \a, Num:D \b)␤:(Rational \a, Rational \b)␤:(Rational \a, Int \b)␤:(Int \a, Rational \b)␤:(Complex:D \a, Complex:D \b)␤:(…
jnthn pmurias: It just grabs the stash associated with the type
pmurias: Under the hood it's no more than STABLE(obj)->WHO
masak r: macro bohr() { say "A"; my $q1 = quasi { 6 }; say "B"; my $q2 = quasi { 6 * 10 }; say "C"; my $q3 = quasi { 100 + 200 + 300 }; say "D"; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say bohr() 15:32
p6eval rakudo 6859fb: OUTPUT«A␤B␤C␤D␤Cannot call 'infix:<+>'; none of these signatures match:␤:($x = { ... })␤:(int $a, int $b)␤:(num $a, num $b)␤:(Int:D \a, Int:D \b)␤:(Num:D \a, Num:D \b)␤:(Rational \a, Rational \b)␤:(Rational \a, Int \b)␤:(Int \a, Rational \b)␤:(Complex:D \a, Complex:D \b)␤…
jnthn pmurias: In NQP it's just set to a hash. In Rakudo we set it to a Perl 6 Stash object.
masak r: macro bohr() { my $q1 = quasi { 1 + 5 }; my $q2 = quasi { 6 * 10 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say bohr()
p6eval rakudo 6859fb: OUTPUT«720␤»
masak jnthn: you're right.
jnthn o.O 15:33
wtf, it was a complete guess
masak jnthn: it *does* have to do with $q1 containing just a literal.
note also that the above answer is wrong.
it should be 666, not 720.
something weird is going on here with precedence.
colomon hmmm... $q2 + $q2 + $q3 is 720
masak r: macro bohr() { my $q1 = quasi { 1 + 5 }; my $q2 = quasi { 10 + 50 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say bohr() 15:34
p6eval rakudo 6859fb: OUTPUT«720␤»
jnthn I'm doubtful it's a precedence bug. I do have to wonder if it's not something busted in the code that walks through the AST to find quasis and splicing things in.
masak ok, not a precedence bug.
I like colomon's theory better.
maybe $q1 gets lost somewhere and $q2 gets used instead.
r: macro bohr() { my $q1 = quasi { 6 * 10 }; my $q2 = quasi { 1 + 5 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say bohr() 15:35
p6eval rakudo 6859fb: OUTPUT«612␤»
masak yeah, colomon++ is right.
jnthn masak: Yes, my guess was that the "getting lost" is happening in the spliciing.
masak quite possibly.
masak submits rakudobug 15:37
colomon thought: maybe the reason it wouldn't work when it was quasi { 6 } is there wasn't enough room to splice in 6 * 10. 15:38
r: macro bohr() { my $q1 = quasi { 6 * 10 }; my $q2 = quasi { 1 + 5 * 2 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say bohr()
p6eval rakudo 6859fb: OUTPUT«Cannot call 'Numeric'; none of these signatures match:␤:(Mu:U \v: Mu *%_)␤␤ in method Numeric at src/gen/CORE.setting:795␤ in sub infix:<+> at src/gen/CORE.setting:2602␤ in at /tmp/dU2oFIuXp5:1␤ in block at /tmp/dU2oFIuXp5:1␤␤»
colomon r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 1 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say bohr() 15:39
p6eval rakudo 6859fb: OUTPUT«602␤»
colomon r: macro bohr() { my $q1 = quasi { 6 + 1 }; my $q2 = quasi { 1 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say bohr()
p6eval rakudo 6859fb: OUTPUT«608␤»
colomon didn't expect that. 15:40
masak it gets the sum right.
that last one, I mean.
what the heck is going on here...?
diakopter r: macro bohr() { my $q2 = quasi { 1 + 5 }; my $q1 = quasi { 10 + 50 }; quasi { {{{$q1}}} + {{{$q2}}} + 600 } }; say bohr() 15:41
p6eval rakudo 6859fb: OUTPUT«612␤»
diakopter the second splats the first
masak not in the "608" case above. 15:42
colomon hold on, better test
masak so, yes, but only sometimes.
diakopter when both are additions
colomon r: macro bohr() { my $q1 = quasi { 6 + 1 }; my $q2 = quasi { 9 }; my $q3 = quasi { 100 + 200 + 300 }; quasi { {{{$q1}}} + {{{$q2}}} + {{{$q3}}} } }; say bohr()
p6eval rakudo 6859fb: OUTPUT«616␤»
diakopter oH! 15:43
when both have 2 terms
multiplication works too
first splats the second when theyy're the same shape? 15:44
15:44 rindolf left
colomon but if the second is bigger, it super splats it, making something outright illegal. 15:44
masak doesn't cover it. the first case had $q1 = quasi { 6 } and $q2 = quasi { 6 * 10 }
15:44 rindolf joined
masak oh! 15:45
yes, diakopter + colomon might cover it.
masak re-reads backlog to make sure
diakopter sorry; I meant second splats the first
15:45 mucker left
diakopter typosed 15:45
masak r: macro bohr() { my $q1 = quasi { 6 }; my $q2 = quasi { 6 * 10 }; quasi { {{{$q1}}} + {{{$q2}}} } }; say bohr() 15:46
p6eval rakudo 6859fb: OUTPUT«Cannot call 'infix:<+>'; none of these signatures match:␤:($x = { ... })␤:(int $a, int $b)␤:(num $a, num $b)␤:(Int:D \a, Int:D \b)␤:(Num:D \a, Num:D \b)␤:(Rational \a, Rational \b)␤:(Rational \a, Int \b)␤:(Int \a, Rational \b)␤:(Complex:D \a, Complex:D \b)␤:(Instan…
masak diakopter: oh; that's how I read you anyway :)
r: macro bohr() { my $q1 = quasi { 5 + 1 }; my $q2 = quasi { 6 * 10 }; quasi { {{{$q1}}} + {{{$q2}}} } }; say bohr()
p6eval rakudo 6859fb: OUTPUT«120␤»
diakopter I mean, it'd be cuter if the first got the second
masak yes, diakopter + colomon seem to have it. 15:47
diakopter maybe
colomon I don't understand it, I'm just trying to pin down the behavior. :)
jnthn phenny: ask TimToady what stops the sequential alternation in nibbler from being a normal alternation?
phenny jnthn: I'll pass that on when TimToady is around.
diakopter jnthn: what does it become if not a normal alternation? 15:48
masak colomon: same here.
diakopter a method?
jnthn diakopter: It means that the NFA can't be used to pick the branch to take.
diakopter r: macro bohr() { my $q2 = quasi { 1 + 5 }; my $q1 = quasi { 10 - 50 }; quasi { {{{$q1}}} + {{{$q2}}} } }; say bohr() 15:50
p6eval rakudo 6859fb: OUTPUT«12␤»
colomon diakopter++ 15:51
diakopter wait, it's the second *in the addition*, not the second to be declared
15:51 birdwind1pbird left
jnthn phenny: ask TimToady Why "push @nibbles, $<starter>;" but $<escape>[*-1], $<nibbler>[*-1], etc? Bug? 15:51
phenny jnthn: I'll pass that on when TimToady is around.
diakopter r: macro bohr { my $q2 = quasi { 1 + 5 }; my $q1 = quasi { 10 - 50 }; quasi { try eval('DROOL') + {{{$q2}}} } }; say bohr 15:56
p6eval rakudo 6859fb: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling block bohr: Error while compiling block : Error while compiling block : Error while compiling op call: Unknown QAST node type QAST::Unquote␤at /tmp/MXwoFA4Rny:1␤»
diakopter masak: that's something ^^
what's a QAST::Unquote 15:57
that's what she said
masak diakopter: nice. 15:59
yes, the fact that QAST::Unquote shows up so late in compilation is always a bug.
something is afoot here.
jnthn: I'm starting to think that the problem is in the find-unquotes recursion.
diakopter ahand too
jnthn masak: Sounds feasible given what we're observing. 16:04
masak that code is in nqp. it's very approachable.
maybe it does something wrong with operators?
diakopter r: macro bohr { quasi { try eval('DROOL') } }; bohr
p6eval rakudo 6859fb: OUTPUT«===SORRY!===␤Method 'evaluate_unquotes' not found for invocant of class 'String'␤at /tmp/kD5frDqxtm:1␤»
diakopter o+O
jnthn masak: Didn't you write that code? :)
masak jnthn: yes, of course I did. :) 16:05
diakopter what's evaluate_unqoutes
jnthn masak: I'm glad you find it approachable :P
masak should be this one: github.com/perl6/nqp/blob/master/s...Op.nqp#L21
jnthn masak: QAST::Op should be quite simple..
masak looks right to me. 16:06
diakopter masak: another weird bug ^^
jnthn masak: boom, headshot
masak: my $result := pir::repr_clone__PP(self);
masak diakopter: yes. further confirmation that we've identified the area where things are going wrong.
jnthn masak: That clones the *node*
masak: But not the children array within it
There's a method in QAST::Node called shallow_clone, iirc
masak jnthn: oh!
jnthn That clones the object *and* the child array.
diakopter r: macro marco { quasi { quasi { 5 } } }; say marco
p6eval rakudo 6859fb: OUTPUT«AST.new()␤» 16:07
jnthn diakopter: That one actually looks right :P
masak jnthn: would this explain the RT ticket I just filed, about $q1 and $q2 ?
jnthn masak: possibly
masak diakopter: that one is right.
diakopter cool
jnthn masak: It'd certainly cause...issues.
masak diakopter: quasi blocks produce AST objects.
jnthn: I'll see about pushing a fix.
16:08 cognominal left
dalek kudo/Q: 50c8923 | jnthn++ | src/Perl6/Grammar.pm:
First crack at babble.

Fairly alike the STD version, except we cache the derived languages.
16:09
kudo/Q: 5050218 | jnthn++ | src/Perl6/Grammar.pm:
Initial port of nibbler, nibble and quibble.

Fairly close to STD, but nibbler should be faster this way. Skipped the runaway multi-line string detection for now; can add it later.
16:12 colomon_ joined
jnthn break; afk for a bit 16:12
16:12 colomon left, colomon_ is now known as colomon
moritz jnthn: please also document those rules, I find the names confusing :-) 16:13
16:14 cognominal joined
diakopter r: macro marco { try 0 }; marco 16:15
p6eval rakudo 6859fb: OUTPUT«(timeout)»
diakopter masak: ^^
masak submits rakudobug 16:16
r: BEGIN { try 0 }; say "alive" 16:17
p6eval rakudo 6859fb: OUTPUT«(timeout)»
masak seems it has nothing to do with macros, just 'try' at BEGIN time.
diakopter oh
masak r: BEGIN { try { say 0 } }; say "alive" 16:18
p6eval rakudo 6859fb: OUTPUT«(timeout)0␤»
diakopter r: macro marco { die 1 }; say marco
moritz r: BEGIN try 0;
p6eval rakudo 6859fb: OUTPUT«===SORRY!===␤Method 'SET_FILE_LINE' not found for invocant of class 'X::AdHoc'␤» 16:19
rakudo 6859fb: OUTPUT«(timeout)»
diakopter masak: SET_FILE_LINE error
moritz I can try to investigate that
masak at a guess, the bug in podolsky() is also related to the RT ticket found today.
diakopter: that looks genuine. 16:20
masak submits rakudobug
diakopter: do you have like a big table of features to try and combine?
because sometimes I've toyed with the idea of making such a table. 16:21
diakopter no just a brain full of jumbled mess
masak :P
16:22 kaare_ joined
diakopter masak: what do parameters to macros do 16:25
r: macro marco { polo }; macro polo { marco }; say marco 16:28
p6eval rakudo 6859fb: OUTPUT«===SORRY!===␤Could not find sub &polo␤at /tmp/jEHRf9GTEQ:1␤»
diakopter r: macro marco { polo }; macro polo { marco }; say polo
p6eval rakudo 6859fb: OUTPUT«===SORRY!===␤Could not find sub &polo␤at /tmp/M02sEn7GNH:1␤»
diakopter funny they both can't find polo
r: macro marco { polo }; macro polo { quasi { 55 } }; say marco 16:29
p6eval rakudo 6859fb: OUTPUT«55␤»
16:29 jaldhar left
masak diakopter: arguably the should find polo, since it's been defined before marco is called. 16:29
they* 16:30
16:30 rindolf left
diakopter but the 3rd marco finds polo before it's defined 16:30
masak diakopter: but recursion inside macros needs to bottom out, just like all other recursion :)
oh, so it does. weird.
I can't really explain that. 16:31
diakopter: parameters on macros are AST-ifications of the arguments you pass to macros. you can unquote them in quasi blocks.
r: macro twice($stuff) { quasi { {{{$stuff}}
p6eval rakudo 6859fb: OUTPUT«===SORRY!===␤Unable to parse expression in block; couldn't find final '}' at line 2, near ""␤»
masak ugh.
r: macro twice($stuff) { quasi { {{{$stuff}}}; {{{$stuff}}} } }; twice say "OH HAI" 16:32
p6eval rakudo 6859fb: OUTPUT«OH HAI␤OH HAI␤»
masak submits the marco-polo thing
r: macro marco { say "m"; polo }; macro polo { say "p"; marco }; marco 16:33
p6eval rakudo 6859fb: OUTPUT«m␤===SORRY!===␤Could not find sub &polo␤at /tmp/zXOBjjGx1r:1␤»
masak r: macro marco { say "m"; polo }; macro polo { say "p"; marco }; polo
p6eval rakudo 6859fb: OUTPUT«m␤===SORRY!===␤Could not find sub &polo␤at /tmp/hQL1B2hOCX:1␤»
masak that last one does not make sense.
it should not say "m" 16:34
oh!
no, I'm wrong.
"marco" inside "polo" is a macro invocation and gets run at parse time, when parsing "polo". 16:35
so what you should be getting, diakopter, is an infinite loop at parse time.
moritz why?
at parse time, polo is not known 16:36
masak right.
moritz so it can't be called
masak right.
it might be that forward-calls to macros just don't make sense.
because "polo" in "marco" should've been a macro invocation, too, had the parser known that it'd be declared as a macro. 16:37
moritz well, it would compile it to a run-time call, because it's not yet known as a macro
masak right.
moritz and then when the parser finds that's a macro, not an ordinary routine, it has to shake its head in confusion
masak right now, it just moves on with life. 16:38
r: foo; sub foo { say "OH HAI" }
p6eval rakudo 6859fb: OUTPUT«OH HAI␤»
masak r: foo; macro foo { say "OH HAI" }
p6eval rakudo 6859fb: OUTPUT«OH HAI␤»
masak o.O
16:38 benabik left
masak I wonder why that one works. 16:38
r: BEGIN { say "A" }; foo; BEGIN { say "B" }; macro foo { say "OH HAI" } 16:39
p6eval rakudo 6859fb: OUTPUT«A␤B␤OH HAI␤»
16:39 benabik joined
masak ahahah. 16:39
it gets called as a sub.
jnthn BEGIN time dynamic compilation has snapshot semantics on the outer lexpad.
masak yeah.
jnthn Because lexpads are immutable, it just constructs an outer view based on what is decalred so far.
And that view is a snapshot, and not updated.
masak jnthn: well, foo is called as a sub above. 16:40
hence the ordering between "B" and "OH HAI".
jnthn Yes, that's unsurprising.
I'm just pointing out why you might be seeing other interesting things, generally.
masak so, the rule is, Rakudo tries to call all forward-declared macros as subs. sometimes, it succeeds.
jnthn Well, if we take the one that failed:
masak oh, and it doesn't succeed in the "polo" case, because &polo simply isn't visible from within &marco. 16:41
jnthn macro marco { say "m"; polo }; macro polo { say "p"; marco }; marco
Disecting this, we se marco, it calls it at compile time, says "m", but there was no polo in the lexpad at the time marco got its snapshot (which happend while parsing polo but before polo was installed). 16:42
masak ah.
so routines get installed at the '}'?
jnthn Yeah
masak that makes sense, because lexpads, I guess. 16:43
jnthn We could potentially change that.
But I'm not keen at all.
masak well, it's only an issue with macros.
jnthn Because it's...dangerous...without other changes.
masak *nod*
no urgent need.
jnthn btw, I realized that at the least the non-cloning bug could be why you had that bug when you tried to matryosha quasis in a loop. 16:44
*matryoshka
masak <masak> at a guess, the bug in podolsky() is also related to the RT ticket found today.
jnthn: yeah, I realized that in the above line, too :) 16:45
jnthn oh, I didn't fully backlog the bit when I was away :)
masak it's nice when bugs unify ;)
jnthn Talking of away, I guess I should go buy something to cook/eat for dinner...
masak I'll try to fix the cloning bug le meantime. 16:46
s/le/in le/
moritz should do his bugfix in nom, not in a non-working, experimental branch :-) 16:48
masak git stash FTW. 16:49
16:52 colomon left 16:57 colomon joined, MikeFair left, MikeFair joined 17:07 benabik left 17:09 benabik joined 17:22 fgomez left, fgomez joined
masak jnthn: I'm going to commit anyway, because I'm reasonably convinced this is fine. but I found the same need for self.shallow_clone(), not just in 'Op.pm', also in <Block Stmt Stmts Want> >>~>> '.pm'. 17:25
masak builds and tests
jnthn yes, anything with kids will need it 17:29
masak .oO( these nodes shouldn't be getting on a plane at all... ) 17:30
flussence Public Service Announcement: hacking on a crashy web app is much nicer with daemontools instead of doing ^C/↑/␤ in a terminal window after every change. 17:31
17:32 GlitchMr left
TimToady .u ↑ 17:32
phenny U+2191 UPWARDS ARROW (↑)
TimToady: 15:47Z <jnthn> ask TimToady what stops the sequential alternation in nibbler from being a normal alternation?
TimToady: 15:51Z <jnthn> ask TimToady Why "push @nibbles, $<starter>;" but $<escape>[*-1], $<nibbler>[*-1], etc? Bug?
17:32 GlitchMr joined
moritz p6eval runs inside a while true; do perl evalbot.pl $configfile; sleep 20; done; loop 17:32
:-) 17:33
dalek p: bc73493 | masak++ | src/QAST/ (5 files):
[src/QAST/*.nqp] shallow-clone nodes with kids

A node without children can make do with the pir::repr_clone__PP call that was already there. But those that use the array of children need that cloned too, so we do self.shallow_clone();
This ought to fix a number of weird quasi-related behaviors we've seen in Rakudo.
masak jnthn: is it kosher to bump NQP_REVISION? defaulting to "yes".
flussence masak: I've done that before, but I felt like being fancy for a change :) 17:34
whoops
s/m.*/$the-other-m/
dalek kudo/nom: 9d50d6b | masak++ | tools/build/NQP_REVISION:
[NQP_REVISION] bump for better unquotes handling
17:35
jnthn masak: yes, that's pretty much always safe
17:36 birdwindupbird left
masak the only thing I could think of that would make it less than desirable was the upcoming star release. 17:36
TimToady re starter/stopper not using [*-1], yes, that's probably a buglet, but masked by the downstream ignoring them, since the internal starter/stoppers just end up part of the string
jnthn: and re || vs |, I just wanted to make sure the quote nester overrode any random escapes you happen to have included by accident, since the quote chars are probably in the user's head, and the escapes probably aren't 17:38
qq{ { } } chooses to treat the internals as starter/stopper rather than closure interpolation, for instance 17:39
though that may be a retro-rationale; doing LTM between starters and escapes was not working out for some reason that I don't recollect 17:41
17:41 telex left
TimToady it might be that it blew up my lexer-writer at the time somehow 17:42
17:42 telex joined
masak podolsky() passes locally \o/ 17:42
diakopter r: macro marco { AST.new }; marco 17:43
p6eval rakudo 6859fb: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling block : Unknown QAST node type Any␤»
diakopter :>
masak bohr() still fails :/
TimToady otoh I think privileging the starter/stopper is consistent with checking for the stopper as the loop condition
masak diakopter: fair point. 17:44
masak submits rakudobug
17:45 benabik left
diakopter r: macro polo { quasi { 5 } }; &polo = macro { quasi { 3 } }; say polo 17:46
TimToady so, for instance, qq$ $foo $ is going to take the variable's $ as the quote terminator despite $foo being (potentially) a longer token
p6eval rakudo 6859fb: OUTPUT«===SORRY!===␤Error while compiling block : Error while compiling op call: Error while compiling block : Error while compiling op p6store: Unknown QAST node type NQPMu␤»
TimToady so it's kinda consistent to treat internal {} as starter/stopper even if it could be an escape too
diakopter masak: I dunno. trying to clobber polo.
17:47 fgomez left
jnthn TimToady: OK, makes sense. 17:47
TimToady kinda :)
jnthn One option if we want it to be LTMable is to whack a <!starter> before the <escape> 17:48
TimToady I know when I first started out I had grand schemes of including terminators in with other categories, but it tended not to work out well
diakopter r: macro polo { quasi { 5 } }; class polo { quasi { 3 } }; say polo
p6eval rakudo 6859fb: OUTPUT«polo()␤»
jnthn dinner, bbiab
diakopter masak: I can't redeclare &polo, but I can make a class of that name 17:49
17:49 hash_table left
jnthn diakopter: Your class is called polo, not &polo :) 17:49
TimToady well, if we can make | work faster than ||, it's worth looking at
diakopter I know
I was referring to an unseen p6eval query
r: macro polo { quasi { 5 } }; my &polo = { quasi { 3 } }; say polo 17:50
p6eval rakudo 6859fb: OUTPUT«===SORRY!===␤Redeclaration of symbol &polo␤at /tmp/Oul3A0pquq:1␤»
diakopter jnthn: (that)
jnthn: (but I can make a class with name polo) 17:51
TimToady but my guess is that | vs || will be in the noise, unless can find a fast way to maybe scan .*? in front of it, but then you probably need both <!starter> and <!stopper> in front of <escape> 17:52
furthermore, and difference between | and || code might disappear as we optimized Perl 6 further, since the | form would just be moving the .*? loop to lower-level code which, while faster now, might not be faster later 17:53
17:54 fgomez joined
GlitchMr I've Perl 6 changes... now only if my Internet would be quicker... I've typed git push and nothing. 17:54
TimToady struggles feebly to get out of the conjectural-analytical weeds 17:55
diakopter hands TimToady a presupposition
TimToady looks at it, and wishes it were a postsupposition instead... 17:56
or perhaps a midsupposition...
moritz you suppostitions lot!
GlitchMr | is so natural. It allows some abuse of it like codegolf.stackexchange.com/a/8776/3103, but it also could make really nice code. 17:57
moritz *suppostitious # way to kill a pun with a typo
GlitchMr I mean, x is 0 or 2, not x is 0 or x is 2.
I still have to find use for ^, but whatever. 17:58
dalek pan style="color: #395be5">perl6-examples: 1f2506c | (Gerhard R)++ | euler/prob053-gerdr.pl:
[euler/prob053] add version using feed operators
17:59
TimToady moritz: you could blame it on pyslexia instead
or would that be qyslexia in this case... 18:01
diakopter r: sub foo { my $x = 5; macro bar { quasi { macro bar { quasi { $x } } } } }; say foo
p6eval rakudo 6859fb: OUTPUT«5␤»
diakopter oh.
r: sub foo { my $x = 5; 7; macro bar { quasi { macro bar { quasi { $x } } } } }; say foo
p6eval rakudo 6859fb: OUTPUT«7␤»
masak diakopter: as jnthn points out, with the macro-and-sub there is an actual name clash, since both are named &polo. with macro-and-class, there isn't. 18:03
18:03 rindolf joined
diakopter ok 18:04
r: sub foo { my $x = 5; 7; regex foo { quasi { $x } }; say 'alive'; foo }; say foo 18:06
p6eval rakudo 6859fb: OUTPUT«(timeout)Useless declaration of a has-scoped method in mainline␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤alive␤ali…
diakopter oh hm
nm
TimToady std: sub foo { my $x = 5; 7; regex foo { quasi { $x } }; say 'alive'; foo }; say foo 18:07
GlitchMr Finite recursion depth would be weird for interpreted language.
p6eval std 64edd1c: OUTPUT«Potential difficulties:␤ 'regex' declaration outside of grammar at /tmp/mEEtd2ssnm line 1:␤------> sub foo { my $x = 5; 7; regex foo ⏏{ quasi { $x } }; say 'alive'; foo }; sa␤ok 00:00 45m␤»
GlitchMr Especially one that encourages functional programming. 18:08
diakopter r: sub foo { my $x = 5; 7; &foo() }; say foo
p6eval rakudo 6859fb: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 89091 (src/gen/CORE.setting.pir:42742) (src/gen/CORE.setting:9094)␤called from Sub 'foo' pc 111 ((file unknown):80) (/tmp/Mh3jcAAI_K:1)␤called from Sub 'foo' pc 155 ((file unknown):103) (/tmp/Mh3…
diakopter r: sub foo { my $x = 5; 7; class foo { }; &foo() }; say foo
p6eval rakudo 6859fb: OUTPUT«foo()␤»
diakopter somehow the addition of class foo makes &foo() not recurse 18:09
GlitchMr Uhm, how did previous example and that didn't?
worked*
diakopter GlitchMr: I dunno; I'm curious too
masak GlitchMr: no, finite recursion depth is very common, and pretty much a necessity if you have stackframes.
(and no guarantees of tail-call optimization) 18:10
GlitchMr Perl 5 haves infinite recursion depth (except for operator overloading which doesn't for some reason)
diakopter interpreted can still have the exact same call stack structure as compiled
GlitchMr has*
diakopter eval: sub foo{foo};foo 18:12
buubot_backup diakopter: foo
TimToady Perl 5 is (largely) stackless
GlitchMr Also, ZX Spectrum BASIC only has memory as recursion limit
Why Perl 6 would have it?
TimToady so the call stack is really in the heap
but Perl 5 doesn't to tail-recursion optimization, last I knew 18:13
*do
GlitchMr Well, technically there is goto &sub, but it
's manual optimization
diakopter eval: sub foo {foo};foo
buubot_backup diakopter: foo
diakopter eval: sub foo {foo};foo()
buubot_backup diakopter: foo
diakopter eval: sub foo {foo};&foo->() 18:14
buubot_backup diakopter: foo
GlitchMr diakopter: foo sub it unknown until Perl sees ending brace of sub
eval: sub foo; sub foo { foo }; foo
buubot_backup GlitchMr: Out of memory!
GlitchMr eval: sub foo { foo() }; foo
diakopter oh yeah.
buubot_backup GlitchMr: Out of memory!
18:14 cognominal left
GlitchMr is unknown* 18:14
masak GlitchMr: so. Perl 5 doesn't have infinite recursion depth. 18:15
diakopter TimToady: does p5 malloc frames one by one? or by large blocks?
GlitchMr masak: obviously no language has infinite recursion depth 18:16
jnthn r: sub foo { my $x = 5; 7; &foo() }; say foo
p6eval rakudo 9d50d6: OUTPUT«maximum recursion depth exceeded␤current instr.: 'print_exception' pc 89091 (src/gen/CORE.setting.pir:42742) (src/gen/CORE.setting:9094)␤called from Sub 'foo' pc 111 ((file unknown):80) (/tmp/BRQJDGPtcr:1)␤called from Sub 'foo' pc 155 ((file unknown):103) (/tmp/BRQ…
jnthn r: sub foo { my $x = 5; 7; class foo { }; &foo() }; say foo
p6eval rakudo 9d50d6: OUTPUT«foo()␤»
masak GlitchMr: you said above that Perl 5 does.
GlitchMr And no machine is Turing-complete
jnthn Here', the foo you're talking about is the class foo :)
mst my perl5 code has intentionally restricted recurion depth
jnthn Thus the foo() :)
masak <GlitchMr> Perl 5 haves infinite recursion depth (except for operator overloading which doesn't for some reason)
mst since I have fatal warnins on, so the 'deep recursion' warning goes off and kills it 18:17
diakopter jnthn: right, but how could &foo refer to the class
mst I consider this to be a feature
jnthn diakopter: You never fallced the sub
*called
diakopter ohh
masak mst: I think I would, too.
GlitchMr Also, &foo->() looks like %a->{b} for me. 18:18
Not sure... really
deparse: &foo->()
buubot_backup GlitchMr: &foo->();
GlitchMr eval: use warnings; &foo->() 18:19
buubot_backup GlitchMr: ERROR: Undefined subroutine &main::foo called at (eval 20) line 1.
GlitchMr How does that work?
mst how does what work?
GlitchMr &foo->()
Let me guess, it's actually 18:20
&foo(@_)->()
mst eval: sub foo { return sub { 42 } }; &foo->();
buubot_backup mst: 42
TimToady diakopter: p5 uses a (reallocatable) compact array of PERL_CONTEXT structs for a call stack
mst GlitchMr: ^^ same way as everything else
diakopter TimToady: ah
GlitchMr It looked for me like deprecated %a->{b} for some reason
flussence I'm not sure /\%a->(.*)/ would make sense at all 18:22
diakopter r: my $a; class foo { my class foo { }; $a = foo }; say foo eqv $a 18:25
p6eval rakudo 9d50d6: OUTPUT«True␤»
diakopter r: my $a; class foo { my class foo { }; $a = foo }; say foo === $a
p6eval rakudo 9d50d6: OUTPUT«True␤»
diakopter :S
r: my $a; class foo { my class foo { }; $a = foo }; say foo ~~ $a
p6eval rakudo 9d50d6: OUTPUT«False␤»
dalek d: edd7715 | larry++ | STD.pm6:
$<starter> and $<stopper> under * are arrays
18:26
masak r: class foo {}; say foo.WHICH
p6eval rakudo 9d50d6: OUTPUT«foo␤»
masak r: class foo {}; say foo.WHERE
p6eval rakudo 9d50d6: OUTPUT«-1124002555␤»
mst GlitchMr: the other funny one is when people write $obj->method_name->();
GlitchMr: and then get exceedingly confused
76
masak r: class foo { my class foo {}; say foo.WHERE }; say foo.WHERE 18:27
p6eval rakudo 9d50d6: OUTPUT«-1892705808␤1340315348␤»
jnthn Uh. Returning the class name for .WHICH is a rather bad idea :)
I think that's already RT'd though.
masak jnthn: that surprised me a bit, yes.
jnthn masak: me too
masak jnthn: which is why === gives True above, I guess.
and diakopter is right to ':S' about it. 18:28
TimToady yes, classes are not a value type, so should return object identity
diakopter r: my $a; class foo { my class foo { }; $a = foo }; say foo.WHERE, $a.WHERE
p6eval rakudo 9d50d6: OUTPUT«-356640531-363419417␤»
jnthn masak: Yes, it's clearly wrong. 18:29
A patch would be better than a :S :)
diakopter jnthn: well, I thought it was wrong for the wrong reason
TimToady jnthn thinks 2 wrongs make a write :)
jnthn :P 18:30
TimToady: We have in STD quote_mod:sym<a>, but it doesn't parse array, the long form, which tweak also accepts. Deliberate? 18:31
rindolf How do I run the specttest in parallel? 18:32
flussence rindolf: "make TEST_JOBS=<n> spectest"
rindolf flussence: thanks. 18:33
18:37 benabik joined
moritz ... as documented in rakudo's README 18:37
erm should be at least :/
hm, it's in INSTALL.txt 18:38
18:40 cognominal joined
pmurias jnthn: how can I determine in nqp if something is a type object? 18:42
TimToady jnthn: there are two ways for quote_mods to get parsed. we only allow the short form for :qa and such, but both the short and long forms can be parsed as quotepairs in babble
but the latter require the colon
at that point, it's the fact that there are two different names in the tweak that allow both :a and :array 18:43
jnthn pmurias: !nqp::concrete($thing)
pmurias: sorry, nqp::isconcrete 18:44
TimToady: I figured the quotepair form would allow both, just wanted to check about the quote_mods.
TimToady yes, the long forms aren't actually parsed with <quote_mod> 18:47
jnthn OK
pmurias jnthn: and check for something being a SixModelObject? 18:49
TimToady eventually we probably oughta unify the processing of all identifiers so that a user's 'sub qa' isn't overridden by the language's qa accidentally 18:50
the quote operators are a bit too keywordy for my tastes right now
that would get them out of the LTM table too
jnthn arrgh...I start copying a bit of STD and you ponder changing it :P 18:51
TimToady well, just the parsing of the symbol. everything else would work the same 18:52
jnthn :)
moritz that's the eternal Perl 6 curse -- you implement something, and thus trigger its change
TimToady the problem is that whenever you draw my attention to something, I look at it :D
18:53 benabik left
TimToady but I'm still in pondering mode on that; qa and friends probably need to be treated as a lexical macro provided by the setting, and then the identifier participates in normal identifier lookup, rather than being a special rule 18:55
thankfully I don't know how to do that yet :)
jnthn pmurias: I guess pir::typeof__SP($obj) gives back SixModelObject. There's not a convenient way 'cus generally it's a smell.
TimToady: Sounds like a cure worse than the disease 18:56
moritz nqp: say(pir::typeof__SP(class A { }));
p6eval nqp: OUTPUT«NQPMu␤»
moritz jnthn: nope
jnthn Oh. Because...we made that cheat. :/ 18:57
Grr.
I dunno how you do it then.
moritz note to self: when implement a feature, either prepare a shiny distraction for TimToady, or switch off dalek :-)
pmurias using it as one and CATCH is one way
jnthn pmurias: Yes, I meant a better way than that. ;) 18:58
TimToady macro qa { 'q:a' } might be perfectly adequate in this case, actually
jnthn hopes masak++ looks forward to figuring out the circularity sawing needed to make macros work in the setting... 18:59
masak :)
rindolf OK, running make TEST_JOBS=4 took real 7m12.423s ; user 23m0.866s ; sys 1m39.183s - does not seem too good. 19:00
What is the wallclock time?
masak oh, so all of a sudden I'm the macros guy, huh? :P
TimToady not so sudden as all that :P
jnthn rindolf: What doesn't seem too good?
rindolf jnthn: the time it takes it to run.
jnthn: it's a fast machine. 19:01
masak no, seriously. circularity sawing is fine. macros already straddle the compiler and the core.
rindolf A Core i3 one.
TimToady even our galaxy has a core...
jnthn rindolf: Then help make things faster.
rindolf: That's the only way things get better.
TimToady has memories of core memories... 19:02
rindolf jnthn: OK.
jnthn: didn't you say that spectest ran at 2 minutes for you?
jnthn rindolf: I run it with --jobs=6 here and get through it in < 4 mins, fwiw.
rindolf Or was it three minutes?
jnthn: what are you machine's specs?
s/you/your/
jnthn It was three. Then we started passing more tests ;)
rindolf: It's an i7, quad core 19:03
rindolf jnthn: ah, hah.
BTW, how can I get an account on feather?
jnthn I think moritz++ can give those these days... 19:04
dalek pan style="color: #395be5">perl6-examples: 294bc61 | (Gerhard R)++ | euler/prob003-gerdr (2 files):
[euler/prob003] simplify algorithm

composite numbers won't divide the reduced $n as their factors have already been seen and divided out
moritz feather.perl6.nl/ should have a link to instructions 19:05
rindolf moritz: it does not. 19:06
moritz rindolf: try the "original announcement" link
rindolf moritz: www.mail-archive.com/perl6-language...20060.html - should I contact Juerd? 19:08
moritz: that announcement is very old.
moritz: anyway, you can send me a temp password to [email@hidden.address] 19:09
19:09 SamuraiJack joined
moritz rindolf: yes, email Juerd and put me CC 19:09
(include all the required information, as stated in the announcement)
rindolf moritz: should I email #####@juerd.nl ? 19:11
moritz: with the pound signs?
dalek kudo/Q: 606a81a | jnthn++ | src/Perl6/Grammar.pm:
Assorted fixes to babble.
19:19
kudo/Q: fecccba | jnthn++ | src/Perl6/Grammar.pm:
Add quote_mod proto and candidates.
kudo/Q: f3651e8 | jnthn++ | src/Perl6/Actions.pm:
Action method for quibble.
kudo/Q: 069784b | jnthn++ | src/Perl6/Grammar.pm:
Add some missing protos.
19:20 SamuraiJack_ joined 19:21 havenn left 19:24 SamuraiJack left 19:25 fgomez left, domidumont left
rindolf moritz: ping. 19:25
19:27 fgomez joined 19:29 Pleiades` left 19:35 cognominal left, Pleiades` joined
tadzik phenny: pass me a cookie 19:39
phenny tadzik: 12:46Z <moritz> ask tadzik what he thinks of the panda/custom-lib branch, and if it's mergable before the star release
tadzik ohyes
I'll look at it tomorrow, promise
ETOOTIRED today
so, what's cooking today, #perl6? :) 19:41
19:43 cognominal joined 19:44 SamuraiJack_ left, SamuraiJack_ joined
dalek kudo/Q: 1c4a880 | jnthn++ | src/Perl6/Actions.pm:
Action method for new quote nibbler.

Seems to essentially work.
19:44
kudo/Q: 768a57b | jnthn++ | src/Perl6/Grammar.pm:
Corrections to nibbler grammar rule.
jnthn tadzik: moritz++ has been cooking the setting. I'm cooking quotes. masak++ is cooking macros :)
TimToady++ is cooking my brain :P 19:45
tadzik so, nibbler. Can has fancy Formatting Codes quoting now, I guess
jnthn tadzik: That, and heredocs, are the goal.
tadzik ossum 19:46
mst heredocs ftw
I especially like <<''; for confusing people
gfldex that's what perl is for after all 19:47
like god placed bones in the ground to confuse the paleontologists so we place perl scripts on our harddisk to confuse generations to come 19:48
masak std: my $a = q:to'';␤oh hai␤␤␤ 19:49
p6eval std edd7715: OUTPUT«ok 00:00 42m␤»
masak mst: possibility of confusion retained in Perl 6 ;) 19:50
std: my $a = q:to'EOT';␤oh hai␤␤
p6eval std edd7715: OUTPUT«===SORRY!===␤Unrecognized quote modifier: to'EOT at /tmp/j8tcr5qqJZ line 1:␤------> my $a = q⏏:to'EOT';␤(Possible runaway string from line 1)␤Couldn't find terminator ' at /tmp/j8tcr5qqJZ line 3 (EOF):␤------> <BOL>⏏[31…
masak std: my $a = q:to<EOT>;␤oh hai␤␤ 19:51
p6eval std edd7715: OUTPUT«===SORRY!===␤(Possible runaway string from line 2)␤Couldn't find delimiter for heredoc␤ at /tmp/Ux0ppiTNga line 3 (EOF):␤------> <BOL>⏏<EOL>␤Parse failed␤FAILED 00:00 42m␤»
jnthn r: say '\a' 19:52
p6eval rakudo 9d50d6: OUTPUT«\a␤» 19:53
masak std: say "\a"
p6eval std edd7715: OUTPUT«ok 00:00 42m␤»
masak r: say "\a"
p6eval rakudo 9d50d6: OUTPUT«===SORRY!===␤Unrecognized backslash sequence: '\a' at line 2, near "\""␤»
masak what does STD think \a is in qq strings? 19:54
TimToady n: say ord "\a" 19:55
p6eval niecza v22-14-g136ddcf: OUTPUT«7␤»
masak submits rakudobug 19:56
19:56 cognominal left, colomon left
TimToady p: say ord "\a" 19:56
p6eval pugs: OUTPUT«7␤»
masak eval: ord "\a" 19:57
buubot_backup masak: 7
masak :)
19:58 cognominal joined
tadzik flussence! flussence! 19:59
flussence hai 20:00
tadzik flussence, flussence
your tests not worky
flussence :(
they did last time I tried...
tadzik t/05-post-content.t ...... ===SORRY!===
Variable $postdata is not declared
20:00 GlitchMr left
flussence oh, I'm dumb :) 20:01
20:02 nlpplz left
flussence ok, try now. I actually did things in the right order this time :) 20:03
tadzik No such method 'decode' for invocant of type 'Any' 20:04
I may have to update my rakudo
that'll take a minute :) 20:05
20:05 jaffa4 left
flussence hm, that *should* be a Buf... 20:06
dalek ast: faee08f | masak++ | S06-macros/unquoting.t:
[S06-macros/unquoting.t] unfudged a TODO test

Now passes in Rakudo.
20:09
20:09 MikeFair left, jaldhar joined
rindolf phenny: tell moritz that's OK - I found juerd's E-mail address in a an old E-mail. 20:11
phenny rindolf: I'll pass that on when moritz is around.
20:14 colomon joined 20:16 benabik joined 20:20 birdwindupbird joined
dalek kudo/Q: ddbb67f | jnthn++ | src/Perl6/ (2 files):
Switch basic Q quotes over to new quote handling.

No spectest regressions, so either things basically work or it's just undertested. :)
20:30
kudo/Q: 048c742 | jnthn++ | src/Perl6/Grammar.pm:
Factor quote language derivation out of babble.

Some things want to just get the language and nibble.
kudo/Q: 972112f | jnthn++ | src/Perl6/Grammar.pm:
Remove accidentally copied multi.
masak r: multi d() { [] }; multi d($d) { [$d] }; multi d($d1, $d2, *@a) { ([10*$d1 + $d2, .list] for d(|@a)), ([$d1, .list] for d($d2, |@a)) }; say .map((* + 96).chr).join if all(@$_) <= 26 for d(1, 2, 3, 4) 20:33
p6eval rakudo 9d50d6: OUTPUT«lcd␤awd␤abcd␤»
masak nicer solution to yesterday's little puzzle.
r: multi d() { [] }; multi d($d) { [$d] }; multi d($d1, $d2, *@a) { (["$d1$d2", .list] for d(|@a)), ([$d1, .list] for d($d2, |@a)) }; say .map((* + 96).chr).join if all(@$_) <= 26 for d(1, 2, 3, 4) 21:00
p6eval rakudo 9d50d6: OUTPUT«lcd␤awd␤abcd␤» 21:01
dalek kudo/Q: 93abcf3 | jnthn++ | src/Perl6/Actions.pm:
Actions for some of the escapes.
kudo/Q: bf526c2 | jnthn++ | src/Perl6/Grammar.pm:
Pass on orig, not target, in nibbler.
kudo/Q: 467a479 | jnthn++ | src/Perl6/ (2 files):
Switch single quoted strings to new quote parser.
21:02 SamuraiJack_ left 21:11 bapa left, bapa joined 21:16 bapa left, havenn joined 21:19 bapa joined, bapa left 21:20 bapa joined 21:22 bapa left 21:24 bapa joined 21:36 benabik left 21:37 kaare_ left
masak 'night, #perl6 21:38
dalek p: 81cdc24 | jnthn++ | src/QRegex/Cursor.nqp:
Add orig method to Cursor.
21:41
p: 84a13cb | jnthn++ | src/how/NQPParametricRoleHOW.pm:
Fix thinko when roles did roles.

Seems this path never got exercised in NQP before.
p: c077b22 | jnthn++ | src/HLL/Grammar.pm:
Make LANG pass on orig, not target, plus args.

This may get rid of some of the oddness we've seen with strings with null bytes showing up. Also means we can pass arguments on to a rule in another language.
21:42 fgomez left, fgomez joined
dalek kudo/Q: 75d531b | jnthn++ | src/Perl6/ (2 files):
Fill out action methods for remaining escapes.
21:49
kudo/Q: b276a81 | jnthn++ | src/Perl6/ (2 files):
Switch double-quoted strings to new quote parser.
21:59 birdwindupbird left 22:01 MayDaniel left 22:02 PacoAir left 22:14 imarcusthis- left 22:16 imarcusthis joined, benabik joined 22:19 tokuhiro_ joined 22:36 rindolf left 22:38 spider-mario left 22:41 rindolf joined, rindolf left
dalek kudo/Q: 289f960 | jnthn++ | src/Perl6/Grammar.pm:
Apply balanced/unbalanced after base tweak.
22:41
kudo/Q: f86d5a6 | jnthn++ | src/Perl6/Grammar.pm:
Fix error reporting.
kudo/Q: 99f6013 | jnthn++ | src/Perl6/ (2 files):
Switch q, qq and Q:PIR to new quote parser.
jnthn Got many of the quoting constructs switched over to STD style approach now. No slowdown (thanks to caching the derived languages), and only one new test fail. And it looks like it's 'cus the test is wrong... 22:43
tadzik not bad 22:44
flussence: I think the test is still rong :(
22:45 tokuhiro_ left 22:46 havenn left 22:48 havenn joined
jnthn 'night, #perl6 22:50
diakopter o/
tadzik good knight jnthn
23:06 hash_table joined
sorear o/ 23:07
23:09 benabik left
diakopter sorear: how goes 23:09
23:09 benabik joined
sorear diakopter: ok 23:16
flussence tadzik: I dunno, it looks right to me... am I missing something obvious? 23:20
or, *which* test's wrong for you? 23:21
23:33 stocks joined
[Coke] tries to bisect his nqp build segfault 23:34
23:35 pmurias left 23:38 stocks left 23:43 pmurias joined 23:52 skids joined 23:55 stocks joined