[00:10] *** pbuetow joined [00:16] *** |jedai| left [00:17] *** |jedai| joined [00:17] *** Matt-W left [00:19] *** shinobi-cl_ joined [00:20] *** kanru joined [00:20] hi [00:26] r25138 | particle++ | [spec] spelling, grammar, and other clarifications; TimToady++ [00:29] *** kanru left [00:37] *** ejs joined [00:47] *** mabes_away joined [00:47] *** mabes_away left [00:52] *** kanru joined [00:52] *** jferrero left [00:57] *** alexn_org joined [01:23] *** khatar left [01:29] *** khatar joined [01:29] *** wknight8111 joined [01:34] *** alexn_org left [01:40] how do u call the ^ symbol when used to specify a protomethod (or is metamethod?) [01:44] example, role Fly {} : class Bird does Fly {}; my Bird $B .= new; say $B.^does(Fly); [01:49] *** ejs left [02:10] *** pbuetow left [02:11] *** jhuni left [02:25] shinobi-cl_: I'd call it the meta arrow or the how arrow [02:42] *** hercynium joined [02:54] or the MOP arrow if you want to be cute [02:56] 'course, if you're naming it, you could call it the 忍び arrow [03:00] I just need to know the name in case i make an article on my wiki :), meta arrow sounds fine, i think i?ll name it that way [03:01] *** stephenlb joined [03:03] perl6: sub Test (Int +$x = 100, Int +$y = 50) { say $x + $y; } &Test(100, 100); [03:04] rakudo 36222: OUTPUT«Unable to parse multisig; couldn't find final ')' at line 1, near "+$x = 100,"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [03:04] ..pugs: OUTPUT«*** ␤ Unexpected "Int"␤ expecting "|", ":", "*", parameter name or ")"␤ at /tmp/uaQfsDyuz8 line 1, column 11␤» [03:04] ..elf 25138: OUTPUT«Parse error in: /tmp/ze5bsnkFZI␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: sub Test (Int +$x = 100, Int +␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤ [03:04] ..STD_r... [03:04] std: sub Test (Int +$x = 100, Int +$y = 50) { say $x + $y; } &Test(100, 100); [03:04] *** wknight8111 left [03:04] std 25138: OUTPUT«############# PARSE FAILED #############␤Unable to parse multisig; couldn't find final ')' at /tmp/AzfiK7tdk4 line 1:␤------> sub Test (Int +$x = 100, Int +$y = 50) { say $x + $y; ␤ expecting any of:␤ param_sep␤ parameter␤ post_constraint␤ trait␤ [03:04] .. type_constraint␤... [03:04] std: sub Test (Int $x = 100, Int $y = 50) { say $x + $y; } &Test(100, 100); [03:04] std 25138: OUTPUT«00:02 35m␤» [03:05] are named parameters implemented yet? [03:05] std: sub Test (Int $x = 100, Int $y = 50) { say $x + $y; } &Test(x => 100, y => 100); [03:05] std 25138: OUTPUT«00:02 35m␤» [03:05] i mean, "force named parameter"? [03:07] nevermind, just found it [03:09] std: sub Test (Int $x = 100, Int $y = x | 50) { say $x + $y; } &Test(x => 100); [03:09] std 25138: OUTPUT«Undeclared routine:␤ x used at 1 ␤00:02 35m␤» [03:10] std: sub Test (Int $x = 100, Int $y = (x | 50)) { say $x + $y; } &Test(x => 100); [03:10] std 25138: OUTPUT«Undeclared routine:␤ x used at 1 ␤00:02 35m␤» [03:10] std: sub Test (Int $x = 100, Int $y = (x or 50)) { say $x + $y; } &Test(x => 100); [03:10] std 25138: OUTPUT«Undeclared routines:␤ or used at 1 ␤ x used at 1 ␤00:02 34m␤» [03:10] std: sub Test (Int $x = 100, Int $y = ($x or 50)) { say $x + $y; } &Test(x => 100); [03:10] std 25138: OUTPUT«00:02 34m␤» [03:10] rakudo: sub Test (Int $x = 100, Int $y = ($x or 50)) { say $x + $y; } &Test(x => 100); [03:10] rakudo 36222: OUTPUT«FixedIntegerArray: index out of bounds!␤current instr.: 'Test' pc 95 (EVAL_16:51)␤» [03:11] rakudo: sub Test (Int $x = 100, Int $y = $x) { say $x + $y; } &Test(x => 100); [03:11] rakudo 36222: OUTPUT«FixedIntegerArray: index out of bounds!␤current instr.: 'Test' pc 95 (EVAL_16:51)␤» [03:11] pugs: sub Test (Int $x = 100, Int $y = $x) { say $x + $y; } &Test(x => 100); [03:11] pugs: OUTPUT«*** Undeclared variable: ("$x",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = , pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = }),("@_",PELexical {pe_type = (mkType "Array"), pe_proto = , ... [03:13] I don't think &Test is parsing the way you think it is [03:13] at least with STD, that would be parsed as infix:<&> [03:14] pugs: sub Test (Int $x = 100, Int $y = $x) { say $x + $y; } Test(x => 100); [03:14] pugs: OUTPUT«*** Undeclared variable: ("$x",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = , pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = }),("@_",PELexical {pe_type = (mkType "Array"), pe_proto = , ... [03:14] pugs: sub Test (Int $x = 100, Int $y = 100) { say $x + $y; } Test(x => 100); [03:14] pugs: OUTPUT«200␤» [03:14] it should also be requiring a ; after the } [03:14] std: sub Test (Int $x = 100, Int $y = $x) { say $x + $y; } Test(x => 100); [03:14] std 25138: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/phLTHXmrLY line 1:␤------> $x = 100, Int $y = $x) { say $x + $y; } Test(x => 100);␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement [03:14] ..modifier loo... [03:15] two terms in a row [03:15] std: sub Test (Int $x = 100, Int $y = $x) { say $x + $y; }; Test(x => 100); [03:15] yes, the sub def is one term and Test() is the other [03:15] std 25138: OUTPUT«00:02 34m␤» [03:15] rakudo: sub Test (Int $x = 100, Int $y = $x) { say $x + $y; }; Test(x => 100); [03:15] rakudo 36222: OUTPUT«FixedIntegerArray: index out of bounds!␤current instr.: 'Test' pc 78 (EVAL_16:48)␤» [03:15] that's obviously a different problem... [03:16] aoh, yes :D. Thats the problem i currently have [03:17] i want to pass initial_Health, and Health to a method. If health is not defined, it should fall back to initial_health [03:17] well, it should at least in my opinion :D [03:18] i think i?ll just go the "if !defined" way [03:21] std: sub Test (Int $x = 100, Int ?$y) { $y = $x if !defined $y; say $x + $y; }; Test(x => 100); [03:21] std 25138: OUTPUT«############# PARSE FAILED #############␤Can't put required parameter after optional parameters at /tmp/LRqT4XHvE6 line 1:␤------> sub Test (Int $x = 100, Int ?$y) { $y = $x if !defined $y; say $x + ␤ expecting any of:␤ parameter␤ post_constraint␤ trait␤ [03:21] ..type_con... [03:22] std: sub Test (Int $x = 100, Int ?$y) { $y = $x if !(defined $y); say $x + $y; }; Test(x => 100); [03:22] std 25138: OUTPUT«############# PARSE FAILED #############␤Can't put required parameter after optional parameters at /tmp/E6K5w2E7M8 line 1:␤------> sub Test (Int $x = 100, Int ?$y) { $y = $x if !(defined $y); say $x ␤ expecting any of:␤ parameter␤ post_constraint␤ trait␤ [03:22] ..type_con... [03:23] std: sub Test (Int $x, Int ?$y) { $y = $x if !(defined $y); say $x + $y; }; Test(x => 100); [03:23] std 25138: OUTPUT«############# PARSE FAILED #############␤Unable to parse multisig; couldn't find final ')' at /tmp/R92cvFT2mO line 1:␤------> sub Test (Int $x, Int ?$y) { $y = $x if !(defined $y); say $x ␤ expecting any of:␤ param_sep␤ parameter␤ post_constraint␤ [03:23] .. trait␤ type_con... [03:26] *** ihrd joined [03:27] std: sub Test (Int $x, Int ?$y) { $y = $x if (!defined $y); say $x + $y; }; Test(x => 100); [03:27] std 25138: OUTPUT«############# PARSE FAILED #############␤Unable to parse multisig; couldn't find final ')' at /tmp/ldsPY59VEh line 1:␤------> sub Test (Int $x, Int ?$y) { $y = $x if (!defined $y); say $x ␤ expecting any of:␤ param_sep␤ parameter␤ post_constraint␤ [03:27] .. trait␤ type_con... [03:28] std: sub Test (Int $x, Int ?$y) { if (!defined $y){my $y = $x; }; say $x + $y; }; Test(x => 100); [03:28] std: sub Test (Int $x = 100, Int $y?) {...} [03:28] std 25138: OUTPUT«############# PARSE FAILED #############␤Unable to parse multisig; couldn't find final ')' at /tmp/rCGgRcfaNe line 1:␤------> sub Test (Int $x, Int ?$y) { if (!defined $y){my $y = $x; }; ␤ expecting any of:␤ param_sep␤ parameter␤ post_constraint␤ [03:28] .. trait␤ type_con... [03:28] std 25138: OUTPUT«00:02 33m␤» [03:28] your ? is in the wrong place [03:29] ahh i see.. Im reading an old version of a perl6 book... in it the ? was at the beggining [03:29] std: sub Test (Int $x, Int $y?) { if (!defined $y){my $y = $x; }; say $x + $y; }; Test(x => 100); [03:29] std 25138: OUTPUT«Undeclared routine:␤ if used at 1 ␤00:03 35m␤» [03:30] since ? and =100 both make optional, they both come at the end [03:30] yes, that makes more sense [03:30] and trailing ! marks as mandatory [03:30] the std was giving a misleading error message [03:30] s/the/though/ [03:31] std: sub Test (Int $x = 100, Int $y+) {...} [03:31] std 25138: OUTPUT«############# PARSE FAILED #############␤Can't put required parameter after optional parameters at /tmp/3A90evO1ff line 1:␤------> sub Test (Int $x = 100, Int $y+) {...}␤ expecting any of:␤ parameter␤ post_constraint␤ trait␤ whitespace␤00:02 33m␤» [03:31] there is no plus [03:31] for forcing named parameter? [03:32] std: sub Test (Int $x = 100, Int :$y!) {...} [03:32] std 25138: OUTPUT«############# PARSE FAILED #############␤Can't put required parameter after optional parameters at /tmp/7mCgQCja2w line 1:␤------> sub Test (Int $x = 100, Int :$y!) {...}␤ expecting any of:␤ post_constraint␤ trait␤ whitespace␤00:02 33m␤» [03:32] heh [03:32] std: sub Test (Int $x, Int $y!) {...} [03:32] probably should allow named required anywhere [03:32] std 25138: OUTPUT«00:02 33m␤» [03:32] std: sub Test (Int $x, Int :$y!) {...} [03:33] std 25138: OUTPUT«00:02 33m␤» [03:33] okay, that's a bug in std [03:33] required named should count as being in the positional zone [03:33] *shouldn't [03:33] I'll fix that, but dinner first & [03:33] mmm, complicated... i think i'll reread some synopses now.. [03:42] rakudo: sub RestartVCR(Str $Clock="12:00") { say 'VCR Clock shows:' ~ $Clock; }; RestartVCR; RestartVCR("15:20"); [03:42] rakudo 36225: OUTPUT«VCR Clock shows:12:00␤VCR Clock shows:15:20␤» [03:55] *** Casan joined [03:56] r25139 | lwall++ | [STD] don't treat sub Test (Int $x = 100, Int :$y!) {...} as zone violation [04:08] std: sub Test (Int $x, Int :$y!) {...} [04:08] std 25139: OUTPUT«00:02 33m␤» [04:11] *** |jedai| left [04:11] *** |jedai| joined [04:17] *** shinobi-cl_ left [04:29] *** shinobi-cl_ joined [04:36] *** |jedai| left [04:37] *** |jedai| joined [04:44] *** shinobi-cl_ left [04:44] *** shinobi-cl_ joined [04:51] *** alester joined [05:01] *** |jedai| left [05:02] *** |jedai| joined [05:07] *** finanalyst left [05:09] std:sub Test(*@numbers){ my Int $result = 0; for @_ -> $value {$result+=$value}; return $result; }; say Test (1,2,3); [05:09] std: sub Test(*@numbers){ my Int $result = 0; for @_ -> $value {$result+=$value}; return $result; }; say Test (1,2,3); [05:09] std 25139: OUTPUT«00:02 35m␤» [05:09] rakudo: sub Test(*@numbers){ my Int $result = 0; for @_ -> $value {$result+=$value}; return $result; }; say Test (1,2,3); [05:09] rakudo 36227: OUTPUT«invalid arg type in named portion of args␤current instr.: 'Test' pc 113 (EVAL_16:54)␤» [05:09] pugs: sub Test(*@numbers){ my Int $result = 0; for @_ -> $value {$result+=$value}; return $result; }; say Test (1,2,3); [05:09] pugs: OUTPUT«0␤» [05:10] pugs: sub Test(*@numbers){ for @_ -> $value {say $value;}}; say Test (1,2,3); [05:10] pugs: OUTPUT«␤␤» [05:10] rakudo: sub Test(*@numbers){ for @_ -> $value {say $value;}}; say Test (1,2,3); [05:10] rakudo 36227: OUTPUT«invalid arg type in named portion of args␤current instr.: 'Test' pc 113 (EVAL_16:54)␤» [05:11] std: sub Test(Int *@numbers){ for @_ -> Int $value {say $value;}}; say Test (1,2,3); [05:11] std 25139: OUTPUT«00:02 35m␤» [05:12] std: sub Test(Int *@numbers, Int $x = 0){ for @_ -> Int $value {say $value;}}; say Test (1,2,3); [05:12] std 25139: OUTPUT«############# PARSE FAILED #############␤Can't put optional positional parameter after variadic parameters at /tmp/qgFah4uesD line 1:␤------> sub Test(Int *@numbers, Int $x = 0){ for @_ -> Int $value {say $value;}}; ␤ expecting any of:␤ standard stopper␤ [05:12] ..terminat... [05:12] std: sub Test(Int $x = 0, Int *@numbers ){ for @_ -> Int $value {say $value;}}; say Test (1,2,3); [05:12] std 25139: OUTPUT«00:02 35m␤» [05:13] rakudo: sub Test(Int $x = 0, Int *@numbers ){ for @_ -> Int $value {say $value;}}; Test (1,2,3); [05:13] rakudo 36227: OUTPUT«invalid arg type in named portion of args␤current instr.: 'Test' pc 102 (EVAL_16:53)␤» [05:13] pugs: sub Test(Int $x = 0, Int *@numbers ){ for @_ -> Int $value {say $value;}}; Test (1,2,3); [05:13] pugs: OUTPUT«␤» [05:24] std: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; Just_A_Test(x => 1, y=>2, z=>3); [05:24] std 25139: OUTPUT«00:02 35m␤» [05:24] rakudo: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; Just_A_Test(x => 1, y=>2, z=>3); [05:24] rakudo 36228: OUTPUT«too many named arguments - 'x' not expected␤current instr.: 'Just_A_Test' pc 94 (EVAL_16:52)␤» [05:24] pugs: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; Just_A_Test(x => 1, y=>2, z=>3); [05:24] pugs: OUTPUT«Result: 9␤» [05:26] pugs: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; Just_A_Test(z=>3, x=>1, y=>2); [05:26] pugs: OUTPUT«Result: 9␤» [05:28] *** mtnviewmark joined [05:30] pugs: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; Just_A_Test(:z(3), :x(1), :y(2)); [05:30] pugs: OUTPUT«Result: 9␤» [05:35] pugs: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; Just_A_Test(:y(2), :x(1), 3); [05:35] pugs: OUTPUT«Result: 9␤» [05:35] pugs: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; Just_A_Test(3, :y(2), :x(1)); [05:35] pugs: OUTPUT«Result: 9␤» [05:42] *** ihrd left [05:44] @TimToady: so - if not :bool -- or :truthy --- how 'bout :testable [05:45] *** |jedai| left [05:45] too general [05:45] okay , we'll I'm happy with :truthy [05:45] or :iffy [05:45] *** |jedai| joined [05:46] also - I have .panic messages that I think are, well, too dry: [05:46] :iffy is shorter and (possibly) funnier [05:46] Can't cross a non-value operator [05:46] would you rather I put the operator name in there ($ I think() [05:47] I think that's likelier to be meaningful to the user [05:48] okay, will do [05:48] can't cross a mumble operator because it's not a pure value [05:48] or some such [05:48] last thing [05:48] did you want [=] $a, $b, 3 to work? [05:49] but not [:=] or [::=] (surely) [05:49] std: sub Test(Int $x = 0, Int *@numbers ){ for @_ -> Int $value {say $value;}}; Test (1,2,3,4,5,6); [05:49] don't really care, though we'd certainly have to force it to item, I think [05:49] std 25139: OUTPUT«00:02 35m␤» [05:49] there's a unit test for it [05:49] *** eternaleye_ joined [05:49] pugs: sub Test(Int $x = 0, Int *@numbers ){ for @_ -> Int $value {say $value;}}; Test (1,2,3,4,5,6); [05:49] pugs: OUTPUT«␤» [05:49] seems a bit odd to need to alias a bunch of things at once [05:49] *** eternaleye left [05:50] aliases being a bit evil in the first place... [05:50] would [=] $a, $b, $c, 5 be a shift of values? as things are left to right with reduce? [05:50] but the = one is strange [05:50] insofar as it needs lvalues in all but last [05:50] so I don't think we need to support it [05:50] okay - so I'll remove the unit tests for those as well [05:51] or at least comment them out [05:51] it's rather un-iso in that respect [05:51] pugs: sub Test(Int *@numbers ){ for @_ -> Int $value {say $value;}}; Test (1,2,3,4,5,6); [05:51] pugs: OUTPUT«␤» [05:51] and => is iso in the sense of not caring what is on the left or right [05:51] yes, it's use seems more like a programming puzzle than a clear intention [05:51] so bias against [05:51] sure - I've got => covered now (running testspec.....) [05:52] 'preciate the fresh eyes [05:52] most welcome -- now if we could only come up with a better term than :value [05:53] well, really more like rvalue, but that's worse [05:54] :normal [05:54] heh [05:54] :unadulterated [05:54] :smooth_not_thunky [05:54] :pure [05:54] unfortunately rather overloaded culturally [05:55] (Mac OS X builtin thesaurus to the resuce) [05:55] smooth also has the funny reference to a 80s hit song: "Smooth Operator" [05:55] :plain [05:56] well there ya go - I buy :plain -- unless you like the humor of :smooth ..... [05:56] rather too obscure, I fear [05:57] 'course, the opposite of :plain is :peanut [05:57] (though I can imagine the exchange "What the heck is a smooth operator?" "It's smooth, not thunky!" getting pretty stale) [05:57] and you didn't find a way to make those adverbs of mm? [05:57] open, guileless, transparent... [05:57] mm:plain/foo/ mm:peanut/foo/ [05:59] explicit, calm, clean [05:59] direct [06:00] right, ortho [06:00] hmmm... :ortho and :iso [06:01] and para and meta... [06:01] but chemistry is probably too far afield [06:01] pure is probably fine, given its FP connotations [06:02] std: sub Just_A_Test (*@params) { say $_ for @_; } Just_A_Test(1,2,3,4); [06:02] std 25139: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/236RHa5yUX line 1:␤------> st_A_Test (*@params) { say $_ for @_; } Just_A_Test(1,2,3,4);␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ [06:02] ..statement modifi... [06:03] let's see -- of all these.... :norm :plain :pure [06:03] std: sub Just_A_Test (*@params) { say $_ for @_; }; Just_A_Test(1,2,3,4); [06:03] basically, anything constant fold could fold [06:03] std 25139: OUTPUT«00:02 34m␤» [06:03] so we could even mark them :fold [06:03] :spindle, :mutilate... [06:03] rakudo: sub Just_A_Test (*@params) { say $_ for @_; }; Just_A_Test(1,2,3,4); [06:03] rakudo 36228: OUTPUT«invalid arg type in named portion of args␤current instr.: 'Just_A_Test' pc 98 (EVAL_16:54)␤» [06:04] pugs: sub Just_A_Test (*@params) { say $_ for @_; }; Just_A_Test(1,2,3,4); [06:04] pugs: OUTPUT«␤» [06:04] well, are foldable operators the :iso set? [06:04] I don't mean fold in the FP sense [06:05] in the compiler sense of constant folding [06:05] which doesn't care about types [06:05] only about purity [06:05] oh - you mean in the collapse at compile time sense [06:05] yes [06:05] right - so...oh? :eval [06:06] (of course evaluate... just brings us back to :value!) [06:06] :value is okay, just kinda pedestrian [06:07] *** shinobi-cl_ left [06:08] *** shinobi-cl_ joined [06:09] really more like idempotent [06:09] since $x op $y isn't, in fact a value until evaluated [06:09] :idem [06:11] but argubably thunks are idempotent too, so that's not quite right either [06:12] :direct [06:12] as in, to the point! [06:12] I had that one earlier [06:13] as in not indirect, which is the main point [06:13] so - that seems better than :value to me [06:13] good enough for now [06:13] sold to the man with two Ts [06:14] 'course, maybe we should be marking the ones that are indirect instead... [06:15] and the ones that aren't iso... [06:15] *** ihrd joined [06:15] dunno, brain is working well enough any more [06:15] std: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); } my %Params = { x => 1, y => 2, z => 3 } Just_A_Test(*%Params); [06:15] std 25139: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/CLQq0wqoo9 line 1:␤------> ) { say 'Result: ' ~ $x + ($y ** $z); } my %Params = { x => 1, y => 2, z => 3 } ␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard [06:15] ..stoppe... [06:15] std: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; my %Params = { x => 1, y => 2, z => 3 }; Just_A_Test(*%Params); [06:16] std 25139: OUTPUT«Undeclared type:␤ Params used at 1 ␤00:02 35m␤» [06:16] std: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; my %Params = { x => 1, y => 2, z => 3 }; Just_A_Test(%Params); [06:16] std 25139: OUTPUT«00:02 35m␤» [06:16] pugs: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; my %Params = { x => 1, y => 2, z => 3 }; Just_A_Test(%Params); [06:16] pugs: OUTPUT«*** No compatible multi variant found: "&Just_A_Test"␤ at /tmp/3GVytcBkBC line 1, column 122-142␤» [06:16] ah, it parsed as * % Params :) [06:17] *** Sepheebear joined [06:21] rakudo: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; my %Params = { x => 1, y => 2, z => 3 }; Just_A_Test(%Params); [06:21] rakudo 36230: OUTPUT«too few arguments passed (1) - 3 params expected␤current instr.: 'Just_A_Test' pc 166 (EVAL_16:61)␤» [06:22] rakudo: sub Just_A_Test (Int $x, Int $y, Int $z) { say 'Result: ' ~ $x + ($y ** $z); }; my %Params = { x => 1, y => 2, z => 3 }; Just_A_Test(|%Params); [06:22] rakudo 36230: OUTPUT«argument doesn't array␤current instr.: 'Just_A_Test' pc 166 (EVAL_16:61)␤» [06:22] argument doesn't array? who wrote that error message? [06:26] s/brain is working/brain is (obviously) not working/ [06:31] it is 'normal' for t/spec//S02-literals/string-interpolation.t to fail to parse -- right? [06:31] "Potential difficulties: [06:31] Leading 0 does not indicate octal ..." [06:32] I'm pretty sure I didn't introduce that [06:33] If I had an 8 core machine, I'd parallelize teststd.... [06:36] yes, that's normal [06:36] also teh .= 'foo' warnings [06:36] and a bunch of malformed unicode [06:37] I suppose I should write up how I got all this to work on my Mac.... [06:37] since the README still says that you can't [06:37] well, it's try, I can't :) [06:37] *true [06:38] it's re::engine::TRE [06:38] it has something bad in it's config -- so it issues the wrong link statement on a Mac [06:39] no, I just don't have a mac [06:39] ha ha! [06:39] but corrections welcome [06:39] I'll try to isolate it to a repro case [06:40] *** finanalyst joined [06:41] std: my %hash = { a_key => 'a_value', cats => 4, :pigs(6) } for (%hash.kv) -> ($key, $value) { say $key ~ ' : ' ~ $value; } [06:41] std 25139: OUTPUT«00:02 35m␤» [06:41] pugs: my %hash = { a_key => 'a_value', cats => 4, :pigs(6) } for (%hash.kv) -> ($key, $value) { say $key ~ ' : ' ~ $value; } [06:41] pugs: OUTPUT«*** ␤ Unexpected "->"␤ expecting operator␤ at /tmp/BMJy4ql66F line 1, column 71␤» [06:42] rakudo: my %hash = { a_key => 'a_value', cats => 4, :pigs(6) } for (%hash.kv) -> ($key, $value) { say $key ~ ' : ' ~ $value; } [06:42] rakudo 36230: OUTPUT«Statement not terminated properly at line 1, near "-> ($key, "␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [06:42] need ; [06:42] rakudo: my %hash = { a_key => 'a_value', cats => 4, :pigs(6) }; for (%hash.kv) -> ($key, $value) { say $key ~ ' : ' ~ $value; } [06:42] rakudo 36230: OUTPUT«Statement not terminated properly at line 1, near "-> ($key, "␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [06:42] rakudo: my %hash = { a_key => 'a_value', cats => 4, :pigs(6) }; for (%hash.kv) -> ($key, $value) { say $key ~ ' : ' ~ $value; }; [06:42] rakudo 36230: OUTPUT«Statement not terminated properly at line 1, near "-> ($key, "␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [06:44] there aren't supposed to be () on -> parameters [06:44] rakudo: my %hash = { a_key => 'a_value', cats => 4, :pigs(6) }; for (%hash.kv) -> $key, $value { say $key ~ ' : ' ~ $value; }; [06:44] rakudo 36230: OUTPUT«a_key : a_value␤cats : 4␤pigs : 6␤» [06:44] hehe, thanks [06:45] it's legal syntax, but means to bind a single arg to the subsignature [06:46] also a little surprised that std parsed it without a semi, so it probably parsed it some other way [06:55] r25140 | mtnviewmark++ | [STD,t] normalized how the metaops decided what they can be applied to [06:55] r25140 | mtnviewmark++ | removed tests that used [=], since that is no longer a legal reduction [06:55] woot - my first commit! [06:56] if you want, it should now be easy to switch from :direct to :indirect and :iso to :noniso -- perhaps when my head isn't so stuffy [07:03] we can let it sit a bit and see how it looks in a day or two [07:03] eggsellent [07:05] as for the std misparse, it succeeds through overagressive backtracking, so maybe I'll work on that soon so it's more of a predictive parser [07:05] er - was that idrected at me or at shinobi? [07:06] shinobi [07:06] but mostly just to the world at large :) [07:10] well, I'm falling asleep, so I'd better continue to do that. [07:10] zzz & [07:12] *** TheOrz joined [07:27] *** justatheory left [07:31] *** mtnviewmark left [07:32] *** kanru left [07:33] *** DemoFreak joined [07:50] *** jhuni joined [08:03] *** alester left [08:10] *** meppl joined [08:28] *** jhuni left [08:32] *** iblechbot joined [08:50] *** maerzhase joined [08:59] *** iblechbot left [09:04] *** vixey joined [09:10] *** iblechbot joined [09:10] *** masak joined [09:34] *** Matt-W joined [10:04] *** finanalyst left [10:05] *** ejs joined [10:18] *** TheOrz left [10:21] *** aindilis` left [10:36] *** masak left [10:37] *** barney joined [10:38] *** ihrd left [11:05] rakudo: "abcdefg" ~~ m/@=(.)+/; say $/.elems [11:05] rakudo 36242: OUTPUT«Statement not terminated properly at line 1, near "=(.)+/; sa"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [11:05] rakudo: "abcdefg" ~~ m/$=(.)+/; say $/.elems [11:05] rakudo 36242: OUTPUT«7␤» [11:07] rakudo: "abcdefg" ~~ m/$=[.]+/; say $/.elems [11:07] rakudo 36242: OUTPUT«0␤» [11:10] r25141 | moritz++ | [t] in array_cap.t, use capturing parenthesis if we want to capture something [11:10] r25142 | moritz++ | [t] mvoe array_cap to spec/ [11:14] r25143 | moritz++ | [t] clean up subrule.t [11:15] r25144 | moritz++ | [t] moved subrule.t to spec/ [11:19] r25145 | moritz++ | [t] clean up prior.t a bit [11:19] is the rule the same as matching against ~$/ ? [11:19] ie a literal match? [11:20] if so, prior.t has that wrong [11:20] it seems to thing is "match with the last succeessful regex" [11:23] r25146 | moritz++ | [t] prior.t: syntactic cleanup [11:23] if somebody says "yes, you're right" I'll re-write the tests according to my current understanding [11:26] *** masak joined [11:27] *** ejs left [11:30] r25147 | moritz++ | [t] small cleanup in regex test [11:54] *** barney left [11:55] *** jan_ joined [12:07] *** M_o_C joined [12:07] r25148 | moritz++ | [t] move named_cap.t to spec/, cleaned up a bit [12:10] r25149 | moritz++ | [t] move attributes/defaults.t to spec/ [12:13] *** kanru joined [12:17] r25150 | moritz++ | [t] remove a duplicate test [12:17] r25150 | moritz++ | (one remains in spec/S06-signature/named-parameters.t) [12:19] *** barney joined [12:21] r25151 | moritz++ | [t] merged is_copy_ne_is_rw.t into is-copy.t [12:25] r25152 | moritz++ | [t] cleaned up some tests in xx-uncategorized, moved one to spec/integration [12:29] r25153 | moritz++ | [t] cleaned up attributes/recursive.t and moved to spec/ [12:32] r25154 | moritz++ | [t/spec] fix plan in recursive.t, fudge for rakudo [12:35] *** kanru left [12:40] *** finanalyst joined [12:40] *** Tene_ joined [12:48] *** kanru joined [12:52] *** Tene left [13:06] *** szabgab_ joined [13:15] *** ayrnieu joined [13:16] *** TheOrz joined [13:24] *** Whiteknight joined [13:26] *** |jedai| left [13:27] *** |jedai| joined [13:27] *** pmurias joined [13:46] *** gravity joined [13:48] *** barney left [13:48] *** pmurias left [13:53] *** ejs joined [14:02] *** jan_ left [14:08] hi. Has anyone tried to get rakudo from git. I just installed git, cloned the repository, but perl Configure.pl gives an error [14:09] any suggestions whats wrong? [14:10] finanalyst: you need to put the rakudo directory in parrot/languages [14:10] the README has not yet been updated to reflect this [14:10] ok. as rakudo not perl6? [14:11] otherwise a refresh would clobber the git repository. no? [14:12] finanalyst: probably. [14:12] there would be more of a mess, in any case. [14:18] moving a check-out git repo to a different location is no problem [14:20] *** Limbic_Region joined [14:22] that was easy, but i found i had to delete the svn parrot local copy and do another checkout. so now reconfiguring and making parrot [14:23] any reason parrot uses svn and rakudo git? [14:24] yes [14:25] parrot preferes svn, rakudo prefers git ;-) [14:26] it took a day for me to read enough about git to get a clone, but then it was easy. Nice video tutorial at git-hub [14:26] *** mberends joined [14:27] but rakudo is not listed at git-hub as a project. [14:27] is this because its just moved, or because rakudo is private? [14:28] what is http://github.com/rakudo/rakudo/tree/master if not a project? [14:28] but i found that link in the #perl6 logs [14:28] http://github.com/search?q=rakudo&type=Everything&repo=&langOverride=&start_value=1 also finds rakudo [14:29] ??? i thought i tried a search [14:29] gone to check again [14:30] *** |jedai| left [14:31] ]/j #JAPANESE [14:31] oops sorry [14:31] *** |jedai| joined [14:31] home-made hamburgers! & [14:31] *** masak left [14:40] *** finanalyst1 joined [14:40] *** finanalyst left [14:47] *** finanalyst joined [14:47] *** finanalyst1 left [15:00] *** vixey left [15:00] *** vixey joined [15:08] *** jan_ joined [15:12] *** pmurias joined [15:17] r25155 | pmurias++ | [smop] added infix:<+>,infix:<->,infix:<==> methods to int [15:17] r25155 | pmurias++ | the &?ROUTINE and &?BLOCK circular reference is broken sometimes [15:17] r25155 | pmurias++ | added True and False to the prelude [15:17] r25155 | pmurias++ | add mildew/t/int.t [15:21] *** timebomb joined [15:35] *** alc joined [15:37] *** finanalyst left [15:38] *** finanalyst joined [15:43] *** aindilis joined [15:44] *** kanru left [15:45] *** Tene joined [15:46] *** kanru joined [15:52] *** TheOrz left [15:55] *** finanalyst left [15:59] *** Tene_ left [16:05] *** masak joined [16:10] *** alc left [16:14] *** pmurias left [16:15] *** finanalyst joined [16:20] *** vixey left [16:24] *** aindilis left [16:25] *** AzureStone joined [16:25] r25156 | lwall++ | move away from "prelude" towards "setting" [16:25] r25156 | lwall++ | establish LANG lexical scope to indicate setting [16:25] r25156 | lwall++ | define --language or -L to set LANG dsl [16:25] *** aindilis joined [16:28] moritz_: yes, you're right [16:31] r25157 | lwall++ | ref -L in S19 [16:31] is it possible to control the visibility of methods created via 'handles'? [16:32] *** _jedai_ joined [16:32] not really, OO is not about lexical scoping, unless the methods look at caller() [16:32] ok. [16:34] *** |jedai| left [16:38] TimToady: I was thinking about a situation when a class wanted delegation of some methods, but only needs them for itself, not to share publicly with others. [16:40] r36249 | fperrad++ | [config] make @cat@ available and use it [16:44] *** rhr_ joined [16:48] how do i create a hash that is unique to the class? [16:48] shinobi-cl_: a class attribute? [16:48] yes [16:48] my %!hash; [16:49] i have a class Thing. I want to implement THING_LIST, and be able to add, search and remove things from the list [16:49] but, i tough that ! only made the attribute private. [16:49] shinobi-cl_: it does. [16:50] you said 'unique to the class'. [16:50] that sounds private to me. [16:50] well, is that also, but the idea is that THING_LIST is unique to all Things [16:51] aye. hence the 'my' instead of 'has'. [16:51] ahh, thanks! [16:51] no problem. [16:51] I face these questions every day. [16:51] *** justatheory joined [16:52] I have two large and several small applications written in Perl 6. [16:52] *** rhr left [16:54] *** finanalyst left [16:59] *** s1n joined [17:00] std: (1,2,3,4)[-1].say [17:00] std 25157: OUTPUT«00:05 38m␤» [17:00] rakudo: (1,2,3,4)[-1].say [17:00] rakudo 36249: OUTPUT«Use of uninitialized value␤␤» [17:00] that's a bug. [17:00] hmm [17:00] please report. [17:00] oh, wait. [17:00] no, it's a Perl5ism. [17:01] rakudo: (1,2,3,4)[*-1].say [17:01] rakudo 36249: OUTPUT«4␤» [17:01] why does it parse the std then? [17:01] err std parse it [17:01] because it's syntactically correct. [17:01] what does it mean then? [17:01] it's just not what you mean. [17:01] it means element number -1 [17:01] (which is undefined) [17:02] is that possible? [17:02] not at present, no. [17:02] see S09. [17:02] i'll check it in a minute, thanks [17:03] *** aindilis left [17:03] my pleasure. [17:03] *** aindilis joined [17:03] masak: btw, i started responding to some of your old rt tickets [17:03] aye, saw that. [17:03] but i can't change the status (guess i'm not an admin) [17:04] good that someone is doing some cleaning in there. [17:04] I'm just creating new ones right now. [17:04] i'd like to mark them resolved, what do i need to get that access? [17:05] a BitCard account, I think. [17:05] * masak is not sure [17:05] i have one obviously [17:05] ok. [17:05] but it tells me i don't have permission to do that [17:05] then I don't know. [17:06] know who would? [17:06] another Parrot dev. :) [17:06] ask on #parrot, perhaps? [17:06] ok [17:06] (on irc.perl.org) [17:06] *** finanalyst joined [17:07] *** hercynium left [17:07] *** finanalyst left [17:12] s1n: in the meantime, it'd help a lot if you just wrote on tickets that they can be resolved. [17:13] masak: i can do that, how can i search rt for tickets i've commented on? [17:13] s1n: beats me. with a query, perhaps? [17:14] I'm at a loss to use RT efficiently, much less explain how to do it :) [17:14] moritz_: you around? [17:14] diakopter: yes [17:14] did Infinoid reply re: commit messages to #perl6? [17:15] did you get an automailer? if so, can you just tell me the ticket numbers? [17:15] I can add it now if he didn't [17:15] diakopter: I don't think so [17:15] ok, I'll do it now; it's an easy change. [17:15] moritz_: if you want I'll explain how so you can do such things too [17:15] diakopter: please go ahead then [17:15] ok; /msg [17:16] *** _jedai_ left [17:16] *** |jedai| joined [17:22] r25158 | diakopter++ | adding dir for botnix_plugins in misc/ [17:25] rakudo: package A {}; A::method_that_does_not_exist [17:25] rakudo 36249: OUTPUT«Null PMC access in invoke()␤current instr.: '_block14' pc 60 (EVAL_19:39)␤» [17:26] * masak reports rakudobug [17:27] r25159 | diakopter++ | adding dalek local modules to botnix_plugins for irc channel reporting of svn commits, mostly for #parrot, some for #perl6 [17:27] *** justatheory left [17:29] *** dalek joined [17:29] *** dalek left [17:29] *** dalek joined [17:30] r25160 | diakopter++ | adding #perl6 notification for rakudo, hopefully [17:31] *** dalek left [17:31] *** dalek joined [17:31] *** dalek left [17:31] *** dalek joined [17:32] r25161 | moritz++ | [t] clean-up of prior.t; it was written under a totally wrong assumption [17:32] r25161 | moritz++ | (it tested things siliar to what ~~ now does in regex) [17:35] *** |jedai| left [17:36] *** |jedai| joined [17:36] r25162 | moritz++ | [t] move prior.t to spec/ [17:54] rakudo: b65ae23 | (Moritz Lenz)++ | README: [17:54] rakudo: removed $Id$ from README [17:54] rakudo: review: http://github.com/rakudo/rakudo/commit/b65ae23fa591a7fbd6051aea36ba45750b5e4146 [17:54] rakudo 36249: OUTPUT«Statement not terminated properly at line 1, near ":"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [17:54] rakudo 36249: OUTPUT«Statement not terminated properly at line 1, near "$ from REA"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [17:54] rakudo 36249: OUTPUT«Statement not terminated properly at line 1, near ": http://g"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [17:55] * moritz_ detects irc name clash [17:55] ok, someone needs to do something about that, really quick. [17:55] "I smell a Wumpus." [17:56] * moritz_ tries to grok what diakopter++ did to the dalek thing [17:59] r25163 | moritz++ | [dalek-plugins] try not interfere with evalbot [18:00] *** dalek left [18:00] *** dalek joined [18:00] *** dalek left [18:01] *** dalek joined [18:02] ok, dalek should omit the colon now [18:03] moritz_++ [18:03] *** Psyche^ joined [18:05] *** justatheory joined [18:07] *** masak left [18:10] r25164 | moritz++ | [irclogs] linkify https URLs [18:11] rakudo 21f374f | (Moritz Lenz)++ | Configure.pl: [18:11] rakudo remove another $Id$ (mostly as test for our irc bots) [18:11] rakudo review: http://github.com/rakudo/rakudo/commit/21f374f690082d8a70ed5b9af2e305286d5642f6 [18:12] just a test: https://www.parrot.org/ [18:15] *** Limbic_Region left [18:20] moritz_: on #parrot, they made the eval bots disregard the notify bots for : purposes [18:20] *** Patterner left [18:20] *** Psyche^ is now known as Patterner [18:20] diakopter: hurm [18:20] diakopter: so how do we solve the problem then? [18:21] have p6eval ignore dalek [18:21] I'd (and I think many would) prefer the colons there or something [18:21] ok, working on ignoring dalek... [18:23] r25165 | moritz++ | [evalbot] ignore dalek [18:24] *** dalek left [18:24] *** dalek joined [18:24] *** dalek left [18:24] *** dalek joined [18:24] r25166 | moritz++ | [botnix_plugins] give #parrot their colon back [18:29] *** icwiener joined [18:34] pmichaud: ping [18:34] jnthn: ping [18:49] *** justatheory left [18:58] *** icwiener left [18:58] *** icwiener joined [19:02] *** rindolf joined [19:03] *** ejs left [19:07] rakudo: my $x = -> $a { say $a; }; $x(5); [19:07] rakudo 36250: OUTPUT«5␤» [19:07] yay! [19:11] *** km2 joined [19:14] 5 -> $x { say $x; } [19:14] rakudo: 5 -> $x { say $x; } [19:14] rakudo 36250: OUTPUT«Statement not terminated properly at line 1, near "-> $x { sa"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [19:14] rakudo: 5 -> $x { say $x; }; [19:14] rakudo 36250: OUTPUT«Statement not terminated properly at line 1, near "-> $x { sa"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [19:14] rakudo: (5) -> $x { say $x; }; [19:14] rakudo 36250: OUTPUT«Statement not terminated properly at line 1, near "-> $x { sa"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [19:15] Whiteknight: since point blocks are terms, you're trying two terms in a row [19:15] rakudo: -> $x { say 2 * $x }.(3) [19:15] rakudo 36250: OUTPUT«6␤» [19:16] rakudo: -> $x { say 2 * $x }(3) [19:16] rakudo 36250: OUTPUT«6␤» [19:16] Ah, okay [19:16] rakudo: if 3 -> $_ { .say } [19:16] rakudo 36250: OUTPUT«3␤» [19:16] Okay, that's what I was looking for I think [19:16] is there a do- form of it too? [19:17] in for, if, while etc. it only works because because they have special grammar rules [19:17] Whiteknight: don't think so [19:17] rakudo: do (3) -> $x { say $x; } [19:17] rakudo 36250: OUTPUT«Statement not terminated properly at line 1, near "-> $x { sa"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [19:17] yeah, no [19:18] I'm trying to find a way to just execute a pointy block inline without having to use a loop or an if [19:18] Whiteknight: the -> $stuff { ... }.($args) should work [19:18] Okay, I'll use that [19:19] rakudo: { say $^a * $^b }.(2, 3) [19:19] rakudo 36250: OUTPUT«6␤» [19:20] *** icwiener left [19:22] *** icwiener joined [19:23] rakudo: if(5) -> $a { say $a; } [19:23] rakudo 36250: OUTPUT«5␤» [19:23] Whiteknight: don't write it with parenthesis - that's allowed now, but not valid Perl 6, so likely to change [19:24] (in "real" Perl 6 it calls a function called if()) [19:27] @tell masak re private delegation, that's just a method on the delegational attribute; why would your class want to lie to itself about its own implemention? Lying is for outside the class. :) [19:27] no lambdabot I guess... [19:35] *** |jedai| left [19:36] moritz_: okay, I'll try to remember that [19:36] (and try to make sure that factoid is properly transcribed in the book) [19:36] *** |jedai| joined [19:37] Whiteknight: the parsing rules are simple - every identifier followed by '(' is a sub call [19:37] ah, so if I had a space in there it would be legal? [19:37] yes [19:37] *** jhuni joined [19:37] but `if' doesn't require a space anymore [19:38] so "if($x)" is legal or not? [19:38] it is a legal sub call [19:38] which fails at runtime if there is no such sub defined [19:38] but not a legal conditional? [19:38] okay [19:38] I'll get it, slowly but surely [19:39] the idea is that if there's no clash between keywords and sub calls, it's much easier to introduce keywords without breaking anything [19:39] if requires the space, not the paren [19:40] and functions are in some sense more fundamental than keywords [19:40] you can use given to get the parameter out front [19:41] and then you don't have to worry about whether it's true [19:41] rakudo: given 0 -> $a { say $a } [19:41] rakudo 36251: OUTPUT«0␤» [19:41] nice idea [19:42] it's just a degenerate for, basically [19:43] rakudo: for 2, 3 { say $^a * $^b } [19:43] rakudo 36251: OUTPUT«6␤» [19:43] some parts of rakudo work so reliable that it always surprises me again ;-) [19:43] so it's better to just write it as "if $x > 5" then "if ($x > 5)"? [19:44] Whiteknight: yes [19:44] yes [19:44] you only need (...) if there's a { that would be confused with the block [19:44] and that's hard to do [19:45] only loop (;;) still requires the parens [19:45] if { $_ > 0 ?? 1 !! $_ * $?BLOCK($_-1) }.(4) > 120 { ... } [19:45] I want to make sure I get this all correct for the book, better to teach new users best-practices fro the beginning [19:46] ok, that's a *very* constructed example [19:46] Whiteknight: is there anything I should review? [19:47] moritz_: You should probably review all of it! [19:47] std: if { $_ > 0 ?? 1 !! $_ * $?BLOCK($_-1) }.(4) > 120 { ... } [19:47] std 25166: OUTPUT«00:02 33m␤» [19:47] Whiteknight: is it p6pe? or something different? [19:47] moritz_: that's not a problem [19:48] std: if 1 { .. } > 4 [19:48] moritz_: it's at Wikibooks: http://en.wikibooks.org/wiki/Perl_6 [19:48] std 25166: OUTPUT«############# PARSE FAILED #############␤Unable to parse block; couldn't find final '}' at /tmp/ggRDFS4Vxn line 1:␤------> if 1 { .. } > 4␤ expecting any of:␤ prefix or noun␤ statement end␤ statement list␤00:02 32m␤» [19:48] wel, but you had two terms in a row [19:48] I just wanted to test if there's an operator expected after the block of an 'if' [19:48] std: if grep { $_ % 2 }, 1,2,3 { ...} [19:48] std 25166: OUTPUT«00:02 34m␤» [19:48] even that is okay [19:50] std: do if 1 { ... } > 4 [19:50] std 25166: OUTPUT«00:02 32m␤» [19:50] looks like you can do it with do [19:51] and the } properly terminates the do [19:51] however, probably better to say [19:51] std: (if 1 {...}) > 4 [19:51] std 25166: OUTPUT«00:02 32m␤» [19:52] just for clarity [20:00] *** justatheory joined [20:03] *** elmex left [20:04] *** Limbic_Region joined [20:06] *** jhuni left [20:21] *** |jedai| left [20:22] *** |jedai| joined [20:24] *** ABB joined [20:30] *** Limbic_Region left [20:30] *** |jedai| left [20:31] *** |jedai| joined [20:52] *** alexn_org joined [20:56] *** ejs joined [20:57] *** rindolf left [21:18] r25167 | lwall++ | [prior.t] missing a closing / [21:18] damn, I should install a local pre-commit hook that runs committed test files through STD.pm first [21:20] I enjoy fixing parsefails, actually :) [21:20] ok, then I'll leave that joy to you [21:21] and I must say that I'm duely impressed by the quality of the error messages [21:22] although sometimes it says "expecting any of ... @some_list[]... whitespace", and when I insert whitespaces at that point, it still appears in the list [21:24] well, it always expects more whitespace at the start of a token, except where prohibited [21:25] so maybe we could suppress it if after whitespace [21:25] part of the whole reason for STD is to get the right set of error messages. [21:25] I get a little tired of seeing "statement terminated incorrectly" out of rakudo... [21:26] it really just means "syntax error" [21:27] *** elmex joined [21:34] std: say [21:34] std 25167: OUTPUT«00:02 32m␤» [21:34] shouldn't that be a parse error? [21:34] std: my ($a, $b, $c); $b := $c; say [&&] ($a, $b) X!=:= ($b, $c) [21:34] std 25167: OUTPUT«00:02 36m␤» [21:35] rakudo: my ($a, $b, $c); $b := $c; say [&&] ($a, $b) X!=:=X ($b, $c) [21:35] rakudo 36259: OUTPUT«say requires an argument at line 1, near " [&&] ($a,"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [21:35] rakudo: my ($a, $b, $c); $b := $c; my &foo := &say; foo [&&] ($a, $b) X!=:=X ($b, $c) [21:35] rakudo 36259: OUTPUT«Statement not terminated properly at line 1, near "[&&] ($a, "␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤» [21:39] no, it's a semantic error [21:40] *** Chillance joined [21:40] ok [21:40] syntactically, it's just a listop, which can take 0 args [21:40] not that STD doesn't check for a few semantic errors on its own... [21:47] r25168 | lwall++ | [STD] panic on statement_control block where modifier parsed [21:47] r25168 | lwall++ | "handles" must only parse one term to avoid parsing any following block [21:47] r25168 | lwall++ | reduction needs to trap any panic from infixish parse [21:47] r25169 | diakopter++ | adding p6vm stub dir. see the README for laughs (or tears). [21:48] .oO( plan to throw 5 away ) [21:49] that seems to be the Perl 6 implementation motto :-) [21:49] which? [21:49] plan to throw 5 away [21:49] I don't get it [21:51] it's just a memorandum on the various abandoned efforts, and a bad pun on the "plan to throw one away" prototyping rule [21:52] moritz_: oh; heh. :) [21:53] parrot plans three iterations on each subsystem; that would be two to throw away.. now you only need to find three abondoned other projects, and you're there ;-) [22:00] *** ABB left [22:02] *** |jedai| left [22:02] *** |jedai| joined [22:13] *** iblechbot left [22:18] *** M_o_C left [22:18] *** M_o_C joined [22:20] *** M_o_C left [22:20] *** M_o_C joined [22:20] *** M_o_C left [22:28] *** |MoC| joined [22:31] *** |MoC| is now known as M_o_C [22:31] *** M_o_C left [22:32] *** M_o_C joined [22:33] *** M_o_C` joined [22:36] *** M_o_C left [22:36] *** M_o_C joined [22:37] *** M_o_C` left [22:37] *** M_o_C left [22:37] *** M_o_C joined [22:37] *** |jedai| left [22:38] *** Jedai joined [22:38] *** |jedai| joined [22:43] *** M_o_C left [22:44] *** M_o_C joined [22:52] *** M_o_C left [22:53] *** M_o_C joined [22:54] *** ejs left [22:55] *** spx2 joined [23:00] *** spx2_ joined [23:00] *** M_o_C left [23:00] *** mberends left [23:01] *** M_o_C joined [23:01] *** M_o_C left [23:01] *** jeremiah joined [23:02] Hey jnthn, how did you feel this morning? ;) [23:02] seen jnthn [23:02] Ah, no perlbot here . . . [23:03] perlbot: seen jnthn [23:04] *** eternaleye_ left [23:05] *** eternaleye joined [23:06] purl [23:06] I'm glad purl isn't here ;-) [23:12] *** spx2 left [23:22] *** Sepheebear left [23:30] *** maerzhase left