[00:02] *** alvis` left [00:02] *** yarp left [00:06] *** lichtkind left [00:11] *** larks left [00:14] *** cggoebel left [00:19] Rakudo star released. [00:19] *** cggoebel joined [00:19] Sat Sep 1 00:19:37 UTC 2012 :D [00:19] pmichaud++ [00:20] pmichaud++ [00:27] *** larks joined [00:34] *** cggoebel left [00:40] *** cggoebel joined [00:47] *** wooden left [00:49] I actually had the release done before 00:00; just didn't mention it here until 00:19 [00:49] I was busy testing the .msi [00:50] *** mucker joined [00:50] *** MikeFair joined [00:51] Hello #perl6 [00:51] *** havenn joined [00:51] o/ [00:52] *** PacoAir left [00:53] Hello MikeFair [00:54] So I think I discovered something for my self today [00:55] It's something pretty basic to most of you I'm sure, but I think I discovered that the named matches from Grammar.pm become function calls not only in Actions.pm when a match is made, but also in Grammar.pm to be evaluated [00:56] yes. [00:57] So I was wondering, are the "rule" and "token" lines the same things as functions? I mean could I put any kind of code in there that results in the right return response? [00:57] Yes. [00:58] So is the response an array or a hash of strings? [00:58] n: grammar G { method foo { return self.cursor(3); } ; token TOP { <.foo> abc } }; say G.parse('123abc') [00:58] niecza v21-1-ga8aa70b: OUTPUT«#␤» [00:58] n: grammar G { method foo { return self.cursor(3); } ; token TOP { <.foo> abc } }; say G.parse('1234abc') [00:58] niecza v21-1-ga8aa70b: OUTPUT«Match()␤» [00:59] MikeFair: in Niecza the expected response is a single Cursor/Match object or a (possibly lazy) list thereof [01:00] * MikeFair stares at self.cursor(3) and tries to interpret it. [01:00] Cursors are a little bit lighter but are only useful with non-capturing forms [01:00] self.cursor(3) creates a clone of the current Cursor object and sets its position to 3 [01:01] the API of cursor objects is not defined by the spec, Rakudo and Niecza do things differently [01:01] So what did it match? The third position of the cursor clone? [01:02] *** havenn left [01:02] It didn't "match" anything, it caused to skip to character #3 [01:03] So "self" contains a cursor that was automagically passed to method "foo", what's in $_? [01:04] or @_ more specifically --- [01:05] * MikeFair goes to his own command line. :) [01:09] bbiaw [01:11] has run() changed in rakudo the last few months? I'm trying to get some old code working and every run returns exit code 255... [01:13] oh, it has. Duh. [01:13] *** spider-mario left [01:14] *** MikeFair left [01:14] *** MikeFair joined [01:31] now I'm stuck. MAIN(*@slurpy) doesn't seem to work... [01:32] *** thou left [01:34] flussence, can you gist a golfed version of the problem? [01:35] no need, it'll fit here [01:35] sub MAIN(Bool :$switch, *@slurpy) {}; # perl6 test.p6 --something [01:35] outputs the default built in help [01:35] changing it to *% doesn't work either :( [01:52] *** FROGGS_ joined [01:56] *** FROGGS left [02:22] *** Circlepuller joined [02:22] flussence, sorry that I got pulled away right after my last message; looking now [02:23] flussence, switches need to be before positionals on the command line [02:23] And of course the name of the switch and the named argument need to match. :-) [02:24] *** orafu left [02:24] *** Circlepuller_ left [02:24] *** orafu joined [02:25] how do I get `perl6 test.p6 --switch --something` to work? [02:26] What are you expecting to show up in the slurpy if you only give it options? [02:26] (named options and slurpy args will be handled separately) [02:27] Now, with the MAIN you showed above, I'd expect [02:27] `perl6 test.p6 --switch something some-other-thing stuff` to work [02:27] let me rephrase - how do I get cmdline params that aren't hardcoded in the signature to show up in a *%/*@ variable? [02:28] It sounds like you want both *% and *@ -- or to just process the @*ARGS yourself [02:28] FWIW, the parser is in src/core/Main.pm [02:28] *** Circlepuller_ joined [02:29] *** Circlepuller left [02:30] flussence, look for 'sub process-cmd-args' in that file [02:34] looks like it should work with a *%var, but it isn't... ends up at line 145 [02:35] hmmm [02:36] Oh now that's interesting [02:39] Ah. It appears that at some point someone added the has-unexpected-named-arguments filter, and that function doesn't notice slurpy args [02:39] OK, give me a few minutes to make the change and rebuild, and see if it fixes it. [02:40] *** immortal joined [02:40] *** immortal left [02:40] *** immortal joined [02:41] *** erkan left [02:44] Man I want a faster build box. :-/ [02:48] *** _jaldhar joined [02:55] *** cggoebel left [03:00] *** erkan joined [03:00] *** erkan left [03:00] *** erkan joined [03:00] *** immortal left [03:00] *** cggoebel joined [03:00] MikeFair: there are no other arguments besides 'self'. [03:04] rakudo/nom: b8c0683 | (Geoffrey Broadwell)++ | src/core/Main.pm: [03:04] rakudo/nom: Fix has-unexpected-named-arguments() to notice that named arguments cannot be unexpected if there is a slurpy named parameter [03:04] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/b8c0683f8d [03:04] flussence, try that ^^ [03:04] *** _jaldhar is now known as jaldhar [03:04] * flussence compiles [03:05] *** Circlepuller joined [03:07] *** Circlepuller_ left [03:08] *** jaldhar left [03:08] *** jaldhar joined [03:14] *** Circlepuller_ joined [03:14] *** Circlepuller left [03:16] it works \o/ [03:16] japhb++ [03:17] *** jrockway joined [03:18] excellent! [03:19] * japhb wonders why has-unexpected-named-arguments was added in the first place. Perhaps trying to work around a limitation in the candidates-matching API? [03:19] *** cggoebel left [03:21] it looks like without it the code would spit out a missing multi candidate error instead of &USAGE [03:22] *** jaldhar left [03:24] *** cggoebel joined [03:25] *** jaldhar joined [03:29] *** cggoebel left [03:31] *** mucker left [03:32] *** tokuhiro_ joined [03:44] flussence: Hmmm. I know that it worked without it when I initially wrote that code. :-) [04:00] *** kaare_ joined [04:06] *** replore joined [04:12] *** tokuhiro_ left [04:18] *** replore left [04:19] *** xinming_ joined [04:22] *** xinming left [04:23] *** replore joined [04:51] *** replore left [04:57] *** crab2313 joined [05:08] *** BlueT_ left [05:08] *** BlueT_ joined [05:21] *** skids left [05:24] sorear: Thanks for the "self is the only argument" comment [05:24] So in a grammar when calling a function to make a match, can I backtrack to find a match? [05:26] Take this: I want to match a block by the word "end" with optional tags [05:26] like this: [someword] stuffgoeshere end [someword]? [05:27] the first someword is option too [05:28] stuffgoeshere [05:28] *** crab2313 left [05:31] So my initial thoughts are that my Grammar would be rule findBlock { end } [05:32] method <---- Backtrack to see if I can find the matching occurence of someword [05:32] Otherwise it's an anonymous block [05:36] *** replore_ joined [05:42] *** stopbit joined [05:45] \o [05:49] MikeFair: I don't completely understand you [05:49] but I will say: token element { '<' (\w+) '>' * '' } [05:51] Right, the <> are to call the "keywords" function [05:52] or if not an exiting keyword to add it to the existing set of keywords [05:52] existing not exiting [05:52] if something then [05:52] statements [05:52] end if [05:52] [05:53] still not quite following [05:53] Well if .... end if is a block [05:53] repeat ... end repeat is the same [05:54] anyword ... end anyword creates a new kind of block called "anyword" that will be added by the end user at runtime [05:55] The end user will publish a function called "anyword" that will get called then [05:55] role userblock { 'end' $ } [05:55] couldn't be simpler [05:56] s/role/rule/ [05:56] Do I need to distinguish userblock from [05:56] is it ok to be recursive [05:57] So that does the match, but how do I turn "" into a function call with the value of [05:59] I assume it's { 'end $ } token block_id { } <--- Do something else if this matches? [06:01] And technically is optional, but if present must be evenly paired ( I know theres a rule that makes this easy I just haven't mastered regexes beyond relatively simple pattern testing ) [06:05] * MikeFair just stares in awe and wonder for a moment at just how amazing that little but of text is. [06:12] *** replore_ left [06:17] *** marmay joined [06:22] *** tokuhiro_ joined [06:35] *** xinming_ left [06:39] *** wamba joined [06:41] Is the Perl6 HOW concept a difficult things to implement? It's EXACTLY how I'd like types in safire to work [06:42] How much of that is Rakudo specific code versus Parrot's PMC concept [06:46] it doesn't use PMCs much at all [06:46] basically only as the interface to the garbage collector [06:47] src/Perl6/Metamodel/ has most of the interesting bits [06:49] I'm almost of the mind that I want to write my compiler/interpretter in Perl6 and not Parrot.... [06:50] My language has almsot all the exact same semantics, just a different syntax for it [06:54] MikeFair: if you target parrot it will only run on the parrot VM, if you target perl 6 it will be more flexible [06:55] * MikeFair nods. [06:56] Honestly it seems I'm going to be redoing a lot of the same work perl6 has already worked out, like the HOW concept -- it's what I wouldn't I just didn't exactly know how to describe it yet [06:56] s/wouldn't/wanted [06:57] While I haven't examined them at all yet, the name Role could imply a couple of the other concepts I was wanting to try and create [07:01] *** fgomez left [07:03] Will this match what I think it will: [07:03] rule import { [. \n $ ]? } [07:05] i'm curious what you intend the . to match there [07:05] look for match followed by a match followed by a block, followed by an optional at least one newline with a and corresponding $, but do not consume the stop using line [07:05] *** fgomez joined [07:05] The . is supposed to be the "don't consume the stuff matched in this part" [07:06] ...no. [07:06] no [07:06] it means "don't record the match in $/" [07:06] the . means "match and discard any single character" [07:06] Does . always mean that but (.) means record? [07:07] or is record and save as an array element different things [07:08] oh, /me ws in the wrong context [07:10] MikeFair: /<.foo>/ /./ 1.0 $foo.bar $.quux 2 .. 5 the . means many different things in Perl 6 [07:11] *** Entonian joined [07:11] *** Entonian left [07:11] hehe -- point taken [07:11] * MikeFair reads through "perlreintro" again. :) [07:11] you're confusing the <.foo> period [07:12] * MikeFair nods. [07:12] which means "don't create $" [07:12] yep sure was [07:12] OHHHH!! [07:12] if you don't inspect the resulting Match object, and <.foo> have identical behavior [07:12] * MikeFair nods. [07:12] yep I can see that [07:12] we use <.ws> because $ values are an extravagant waste of memory [07:12] there are a billion of them and we don't need them [07:13] *** GlitchMr joined [07:13] AND it looks like [^^ $ ]? is a cleaner way to say what I meant anyway [07:14] I think what you meant was $ > [07:14] Well except for the "do not consume" part [07:14] means "check that STUFF matches, but don't consume it [07:14] " [07:14] ahh [07:14] note that is useless. can you guess why? [07:15] Well it's an empty match [07:15] before nothing is always true [07:15] close... can you tell me what [STUFF]? means? [07:17] Well in perl5 it was S | T | U | F | F, but the [] I think now means match this whole block of 'STUFF' but as the ? indicates, optionally [07:17] whole block = the following specific characters in the order they appear [07:18] at least in this case, but could really be any regex [07:19] *** marmay left [07:19] * MikeFair invents reading perl6: print so 'abc' ~~ /:iabc/ [07:21] niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Unrecognized regex modifier :iabc at /tmp/9xP9ojlhnt line 1:␤------> print so 'abc' ~~ /:iabc⏏/␤␤Action method mod_internal:oops not yet implemented at /tmp/9xP9ojlhnt line 1:␤------> print so 'abc' ~~… [07:21] ..rakudo b8c068: OUTPUT«True» [07:21] Is it another Rakudo bug? [07:21] yes [07:21] MikeFair: yes [07:21] MikeFair: so [foo]? isn't necessarily an empty match [07:22] it first tries foo, and if that doesn't match, it matches nothing [07:22] *** awfabian joined [07:22] perl 6 regular expressions are very operational (except when they aren't) [07:22] sorear: So my question then is would | $ > be more what I want? [07:22] sorear: hehe [07:23] MikeFair: more what you want yeah I think [07:23] sorear: (with the ^^ in the ?before clause ) [07:23] MikeFair: why do you have the $ case ? [07:23] end of file / "string" [07:23] MikeFair: also consider the case of begin foo ... end foobar [07:24] Well this case is a bit different [07:24] well, I guess since you're using a rule it's really $<.ws> [07:24] is an optional enclosing line [07:24] and there's no ws after foo in foobar [07:25] So I want to match to EOF, unless there's a then stop there, but don't capture it so I can use the Action function to close the block [07:26] the word you want is "consume" [07:26] so right [07:26] "capture" refers to creating the $ variable [07:26] * MikeFair nods [07:26] thanks for keeping me honest! :) [07:27] occasionally useful is that > # $ is now valid, even though it's not part of the matched text [07:27] Yeah, I can see there's a few places I might need that behavior [07:27] *** tokuhiro_ left [07:28] *** tokuhiro_ joined [07:28] What does the # do? or # a literal [07:28] # is comment [07:30] So that will capture foo without consuming the matched , I see it, though it seems more like an exploited side effect than a by design feature [07:31] But it sort of makes sense [07:31] So if I wanted the consumption to stop at $ or consume to the end, what would I use? [07:32] OR, will it call everything in order..... [07:33] So on a successful match, it will first call then call everything that happens in then call [07:33] so I can go ahead and consume it right now and everything will be fine [07:34] phenny: tell jnthn all spectests pass on rakudo/nqpqast [07:34] moritz: I'll pass that on when jnthn is around. [07:35] *** SamuraiJack joined [07:36] *** am0c left [07:37] perl6: say $*EXECUTABLE_NAME [07:37] niecza v21-1-ga8aa70b: OUTPUT«/home/p6eval/niecza/run/Niecza.exe␤» [07:37] ..rakudo b8c068: OUTPUT«./nom-inst/bin/perl6␤» [07:37] ok [07:37] ok and should I replace my token ws override method with <.ws>? [07:37] So, Niecza is in this directory [07:38] hmm, that won't work [07:39] * MikeFair wonders if there's a way to redefine the "rule" to use <.ws> instead of [07:40] huh? [07:40] So probably I can do something like alias niecza='env PATH=/home/p6eval/niecza/run /home/p6eval/niecza/run/Niecza.exe' [07:40] "rule" always uses <.ws> [07:41] GlitchMr: you don't evn need the PATH setting, alias niecza=/path/to/Niecza.exe will be enough [07:41] (if you have binfmt_misc, anyway) [07:42] sorear: ok thanks, then why did my whitespace usage seem to raise a red flag? [07:42] what red flag? [07:42] oh nice [07:43] It seems to work. I find it weird that it didn't worked on my PC [07:44] Not all Linux systems can just run "/path/to/Niecza.exe myfile.p6" [07:44] What is binfmt_misc anyways? [07:44] Kernel module? [07:44] it depends on the availability of the "binfmt_misc" kernel module which recognizes CLR executables and redirects them to Mono [07:45] Well, I can do ./Niecza.exe [07:45] also you need to have binfmt_misc configured [07:45] ok, then you have that set up [07:45] oh, it works [07:45] glitchmr@strawberry ~> git/niecza/run/Niecza.exe [07:45] niecza> [07:45] It's probably a good thing [07:45] so, what doesn't work and how does it fail? [08:01] sleep& [08:04] *** birdwindupbird joined [08:19] *** Psyche^ joined [08:23] *** Patterner left [08:23] *** Psyche^ is now known as Patterner [08:26] *** awfabian left [08:38] *** drbean left [08:41] *** replore joined [08:45] *** replore left [08:52] sorear: it wasn't working before... but it seems that newest Niecza works [08:54] It made error messages [09:02] morning o/ [09:02] jnthn: 07:34Z tell jnthn all spectests pass on rakudo/nqpqast [09:05] moritz: Great, thanks. [09:05] A modules test run would be awesome, whenever somebody can get to it :) [09:18] *** havenn joined [09:31] *** havenn left [09:35] *** wamba left [09:54] *** PacoAir joined [10:15] *** wamba joined [10:15] *** wamba left [10:20] *** snearch joined [10:30] *** spider-mario joined [10:30] *** wamba joined [10:31] *** snearch left [10:31] *** wamba left [10:33] nqp/toqast: 8b9e991 | jnthn++ | src/ (4 files): [10:33] nqp/toqast: Optimize away control exception handlers in while/unit/repeat loops that don't need them. [10:33] nqp/toqast: review: https://github.com/perl6/nqp/commit/8b9e9916cf [10:33] nqp/toqast: 794021e | jnthn++ | src/ (3 files): [10:33] nqp/toqast: Optimize away unrequired control exception handlers in for loops. [10:33] nqp/toqast: review: https://github.com/perl6/nqp/commit/794021ead4 [10:33] er, *until [10:34] hi [10:35] *** wamba joined [10:35] I’m reading the R* 2012.08 announcement and I think there is a <…> that has not been properly escaped [10:35] “Leading whitespace in rules and under :sigspace will no longer be converted to <.ws> . For existing regexes that expect this conversion, add a in front of leading whitespace to make it meta again.” [10:35] “add a in front” [10:36] the HTML code of the page contains [10:36] *** MayDaniel joined [10:36] it should probably have been <?> [10:44] *** snearch joined [10:45] niecza> use Threads [10:45] Potential difficulties: [10:45] Unsupported use of \ with sigil; nowadays please use \ without sigil at /home/p6eval/niecza/lib/Threads.pm6 line 161: [10:45] ------> sub infix:« <== »(\$output⏏, @input) is Niecza::absprec is expo [10:45] I'm not sure, but importing module which is part of Niecza shouldn't make warnings? [10:56] *** immortal joined [10:56] *** erkan left [10:56] *** immortal left [10:56] *** immortal joined [11:01] nqp: a6b22f6 | (Elizabeth Mattijsen)++ | / (3 files): [11:01] nqp: Eradicate pir::chopn__Ssi from source, replace by nqp::substring/nqp::chars [11:01] nqp: review: https://github.com/perl6/nqp/commit/a6b22f641f [11:11] nqp: 77c5c40 | (Elizabeth Mattijsen)++ | / (2 files): [11:11] nqp: Eradicated pir::push__vPi from source, replaced by nqp::push_i [11:11] nqp: review: https://github.com/perl6/nqp/commit/77c5c40689 [11:16] nqp: 8086f7f | (Elizabeth Mattijsen)++ | / (2 files): [11:16] nqp: Eradciated pir::setattribute__vppsp, replaced by nqp::bindattr [11:16] nqp: review: https://github.com/perl6/nqp/commit/8086f7f9a5 [11:24] Is that Liz? [11:25] yes [11:25] this is some of the grunt work jnthn and pm though I could do to get started [11:25] lizmat++ [11:28] yay :) [11:30] please note that last 2 commits were for commented out code already [11:30] but I thought I do them nonetheless for consistency / future uncommenting [11:32] *** xinming joined [11:32] nqp: 994418f | (Elizabeth Mattijsen)++ | / (2 files): [11:32] nqp: Eradicated pir::getattribute__(ppp|PPP)s, replaced by nqp::getattr [11:32] nqp: review: https://github.com/perl6/nqp/commit/994418f123 [11:33] another comment only change [11:35] comments also need maintenance [11:35] perl6: my &reval = &eval; { my $a = "a"; my $b = "b"; print eval '$a'; print reval '$b' } [11:35] niecza v21-1-ga8aa70b: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/f1g12_4_lR line 1:␤------> my &reval = &eval; { my ⏏$a = "a"; my $b = "b"; print eval '$a'; ␤ $b is declared but not used at /tmp/f1g12_4_lR line 1:␤------> my &reval = &… [11:35] ..rakudo b8c068: OUTPUT«ab» [11:36] n: my &reval = &eval; { my $a = "a"; my $b = "b"; print eval '$a'; print reval '$b' } # OK not used [11:36] niecza v21-1-ga8aa70b: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/N9iyomeggJ line 1:␤------> my &reval = &eval; { my ⏏$a = "a"; my $b = "b"; print eval '$a'; ␤ $b is declared but not used at /tmp/N9iyomeggJ line 1:␤------> my &reval = &… [11:37] n: my &reval = &eval; { my $a = "a"; my $b = "b"; $a; $b; print eval '$a'; print reval '$b' } [11:37] niecza v21-1-ga8aa70b: OUTPUT«ab» [11:37] *** snearch left [11:37] perl6: my $a= "a"; print eval '$a' [11:37] niecza v21-1-ga8aa70b: OUTPUT«Potential difficulties:␤ $a is declared but not used at /tmp/FS5V9jsqIk line 1:␤------> my ⏏$a= "a"; print eval '$a'␤␤a» [11:37] ..rakudo b8c068: OUTPUT«a» [11:37] declared but not used but used [11:37] eval being runtime? [11:38] lizmat: ERROR: Search pattern not terminated or ternary operator parsed as search pattern at (eval 20) line 1. [11:38] *** snearch joined [11:38] rakudo simply never warns about unused variables [11:38] lizmat: correct [11:38] But well, when you have eval, you cannot expect anything [11:39] nqp: 8681f37 | (Elizabeth Mattijsen)++ | / (2 files): [11:39] nqp: Eradicated pir::set_who__vPP, replaced by nqp::setwho [11:39] nqp: review: https://github.com/perl6/nqp/commit/8681f37fe1 [11:39] perl6: { my $val = 42; sub reval { eval '$val' } }; say reval [11:39] niecza v21-1-ga8aa70b: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'reval' used at line 1␤␤Potential difficulties:␤ $val is declared but not used at /tmp/wRZ1qk2kh2 line 1:␤------> { my ⏏$val = 42; sub reval { eval '$val' } }; ␤ &reval is declared bu… [11:39] ..rakudo b8c068: OUTPUT«===SORRY!===␤CHECK FAILED:␤Undefined routine '&reval' called (line 1)␤» [11:40] perl6: sub reval { state $val = 42; eval '$val' }; say reval [11:40] niecza v21-1-ga8aa70b: OUTPUT«Potential difficulties:␤ $val is declared but not used at /tmp/I3Xe_9p2Ox line 1:␤------> sub reval { state ⏏$val = 42; eval '$val' }; say reval␤␤42␤» [11:40] ..rakudo b8c068: OUTPUT«42␤» [11:40] eval: use v5.010; sub reval { state $val = 42; eval '$val' }; say reval [11:40] GlitchMr: 42 1 [11:40] ok [11:40] eval: use v5.010; { my $val = 42; sub reval { eval '$val' } }; say reval [11:40] GlitchMr: 1 [11:41] eval: use v5.010; { my $val = 42; sub reval { $val; eval '$val' } }; say reval [11:41] GlitchMr: 42 1 [11:41] $ perl -wE 'my $c= "c"; say eval q($c)' [11:41] c [11:41] seems not to warn in Perl 5 either [11:42] Lexical variables never warn in Perl 5 [11:42] It's unimplemented feature as far I know [11:43] hi! o/ [11:43] glitchmr@feather ~> perl -wE '$c = "Hello, world!\n"; print eval(q[$c])' [11:43] Name "main::c" used only once: possible typo at -e line 1. [11:43] Hello, world! [11:44] This unimplemented feature is mentioned in perltodo [11:45] Also, https://rt.perl.org/rt3/Public/Bug/Display.html?id=5087 [11:45] jnthn: Unrecognized nqp:: opcode 'nqp::who' [11:46] should be the replacement of pir::get_who__PP , but apparently doesn't exist (yet) ? [11:47] Apperently there is CPAN module which implements this: http://search.cpan.org/dist/warnings-unused/lib/warnings/unused.pm [11:47] But it's not part of core [11:47] *** yarp joined [11:48] according to docs/nqp-opcode.txt it should exist (or as nqp::getwho) but apparently something's amiss here [11:49] skipping pir::get_who__PP, continuing with pir::does [11:52] lizmat: That's one of the ones that needs the toqast branch merge to happen. [11:52] ack, moving it to that todo list [11:54] does the same apply to nqp::islist and nqp::ishash? [11:54] Think islist is already in place [11:54] ishash ain't [11:54] ack [11:54] Of course, you could always just do this in the branch :) [11:55] I expect it to merge soon though. [11:55] Well [11:55] If the module space tests look good [11:55] I'll keep it on the todo [11:55] don't want to add any variables to your tests [11:55] there is no rush [11:55] good point [11:58] oh, modules [11:59] I could smoke those [12:02] nqp: fd53616 | (Elizabeth Mattijsen)++ | / (5 files): [12:02] nqp: Eradicated pir::does(...,'array'), replaced by nqp::islist [12:02] nqp: review: https://github.com/perl6/nqp/commit/fd53616f3d [12:02] this concludes the low hanging fruit for today [12:09] *** MayDaniel left [12:10] *** snearch left [12:11] *** snearch joined [12:19] *** JimmyZ joined [12:40] Apparently Rakudo has sprouted a new warning since last I did stuff [12:40] What's the "Obsolete use of | or \ with sigil on param" warning mean? [12:40] *** JimmyZ left [12:41] exactly what it says :-) [12:41] if you use sub f(|$c) { } you should now write that as sub f(|c) { } [12:41] Oh, right [12:42] And same for method foo(\$arr) [12:42] correct [12:42] should i update zavolaj? [12:43] I can do it [12:43] I'm gonna do some more stuff as well [12:43] I found it from my customary pre-hacking make test =) [12:44] that's a very good habit [12:45] I try to remember to make sure I don't have any weird uncommited changes or happen to have some weird branch checked out [12:46] jnthn: zavolaj fails tests on toqast because it misses nqp commit 384d3c3107 [12:46] Sometimes I just leave things in a weird intermediate state when I hit a roadblock. Which leads to weirdness when I come back two weeks later [12:50] *** snearch left [12:51] good morning #perl6 [12:51] *** snearch joined [12:51] \o tadzik [12:52] http://moritz.faui2k3.org/tmp/results.json # result of module smoke on rakudo/nqpqast [12:52] moritz: Huh...r_elems seems to be in there [12:52] * jnthn merges in latest nqp/master anyway [12:53] eek, conflicts [12:53] jnthn: oh, my copy of nqp was out of date [12:53] * moritz looks at the test output more closely [12:54] huh, passes now [12:55] uh, wrong branch [12:55] still passes. [12:56] * moritz confused [12:56] moritz: You're building nqp/toqast and rakudo/nqpqast? [12:57] aye [12:59] moritz: so the results are correct? [12:59] locally, Template::Mojo didn't build [13:00] tadzik: I have no idea anymore [13:01] *** birdwindupbird left [13:01] :) ok [13:01] I'll see if my rakudo is up to date and will rerun themk [13:02] *** xinming left [13:02] I am under the impression that Rakudo Star 2012.08 requires an already installed rakudo to be built [13:03] or even a rakudo star [13:03] *** xinming joined [13:04] spider-mario: No, it's the same as any previous release. [13:04] ok [13:04] (in terms of build procedure) [13:04] *** JimmyZ joined [13:04] Well, pmichaud++ did a bunch of improvements. But it doesn't depend on an existing Rakudo. [13:04] it seems to use files from it [13:05] I had nqp and 2012.0 [13:05] oops [13:05] I had nqp and rakudo star 2012.07, [13:05] I built and installed nqp 2012.08.1 and tried to build rakudo star 2012.08 and it failed with error messages mentionning files from the system-wide rakudo star [13:06] so, I’ve rebuilt and installed rakudo star 2012.07 against the new nqp and I am trying to build rakudo star 2012.08 [13:06] and so far, it works much better [13:06] seemingly, at least [13:07] actually, before trying with * 2012.07 rebuilt against nqp 2012.08, I tried with it uninstalled [13:07] and rakudo star 2012.08 reported missing files [13:08] I hope I was just unlucky [13:09] maybe there are some weird problems with my environment variables pointing to ~/perl6 or anything [13:11] nqp/toqast: a6b22f6 | (Elizabeth Mattijsen)++ | / (3 files): [13:11] nqp/toqast: Eradicate pir::chopn__Ssi from source, replace by nqp::substring/nqp::chars [13:11] nqp/toqast: review: https://github.com/perl6/nqp/commit/a6b22f641f [13:11] nqp/toqast: 77c5c40 | (Elizabeth Mattijsen)++ | / (2 files): [13:11] nqp/toqast: Eradicated pir::push__vPi from source, replaced by nqp::push_i [13:11] nqp/toqast: review: https://github.com/perl6/nqp/commit/77c5c40689 [13:11] nqp/toqast: 8086f7f | (Elizabeth Mattijsen)++ | / (2 files): [13:11] nqp/toqast: Eradciated pir::setattribute__vppsp, replaced by nqp::bindattr [13:11] nqp/toqast: review: https://github.com/perl6/nqp/commit/8086f7f9a5 [13:11] nqp/toqast: 994418f | (Elizabeth Mattijsen)++ | / (2 files): [13:11] nqp/toqast: Eradicated pir::getattribute__(ppp|PPP)s, replaced by nqp::getattr [13:11] nqp/toqast: review: https://github.com/perl6/nqp/commit/994418f123 [13:11] nqp/toqast: 8681f37 | (Elizabeth Mattijsen)++ | / (2 files): [13:11] nqp/toqast: Eradicated pir::set_who__vPP, replaced by nqp::setwho [13:11] nqp/toqast: review: https://github.com/perl6/nqp/commit/8681f37fe1 [13:11] nqp/toqast: fd53616 | (Elizabeth Mattijsen)++ | / (5 files): [13:11] nqp/toqast: Eradicated pir::does(...,'array'), replaced by nqp::islist [13:11] nqp/toqast: review: https://github.com/perl6/nqp/commit/fd53616f3d [13:11] nqp/toqast: 880ec42 | jnthn++ | / (9 files): [13:11] nqp/toqast: Merge latest master into toqast. [13:11] nqp/toqast: review: https://github.com/perl6/nqp/commit/880ec42098 [13:15] *** xinming left [13:15] https://github.com/GlitchMr/perl6-Text-Abbrev/blob/master/lib/Text/Abbrev.pm [13:16] Just wondering, is there any better way of writing "loop (my $len = .chars; $len > 0; --$len) {" [13:16] I cannot use .. because range goes in wrong direction [13:17] *** xinming joined [13:19] ... can go in other direction [13:20] Hmmm, yeah [13:20] r: my $x = 'omg a kangaroo!'; for $x.chars ^... 0 { $x.substr($_, 1).say } [13:20] rakudo b8c068: OUTPUT«===SORRY!===␤Confused␤at /tmp/CoaJOB_nwq:1␤» [13:21] huh, hwat'd I get wrong... [13:21] three dots? [13:21] Yeah, sequence [13:22] r: say 1 ... 10 [13:22] rakudo b8c068: OUTPUT«1 2 3 4 5 6 7 8 9 10␤» [13:22] r: say 10 ... 1 [13:22] rakudo b8c068: OUTPUT«10 9 8 7 6 5 4 3 2 1␤» [13:22] r: say 10 ^... 1 [13:22] rakudo b8c068: OUTPUT«===SORRY!===␤Confused␤at /tmp/g8F6G0Ao6j:1␤» [13:22] r: say 10 ^.. 1 [13:22] rakudo b8c068: OUTPUT«10^..1␤» [13:23] whats that ^ for? [13:23] Omit endpoint [13:23] But it seems Rakudo defines ...^ but not ^... [13:23] il worked this time [13:24] with a rakudo 2012.07 built against nqp 2012.08 already installed [13:24] Cannot assign a non-Perl 6 value to a Perl 6 container [13:24] Those errors are cryptic [13:24] - loop (my $len = .chars; $len > 0; --$len) { [13:24] + for .chars ... 0 -> $len { [13:24] I'm probably doing something wrongly [13:25] It looks like it should work identically, except it doesn't [13:27] oh [13:27] I should type 1, not 0 [13:28] except not [13:29] So, in https://github.com/GlitchMr/perl6-Text-Abbrev/blob/master/lib/Text/Abbrev.pm 'loop (my $len = .chars; $len > 0; --$len) {' works, but 'for .chars ... 1 -> $len {' doesn't making cryptic error messages [13:30] That's somewhat surprising. [13:32] Perhaps Perl 6 doesn't parse it the way I want [13:32] I don't know... [13:33] for reverse 1 .. .chars -> $len { makes identical error [13:34] it may be a rakudo bug [13:34] > abbrev ':)' [13:34] 2 [13:34] 1 [13:35] This is how it iteration looks with loop () [13:35] r: $_ = 'foobar'; for .chars ... 1 { .say } [13:35] rakudo b8c068: OUTPUT«6␤5␤4␤3␤2␤1␤» [13:35] This is... confusing [13:35] r: $_ = 'foobar'; for .chars ... 1 -> $a { $a.say } [13:35] rakudo b8c068: OUTPUT«6␤5␤4␤3␤2␤1␤» [13:35] r: $_ = 'foobar'; for .chars ... 0 -> $a { $a.say } [13:35] rakudo b8c068: OUTPUT«6␤5␤4␤3␤2␤1␤0␤» [13:35] for .chars ... 1 -> $len {} should work identically, except it doesn't [13:36] r: $_ = 'foobar'; for .chars ... 1 -> $len { $len.say } # just checking :) [13:36] rakudo b8c068: OUTPUT«6␤5␤4␤3␤2␤1␤» [13:36] I use say on $len, but all I get is number of .chars and crash... [13:36] r: $_ = 'foobar'; for .chars ... 1 -> $len { say $len } [13:36] rakudo b8c068: OUTPUT«6␤5␤4␤3␤2␤1␤» [13:36] The code looks like https://github.com/GlitchMr/perl6-Text-Abbrev/blob/master/lib/Text/Abbrev.pm [13:37] If I will replace 'loop (my $len = .chars; $len > 0; --$len) {' with 'for .chars ... 1 -> $len {' I get error... [13:41] Also, I've noticed that if I will comment out "%result{$abbrev} = $_;" it doesn't happen [13:41] Is it possible that it's connected with $_? [13:42] That'd be odd. [13:42] I guess it's possible, but if so it's an odd bug. [13:42] r: for 'cake' { for .chars ... 1 { $_.perl.say } } [13:42] rakudo b8c068: OUTPUT«4␤3␤2␤1␤» [13:42] r: for 'cake' { for .chars ... 1 -> $len { $_.perl.say } } [13:42] rakudo b8c068: OUTPUT«"cake"␤"cake"␤"cake"␤"cake"␤» [13:42] huh? [13:43] r: my %hash; for 'cake' { for .chars ... 1 -> $len { %hash{5} = $_ } } [13:43] rakudo b8c068: ( no output ) [13:43] r: my %hash; for 'cake' { for .chars ... 1 -> $len { %hash{5} = $_ } }; %hash.perl.say [13:43] rakudo b8c068: OUTPUT«("5" => "cake").hash␤» [13:43] huh? [13:43] What's surprising? [13:43] the outer for's $_ is visible in the inner for [13:43] r: my %hash; for 'cake' { for .chars ... 1 -> $len { %hash{.substr(0, $len)} = $_ } }; %hash.perl.say [13:43] rakudo b8c068: OUTPUT«("cake" => "cake", "cak" => "cake", "ca" => "cake", "c" => "cake").hash␤» [13:43] since the inner for uses $len [13:43] $_ takes the value from the outer [13:43] what? [13:43] Unless something else gives it a value. [13:43] What's weirder is that it doesn't happen there [13:43] I will make a test, ok? [13:44] OK [13:45] * jnthn just discovered the REPL got busted nqpqast and is working on a fix for that atm. [13:45] Null PMC access in find_method('perl') [13:45] huh? [13:46] *** yarp left [13:46] *** xphx joined [13:47] Parrot's leaking somewhere [13:47] The code looks like http://paste.uk.to/2bddae42 [13:47] (after shortening everything) [13:47] also, Z is not lazy enuff on toqast it seems [13:47] r: https://gist.github.com/3573589 [13:47] perl6: $_ = 'abc'; for .chars ... 1 -> $len { .perl.say; { .perl.say } } [13:47] rakudo b8c068: OUTPUT«(timeout)» [13:47] rakudo b8c068: OUTPUT«"abc"␤Mu␤"abc"␤Mu␤"abc"␤Mu␤» [13:47] ..niecza v21-1-ga8aa70b: OUTPUT«Potential difficulties:␤ $len is declared but not used at /tmp/Sshintkvzw line 1:␤------> $_ = 'abc'; for .chars ... 1 -> ⏏$len { .perl.say; { .perl.say } }␤␤"abc"␤"abc"␤"abc"␤"abc"␤"abc"␤"abc"␤» [13:48] oh, to it's not lazy enough on nom either :) [13:48] perl6: $_ = 'abc'; for 1 -> $len { .perl.say; { .perl.say } } [13:48] niecza v21-1-ga8aa70b: OUTPUT«Potential difficulties:␤ $len is declared but not used at /tmp/3rhIEprUTo line 1:␤------> $_ = 'abc'; for 1 -> ⏏$len { .perl.say; { .perl.say } }␤␤"abc"␤"abc"␤» [13:48] ..rakudo b8c068: OUTPUT«"abc"␤Mu␤» [13:48] n: https://gist.github.com/3573589 [13:48] rakudo b8c068: OUTPUT«"abc"␤Mu␤» [13:48] niecza v21-1-ga8aa70b: OUTPUT«(timeout)» [13:48] huh [13:48] There is something wrong [13:48] colomon: ping [13:48] Block SHOULDN'T cause $_ to magically disappear [13:49] > $_ = 'abc'; for 1 -> $len { .perl.say; { .perl.say } } [13:49] pong [13:49] "abc" [13:49] Lexical '$_' not found [13:49] what? [13:49] What? [13:49] ah. [13:49] GlitchMr: That golfs it nicely. [13:49] Why would $_ disappear just because I have block (if/else) in original code? [13:49] * colomon is having to type around a duplo model Union Pacific Big Boy which is on his desk for some reason. [13:50] This is... weird [13:50] *** PacoAir left [13:50] tadzik: pong? [13:50] GlitchMr: $_ has some special handling. Something isn't quite right with it, it seems [13:51] *** PacoAir joined [13:51] nr: $_ = 'abc'; for 1 -> $len { .perl.say; { .perl.say } } [13:51] niecza v21-1-ga8aa70b: OUTPUT«Potential difficulties:␤ $len is declared but not used at /tmp/i9dAWOU3Of line 1:␤------> $_ = 'abc'; for 1 -> ⏏$len { .perl.say; { .perl.say } }␤␤"abc"␤"abc"␤» [13:51] ..rakudo b8c068: OUTPUT«"abc"␤Mu␤» [13:51] Moooo! [13:51] Perhaps apt-get moo ate it or something. [13:52] colomon: List::Utils uniq_by hangs on new nom, and when I try to replicate its behaviour, it seems to hang everywhere [13:52] But... this shouldn't happen... [13:52] GlitchMr: Think I've found out what's going on. [13:52] tadzik: grumble... [13:54] tadzik: can duplicate here [13:54] tadzik: yes, that's a rakudobug [13:55] New issue in nqpqast branch, or a general issue? [13:55] tadzik: guess I can comment out the offending test. [13:55] r: class A { has $.b; method new { $!b = 42 } }; my $c = A.new; [13:55] rakudo b8c068: OUTPUT«Cannot look up attributes in a type object␤ in method new at /tmp/gfZpAu6sbs:1␤ in block at /tmp/gfZpAu6sbs:1␤␤» [13:55] whats wrong with that? 􏿽xF3.􏿽xF2 [13:56] jnthn: seems now, I don't remember smoker hanging on it before [13:56] I will return this bug to Rakudobug, ok? [13:56] s/return/send/ [13:56] GlitchMr: Yeah, please. [13:57] tadzik: workaround pushed. it's an old rakudobug, btw, going back at least a month... [13:57] GlitchMr: I've got a potential patch for it already. [13:57] oh, interesting [14:00] jnthn: it's bug #114696 [14:00] I accidentally put there old example with .chars, but whatever (I cannot change it now) [14:01] *** xphx left [14:07] *** tokuhiro_ left [14:08] *** tokuhiro_ joined [14:12] *** tokuhiro_ left [14:14] building rakudo star 2012.08 without an already installed rakudo star definitely doesn’t work [14:14] I’ve had the same problem in a chroot with nothing but nqp and rakudo star 2012.07 [14:15] *** yarp joined [14:17] tadzik: Was the List::Utils thing the only issue in the test run? [14:17] nqp/toqast: ded87cc | jnthn++ | src/ (2 files): [14:17] nqp/toqast: Fix REPL breakage, and some other hardening. [14:17] nqp/toqast: review: https://github.com/perl6/nqp/commit/ded87ccdf8 [14:19] r: for 'foo' { for 10 ... 1 -> $len { .say } } [14:19] rakudo b8c068: OUTPUT«foo␤foo␤foo␤foo␤foo␤foo␤foo␤foo␤foo␤foo␤» [14:19] jnthn: it' has jus fienished, generating diff [14:19] tadzik: ah, awesome [14:19] hm [14:19] I need a new backend for Term::ANSIcolor that'll use HTML colours [14:20] BSON now fails its tests, Exemel now fails its tests, Facter doesn't build anymore, MongoDB doesn't build anymore, Perl6-Math-Quaternion doesn't build anymore [14:23] progress! :p [14:23] investigating other cases [14:25] jnthn: okay, nothing specific. I say it's a green light from the module system [14:25] *** MayDaniel joined [14:26] tadzik: Huh, you just told me about a bunch of failures? [14:26] jnthn: not toqast stuff. Thinks like "no .bytes from Str etc [14:27] tadzik: I guess you built nqpqast from Rakudo, yes? Not toqast? [14:27] oh, hold on [14:27] yes [14:27] tadzik: OK, I'm mostly concerned with regressions between current nom and current nqpqast. [14:27] hold on, I missed some stuffs [14:28] http://tjs.azalayah.net/new.html shows that Exemel didn't pass tests before either, so it may be difftool failing [14:28] but http://tjs.azalayah.net/index.html disagrees. I need to fix this mess :) [14:28] okay, Exemel seems to be a regression [14:30] jnthn: Undefined routine '&does' called (line 4) [14:30] that's nothing new though, ok [14:30] Exemel parser seems to be the only thing [14:35] tadzik: OK, I'm confused. Is there bustage or not? :) [14:36] there is :) [14:37] tadzik: In Exemel? [14:38] yes [14:38] * jnthn clones it [14:41] tadzik: what am I looking for? [14:41] tadzik: I see test fails [14:41] No such method 'root' for invocant of type 'Nil' [14:41] in block at t/02-parser.t:15 [14:41] yes [14:41] I assume it's Grammar/Actions not worky [14:42] right, parse fail or so [14:42] *** preflex left [14:44] *** sporous left [14:51] *** JimmyZ left [14:56] *** JimmyZ joined [15:03] *** mtk left [15:11] *** mtk joined [15:12] nqp/toqast: ef77cff | jnthn++ | src/how/NQPClassHOW.pm: [15:12] nqp/toqast: Always re-compute MRO upon composition. [15:12] nqp/toqast: review: https://github.com/perl6/nqp/commit/ef77cffd68 [15:12] rakudo/nqpqast: e8c76ce | jnthn++ | src/core/you_are_here.pm: [15:12] rakudo/nqpqast: Ensure that Metamodel::GrammarHOW ends up being ~~ Any. [15:12] rakudo/nqpqast: review: https://github.com/rakudo/rakudo/commit/e8c76ce102 [15:16] *** mucker joined [15:17] *** BlueT_ left [15:18] *** yarp left [15:18] *** am0c_ joined [15:25] std: 1434468 | larry++ | STD_P5.pm6: [15:25] std: handle backslashes in character classes better [15:25] std: review: https://github.com/perl6/std/commit/14344683c7 [15:25] std: bc80c8f | larry++ | STD_P5.pm6: [15:25] std: improve error on range with backslash cclass [15:25] std: review: https://github.com/perl6/std/commit/bc80c8ff85 [15:28] std: a025490 | larry++ | STD_P5.pm6: [15:28] std: debug code removal [15:28] std: review: https://github.com/perl6/std/commit/a025490126 [15:28] tadzik: So, I decided to use Grammar::Tracer to figure out what's going on, then realized that it had issues due to a metaclass compatibility issue I've managed to introduce. :/ So, fixing that first. [15:28] okay [15:28] hooray, regressions found :) [15:28] http://cdn.memegenerator.net/instances/400x/24111566.jpg [15:30] *** BlueT_ joined [15:30] Yeah, this is a fiddly one also... [15:31] Note to self: put some darn MOP tests into spectest [15:31] (: [15:34] ah, yay, the fix helped [15:34] hm, should be more efficient too [15:36] nqp/toqast: 539f35b | jnthn++ | src/how/NQPClassHOW.pm: [15:36] nqp/toqast: Refactor BUILDPLAN construction so that it respects the desires of different contributing metaclasses. [15:36] nqp/toqast: review: https://github.com/perl6/nqp/commit/539f35bfb3 [15:36] *** awfabian joined [15:36] rakudo/nqpqast: 54f813b | jnthn++ | src/Perl6/Metamodel/BUILDPLAN.pm: [15:36] rakudo/nqpqast: Refactor BUILDPLAN construction so that it respects the desires of different contributing metaclasses. [15:36] rakudo/nqpqast: review: https://github.com/rakudo/rakudo/commit/54f813b518 [15:38] *** birdwindupbird joined [15:38] ooh, turns out Grammar::Tracer has never handled backrefs properly either. [15:52] *** raiph joined [15:53] gum [15:56] zavolaj/libnames: 3f79122 | (Arne Skjærholt)++ | lib/NativeCall.pm6: [15:56] zavolaj/libnames: Eliminate warnings from updated Rakudo. [15:56] zavolaj/libnames: review: https://github.com/jnthn/zavolaj/commit/3f7912259a [15:56] zavolaj/libnames: aa0436c | (Arne Skjærholt)++ | lib/NativeCall.pm6: [15:56] zavolaj/libnames: Update library name handling to NQP handling extensions. [15:56] zavolaj/libnames: review: https://github.com/jnthn/zavolaj/commit/aa0436cd95 [15:56] nqp/dyncall-libnames: 2f6eee9 | (Arne Skjærholt)++ | src/ops/nqp_dyncall.ops: [15:56] nqp/dyncall-libnames: Handle library extensions in nqp_dyncall.ops. [15:56] nqp/dyncall-libnames: [15:56] nqp/dyncall-libnames: This should fix the issue of .bundle vs. .dylib on OS X. [15:56] nqp/dyncall-libnames: review: https://github.com/perl6/nqp/commit/2f6eee931a [15:57] Now let's see if it works on OS X as well [15:59] *** awfabian left [15:59] tadzik: Turns out it fails in attribute parsing, fwiw. [16:00] Oh, it's wrong under the new sigspace rules... [16:01] But I didn't think those were implemented yet. [16:03] hm [16:03] *** birdwindupbird left [16:04] rakudo/nqpqast: cfae063 | jnthn++ | src/ (2 files): [16:04] rakudo/nqpqast: Some extra tweaks to fix BUILDPLAN handling regressions. [16:04] rakudo/nqpqast: review: https://github.com/rakudo/rakudo/commit/cfae0637ca [16:04] r: my rule foo { b }; say "a b" ~~ /a <&foo>/; [16:04] rakudo b8c068: OUTPUT«#␤» [16:05] star: my rule foo { b }; say "a b" ~~ /a <&foo>/; [16:05] star 2012.07: OUTPUT«q[a b]␤␤» [16:05] r is correct by current spec, afaik [16:06] hm., I wouldn't expect that [16:06] *** crab2313 joined [16:07] r: my rule foo { '' b }; say "a b" ~~ /a <&foo>/; [16:07] rakudo b8c068: OUTPUT«「a b」␤␤» [16:07] Right, if I add a or <.ws> into the Exemel::Grammar in the expected place it parses again. [16:07] * jnthn combs the git log [16:10] hm, don't spot anything [16:11] oh, I wonder... [16:12] hah! [16:12] std: d54dd12 | larry++ | / (2 files): [16:12] std: suppress missing action package warnings [16:12] std: review: https://github.com/perl6/std/commit/d54dd12153 [16:12] std: 4c71135 | larry++ | viv: [16:12] std: debug removal [16:12] std: review: https://github.com/perl6/std/commit/4c71135397 [16:12] std: ac6e336 | larry++ | STD_P5.pm6: [16:12] std: warning suppression [16:12] std: review: https://github.com/perl6/std/commit/ac6e33656d [16:13] yeah, accident. [16:13] Nothing to do with the QAST stuff, but happened when I introduced the :P5 support [16:17] std: 7484f3a | larry++ | viv: [16:17] std: remove dup VAST package [16:17] std: review: https://github.com/perl6/std/commit/7484f3aee8 [16:17] rakudo/nqpqast: 0e6dd2e | jnthn++ | src/Perl6/Grammar.pm: [16:17] rakudo/nqpqast: Significant non-whitespace was significant. Fixes accidental change to rule semantics when :P5 was introduced. [16:17] rakudo/nqpqast: review: https://github.com/rakudo/rakudo/commit/0e6dd2ed07 [16:18] Given the following rule: rule statementBlock { 'end' * } [16:18] TimToady: can you clarify the new non-pragmatized ways of interacting with strings other than codepoint level [16:18] What I intend to say is "end is the only thing on the line" (expcepr for whatever <.ws> matches) [16:19] is the * needed? [16:19] zavolaj/libnames: 20e96d5 | (Arne Skjærholt)++ | t/02-simple-args.t: [16:19] zavolaj/libnames: Add test calling a function from libc. [16:19] zavolaj/libnames: [16:19] zavolaj/libnames: This isn't necessary on Linux, but OS X distinguishes between shared libraries [16:19] zavolaj/libnames: (dylibs) and loadable modules (bundles), which we need to make sure works. [16:19] zavolaj/libnames: This closes #7. [16:19] zavolaj/libnames: review: https://github.com/jnthn/zavolaj/commit/20e96d507c [16:19] oh wait! nm, it's not it's in [16:21] * MikeFair flip flops. [16:21] tadzik: Exemel looks good again now. It will need a change in the future, mind. [16:21] tadzik: Re-testing appreciated, when you get chance. [16:21] rebulding nom now [16:21] tadzik: nom? or nqpqast? [16:22] I think it is needed because will simply stop matching when it hits something else on that line, not fail to match if there is something there [16:22] *facepalm* Test works on OS X, but not on Linux, because Linux has OTHER shared-lib naming shenanigans [16:22] jnthn: erm, nqpqast [16:22] tadzik: Great, thanks :) [16:22] jnthn: also, is there a way to get a Parrot-level sub out of an object in Perl 6? [16:22] I mean, code object [16:22] tadzik: Only by poking into the internals [16:23] how deeply? [16:23] nqp::getattr deeply [16:23] Get $!do [16:23] Why do you need to, ooc? [16:23] surprise [16:36] *** birdwindupbird joined [16:48] *** awfabian joined [16:48] *** birdwindupbird left [16:50] *** JimmyZ left [16:51] sigh [16:51] I tried using threads on the new Parrot branch, but things segfault [16:53] jnthn: okay, Exemel is clear on the module smoketest so far [16:58] *** FROGGS_ left [17:00] *** colomon left [17:03] jnthn: could you take a look at https://gist.github.com/3580456 ? [17:03] simple threads example working on parrot-nqp, but not on nqp [17:05] *** ponbiki left [17:07] *** ponbiki joined [17:07] *** ponbiki is now known as Guest2527 [17:11] *** _jaldhar joined [17:11] *** MayDaniel_ joined [17:12] *** telex_ joined [17:17] *** wamba left [17:17] *** jaldhar left [17:17] *** mtk left [17:17] *** telex left [17:17] *** MayDaniel left [17:18] std: 4f02273 | larry++ | STD_P5.pm6: [17:18] std: bogus warning suppression [17:18] std: review: https://github.com/perl6/std/commit/4f0227314c [17:18] *** am0c_ left [17:18] tadzik: Oddness. Not sure, but it seems to die while trying to throw an exception. [17:18] yeah [17:19] *** am0c joined [17:19] Does changing it to nqp::say(...) change anything? [17:19] *** FROGGS_ joined [17:20] yes, it makes it work [17:20] WOO [17:21] doesn't help the perl6 version though [17:21] OK, that's...bothersome [17:22] mayhaps the parrot code object still wants to call perl 6 code objects, and threads don't like that? [17:22] What if you my $x := 42; and then in the thread say($x) ? [17:22] e.g. is it something odd with lexical lookups? [17:23] It's a curious backtrace. It looks like it failed to find say(...) [17:23] Or died trying to find it [17:23] still segfaulting [17:24] Segfaults when you try to say $x? [17:24] In NQP? [17:24] Even with nqp::say? [17:24] https://gist.github.com/3580903 [17:24] *** mtk joined [17:24] no, that's in P6 [17:24] nqp works fine [17:25] https://gist.github.com/3580930 [17:25] and it threads properly :) [17:25] Well, it doesn't work fine because it didn't find say [17:25] Try [17:25] nqp? [17:25] Yes [17:26] You changed it to nqp::say [17:26] And then it worked [17:26] oh, true [17:26] Try this [17:26] my $x := 42; [17:26] my $a := sub foo() { nqp::say($x); }; [17:26] And shecudling that. [17:26] segfaults [17:26] O_O [17:26] OK, so...it fails at doing lexical lookups between threads? o.O [17:26] yes :) [17:27] * diakopter looks up shecudling [17:27] That's not gonna get us far. [17:27] As in, anywhere. [17:27] yep [17:27] * jnthn wonders if it's because NQP and Rakudo have custom lexpad PMCs. [17:31] *** immortal left [17:31] *** erkan joined [17:31] *** erkan left [17:31] *** erkan joined [17:32] could be [17:33] jnthn: also, when I try the lexical lookup in parrot-nqp, it just silently crashes [17:33] no error, just doesn't print anything, even stuff from outside threads [17:33] I'll poke nine when he appears on #parrot [17:33] oh [17:33] Well, but parrot-nqp didn't have custom lexpads, iirc [17:34] *** thou joined [17:34] jnthn: okay, green light from the modules this time :) [17:34] 68 modules ok, 44 not ok (112 total) [17:34] Hmm, question, I'm trying to do something like this: rule block { }; rule start_phrase { 'start' }; rule stop phrase {'stop' $} [17:34] that't the best result I remember :) [17:36] I want to use and because I want the method call that results from a match. but I'm not sure how to pass back the capture [17:36] tadzik: OK, will merge. Thanks! [17:37] are spectests clean now? [17:37] yes, I temporarily busted something then fixed it :) [17:37] okay, awesome :) [17:37] Alternatively, I could do something like this: rule block { 'start' 'stop' $ { call stop_phrase, stop_phrase passing in ident if this matches } } [17:40] *** havenn joined [17:43] *** raiph left [17:46] MikeFair: If you want to keep your original factoring, you can likely do it with a contextual. [17:47] rule block { :my $*ENDER; } [17:47] rule start_phrase { 'start' { $*ENDER = ~$ } } [17:48] rule stop_phrase { 'stop' $*ENDER } [17:48] Or so [17:48] *** havenn left [17:49] *** havenn joined [17:54] *** havenn left [18:00] evalbot: 4253b69 | GlitchMr++ | evalbot.pl: [18:00] evalbot: Fix evalbot help. [18:00] evalbot: [18:00] evalbot: said() appears to be ran in scalar context. As the result of it, comma [18:00] evalbot: is really comma operator - it means everything before `': $code'` is simply [18:00] evalbot: ignored creating weird help message. This fixes it by using `.` [18:00] evalbot: (concatenation operator) instead of `,` (comma operator). [18:00] evalbot: review: https://github.com/perl6/evalbot/commit/4253b69527 [18:02] We have modules.perl6.org generated using Perl 6! :) [18:02] http://feather.perl6.nl/~sergot/modules/ [18:02] https://github.com/sergot/modules.perl6.org [18:02] \o/ [18:02] Take a look. :) [18:02] wow, test results :) [18:02] This is amazing :) [18:02] yep :) [18:02] But I don't like yellow color. [18:02] Perhaps if it would have outline or something [18:03] yeah, well, I designed it, don't expect too much :) [18:03] It's not bad [18:05] tadzik: http://dl.dropbox.com/u/63913412/shadow.png [18:05] But this probably is even more ugly [18:05] hm, not bad [18:06] I'm testing stuff [18:06] Only (?) real 1m2.862s [18:06] :) [18:06] takes generating it [18:07] that might be faster than the perl 5 version [18:07] Heuristic branch merge: pushed 174 commits to nqp by jnthn [18:07] http://dl.dropbox.com/u/63913412/outline.png [18:07] because it uses the github API and has to wait so github doesn't get super angry [18:07] Or this, even uglier option [18:07] Heuristic branch merge: pushed 27 commits to rakudo/nom by jnthn [18:07] OK, 'tis merged. [18:08] I like this view source thing in Opera. [18:08] I'm glad you like it :) [18:09] jnthn++ # future, NOW! [18:09] It allows me to modify documents directly [18:09] rakudo/nom: d776f08 | jnthn++ | docs/ROADMAP: [18:09] rakudo/nom: Remove a ROADMAP item. [18:09] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/d776f087d0 [18:10] Outline was "text-shadow: 1px 1px 1px #000, 1px -1px 1px #000, -1px 1px 1px #000, -1px -1px 1px #000" [18:10] Shadow was "text-shadow: 3px 3px 5px #888" [18:11] phenny: tell lizmat le NQP branch merge is done, which unblocks your ops work :) [18:11] jnthn: I'll pass that on when lizmat is around. [18:16] I should make pointless IRC bot in Perl 6 [18:16] :) [18:17] I guess that Rakudo has sockets? [18:17] it does [18:17] there are already perl6-based bots running here [18:17] Sure. And a module for making IRC bots. :) [18:17] p6rd: next [18:17] p6rd, where are you? [18:17] ENOTRUNNING :P [18:17] cjbot, where are you? [18:17] /o\ [18:18] GlitchMr: forget I said anything :) [18:19] has $.nick = "Rakudobot"; [18:19] has @.altnicks = $!nick X~ ("_","__",^10); [18:19] $!nick? [18:19] But... isn't it $.nick? [18:19] Would this even work? [18:20] Just wondering, is panda installed on feather or I've to install it myself? [18:24] glitchmr@strawberry ~/g/panda> ./bootstrap.pl [18:24] ==> Bootstrapping Panda [18:24] ===SORRY!=== [18:24] error:imcc:The opcode 'perl6_type_check_return_value_p' (perl6_type_check_return_value<1>) was not found. Check the type and number of the arguments [18:24] in file '/home/glitchmr/.perl6/lib/Shell/Command.pir' line 584 [18:24] ok... [18:26] *** havenn joined [18:26] hm [18:26] run rebootstrap.pl [18:26] I should probably note that in the README [18:27] *** crab2313 left [18:31] ==> Reinstalling Acme::Addslashes Config::INI Text::Abbrev Acme::Meow Digest::MD5 [18:31] nice [18:33] walk & [18:33] Elegant. Simple. Probably compiles. [18:34] lol [18:36] :) [18:38] *** havenn left [18:48] good * #perl6 [18:49] o/ [18:49] * is whatever? [18:49] yes [18:54] https://gist.github.com/3583210 [18:54] That could be fun [18:54] What's so hard about 004 IRC code? [18:55] I've no eye deer [18:55] https://github.com/TiMBuS/Net--IRC/blob/master/lib/Net/IRC/Parser.pm [18:55] Gramar for IRC! [18:56] sure, Grammars are awesome [18:56] :moorcock.freenode.net 004 SixtySixBot moorcock.freenode.net ircd-seven-1.1.3 DOQRSZaghilopswz CFILMPQbcefgijklmnopqrstvz bkloveqjfI [18:57] Now I wonder why it didn't matched [18:57] use Grammar::Debugger :) [18:58] *** am0c left [19:00] ===SORRY!=== [19:00] Nominal type check failed for parameter '$got'; expected Any but got TracedGrammarHOW instead [19:01] This is Debugger::Tracer [19:01] I meant, Grammer::Tracer [19:01] And Grammar::Debugger shows TOP and doesn't react on anything [19:01] hm [19:01] jnthn: ? [19:01] I type "h". Nothing [19:02] I've feeling it should show "> " prompt, except it doesn't [19:02] Or rather, after I press CTRL+D error appears and "> " prompt [19:04] It looks like this: https://gist.github.com/ab67295375366ea9ae91 [19:06] But tests pass... oh wait... what tests? [19:06] I fixed Grammar::Tracer earlier this evening [19:06] Those were tests for Term::AnsiColor [19:07] And Grammar::Tracer doesn't work for me [19:07] The re-parenting stuff I put in a while ago musta somehow messed it up. It's odd 'cus I remember checking it... [19:07] oh... [19:07] glitchmr@strawberry ~> perl6 -v [19:07] This is perl6 version 2012.08-27-gf3d2b53 built on parrot 4.7.0 revision RELEASE_4_7_0-165-g29796c6 [19:07] Oh, hm [19:08] I've old Rakudo [19:08] I removed the "is Mu" from it, which should not have been needed, found it broken, fixed the reason it broke without the "is Mu" in Rakudo, and committed the fix. [19:08] So yeah, it'll only work on latest. Sorry 'bout that. [19:08] Anyways, bye [19:08] *** GlitchMr left [19:23] *** aindilis joined [19:30] *** immortal joined [19:30] *** immortal left [19:30] *** immortal joined [19:31] *** erkan left [19:37] jnthn++ # QAST [19:38] arnsholt: if I have to pass a pointer to a struct to a c function, and this struct is made within perl, how do I pass its pointer? [19:40] FROGGS_: If there's no a direct way, a workaround is to create a 1-element CArray [19:42] jnthn: what do I have to do with the CArray then? [19:43] my $ptrish = CArray[YourStructType].new(); [19:43] *** snearch left [19:43] $ptrish[0] = $your_struct; [19:43] (the first = should probably be :=) [19:43] I have no idea how robust zavolaj is when it comes to additional containers [19:44] I think it copes. [19:44] If you want to use the @ sigil you certainly need := [19:44] For $ then I think assignment is OK. [19:45] jnthn: and then I have the pointer in $ptrish[0] ? [19:45] no, pass $ptrish in the place where a pointer is expected [19:45] ahh, got it [19:45] of course, it points to its first element [19:46] Pointers and arrays in C are very related :) [19:49] jnthn: I want to fix constant name = 'foo'; sub ::(name) { } [19:49] jnthn: but I'm having trouble figuring out what the correct fix is [19:50] ::() stuff is parsed by token morename [19:50] moritz: Probably involves something in class LongName inside of Perl6::World. [19:50] but morename doesn't even its own action method [19:50] * moritz has to wade through the whole thing [19:51] and doesn't have one either :( [19:52] *** havenn joined [19:52] jnthn: I don't think it goes through class LongName [19:53] 'cause the sub declaration parses the name as ? [19:53] Oh, the sub case... [19:53] and that one simply does a 'make ~$' if it's not an operator or anything special [19:53] which is probably wrong :-) [19:53] The class case works through longname, and should be handled by the logic in disect_longname [19:54] Of note, the elsif $_ { bit [19:54] ok, if I do that case first [19:55] I guess class LongName needs an evaluate_now method or so [19:55] Then type_name_parts is meant to Do The Right Thing if there's constant bits in there [19:55] I wonder if [19:55] if nqp::can($_, 'isa') && $_.isa(QAST::Node) { [19:55] replace that line with [19:55] nqp::istype($_, QAST::Node) [19:56] * moritz tries [19:56] The code looks to be there to handle it, but then it's not quite working. [19:56] oh, which reminds me of a discussion I wanted to have for some time now [19:57] we have several checks of the type if $something.has_compile_time_value { ... } else { die "OH NOEZ" } [19:57] should we simply evaluate the stuff at compile time? or should we continue to complain? [19:58] currently we don't constant-fold anything in those cases, so even pretty simple stuff dies [19:58] I think it wants to be done by some constant folding mechanism [19:58] so evaluating stuff at compile time would help [19:58] But the boundaries are...fuzzy [19:58] OTOH evaluating stuff might surprise the user, especially if variables are involved [19:59] Right [19:59] And I don't think we should just try and evaluate anything. [20:00] that's exactly what we do for 'constant' declarators, no? [20:00] *** havenn left [20:00] *** havenn joined [20:01] True [20:01] $ >./perl6 -e 'constant name = "A"; class ::(name) { }; say A' [20:01] QAST::WVal<-8315598784843782714>() [20:02] so it creates the type, but it gives it the wrong name :-) [20:02] ...but installs it under the correct name? [20:02] Oops. :) [20:02] niecza treats a lot of this as BEGIN block [20:02] jnthn: yes [20:02] moritz: See package_def. Then smack me the appropriate amount for whatever silliness I committed :) [20:03] (in Grammar.pm) [20:05] *** havenn left [20:05] jnthn: I kinda suspect it's LongName.name that is being stupid [20:05] jnthn: because it works with @!components, not self.type_name_parts [20:06] moritz: ah [20:06] Well, even better then, since that's a more general fix. :) [20:11] otoh scarier, because it affects more code [20:13] We have a test suite ;) [20:14] *** ingyfoo_ left [20:15] without the test suite I wouldn't dare to push 90% of my (non-doc) patches [20:17] *** awfabian left [20:17] rakudo/smoke-me/indirect-class-name: 957a680 | moritz++ | src/Perl6/World.pm: [20:17] rakudo/smoke-me/indirect-class-name: fix type declaration with indirect type name [20:17] rakudo/smoke-me/indirect-class-name: [20:17] rakudo/smoke-me/indirect-class-name: for example constant name = "A"; class ::(name) { } [20:17] rakudo/smoke-me/indirect-class-name: jnthn++ for steering me in the right direction [20:17] rakudo/smoke-me/indirect-class-name: review: https://github.com/rakudo/rakudo/commit/957a6806b9 [20:18] jnthn: CArray.WHAT tells me it is a CArray+{TypedCArray}(), how should my nativecall sub params look like? It complains when I use CArray, und vars like $a without a type [20:18] Did you try CArray[YourStructType] [20:18] (pushed to branch because I don't want to run roast on my laptop, when I have a server that can do it much quicker and without burning my lap :-) [20:21] jnthn: I tried now, but I still get: CStruct Can't perform boxed get on flattened attributes yet [20:22] That...seems to be more an issue with the CStruct than yoru array warpping of it [20:22] *wrapping [20:22] k [20:24] jnthn: for the sub ::(name) { }, I have the evil idea of passing $ to $*W.dissect_longname, since it has the same capature structure as longname [20:25] moritz: That's evil :) [20:25] But yes, it'd work :) [20:26] well, the alternative is to refactor LongName, or duplicate lots of its code :-) [20:26] Or add a disect_deflongname that just delegates to dissect_longname with a "it looks the same" comment. :) [20:26] that sounds less evil, yes [20:26] Wait a moment... [20:27] oh, grr, deflongname doesn't just delegate to longname [20:27] the only way that longname and deflongname differ is by some look-aheads, afaict [20:27] oh, because categoricals. [20:27] Anyway, what I suggested is probably do-able and means if they diverge in the future it's easy to cope somehow :) [20:29] * moritz tries [20:29] *** zby_home_ joined [20:31] dies while compiling the setting [20:32] do * and [ <.bar> ]* produce the same capture structure? [20:33] hm, might be an easy fix [20:33] it died with [20:33] get_iter() not implemented in class 'NQPMu' [20:34] which I guess comes from the for $name { } [20:34] good afternon, #perl6 [20:34] *** awfabian joined [20:34] good morning pmichaud :-) [20:35] o/ pmichaud [20:35] *** MayDaniel_ left [20:35] pmichaud: QAST stuffs merged! :) [20:35] jnthn: yes, I was looking at the commit log :) [20:36] I've guarded the loop with if $name { } [20:36] now I get [20:36] get_iter() not implemented in class 'NQPMatch' [20:36] for the same for-loop [20:36] *** kaare_ left [20:37] That means you got a single match somewhere you expected something quantified I guess... [20:37] token name { [ | * | + ] } [20:37] I can't see how $name can ever be a single Match [20:37] Hm. That should be quantified. [20:37] Right. [20:38] rakudo/nom: 957a680 | moritz++ | src/Perl6/World.pm: [20:38] rakudo/nom: fix type declaration with indirect type name [20:38] rakudo/nom: [20:38] rakudo/nom: for example constant name = "A"; class ::(name) { } [20:38] rakudo/nom: jnthn++ for steering me in the right direction [20:38] rakudo/nom: review: https://github.com/rakudo/rakudo/commit/957a6806b9 [20:40] FROGGS_: The Zavolaj test suite has an example of a function that takes an array of structs as an argument. t/05-arrays.{t,c} TakeAStructArray [20:40] *** benabik left [20:40] *** benabik joined [20:41] something is quite fishy with the deflongname dissecting here :( [20:41] OH MY [20:41] because I pass $ to it [20:41] which is an array [20:41] erm, RPA [20:42] oh! [20:43] arnholt: I got it right now! [20:43] That'd do it. [20:43] jnthn++ [20:43] because it's quantified with a ? [20:43] Yeah [20:43] * moritz wants that fixed :-) [20:43] We didn't adopt the updated updated updated spec on that yet :P [20:43] I didn't want to work on that too heavily while the toqast branch was in progress. [20:43] The ? quantifier doesn't wrap things in arrays anymore? [20:44] arnsholt: It does now, but the spec has gone back to wanting it not to. [20:44] Which means you now have to remember that the ? quantifier is the odd-one-out. [20:44] and put Nil in if it matched zero times [20:45] Right. [20:45] I guess in NQP that has to be an NQPMu. [20:45] * jnthn can't remember the reasoning for ? being different. [20:45] Right. I remember thinking it was weird and then realizing it wasn't all that weird anyways [20:46] jnthn: think of ? as being "matched/didn't match" and it makes more sense. [20:46] pmichaud: Yeah, I'd got used to quantifier imples array, though. :) [20:46] *implies [20:46] jnthn: yeah, I understand. :) [20:46] more like [ | ] [20:46] Anyway, I'll cope :) [20:47] I get a rakudo build failure when trying to build with parrot master. [20:47] aaarg [20:47] Oh? [20:47] my new thing now reads [20:47] $block.name($*W.disect_deflongname($[0]).name); [20:47] and that dies while compiling the setting [20:47] :<[ ]> cannot be resolved at compile time [20:47] for sub circumfix:<[ ]> [20:47] https://gist.github.com/3586825 [20:47] This is Parrot version 4.7.0-devel built for amd64-win32 [20:48] That's the one I've been bulding aginast. [20:48] pmichaud: urgh [20:49] pmichaud@kiwi:~/p6/rakudo$ install/bin/parrot_config git_describe [20:49] RELEASE_4_7_0-183-g9eab02c [20:49] I'll try just a plain '--gen-parrot' and see what happens. [20:50] OK [20:50] I think that's what I did [20:50] what version of parrot do you have? (git describe?) [20:51] RELEASE_4_7_0-165-g29796c6 [20:52] okay [20:52] so, not too much to bisect if it's a recent parrot change causing the issue [20:52] Aye [20:52] yeah, -165 is the one I'm building now. [20:54] * moritz postpones the routine case of ::(name) to tomorrow and goes to sleep [20:54] ~o~ [20:54] 'night, moritz [20:54] pmichaud: Yeah, looking at that error makes me want a bisect. [20:55] No hurry though. [20:56] I've been seeing lots of commits on the parrot side that make me a little uneasy, so we might not want to wait too long :) [20:56] if it goes too long, the bisecting might become harder :) [20:57] it looks as though -165 will build on my box [20:57] (i.e, I got farther than previously) [20:58] yeah, passing 'make test' [20:58] trying again with --gen-parrot=master [21:02] *** awfabian left [21:04] omg, that get_pointer patch made it in [21:04] *** zby_home_ left [21:05] huh, looks like gen-parrot=master is going to build also [21:05] oh? [21:05] so... not sure what happened earlier. [21:05] Huh. [21:06] I'll try once more from clean checkouts [21:06] jnthn: BTW, thanks for the advice reagarding 'use a contextual' earlier [21:07] These seem to do the trick: [21:07] 47 rule start_using { ['start' 'using' ] ? { $*ENDER := $ } } [21:07] 48 rule stop_using { [ 'stop' 'using' ]? ? { $*ENDER eq $ } } [21:13] *** replore joined [21:14] *** sftp left [21:14] *** SamuraiJack left [21:14] yeah, it built this time. not sure why I had the fail earlier. [21:14] oh, wait, I didn't build that part yet. checking [21:15] okay, it looks like it'll build. [21:15] mebbe some old files left around. [21:17] *** sftp joined [21:17] *** MayDaniel joined [21:22] *** awfabian joined [21:23] *** awfabian left [21:30] *** bruges left [21:32] *** awfabian joined [21:32] *** awfabian left [21:32] *** bruges joined [21:42] *** Moukeddar joined [21:43] *** Moukeddar left [22:01] morning, #perl6 [22:02] std: 1748dc5 | larry++ | STD.pm6: [22:02] std: check lexical before package name [22:02] std: [22:02] std: our $i; { my $i; { $i }} incorrectly did not mark usage of lexical $i, [22:02] std: resulting in spurious warning. [22:02] std: review: https://github.com/perl6/std/commit/1748dc5eb3 [22:02] std: b178d5b | larry++ | / (2 files): [22:02] std: suppress rest of "unused" warnings in viv [22:02] std: [22:02] std: Some of the warnings were bugs, and others were correct. [22:02] std: review: https://github.com/perl6/std/commit/b178d5b0ad [22:03] *** fgomez left [22:03] *** tokuhiro_ joined [22:04] o/ masak [22:07] *** tokuhiro_ left [22:07] *** tokuhiro_ joined [22:09] *** fgomez joined [22:11] *** jeffreykegler joined [22:15] *** xinming left [22:15] *** awfabian joined [22:17] *** xinming joined [22:17] *** MayDaniel left [22:23] parse [22:25] *** fgomez left [22:36] *** awfabian left [22:39] *** replore left [22:39] *** fgomez joined [22:44] *** replore joined [22:50] *** Targen_ joined [22:50] *** Targen left [23:00] *** fgomez left [23:01] *** yarp joined [23:01] *** immortal left [23:03] MikeFair: CHECK FAILED: Undefined routine '&parse' called (line 1) [23:03] masak: heh! :) [23:04] That was a result of PASTEFAIL [23:04] :) [23:05] *** erkan joined [23:05] *** erkan left [23:05] *** erkan joined [23:05] *** replore left [23:07] r: class A { has $!a; submethod BUILD($a) {} }; A.new(1) [23:07] rakudo 957a68: OUTPUT«Default constructor only takes named arguments␤ in method new at src/gen/CORE.setting:618␤ in block at /tmp/dy5Ts3sevU:1␤␤» [23:07] what if I want to use positional arguments in the constructor? [23:09] *** fgomez joined [23:10] *** replore joined [23:10] *** telex_ left [23:12] *** telex joined [23:13] *** fgomez left [23:14] S12:791 "You may write your own C to override the default". Apparently here is the answer [23:14] aye. [23:15] you can give .new positional parameters, and some of the core classes do. [23:15] it's a bit of a coin with two sides. [23:15] *** fgomez joined [23:15] in the test, new.t has examples [23:16] you get a custom interface. that can be both useful and confusing. [23:16] I want to mimic existing interfaces [23:18] method new($a, $b) { self.Mu::new(:x($a), :y($b)); } # sounds like what I want [23:20] *** fgomez left [23:21] *** popl joined [23:25] no need to delegate to Mu::new (which isn't an 'our' method anyway, so you can't do it with that syntax) [23:25] just call self.bless directly from your .new method [23:26] *** replore left [23:26] *** yarp left [23:27] *** Circlepuller joined [23:27] *** yarp joined [23:29] *** Circlepuller_ left [23:29] r: 1 .. 5 [23:29] rakudo 957a68: ( no output ) [23:29] r: say 1 .. 5 [23:29] rakudo 957a68: OUTPUT«1..5␤» [23:30] r: say (1..5).list [23:30] rakudo 957a68: OUTPUT«1 2 3 4 5␤» [23:33] I am beginer. [23:35] welcome, beginner. [23:36] we are friendly. we happily answer your questions. [23:36] r: .say for 1..5 [23:36] rakudo 957a68: OUTPUT«1␤2␤3␤4␤5␤» [23:36] r: .say for reverse 1..5 [23:36] rakudo 957a68: OUTPUT«5␤4␤3␤2␤1␤» [23:36] r: .say for 1..5 Z (10,20 ... 50) [23:36] rakudo 957a68: OUTPUT«1␤10␤2␤20␤3␤30␤4␤40␤5␤50␤» [23:37] *** jeffreykegler left [23:38] Thanks [23:39] r: for 'a'..'b' X 1..5 -> $l, $d { say "$l$d" } [23:39] rakudo 957a68: OUTPUT«a1␤a2␤a3␤a4␤a5␤b1␤b2␤b3␤b4␤b5␤» [23:40] r: .say for 0, 0.1 ... 1.0 [23:40] rakudo 957a68: OUTPUT«0␤0.1␤0.2␤0.3␤0.4␤0.5␤0.6␤0.7␤0.8␤0.9␤1␤» [23:40] r: .say for "bbc".."bbw" [23:40] rakudo 957a68: OUTPUT«bbc␤bbd␤bbe␤bbf␤bbg␤bbh␤bbi␤bbj␤bbk␤bbl␤bbm␤bbn␤bbo␤bbp␤bbq␤bbr␤bbs␤bbt␤bbu␤bbv␤bbw␤» [23:46] *** _jaldhar left [23:46] *** colomon joined [23:53] 'night, #perl6 [23:54] \o [23:56] *** _jaldhar joined