Camelia, the Perl 6 bug

IRC log for #perl6, 2009-04-07

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:01 davidad joined #perl6
00:04 cotto joined #perl6
00:06 Tene_ joined #perl6
00:08 sitaram joined #perl6
00:13 dKingston joined #perl6
00:19 bacek_ joined #perl6
00:20 TimToady ruoso: the change applies unless 1 < 1|5 < 5 is processed by a single dispatch that binds to scalar arguments typeed as Object/Any :)
00:22 ruoso but it doesnt say it chained must be processed as a single dispatch.. is it?
00:25 TimToady no, that was merely a suggestion of mine on the mailing list about one way to look at it
00:25 TimToady but it's slightly problematic insofar as a *@args binding doesn't autothread under the current rules
00:26 TimToady the variant that says my $x = @args.shift autothreads the rest of the dynamic scope might allow it, however
00:27 TimToady if "my $x" defaults to Any rather than Object
00:28 TimToady but as the spec revision says, we don't really understand the performance implications of that
00:28 TimToady since pretty much every assignment would have to be checking ~~ Any in that case
00:29 TimToady on the other hand, it might be the sanest approach
00:31 TimToady since it unifies the autothreading to binding to scalar, whether a formal parameter or not
00:31 DemoFreak joined #perl6
00:39 TimToady I guess the downside of that view is that it either requires continuations or we have to enforce single-assignment semantics so that the new $x binding is treated as a parameter to the rest of the dynamic scope.
00:39 TimToady neither of those is quite sane
00:44 TimToady but I have a suspicion the SA view is saner, since it provides a gather point for the thread termination, whereas the continuation view doesn't really
00:46 TimToady but the SA view goes strange when it comes to setting variables in the middle of a loop that retain their value at the start of the next iteration
00:47 TimToady anyway, we're just punting for now, since it makes my brane hert
00:48 TimToady I'll think about something easy like cmp O_o
00:49 diakopter --Any++
00:49 TimToady though interestingly, the cmp issue also brings up dynamic scoping issues
00:49 diakopter ++Any--
00:49 TimToady since we haven't got a mechanism for failsofting failures in parallelizable operations yet
00:50 diakopter std: ++e
00:50 p6eval std 26101: OUTPUT«ok 00:02 36m␤»
00:50 TimToady it's *syntactically* fine
00:50 TimToady the semantics are more problematic :)
00:51 TimToady STD doesn't have a clue that ++ and -- are mutating
00:55 diakopter rakudo: my $a=3; say ++$a--; say --$a++; say $a;
00:55 p6eval rakudo 0310a3: OUTPUT«4␤2␤3␤»
00:56 TimToady rakudo: my $a=3; say $a + 1; say $a - 1; say $a;  # :)
00:56 p6eval rakudo 0310a3: OUTPUT«4␤2␤3␤»
00:57 TimToady I'd say that's a bit clearererer...
00:59 TimToady nevertheless, it does demonstrate that the restriction in P5 is somewhat arbitrary.
00:59 TimToady we can't really afford such an arbitrary restriction and remain extensible to user-defined prefix/postfix operators
01:00 TimToady rakudo: ++e
01:00 p6eval rakudo 0310a3:  ( no output )
01:00 TimToady heh
01:00 TimToady rakudo: say ++e
01:00 p6eval rakudo 0310a3: OUTPUT«3.71828182845905␤»
01:00 TimToady !!!!
01:01 TimToady rakudo: say ++2.718281828
01:02 p6eval rakudo 0310a3: OUTPUT«Unable to set lvalue on PAST::Val node␤current instr.: 'parrot;PAST;Val;lvalue' pc 566 (src/PAST/Node.pir:161)␤»
01:03 TimToady rakudo: enum Foo <:eee<42>>; say eee
01:03 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near ">; say eee"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
01:03 TimToady rakudo: enum Foo of Int <:eee<42>>; say eee
01:03 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near "of Int <:e"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
01:03 TimToady rakudo: enum Foo of Int <eee>; say eee
01:03 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near "of Int <ee"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
01:04 TimToady rakudo: enum Foo <eee fff ggg>; say eee
01:04 p6eval rakudo 0310a3: OUTPUT«0␤»
01:04 TimToady rakudo: enum Foo <eee fff ggg>; say ++eee
01:04 p6eval rakudo 0310a3: OUTPUT«Method 'succ' not found for invocant of class ''␤current instr.: 'parrot;Perl6Object;' pc 2019 (src/classes/Object.pir:721)␤»
01:05 TimToady rakudo: enum Foo (eee => 42); say ++eee
01:05 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near "(eee => 42"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
01:05 TimToady rakudo: enum Foo (eee => 42); say eee
01:05 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near "(eee => 42"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
01:05 TimToady rakudo: enum Foo ('eee' => 42); say eee
01:05 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near "('eee' => "␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
01:06 TimToady rakudo: say e++; say e++;
01:06 p6eval rakudo 0310a3: OUTPUT«2.71828182845905␤2.71828182845905␤»
01:06 TimToady rakudo: my $x = 42; say ++$x; say ++$x;
01:07 p6eval rakudo 0310a3: OUTPUT«43␤44␤»
01:07 TimToady rakudo: my $x = 42; say ++e; say ++e;
01:07 p6eval rakudo 0310a3: OUTPUT«3.71828182845905␤3.71828182845905␤»
01:07 TimToady curious
01:07 TimToady rakudo: my $x = 42; say e += 1; say e += 1;
01:07 p6eval rakudo 0310a3: OUTPUT«get_iter() not implemented in class 'Integer'␤current instr.: 'prefix:=' pc 20782 (src/builtins/misc.pir:17)␤»
01:08 TimToady rakudo: say ++pi
01:08 p6eval rakudo 0310a3: OUTPUT«4.14159265358979␤»
01:08 TimToady rakudo: say ++++pi;
01:08 p6eval rakudo 0310a3: OUTPUT«5.14159265358979␤»
01:09 TimToady rakudo: say ++++++++++++++++++++++++++++++++++++++++​++++++++++++++++++++++++++++++++++++++pi
01:09 p6eval rakudo 0310a3: OUTPUT«42.1415926535898␤»
01:09 TimToady :)
01:19 agentzh joined #perl6
01:35 diakopter rakudo: my $a=3; say ++$a--; say $a
01:35 p6eval rakudo 0310a3: OUTPUT«4␤3␤»
01:36 diakopter rakudo: my $a=3; say --$a--; say $a
01:36 p6eval rakudo 0310a3: OUTPUT«2␤1␤»
01:40 diakopter rakudo: --(my $e = $e); say $e
01:40 p6eval rakudo 0310a3: OUTPUT«-1␤»
01:40 * diakopter starts
01:43 diakopter std: --(my $e = $e); say $e
01:43 p6eval std 26101: OUTPUT«ok 00:02 38m␤»
01:43 diakopter egash
01:43 diakopter rakudo: my $e = $e
01:43 p6eval rakudo 0310a3:  ( no output )
01:44 diakopter rakudo: my $e = $e = 1
01:44 p6eval rakudo 0310a3:  ( no output )
01:44 diakopter rakudo: my $e = $e = 1; say $e
01:44 p6eval rakudo 0310a3: OUTPUT«1␤»
01:44 diakopter rakudo: my $e = $e = 1 = $e; say $e
01:44 p6eval rakudo 0310a3: OUTPUT«Unable to set lvalue on PAST::Val node␤current instr.: 'parrot;PAST;Val;lvalue' pc 566 (src/PAST/Node.pir:161)␤»
01:45 diakopter now _that's_ a Future
01:46 orafu joined #perl6
01:47 diakopter rakudo: my $e = sub { $e() }; $e()
01:47 p6eval rakudo 0310a3: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;Signature;params' pc 3355 (src/classes/Signature.pir:179)␤»
01:47 diakopter oh.
01:49 diakopter rakudo: my $e = sub { .=$e  }; $e()
01:49 p6eval rakudo 0310a3: OUTPUT«Unable to parse block; couldn't find final '}' at line 1, near ".=$e  }; $"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
01:53 diakopter rakudo:$e = (my $e = sub { $e = $^a  } and $e($e)); $e($e); say 1;
01:54 diakopter well, it worked directly to p6eval.
01:54 diakopter and by "worked", I mean "didn't hang"
01:55 diakopter its reply was:  20:51 <p6eval> highlight 26101: OUTPUT«Odd number of elements in hash assignment at Cursor.pm line 139.â
01:57 diakopter std: "I am libertine languagified.".say
01:57 p6eval std 26101: OUTPUT«ok 00:04 35m␤»
01:58 TimToady rakudo: $e = (my $e = sub { $e = $^a  } and $e($e)); $e($e); say 1;
01:58 p6eval rakudo 0310a3:  ( no output )
01:58 diakopter std: my $f=$f
01:58 p6eval std 26101: OUTPUT«ok 00:02 35m␤»
01:58 TimToady names are introduced immediately in p6
01:59 diakopter oh.
01:59 diakopter is that recent?
01:59 TimToady unlike p5
02:00 TimToady no, many years old
02:00 diakopter hrm.
02:00 TimToady otherwise my $e = { $e() } wouldn't work
02:01 diakopter rakudo: my $e = sub { e$() };
02:01 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near "$() };"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:01 TimToady what is this, basic?
02:01 diakopter rakudo: my $e = sub { e$($e};
02:01 diakopter rakudo: my $e = sub { $e() };
02:01 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near "$($e};"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:01 p6eval rakudo 0310a3:  ( no output )
02:02 diakopter rakudo: my $e = sub { BEGIN { $e() }; $e(); };
02:02 p6eval rakudo 0310a3: OUTPUT«Scope not found for PAST::Var '$e' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
02:04 TimToady from A4:
02:04 TimToady Note that the block is truly a closure because it relies on the lexical
02:04 TimToady scoping of C<$f>. (This form of lexical scoping works in Perl 6 because
02:04 TimToady the name C<$f> is introduced immediately within the statement. This
02:04 TimToady differs from the Perl 5 approach where the name is not introduced till
02:04 TimToady the end of the current statement.)
02:05 TimToady so it's been that way since at least 2002...  :)
02:06 TimToady it's also what allows parameter defaults to refer back to earlier parameters
02:15 skids joined #perl6
02:15 diakopter rakudo: $e = (my $e = sub { $e = $^a  } and $e($e)); $e($e); say 1; # maybe it'll work if I use the proper bot ehnvohkashunn sinhtaks
02:16 diakopter erm
02:16 diakopter what yields
02:16 diakopter rakudo: `ICMP= table tennis`
02:17 p6eval rakudo 0310a3:  ( no output )
02:17 p6eval rakudo 0310a3: OUTPUT«Syntax error at line 1, near "`ICMP= tab"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:18 diakopter rakudo: my $e = { $e = $^a ?? $e(0) !! $e(4); $_-- }; $e(3); .say
02:18 alc joined #perl6
02:20 diakopter I really don't know how to explain this.  p6eval gives different replies to the same input from me, across #perl6 and privmsg to p6eval. /^o^\
02:20 diakopter I mean, besides the pathological input..
02:21 diakopter it just plain doesn't reply in #perl6 to some of the things it replies to me in privmsg.
02:21 p6eval rakudo 0310a3: OUTPUT«maximum recursion depth exceeded␤current instr.: 'parrot;P6object;HOW' pc 54 (runtime/parrot/library/P6object.pir:98)␤»
02:22 diakopter hm
02:22 diakopter moritz_'s poor server
02:22 diakopter I think I had several long/hot-running requests running.
02:22 diakopter heh
02:23 eternaleye joined #perl6
02:23 diakopter std: --.--
02:23 p6eval std 26101: OUTPUT«ok 00:02 36m␤»
02:24 diakopter std: --.--==++.++|>>.!
02:24 p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/2WvoOS0iSX line 1:␤------> [32m--.--==++.++|[31m>>.![0m␤    expecting any of:␤    prefix or noun␤   whitespace␤FAILED 00:02 36m␤»
02:24 diakopter std: --.--==++.++
02:24 p6eval std 26101: OUTPUT«ok 00:02 36m␤»
02:25 diakopter std: --.--==++.++|++.++!=--.--
02:25 p6eval std 26101: OUTPUT«ok 00:02 36m␤»
02:25 diakopter rakudo: --.--==++.++|++.++!=--.--
02:25 p6eval rakudo 0310a3: OUTPUT«Syntax error at line 1, near "--.--==++."␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:25 skids joined #perl6
02:26 diakopter std: --.--//=++.++||++.++\\=--.--
02:26 p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Syntax error at /tmp/sy195O1lN0 line 1:␤------> [32m--.--//=++.++||++.++\[31m\=--.--[0m␤    expecting any of:␤   postfix␤  postfix_prefix_meta_operator␤FAILED 00:02 36m␤»
02:26 diakopter std: --.--//=++.++||++.++//=--.--
02:26 p6eval std 26101: OUTPUT«ok 00:02 36m␤»
02:27 diakopter std: .||=$_
02:27 p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/lcdLv8pqG7 line 1:␤------> [32m[31m.||=$_[0m␤    expecting any of:␤       prefix or noun␤   statement end␤    statement list␤   whitespace␤FAILED 00:02 34m␤»
02:28 diakopter rakudo: .=$_; .say
02:28 p6eval rakudo 0310a3: OUTPUT«Syntax error at line 1, near ".=$_; .say"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:28 diakopter std: .=$_; .say
02:28 p6eval std 26101: OUTPUT«ok 00:02 35m␤»
02:30 diakopter rakudo: $_ = { .() }; .();
02:30 p6eval rakudo 0310a3: OUTPUT«maximum recursion depth exceeded␤current instr.: '_block21' pc 95 (EVAL_18:54)␤»
02:30 diakopter is that right?
02:32 TimToady looks right to me
02:32 TimToady that I haven't foggiest idea how std is parsing --.--
02:33 diakopter std: --($_ = $_ - 1)
02:33 p6eval std 26101: OUTPUT«ok 00:02 37m␤»
02:34 TimToady ah, it's parsing it as --(.--) obviously
02:34 diakopter rakudo: $_=3; --.--; .say
02:34 p6eval rakudo 0310a3: OUTPUT«Syntax error at line 1, near "--.--; .sa"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:35 diakopter rakudo: $_=3; --(.--); .say
02:35 p6eval rakudo 0310a3: OUTPUT«Syntax error at line 1, near "--(.--); ."␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:36 TimToady rakudo: $_ = 3; -- .--; .say
02:36 p6eval rakudo 0310a3: OUTPUT«Syntax error at line 1, near "-- .--; .s"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:36 TimToady rakudo: $_ = 3; -- $_.--; .say
02:36 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near ".--; .say"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:36 agentzh joined #perl6
02:37 TimToady just doesn't believe in .-- I suspect
02:37 TimToady rakudo: $_ = 3; $_.--; .say
02:37 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near ".--; .say"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:37 pmichaud correct, I don't think we do dotted postfix yet.
02:38 TimToady so it looks like we'll be able to execute arbitrary Morse Code...
02:38 TimToady std: ---...---
02:38 p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤"--" and "--" are not associative at /tmp/eJP1ESsmn5 line 1:␤------> [32m---...--[31m-[0m␤    expecting any of:␤ POST␤   postfix␤   postfix_prefix_meta_operator␤      standard stopper␤ terminator␤FAILED 00:02 36m␤»
02:38 diakopter std: ... --- ...
02:38 p6eval std 26101: OUTPUT«ok 00:02 36m␤»
02:39 pmichaud ..."oso"?
02:39 TimToady std: ...---...
02:39 p6eval std 26101: OUTPUT«ok 00:02 35m␤»
02:40 TimToady you see, for every space you leave out, you save .5 meg of memory :)
02:41 diakopter std: -- --- .-. ... .     -.-. --- -.. .
02:41 p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/WfMhZFf8gm line 1:␤------> [32m-- --- [31m.-. ... .     -.-. --- -.. .[0m␤    expecting any of:␤  noun␤   prefix or meta-prefix␤FAILED 00:02 36m␤»
02:43 Nikao joined #perl6
02:44 TimToady you forgot to capitalize the M and the C.  :)
02:46 Nikao left #perl6
02:48 diakopter std: {DO} #{ Wabun Code } { --..---   -.-.-   --   ..-   .-.   ...   ...-. }
02:48 p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Unexpected block in infix position (two terms in a row, or previous statement missing semicolon?) at /tmp/drwWdWq6Kk line 1:␤------> [32m{DO} #{ Wabun Code } [31m{ --..---   -.-.-   --   ..-   .-.   ...[0m␤    expecting any of:␤     infix or meta-infix␤
02:48 p6eval ..     in...
02:53 diakopter std: .||=$_
02:53 p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/fpxyemVi7S line 1:␤------> [32m[31m.||=$_[0m␤    expecting any of:␤       prefix or noun␤   statement end␤    statement list␤   whitespace␤FAILED 00:02 34m␤»
02:53 diakopter std: .=//=$_
02:53 p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/1eiODPLX02 line 1:␤------> [32m.=[31m//=$_[0m␤    expecting dotty method or postfix␤FAILED 00:02 34m␤»
02:53 diakopter rakudo: $_ = $_ //= $_
02:53 p6eval rakudo 0310a3:  ( no output )
02:54 diakopter rakudo: $_ = $_ //= $_; .say
02:54 p6eval rakudo 0310a3: OUTPUT«Use of uninitialized value␤␤»
02:56 eternaleye_ joined #perl6
02:56 diakopter rakudo: $_ = 3 = $_ //= $_; .say
02:57 p6eval rakudo 0310a3: OUTPUT«Unable to set lvalue on PAST::Val node␤current instr.: 'parrot;PAST;Val;lvalue' pc 566 (src/PAST/Node.pir:161)␤»
02:57 diakopter rakudo: $_ = $_ //= $_ = 3; .say
02:57 p6eval rakudo 0310a3: OUTPUT«3␤»
02:58 diakopter rakudo: $_++ = $_++ //= $_++ = 3; .say
02:58 p6eval rakudo 0310a3: OUTPUT«3␤»
02:58 diakopter rakudo: $_++ //= $_++ = $_++ = 3; .say
02:58 p6eval rakudo 0310a3: OUTPUT«3␤»
02:59 diakopter rakudo: ++$_ //= ++$_ = ++$_ = 3; .say
02:59 p6eval rakudo 0310a3: OUTPUT«3␤»
02:59 diakopter rakudo: ++$_ //= ++$_ = ++$_ = 3; .say; $_.say
02:59 p6eval rakudo 0310a3: OUTPUT«3␤3␤»
03:01 diakopter rakudo: ++$_ //= ++$_ = (++$_ = 3); .say; $_.say
03:01 p6eval rakudo 0310a3: OUTPUT«3␤3␤»
03:02 skids joined #perl6
03:06 charsbar_ joined #perl6
03:07 diakopter rakudo: $a++ = (my $a = 4)++; $a.say
03:07 p6eval rakudo 0310a3: OUTPUT«Null PMC access in find_method()␤current instr.: 'postfix:++' pc 20877 (src/builtins/op.pir:33)␤»
03:07 diakopter rakudo: $a++ = (my $a = 4)++;
03:07 p6eval rakudo 0310a3: OUTPUT«Null PMC access in find_method()␤current instr.: 'postfix:++' pc 20877 (src/builtins/op.pir:33)␤»
03:08 diakopter rakudo: $a = (my $a = 4)++;
03:08 p6eval rakudo 0310a3: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14068 (src/builtins/assign.pir:21)␤»
03:08 diakopter rakudo: $a = (my $a = 4);
03:08 p6eval rakudo 0310a3: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14068 (src/builtins/assign.pir:21)␤»
03:08 diakopter rakudo: $a = (my $a);
03:08 p6eval rakudo 0310a3: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14068 (src/builtins/assign.pir:21)␤»
03:08 diakopter rakudo: $a = ($a);
03:08 p6eval rakudo 0310a3: OUTPUT«Scope not found for PAST::Var '$a' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
03:08 diakopter rakudo: (my $a) = $a;
03:08 p6eval rakudo 0310a3:  ( no output )
03:09 diakopter rakudo: (my $a) = $a = 1; $a.say
03:09 p6eval rakudo 0310a3: OUTPUT«1␤»
03:09 diakopter rakudo: (my $a) = 1; $a.say
03:09 p6eval rakudo 0310a3: OUTPUT«1␤»
03:10 diakopter rakudo: ((my $a = 1)/($a.say))++; $a.say
03:10 p6eval rakudo 0310a3: OUTPUT«1␤1␤»
03:11 b2gills left #Perl6
03:11 diakopter rakudo: ((my $a = 1)/($a.say)/($a = 2))++; $a.say
03:11 p6eval rakudo 0310a3: OUTPUT«1␤2␤»
03:12 diakopter rakudo: (($a = 1)/($a.say)/(my $a = 2))++; $a.say
03:12 p6eval rakudo 0310a3: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14068 (src/builtins/assign.pir:21)␤»
03:13 diakopter rakudo: ((my $a = 1)/($a.say++)++/(my $a = 2))++; $a.say
03:13 p6eval rakudo 0310a3: OUTPUT«Redeclaration of variable $a␤1␤2␤»
03:13 diakopter rakudo: ((my $a = 1)/($a.say++)++/($a = 2))++; $a.say
03:13 p6eval rakudo 0310a3: OUTPUT«1␤2␤»
03:15 diakopter rakudo: ((my $a = 1)/(say $a++)++/($a = 2))++; $a.say
03:15 p6eval rakudo 0310a3: OUTPUT«1␤2␤»
03:16 diakopter rakudo: ((my $a = 1)/(say $a++)++/($a = 8))++; $a.say
03:16 p6eval rakudo 0310a3: OUTPUT«1␤8␤»
03:17 diakopter rakudo: (my $a = 1)/(say ++++$a)/($a = 8)/($a.say)
03:17 p6eval rakudo 0310a3: OUTPUT«3␤8␤»
03:19 diakopter rakudo: ((my $a = 1)/(say ++++$a)/($a = 8)/($a.say)).say
03:19 p6eval rakudo 0310a3: OUTPUT«3␤8␤0.375␤»
03:20 diakopter interesting
03:39 diakopter pugs: (my $a = 1)/(say ++++$a)/($a = 8)/($a.say)
03:39 p6eval pugs: OUTPUT«*** ␤    Unexpected "++++$"␤    expecting bare or pointy block construct, ":", identifier, operator or ")"␤    at /tmp/4BiajxxYK5 line 1, column 18␤»
03:39 cls_bsd_ joined #perl6
03:40 diakopter pugs: (my $a = 1)/(say ++$a)/($a = 8)/($a.say)
03:40 p6eval pugs: OUTPUT«2␤8␤»
03:40 diakopter rakudo: (my $a = 1)/(say ++$a)/($a = 8)/($a.say)
03:40 p6eval rakudo 0310a3: OUTPUT«2␤8␤»
03:43 Kisu joined #perl6
03:56 orafu joined #perl6
04:06 drbean joined #perl6
04:44 masak joined #perl6
04:44 masak howdy, Sixers.
04:44 TimToady howdy doo
04:49 masak a Windows user has tried to get November building on Windows. \o/
05:07 eiro hello world
05:12 alc joined #perl6
05:37 parduncia joined #perl6
05:49 mikehh joined #perl6
06:01 payload joined #perl6
06:05 khatar joined #perl6
06:06 eiro joined #perl6
06:20 wolverian joined #perl6
06:26 RootKwok joined #perl6
06:29 Tene_ joined #perl6
06:31 mtve joined #perl6
06:39 wolverian joined #perl6
06:46 orafu joined #perl6
06:50 DemoFreak joined #perl6
06:50 mib_3wmvr4 joined #perl6
06:50 mib_3wmvr4 left #perl6
06:51 mberends joined #perl6
06:52 iblechbot joined #perl6
06:56 masak mberends: ping.
07:03 mberends masak: ahoy there!
07:03 masak mberends: ahoj, fellow Perl 6 hacker.
07:04 masak mberends: I'm in the middle of the strife.
07:04 masak of getting HTTP::Daemon to run. :)
07:05 mberends is that difficult?
07:06 masak about to commit a patch where a lot of _ are replaced by :: in the module names in the Pod.
07:07 masak but after that, I still have some problems.
07:07 mberends the way it worked for me was to clone the stock demo Daemon and gradually replace its guts while it was running.
07:07 masak stand by for gist.
07:09 masak http://gist.github.com/91124
07:09 mberends Tip: while HTTP::Daemon runs, delete the .pir files. Then you can edit, save, and refresh the browser to see changes immediately
07:09 orafu joined #perl6
07:10 masak ooh.
07:10 masak but I don't think that's my problem here.
07:10 masak note that the final error appears as I hit the page.
07:10 mberends gist looks good, but I'm not a full spec p6 compiler ;)
07:10 masak halp!
07:11 masak what's that supposed to mean? it's not working. :)
07:11 masak scroll down to when I run the script.
07:11 mberends gah! that is the detritus of attempting to link to the bacek++ new socket functions! they are not complete! kill! kill!
07:11 masak (which, by the way, is taken verbatim from the HTTP::Daemon Pod, with those modifications)
07:12 masak mberends: plz fix. kthxbai.
07:12 masak I'll just do my commit first.
07:12 mberends my bad. sry.
07:12 mberends rly sry
07:13 masak happy to be adding quality to your software, sir. that's all. :)
07:13 masak there, pushed.
07:14 masak as far as I can see, the underscores have been there since HTTP::Daemon and git first met.
07:14 moritz_ masak: were there any tests for .ins?
07:14 masak I just don't see why; they are obviously wrong.
07:14 masak moritz_: don't think so; you want me too add some?
07:14 moritz_ masak: that would be great
07:14 * moritz_ tries to keep the test coverage high
07:15 masak moritz_: I ran the spectests before committing, though. so I'm still a good boy by my count.
07:15 masak especially since it takes ages. :P
07:15 moritz_ yes, that's really annoying
07:15 mberends masak: good boy
07:15 moritz_ maybe I can do somethinig about that over the easter vacations
07:15 * masak purrs
07:16 moritz_ lot of time, but not connected to the internets very much
07:16 masak moritz_: you'd be responsible for speeding up the entire development of Rakudo Perl 6. too good a prospect to resist, methinks.
07:17 wolv joined #perl6
07:18 moritz_ I have to talk to pmichaud first, though
07:19 masak aye.
07:22 masak hm, the directory structure of t/spec/S32-* does not mirror dpcs/Perl6/Spec/S32-setting-library/*
07:23 moritz_ right
07:23 pugs_svn r26102 | moritz++ | [t/spec] initial, very basic tests for IO.ins
07:23 masak but it seems I could simply create a new S32-io in the former, and still be consistent.
07:23 masak oh.
07:23 masak or not.
07:27 masak rakudo: =$*IN; say "FOO"
07:27 p6eval rakudo 0310a3:  ( no output )
07:28 masak what's going on there?
07:32 moritz_ masak: p6eval starts rakudo with 'echo -n | perl6 $file' to prevent it from hanging
07:32 moritz_ hm
07:33 moritz_ rakudo: say "still alive"
07:33 p6eval rakudo 0310a3: OUTPUT«still alive␤»
07:33 moritz_ but it prints nothing on my local copy as well
07:34 masak moritz_: locally, does it say "FOO" for you?
07:34 moritz_ no
07:34 moritz_ masak: submit a bug ;-)
07:34 * masak submits a bug
07:34 Matt-W Good morning
07:34 moritz_ it doesn't even try to read something from STDIN
07:34 moritz_ it just terminates
07:34 masak Matt-W: a good morning to you, sir.
07:34 moritz_ masak: anyway, it's usually a bad idea to test IO with p6eval
07:34 masak moritz_: aye. I'll remember that.
07:39 payload joined #perl6
07:55 eiro i'm trying to figure out what $self-�>$method becomes in perl6
07:55 eiro $self->$method (sorry for weird symbols)
07:55 masak eiro: so $method is a string, yah?
07:56 eiro masak, yep
07:57 eiro i imagine there is something more rubysh like : $.send($method)
07:57 masak rakudo: class A { method foo { say "OH HAI" }; method bar($method) { eval("self.$method") } }; A.new.bar("foo")
07:58 p6eval rakudo 0310a3: OUTPUT«OH HAI␤»
07:58 masak that's the closest I get right now.
07:58 masak hold on, I'll try with .HOW.dispatch too.
07:58 masak rakudo: class A { method foo { say "OH HAI" }; method bar($method) { self.HOW.dispatch(A, $method) } }; A.new.bar("foo")
07:58 c1sung joined #perl6
07:58 p6eval rakudo 0310a3: OUTPUT«OH HAI␤»
07:58 masak yup, that's better.
07:59 masak ruoso++
08:03 [particle] joined #perl6
08:08 eiro masak, \o/ HOW !!!
08:09 masak eiro: indeed.
08:09 eiro that's cool: i looked as the way to generate graphviz UML class diagrams from *pir
08:10 masak wow, cool!
08:10 eiro but perhaps there is a better way
08:10 masak eiro: well, what is your goal?
08:10 eiro a real introspection
08:10 masak eiro: using STD.pm might be a good idea.
08:10 eiro masak, well ... i want to see in real life how much my brain is sick
08:11 masak eiro: who doesn't? :P
08:11 eiro :-)
08:11 eiro the uml diagram of my last program is a good clue :)
08:12 eiro so i want to do it :-)
08:12 masak eiro: my question was more like "What do you want the UML diagrams to show?"
08:12 masak with the answer to that question, it might be possible to help you further.
08:13 eiro masak, seriously: i acctually work on a old and big project that really lack some documentation and i think that every autodocumenting tool can help to avoid the mistake in the future
08:13 eiro i dream about a perl6 rewrite of this software
08:13 eiro so i prepare some tools for it
08:14 masak eiro: two words: start simple.
08:14 eiro ( i'll need ya: it's a full webbasef soft )
08:14 masak because this sounds like an ambitious project.
08:14 eiro that's what i do
08:14 masak and you'll need all partial successes you can get.
08:15 eiro for the moment, i just write some tools close to the project
08:15 eiro not the project itself
08:15 eiro i need support to MARC, ASN.1, Z39-50, and REST
08:16 masak ok...
08:16 eiro so there's a long road
08:16 masak aye.
08:16 eiro i start now ;)
08:16 masak let me know when you get somewhere. :)
08:16 eiro masak, sure!
08:16 masak I like to review other people's Perl 6 code.
08:17 eiro cool :)
08:17 eiro thanks in advance
08:17 masak np. now go forth and write cool Perl 6 code.
08:18 eiro i'll also need some infos about your web framework: templating system, MVC separation ...
08:18 eiro (perhaps: help to hack on it)
08:18 masak nice!
08:19 masak I'll try to give as detailed a status update as I can.
08:19 masak (it might be good for the next blog post, too.)
08:19 masak there are three of us working on the Web.pm grant.
08:19 masak Tene, ihrd and I.
08:20 donaldh joined #perl6
08:20 masak Tene is currently working on a Tags module, with which you can generate HTML code easily, and with Perl 6 idioms (such as for loops) thrown in wherever you need then.
08:21 masak ihrd is working on Dispatch, something called Routes, and is aiming for an MVC framework, which he calls Forest.
08:21 masak we don't have much of server backends for that yet, so I assume we'll be faking it with files for the time being. SQLite would be nice, though.
08:23 masak I'm working on the request-and-response stuff, the low-level things that are one step from the web server itself. being greatly inspired by (aka "stealing from") Ruby's Rack, which IMO does things so right that there's no good reason to deviate.
08:25 masak in the coming weeks, I'll be looking more at porting Python's Genshi, a templater which many people seem to like, as well as Ruby's Hpricot, a HTML parsing and modification library.
08:25 eiro masak, about Tags modules: how does it deal with namespaces ?
08:25 masak EOU
08:25 masak eiro: at present, it doesn't.
08:25 eiro <xsl:for-each><html:li>
08:25 masak eiro: I'd recommend asking Tene the same question.
08:25 eiro arggg ...
08:25 eiro Tene_, ???
08:25 masak eiro: as far as I know, it doesn't do XML.
08:26 eiro masak, but ... everything is xml now on the web!
08:26 masak eiro: not really, no.
08:26 masak especially not HTML.
08:26 eiro xhtml+svg+...
08:26 eiro :(
08:26 masak eiro: I wish you were right, but...
08:26 masak the reality out there is quite different.
08:27 masak I don't want to shut out people who want to generate XHTML though, which is why I want to port Genshi.
08:27 masak it's XML-based.
08:27 eiro masak, your framework must bring good pratices on the perl6 world so you have to handle it ! :)
08:27 masak eiro: I agree fully.
08:27 masak eiro: I just don't automatically assume that XML == Good Practice.
08:27 masak there are many, many reasons to prefer HTML to XHTML.
08:28 masak see http://www.webdevout.net/articles/beware-of-xhtml
08:28 eiro what ? sure it is! html is an awfull bastarization of SGML! it *must* *die*
08:29 masak eiro: eventually, perhaps. but it cannot die today, because XHTML isn't a viable alternative.
08:29 masak I'm all for generating XHTML in my own applications, but I simply cannot force it on everybody in Web.pm.
08:29 masak that's not realistic.
08:29 eiro perhaps: i'll read your article asap and tell ya :)
08:30 masak sounds good.
08:30 masak I'm very open to discussing this.
08:30 eiro is there a dedicated mailing list ?
08:32 masak eiro: for Web.pm? yes, we're using the Novmber mailing list.
08:32 masak http://groups.google.com/group/november-wiki
08:32 * Tene_ reads scrollback
08:33 masak eiro: also see http://www.b-list.org/weblog/2008/jun/18/html/ if you have the energy. it's equally good.
08:33 masak Tene_: morning.
08:34 Tene_ masak: I was due for sleep 3 hours ago, actually. :)
08:35 masak right. you're on that continent.
08:35 Tene_ Yeah, the weird one.
08:37 masak mberends: ping.
08:38 Tene_ eiro: It doesn't handle namespaces mostly because I don't know how to do it correctly.  I'd be glad for any suggestions.
08:40 eiro arg  ... i need to create a google account :(
08:40 eiro ok .. i'll do it! for perl6, for OSS, for freedom !
08:40 eiro ;)
08:41 masak the sacrifices we have to make.
08:46 eiro Tene, well ... i remember a very nice code written in lua that deals with namespace in a very neat way. I'll see if we can apply it on perl6
08:46 Tene eiro: I don't know what the API should look like or what exactly should be generated.
08:47 masak eiro: for a different approach to tags generation, see my SVG module on github.
08:47 eiro Tene, neither me for the moment :)
08:47 eiro ok, thx
08:48 masak eiro: it's a bit more on the static side than Tene 's, but I have high hopes for it, at least for SVG.
08:48 orafu joined #perl6
08:49 eiro ok ... lot of things to read now ... i'll come back
08:49 masak eiro++
08:49 eiro now i'll work to earn my daily meal ;)
08:49 eiro ++
08:50 masak speaking of which... :)
08:50 * masak .WORK
08:56 ejs joined #perl6
09:03 payload1 joined #perl6
09:06 cognominal joined #perl6
09:07 cognominal joined #perl6
09:21 elmex joined #perl6
09:25 PacoLinux joined #perl6
09:27 plash joined #perl6
09:30 bacek mberends: hey, what's wrong with sockets?
09:31 bacek (and good evening)
09:49 jferrero joined #perl6
10:09 pmurias joined #perl6
10:12 Southen joined #perl6
10:21 DemoFreak joined #perl6
10:28 masak Mosher's Law of Software Engineering: Don't worry if it doesn't work right. If everything did, you'd be out of a job.
10:28 masak that makes me feel much better.
11:01 eiro joined #perl6
11:02 masak rakudo: say ++e
11:02 p6eval rakudo 0310a3: OUTPUT«3.71828182845905␤»
11:02 * masak submits rakudobug
11:02 masak as a mathematician, I'm deeply insulted.
11:03 eiro joined #perl6
11:04 jnthn What's a constant? ;-)
11:06 masak jnthn: that attitude actually explains a lot. :P
11:12 eiro joined #perl6
11:38 orafu joined #perl6
11:43 eiro masak, does november still use netcat ?
11:43 moritz_ I think it never did
11:43 masak eiro: no, it doesn't. and hasn't ever.
11:43 masak eiro: you're thinking of HTTP::Daemon.
11:43 moritz_ it runs on top of apache as an ordinary CGI script
11:44 masak I think HTTP::Daemon uses socat nowadays, and is on its way over to Parrot sockets.
11:44 masak and if Lyle succeeds, November might soon run on IIS as well.
11:44 eiro oh ... i thought that there was no socket in perl6
11:45 eiro oh
11:45 eiro ok
11:45 masak std: --.--
11:45 p6eval std 26102: OUTPUT«ok 00:02 36m␤»
11:45 masak rakudo: --.--
11:45 p6eval rakudo 0310a3: OUTPUT«Syntax error at line 1, near "--.--"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
11:46 eiro is there something like poe planned ?
11:46 masak is STD.pm overly permissive here, or is Rakudo overly restrictive?
11:47 masak eiro: I don't have any such plans :) but hopefully there will be real threading in Rakudo, as opposed to Perl 5.
11:48 eiro thanks ..
11:48 masak ah. Rakudo simply doesn't implement .-- yet...
11:48 masak rakudo: my $a; $a.--
11:48 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near ".--"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
11:49 jnthn I'm kinda curious what STD thinks --.-- means...
11:49 jnthn Oh, maybe --($_.--)
11:49 masak jnthn: aye.
11:50 masak rakudo: $a = (my $a)
11:50 p6eval rakudo 0310a3: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14068 (src/builtins/assign.pir:21)␤»
11:50 * masak submits rakudobug
11:50 masak diakopter: you keep felling fruit to the ground, and then leave it lying there... :)
11:51 jnthn ...then merges it will the probably many other rakudobugs of "using a variable before declaring it causes the null pmc access in getprop"?
11:51 jnthn I'm sure we already have at least 2 for this issue.
11:51 moritz_ masak: we have tickets for that
11:51 masak this case merits a ticket, methinks.
11:51 masak this is in the same statement.
11:52 masak do we have tickets for that?
11:52 moritz_ rakudo: $a␤my $a = 1
11:52 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 2, near "my $a = 1"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
11:52 moritz_ rakudo: $a;␤my $a = 1
11:52 p6eval rakudo 0310a3:  ( no output )
11:52 moritz_ rakudo: $a;␤my $a = 1; say "alive"
11:52 p6eval rakudo 0310a3: OUTPUT«alive␤»
11:53 eiro perl6 unicode operators are hard to undertand:  # RAKUDO: синтаксис Hash :exists еще не реализован
11:53 eiro ;)
11:53 moritz_ these are comments, not operators :-)
11:53 masak eiro: that comment has an English translation, too. :) don't play innocent.
11:54 eiro masak, coming from east side of the earth, right ? ;)
11:54 masak eiro: besides, I can read it fine.
11:54 masak eiro: nope.
11:54 masak I'm from the same side as you.
11:54 payload joined #perl6
11:54 masak but while you were watching TV, I studied languages. :P
11:55 masak (but I didn't write that comment, ihrd did. he's from that side of the Earth.)
11:55 moritz_ it's ihrd++ who comes from the east
11:56 eiro masak, i didn't watch TV: i was trekking and reading books of philosophy ... but it didn't help to earn money so i gave up :)
11:56 eiro ok
11:56 masak eiro: http://use.perl.org/~masak/journal/37341
11:56 kane_ joined #perl6
11:57 masak eiro: ack. and to be honest, I've watched my fair amount of TV. it's a very painless way to waste a life.
11:58 masak oh, and Hash.:exists is still not реализован! what's up with that? :)
11:59 eiro masak, i have to be honest too: i didn't read only philo books :)
11:59 masak good. :)
11:59 masak that would have been almost as bad as too much TV, I think...
12:00 pmurias to much TV = any TV? ;)
12:01 nbrown joined #perl6
12:03 masak mberends: from the HTTP:Daemon Pod: "The most recent successfully tested Rakudo revision is Parrot r37432."
12:04 masak mberends: does that mean that you haven't tested HTTP::Daemon since the Great Leaving of the Nest?
12:04 masak mberends: or is it just stale Pod?
12:06 jnthn TV - I watch *so* little of it...
12:07 jnthn *sigh* Not too much more things to do before I can work on Rakudo today.
12:08 eiro masak, not at all ... i fact i was born at the bottom of the vosges (mountains) and i spend a lot of time ridding from top to top
12:08 * masak is storyboarding his NPW talk
12:09 eiro jnthn, nothing lost about it :)
12:09 masak eiro: I have a similar background. the mountains and the forests were mine, for miles and miles.
12:09 eiro masak, what mountains ?
12:10 eiro jnthn, will you come to france for FPW2009 ?
12:10 orafu joined #perl6
12:10 masak eiro: the cliffs and hills of a small island in the Swedish western archipelago.
12:10 eiro (i have to finish my slides)
12:11 eiro sweden! i really want to visit the country! images from there are so beautifull
12:12 Matt-W eiro: It's great there
12:12 zamolxes joined #perl6
12:13 jnthn eiro: No, I won't make FPW - had already planned a vacation on those dates, before they were announced.
12:13 masak eiro: come see our lakes. and our lovely telephone system...
12:13 jnthn eiro: If you go to Sweden, don't miss Abisko. :-)
12:13 masak jnthn: what?
12:13 * jnthn hopes masak knows where Abisko is.
12:14 masak oh, yeah.
12:14 masak that one.
12:14 masak sure I know.
12:14 jnthn masak: It's probably the most beautiful bit of Sweden I've found to date.
12:14 jnthn I really loved it up there. Gotta go back some day.
12:14 masak jnthn: no, actually I haven't heard that name, ever.
12:15 eiro jnthn, *what*! but i come there just to see you talking! you have to change you vacations!
12:15 eiro (i note Abisko.)
12:15 jnthn masak: Wow.
12:15 jnthn masak: http://travel.jnthn.net/country/sweden/abisko/
12:16 masak jnthn: I've yet to be so far north.
12:16 jnthn masak: I've met few Swedes who have.
12:17 jnthn Hint to Swedes: 2/3 of your country is *north* of Stockholm! ;-)
12:17 masak we try not to think too much about that.
12:17 jnthn Having been up there, I always find it incredibly bizzare to here people talk about Stockholm being in the north.
12:17 masak :)
12:18 jnthn erm, *hear*
12:18 masak the paradoxes of Swedish geography...
12:20 jnthn srsly though, I did find the north very pretty. It's worth a trip up there, IMHO. :-)
12:20 masak I believe you.
12:20 masak one day, I'll go there.
12:21 masak right now, I'm mostly glad winter is being phased out.
12:21 masak don't need to chase it unnecessarily.
12:24 payload joined #perl6
12:24 jnthn masak: Got t-shirt weather there yet?
12:25 masak jnthn: 冬暖夏涼
12:26 masak jnthn: uh, I mean no, not unless you want a cold.
12:27 jnthn :-)
12:32 masak but the returning sunshine is a welcome feature. it's at that point that everybody realises that they've been cheated on something really important for the better part of five months.
12:33 jnthn I actually don't completely dislike winter.
12:33 masak it has its merits.
12:33 jnthn Snow can be pretty.
12:33 masak but this sunshine... wow.
12:34 jnthn Yes. :-)
12:34 jnthn Being able to sit outside in a t-shirt and enjoy a cold pivo is so nice.
12:53 iblechbot joined #perl6
12:53 PacoLinux joined #perl6
13:08 ruoso joined #perl6
14:02 ilbot2 joined #perl6
14:02 Topic for #perl6is now  http://perl6-projects.org/ | nopaste: http://sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: http://irc.pugscode.org/
14:13 skids joined #perl6
14:18 mberends bacek: I had problems porting HTTP::Daemon over to using listen() and accept(), not your fault ;)
14:19 masak mberends: you're back! \o/
14:20 masak mberends: please see comment about Rakudo/Parrot revision in backlog.
14:20 mberends masak: 14:03: That's Pod rot, HTTP::Daemon _can_ work with latest Rakudo if I don't break it ;)
14:20 masak mberends: do you have an estimate on an unbroken HTTP::Daemon?
14:20 * masak has coding itch
14:22 * masak sings "unbreak my module" ♪
14:22 dalek rakudo: 2c7f5b3 | pmichaud++ | docs/spectest-progress.csv:
14:22 dalek rakudo: spectest-progress.csv update: 349 files, 8436 passing, 0 failing
14:22 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​c7f5b300c8ef41c1f620bc1a5987b7e6d0499c6
14:22 moritz_ that's a nice number ;)
14:22 masak aye. we've had it for three days now. :P
14:22 Matt-W I particularly like the 0 failing bit
14:23 Matt-W but 8,439 passing is nice
14:23 Matt-W very nice
14:23 moritz_ masak: we'll have more on tomorrow's update
14:23 masak moritz_: nice.
14:23 * Matt-W wonders when rakudo will pass 9,000
14:25 jnthn I'm working on getting us a few more too. :-)
14:25 Lyle masak: I got november to run on Vista command line, but not through apache or iis
14:26 Lyle I've just emailed the group about it
14:26 Lyle I think an index.p6 rather than wiki.sh would be the solution
14:26 moritz_ Lyle++
14:26 masak Lyle++
14:27 masak I'll read the mail first.
14:27 justatheory joined #perl6
14:27 meppl joined #perl6
14:29 mberends masak: getting right tuit
14:29 masak mberends: awesome.
14:31 masak Lyle: you have permission to make any changes you think are needed to make this work on your box. after that, we'll discuss a compromise of what goes into the repo. :)
14:31 masak Lyle: if you like github, this is your chance to fork, commit, and do a pull request.
14:33 exodist joined #perl6
14:34 hercynium joined #perl6
14:36 payload joined #perl6
14:36 [particle]1 joined #perl6
14:39 mberends masak: git blocked here by $work firewall :( can repair HTTP Daemon only after 3 hours. presumably you're hanging around for parrotsketch?
14:39 masak mberends: not tonight, I'm afraid.
14:39 orafu joined #perl6
14:40 masak but that's OK; I'll research the other parts of what I need to get the Lobster working until tomorrow morning.
14:40 masak oh, and thanks for reminding me about parrotsketch. :)
14:40 masak now I have time to think about whether I have something to report.
14:40 pmichaud moritz_: possible --jobs patch for t/harness:   http://nopaste.snit.ch/16177
14:41 pmichaud I haven't tested it yet on a system that has TH3
14:41 Lyle masak: Not to keen on git, still need to give it some practice
14:41 masak Lyle: that's OK too. :)
14:41 Lyle masak: got to get on with some work now, but I'll have a look at it again later...
14:42 masak cool.
14:42 pmichaud bbiab
14:42 moritz_ pmichaud: testing it now, needs some tweaking...
14:55 moritz_ pmichaud: the exec line should be exec => ['perl6'], (including the square brackets)
14:55 moritz_ pmichaud: apart from that it's fine, and with a sufficiently new TAP::Harness it works in parallel
14:56 wolverian joined #perl6
14:57 pmichaud does it need to be './perl6' ?
14:57 moritz_ erm, yes
14:58 pmichaud anyway, if you like, fix up my bugs and commit when working :-)
14:58 moritz_ I have a version running here, and commit if the summary works
14:58 * masak often commits when working
14:58 moritz_ s/commit/push/
14:59 moritz_ I'm still a bit caught in the svn terminology
14:59 pmichaud same here, as you can tell :-)
15:01 orafu joined #perl6
15:02 mberends masak: pierced the $work firewall, doing your fix via my box at home :D
15:02 masak mberends++ # renegade Perl 6 hacking
15:03 mberends masak: try r37917 http://autoexec.demon.nl:8888
15:04 mberends seein' ya
15:04 mberends an' my favicon face
15:05 masak :)
15:05 masak you look so happy!
15:05 mberends committing :D
15:07 moritz_ it's not too fast, but it's *very* nice!
15:07 [particle]1 still needs netcat, though :(
15:07 mberends pushed. hopefully the native socket support will speed it up.
15:07 masak it's Rakudo. :) the application we all love and use, but which has gotten significantly _slower_ in the past few months.
15:08 masak mberends: pulling.
15:08 jnthn masak: Well, if you'd prefer Rakudo to be fast and wrong... ;-)
15:08 pmichaud fast and wrong we can do.
15:08 moritz_ speaking of pushing... I've now finished a spectest run 13 minutes
15:08 masak jnthn: not complaining. (I did say 'love')
15:09 masak mberends: a pull reveals nuttin'.
15:09 mberends :O
15:10 masak mberends: did you push to eric256/perl6-examples?
15:11 dalek rakudo: ea94175 | (Moritz Lenz)++ | t/harness:
15:11 dalek rakudo: re-enable parallel testing in t/harness again
15:11 dalek rakudo: Based on a patch by pmichaud++
15:11 dalek rakudo: Requires a sufficiently recent Test::Harness. For example the harness works
15:11 dalek rakudo: fine with 3.12, but for parallelism you need something newer, 3.16 seems to
15:11 dalek rakudo: work.
15:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/e​a9417560bd818e31419b6fcbdf3d265a93f186a
15:11 dalek rakudo: 27f0c01 | (Moritz Lenz)++ | README:
15:11 dalek rakudo: document requirements for parallel testing
15:11 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/2​7f0c01189593b4cfebf9e5c51da2b0fbfcea01a
15:11 moritz_ folks, please pull rakudo, do a 'TEST_JOBS=3 make spectest', tell me if it runs inparallel and what's your version of Test::Harness
15:11 * masak tries
15:12 mberends masak: I _thought_ I had, but the github site is unchanged.
15:12 masak mberends: aye.
15:12 pmichaud moritz_: I didn't put any code for handling TEST_JOBS in my patch... do we need it?
15:12 * mberends investigates
15:12 pmichaud or is TH3 smart enough to look there automatically?  (The Parrot::Test::Harness explicitly sets the jobs parameter from TEST_JOBS prior to calling TAP::Harness; I omitted that from mine for now.)
15:13 nihiliad joined #perl6
15:13 masak moritz_: it's parallel. moritz_++ pmichaud++
15:13 skids pmichaud: http://www.perlfoundation.org​/perl6/index.cgi?perl6_tasks is now a tuit eater for Synopsis work.  Old stuff moved to github wiki, and could be linked to rakudo.org/status
15:14 skids (link to github is on the original page)
15:14 mberends masak: git status is like "Your branch is ahead of 'origin/master' by 1 commit", that probably means pull first then push again
15:14 skids Sorry for the delay, weekend consumed by HD crash.
15:14 pmichaud ouch, HD crash
15:14 moritz_ pmichaud: no, it seems it's not needed, it was just old habit ;-)
15:14 masak mberends: git pull --rebase
15:14 pmichaud skids: do you have an account on rakudo.org ?
15:14 skids Yeah, HD crash == time suckage
15:15 skids I do but could not figure out how to edit another person's post.
15:15 pmichaud normally it's just login and then click the edit link at the top of the page
15:15 pmichaud at least, that's the way it appears to me
15:15 pmichaud maybe you're not set up as an author?
15:16 skids Yeah I don't see an edit link...
15:16 literal < mberends> masak: git blocked here by $work firewall :(
15:16 literal mberends: ssh blocked as well?
15:16 mberends masak: git realpushed
15:16 * masak pulls
15:16 pmichaud skids:  when I log in, I see a link for "Create content" on the left... do you get that?
15:17 skids nope.
15:17 mberends masak: podrot is still there, this being a hack to unhack a previously failed hack.
15:17 pmichaud aha.  You need to email andy@rakudo.org and ask for page creation privileges.
15:18 skids Thanks, I'll do that.
15:18 masak mberends: I might get around to fixing potrot.
15:19 mberends I also have tuits this evening, see how it goes :)
15:20 masak ooh, imcc errors are gone in this new version as well!
15:21 masak socat error remains.
15:21 masak see previous paste.
15:21 masak it says 'No such file or directory'. which file or directory is it trying to find?
15:22 * mberends looks, frowning
15:22 masak I see no file access in the test-daemon script.
15:23 * jnthn actually manages to break "say 42" in his local tree
15:23 [particle]- yeah, but is it faster?
15:23 literal haha
15:24 jnthn make spectest is way faster, yeah!
15:24 jnthn However we fail everything because we don't give any output. ;-)
15:24 dKingston joined #perl6
15:25 masak ok, I won't mention speed again. it's just that it'd be nice not to celebrate Christmas in syrup...
15:25 moritz_ jnthn: what is failing? unchanged trunk?
15:25 dalek rakudo: 4453712 | pmichaud++ | build/Makefile.in:
15:25 dalek rakudo: Refactor checks for Makefile updates so that 'make realclean' continues to work.
15:25 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​453712948d0ca39296a32034ea163cf8f38ba77
15:26 pmichaud masak: it's fine to mention speed -- we know it's an issue.
15:27 pmichaud masak: are you noticing compilation speed or runtime speed as the bigger issue?
15:27 masak pmichaud: runtime.
15:27 pmichaud okay.
15:27 * PerlJam is still just happy to have a compiler that executes actual perl 6 code, so speed isn't an issue yet.
15:27 pmichaud for that, we keep increasing the pain level on Parrot
15:27 jnthn moritz_: No, a fairly tricky patch I'm working on. :-)
15:27 masak pmichaud: when I put a lintel in Druid nowadays, there's a noticeable pause.
15:27 masak PerlJam: indeed.
15:27 Tene_ joined #perl6
15:28 masak PerlJam: it's just that I got kinda used to what little speed there used to be. :P
15:28 moritz_ jnthn: and I thought I  broke the harness. puh.
15:28 PerlJam masak: but keep mentioning the speed problem  ;)
15:28 jnthn moritz_: Sorry!
15:28 mberends joined #perl6
15:29 * masak covers mouth
15:30 pmichaud jnthn: btw, I'm very close to having bytecode line number annotations in PCT output :-)
15:30 moritz_ jnthn: well, in the worst case I would just have reverted that patch
15:30 jnthn pmichaud++ # excellent!
15:30 PhatEddy joined #perl6
15:31 pmichaud so a possible task for later in the week would be better exception reporting :-)
15:31 jnthn pmichaud: Will be yet another nice thing for the next release.
15:31 * moritz_ wonders if there's a spec for line number informatoin in Match objects
15:31 jnthn pmichaud: Yes. :-)
15:31 jnthn We can haz prettier backtracez.
15:31 moritz_ and if not, maybe writing one would make sense
15:31 pmichaud moritz_: there's not one in Match objects, but STD has one.
15:32 masak mberends: what's './test.pl' in the HTTP::Daemon source?
15:34 PhatEddy rakudo: class Foo {my Num $.e1 = exp 1;}; say Foo.e1; say ++Foo.e1
15:34 p6eval rakudo 0310a3: OUTPUT«2.71828182845905␤Cannot assign to readonly variable.␤current instr.: 'die' pc 15853 (src/builtins/control.pir:204)␤»
15:35 mberends masak: sry, mibbit lostit. ISTR that test.pl was part of the native socket attempt.
15:35 PhatEddy looks a bit promising if I could figure out how to export the e1 method
15:36 moritz_ rakudo: sub e { exp 1 }; say e; say ++e;
15:36 p6eval rakudo 0310a3: OUTPUT«2.71828182845905␤3.71828182845905␤»
15:36 moritz_ rakudo: sub e { return exp 1 }; say e; say ++e;
15:36 p6eval rakudo 0310a3: OUTPUT«2.71828182845905␤3.71828182845905␤»
15:37 PerlJam rakudo: sub e { exp 1 }; say e; say ++e; say e;
15:37 p6eval rakudo 0310a3: OUTPUT«2.71828182845905␤3.7182​8182845905␤2.71828182845905␤»
15:37 PhatEddy Anyone know how to export a class attribute accessor method?
15:38 PerlJam rakudo: sub x { return 4; } say x; say ++x; say x;
15:38 p6eval rakudo 0310a3: OUTPUT«Statement not terminated properly at line 1, near "say x; say"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
15:38 PerlJam rakudo: sub x { return 4; }; say x; say ++x; say x;
15:38 p6eval rakudo 0310a3: OUTPUT«4␤5␤4␤»
15:38 PerlJam That's an interesting behavior
15:38 masak mberends: I don't have such a file, I think.
15:38 moritz_ indeed
15:39 * masak adds PerlJam's find to the ticket
15:39 mberends masak: Daemon startup here is: cd perl6-examples/lib/HTTP; perl6 Configure.p6; make LOCALADDR=10.x.y.z run
15:40 masak ah. trying that.
15:40 jnthn PerlJam: Accidental feature! ;-)
15:40 mberends masak: FSVO x.y.z.
15:40 masak uh huh.
15:40 PerlJam jnthn: just add it to the spec :)
15:41 mberends masak: 127.0.0.1 even. And you're right, test.pl is gone.
15:41 masak mberends: rot, rot, rot :P
15:41 mberends lol
15:41 masak .oO( something rotten in the state of Daemon... )
15:42 * mberends knows what he'll get for homework today...
15:43 * mberends .oO( speaking of which, I'm almost going to miss my train! )
15:44 mberends masak: continue in 2 hours?
15:44 masak mberends: have to depart soon, unfortunately. :/
15:44 masak but I'll keep working offline tonight.
15:44 masak and we'll continue to take over the wo... er, hack on this, tomorrow.
15:45 mberends ok, see you in the morrow
15:45 masak aye, sir.
15:45 mberends left #perl6
15:45 orafu joined #perl6
15:46 * masak shouts something after mberends
15:46 masak mberends: FWIW, the 'make run' thing worked! \o/
15:46 masak mberends: (but it's pretty bad IMHO that the examples in the Pod didn't.)
15:49 masak but 'make run' working is Very Good News. now I can continue my Lobster work offline. :)
15:49 pmichaud @seen eric256
15:49 lambdabot I saw eric256 leaving #perl6 2m 16d 9h 17m 28s ago, and .
15:52 brunoV joined #perl6
15:52 * masak has always been curious why there's an ', and .' there.
15:57 * skids ponders the fact that .oO(...) is valid in many languages
15:57 PhatEddy rakudo: constant $x = 1; $x += 2; say $x
15:57 p6eval rakudo 0310a3: OUTPUT«3␤»
15:58 masak oh noes!
15:59 PerlJam another one of those features.
15:59 masak I'm having a fun time imagining how our tests for the 'constant' keyword might look if that passes...
15:59 * masak adds that one to the growing list of sins
16:01 clintongormley joined #perl6
16:02 pmichaud I think constant is not yet implemented (as constant, at any rate).
16:02 Psyche^ joined #perl6
16:02 masak pmichaud: that theory fits the data, at least. :P
16:03 pmichaud oh, and since it came up in conversation yesterday (from reading backscroll) -- my expectation has been that Rakudo will use a parrot property to identify containers versus constants
16:03 pmichaud (in case jnthn happens to read the above :-)
16:04 jnthn *sigh* So after debugging for ages why sub foo(Int @x) { }; my Int @y = 1,2,3; foo(@y); failed the type-check...and figuring it was in signature binding...I find that while my Int @y; @y.of.say gives Int, after assigning to @y it loses it's type. *sigh*
16:06 pmichaud that seems.... odd.
16:06 moritz_ jnthn, pmichaud: when do you plan to replace 'is also' on classes with 'augment'?
16:06 pmichaud oh, whenever.  :-)
16:06 moritz_ there's a patch to update the test suite in RT
16:07 moritz_ and I don't want to maintain that forever
16:07 pmichaud let's see what it would take to do it in rakudo.
16:08 pmichaud it's a somewhat significant change, because we're taking something that was once a trait and turning it into a declarator.
16:08 jnthn pmichaud: Yeah, I'm having fun working out exactly where it fails...
16:08 pmichaud jnthn: the type information is just a property on the @y container, yes?
16:08 moritz_ and while you are at it, I think that 'class A { ... }; class A { actual methods here }' shouldn't complain
16:09 moritz_ rakudo: class A { ... }; class A { method b { } }; say "alive"
16:09 jnthn pmichaud: No
16:09 p6eval rakudo 0310a3: OUTPUT«Re-declaration of type A at line 1, near "; say \"ali"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
16:09 jnthn pmichaud: It's a parametric type.
16:09 moritz_ pugs: class A { ... }; class A { method b { } }; say "alive"
16:09 p6eval pugs:  ( no output )
16:09 moritz_ elf: class A { ... }; class A { method b { } }; say "alive"
16:09 jnthn pmichaud: So it stores it as a lexical.
16:09 p6eval elf 26102: OUTPUT«Parse error in: /tmp/rmxt0P75qH␤panic at line 1 column 10 (pos 10): Missing right brace␤WHERE: class A { ... }; class A { method b { } ␤WHERE:          /\<-- HERE␤  STD_red/prelude.rb:99:in `panic'␤  STD_red/std.rb:255:in `_block_rest'␤  STD_red/std.rb:242:in `block in block'␤
16:09 p6eval ..S...
16:09 jnthn pmichaud: The real issue is
16:09 sitaram joined #perl6
16:09 moritz_ pugs: say "alive"
16:09 p6eval pugs: OUTPUT«alive␤»
16:10 jnthn my Int @y; say @y ~~ Positional[Int]; # 1
16:10 jnthn my Int @y; @y = 1,2,3; say @y ~~ Positional[Int]; # 0
16:10 pmichaud jnthn: yes, that's my point.
16:10 pmichaud what is it that associates @y with Positional[Int]  ?
16:11 pmichaud (internally)
16:11 jnthn pmichaud: doing a role
16:11 jnthn pmichaud: Basically, since we are some way off making Array parametric
16:11 jnthn I do on the container the equivalent of @y does Positional[Int]
16:11 jnthn (Just emit a call to infix:<does>
16:11 pmichaud doesn't that use setprop at some level?
16:11 jnthn )
16:11 jnthn No
16:11 jnthn I don't believe so anyway...
16:12 pmichaud well, that's likely the problem then.
16:12 jnthn ?
16:12 pmichaud if I do   my Int $x;
16:12 pmichaud is that still held as a property on the $x PMC ?
16:12 pmichaud or did that change also?
16:13 jnthn For scalars, then yes, it's held as a property.
16:13 jnthn But does
16:13 jnthn my @y = 1,2,3; # actually replace @y?
16:13 jnthn Because I was under the impression it should call !STORE
16:13 pmichaud depends on what you mean by "replace"
16:14 jnthn Hmm. It claims it does call !STORE.
16:14 pmichaud yes, I think it calls !STORE (from Array)
16:14 jnthn As in, the actual type, such that if I infix:does'd it, it'll retain that.
16:15 jnthn my @y; @y[0] = 1; say @y ~~ Positional[Int] # 1
16:16 jnthn So it's just assigning of the whole thing. But it sure does call !STORE, as you expected. So, hmm.
16:16 pmichaud well, be careful with that one.
16:16 pmichaud you didn't assign to @y, you assigned to @y[0]
16:17 jnthn pmichaud: Yes, I know. Just isolating the problem.
16:17 jnthn oh, hmm
16:17 jnthn oh noes...I know what it is. :-(
16:17 jnthn .sub 'infix:=' :multi(['Perl6Array'], _)
16:18 jnthn Seems for some reason after we've called infix:<does> on an Array, we don't call this multi-variant.
16:18 jnthn (Even though it is a subclass. Hmm.)
16:18 pmichaud it probably thinks another (likely the scalar variant) is closer.
16:18 PerlJam jnthn: Isn't knowing half the battle? Rejoice that you're half way to a solution!  ;)
16:18 jnthn Nasty.
16:18 pmichaud or it doesn't think that the variant is a ['Perl6Array']
16:19 jnthn Yeah, I'm not sure which one.
16:19 pmichaud looking beyond this specific problem... is it your expectation that   types on containers will be done with properties or using the <does> approach?
16:19 pmichaud (i.e., as we get farther along)
16:20 pmichaud because I think it should be the same for Scalars
16:20 pmichaud (whichever it is)
16:20 jnthn I'm not convinced it'll be quite either-or.
16:21 jnthn It's for sure that my Int @y needs to have @y doing Positional[Int]
16:21 jnthn But when you take, say @y[42], then this "container" is at that point somewhat divorced from it's parent container.
16:21 pmichaud it's just "Int" at that point, yes?
16:21 jnthn Right, so in that case it'd need a property.
16:22 pmichaud it cant be something that   does Int ?
16:22 jnthn Well, anything that Int.ACCEPTS(...) could be assigned to it.
16:22 jnthn But it is just like a normal scalar type-check at that point.
16:23 jnthn The Positional[Int] is more for talking about the array as a whole.
16:23 jnthn sub foo(Int @x) { } # tests for does Positional[Int]
16:23 pmichaud right, I see the difference.
16:23 pmichaud (now I do, anyway)
16:23 jnthn In that second case, we don't consider the values.
16:23 jnthn Just that it does the role.
16:24 orafu joined #perl6
16:24 jnthn In the long run, I expect that we will not re-bless, but instead Array becomes a role.
16:24 jnthn Then we pun an Array[Int]
16:25 jnthn Which is defined as something like role Array[::T] does Positional[T] { ... }
16:25 jnthn (Which will be more efficient, of course.)
16:26 pmichaud right.  okay, I'm following now (mostly)
16:26 pmichaud thanks for efficient explanation :-)
16:26 pmichaud if it helps, I'm fine with eliminating the multi-ness of 'infix:=' in favor of explicit type checks
16:26 jnthn Anyway, at this point I ain't so sure what to do next...
16:27 jnthn Hmm. That could be one option.
16:27 pmichaud or, you could leave them as multis, but put some guards in the default 'infix:=' to re-dispatch to the correct version if Parrot guesses wrong.
16:27 jnthn We have over the course of Rakudo history flip-flopped between the two, I think.
16:27 jnthn Yeah, but assignment is something we want to be, well, unslow. :-)
16:27 pmichaud I suspect doing the check isn't going to add significantly.
16:28 pmichaud it's just a does and a tailcall
16:28 pmichaud (does, test, and tailcall)
16:28 jnthn True, but PCC is slow so the re-dispatch hurts. But maybe I shouldn't worry about that for now. :-)
16:28 jnthn Anyway, if you're OK with me working around it like that for now, i'll go with it.
16:28 PerlJam pmichaud: or figure out how to guarantee that parrot doesn't guess wrong.
16:29 pmichaud well, if you prefer to fix Parrot, I'd be happy with tha...... what PerlJam said
16:29 PerlJam pmichaud: but perhaps that's equivalent to what you said  first ;)
16:29 pmichaud for infix:= we've tended to flip between methods and subs
16:30 jnthn Ah, true.
16:30 Khisanth joined #perl6
16:30 jnthn (fix) Well, I could always give them signatures and re-bless them into Perl6MultiSub's in that case. :-P
16:31 jnthn Oh hey, maybe that isn't such a stupid idea...
16:31 pmichaud I'd be fine with that also.
16:32 pmichaud I'm not terribly attached to the current infix:= implementation other than the fact that it "works"
16:32 pmichaud I'm very open to refactors (as long as they "work" to at least the same level as what we have now)
16:32 jnthn Maybe we should schedule some time to discuss this area at NPW.
16:32 pmichaud actually, we need to be making a list somewhere of NPW topics to discuss :-)
16:32 jnthn We still need to sort out binding to hash and array values too.
16:33 pmichaud binding in general is an issue too.
16:33 jnthn Which probably figures into this lot.
16:33 pmichaud I'm happy with figuring this out at NPW, also.
16:34 pmichaud we probably also need to come up with a list of tasks that others can work on if they want.
16:34 jnthn OK. In that case I'll probably plump with the quick fix.
16:34 jnthn For now.
16:34 pmichaud quick fix sounds good.
16:34 jnthn Yes, that too.
16:34 jnthn I'd really like to get a first cut of this stuff working.
16:35 pmichaud anyway, my suggestion is explicit typecheck in infix:=
16:35 pmichaud (the one that is being mistakenly called)
16:40 jnthn pmichaud: OK, that seems to help :-)
16:43 jnthn Woo, and my patch at least makes it through the sanity tests.
16:43 jnthn I fear the spectests will be a different story though.
16:45 braceta joined #perl6
16:45 nihiliad joined #perl6
16:47 diakopter rakudo: ;3;;3;;3;;3; ;3;; ;3; 3;;3;3;;3; ;; ;33;3;333;  3 ;;3;;3 ; ;;; ;; ;
16:47 p6eval rakudo 0310a3:  ( no output )
16:47 diakopter rakudo: ;3;;3;;3;;3; ;3;; ;3; 3;;3;3;;3; ;; ;33;3;333;  3 ;;3;;3 ; ;;; ;; ; say 'ok'
16:47 p6eval rakudo 0310a3: OUTPUT«ok␤»
16:47 pmurias ruoso: how should the module where we fill in capture's MESSAGE be called?
16:48 ruoso hmm... re-capture? ;)
16:49 pmichaud moritz_: I don't know that we'll be able to s/is also/augment/ anytime very soon.
16:49 pmichaud it's a fairly significant change to the way we build classes and roles.
16:49 pmichaud (from a parsing perspective)
16:49 kane_ joined #perl6
16:51 pmichaud we may want/need contextual variable support in PGE/NQP in order to do it properly.
16:53 pmurias ruoso: i'm not very happy with that name but i can't think of a better name
16:54 ruoso pmurias, I think it's about stage 1 caputre
16:54 ruoso maybe s1native
16:55 pmurias i could be filled in native
16:56 ruoso hmm... in fact
16:56 ruoso it could
16:56 pmurias or we could have capture-part1 and capture-part2
16:58 schinkelm joined #perl6
17:04 jnthn OK, I'm scared...
17:04 jnthn > multi foo(Int &x) { say 1 }
17:04 jnthn > multi foo(Str &x) { say 2 }
17:04 jnthn > sub a() returns Int { return 42 }
17:04 jnthn > sub b() returns Str { return "OH HAI" }
17:04 jnthn > foo(&a); foo(&b);
17:04 jnthn 1
17:04 lambdabot <no location info>: parse error on input `42'
17:04 lambdabot <no location info>: parse error on input `2'
17:04 lambdabot <no location info>: parse error on input `"'
17:04 lambdabot <no location info>: parse error on input `;'
17:04 lambdabot <no location info>: parse error on input `1'
17:04 jnthn 2
17:06 pugs_svn r26103 | hinrik++ | [util/perl6.vim] add by keyword, color storage keywords (let, my, our, ...) differently than other keywords
17:06 PerlJam scared but in a good way?
17:07 jnthn PerlJam: Yes. :-)
17:07 jnthn Especially happy that I didn't have to go fiddle with the multi dispatcher and this Just Worked.
17:08 PerlJam push it out so that my rakudo can do this too  :)
17:08 jnthn Also, that this is not a special case, but you can now write your own parametric types and dispatch on the different parameters too.
17:08 PerlJam (assuming spectest didn't randomly fail)
17:08 jnthn As in, variants of the parametric type with different type parameters.
17:08 jnthn make spectest is failing some stuff.
17:09 jnthn It's hard to be sure how serious it is just yet.
17:09 jnthn Also, I gotta now go do $other_stuff for one of my clients, but hopefully I can get this patch cleaned up and pushed later this evening.
17:10 pugs_svn r26104 | hinrik++ | [util/perl6.vim] classify the proto keyword differently
17:10 PerlJam jnthn++
17:11 jnthn There are several test files that have fails so far, but glancing over the failure modes they basically look to boil down to two bugs so far.
17:11 jnthn But I'm only down to S04 yet, so...
17:13 pugs_svn r26105 | hinrik++ | [util/perl6.vim] update TODO
17:14 pugs_svn r26106 | pmurias++ | [re-smop]
17:14 pugs_svn r26106 | pmurias++ | added missing files
17:14 pugs_svn r26106 | pmurias++ | added .positional to capture
17:14 hercynium joined #perl6
17:20 hercynium joined #perl6
17:20 pugs_svn r26107 | pmurias++ | [re-smop] fixed all gcc warnings
17:22 [particle]1 joined #perl6
17:27 jnthn pmichaud: ping
17:28 jnthn pmichaud: Or actually can scribble it here...I did add a dynop very like the one you just added recently. :-)
17:30 eternaleye joined #perl6
17:34 eternaleye joined #perl6
17:35 diakopter std: my $a = my $b = 4;
17:35 p6eval std 26107: OUTPUT«ok 00:02 35m␤»
17:35 diakopter rakudo: my $a = my $b = 4;
17:35 p6eval rakudo 0310a3:  ( no output )
17:42 Tene_ pmichaud: any chance you could get the text of the line in an annotation too?
17:42 Tene pmichaud: that could certainly make for much nicer error reporting. :)
17:43 TimToady if you have the position in the original program string, you can fetch the line out at the last moment without carrying it along
17:44 TimToady is how STD does it
17:44 moritz_ TimToady: should .line or so be specced in the Match object?
17:44 TimToady line numbers are also generated from the position in the progam string
17:44 TimToady why?
17:45 TimToady you can derive it from the pos
17:45 TimToady as STD does
17:45 TimToady I suppose if Match knows its original string, then .line can be provided
17:45 TimToady but STD currently cheats on that for efficiency
17:46 TimToady and just uses a contextual var for the original string
17:46 moritz_ so is counting newlines when you need to more efficient that counting them on the way, and storing them?
17:46 TimToady used to carry .orig around in all the Cursors, but that was hard to manage in P5 without accidental dups
17:47 TimToady moritz_: I don't know, but it's a lot more stable in the face of possible language mutation
17:47 moritz_ TimToady: ok, fine by me
17:47 yahooooo joined #perl6
17:48 TimToady you want the positions anyway so you can report where in the line it failed, so the line number is actually rather redundant
17:49 TimToady and you only have to generate your translation table once
17:49 moritz_ I guess you can find an efficient way to build some sort of cache to map .pos ranges to line numbers
17:49 moritz_ if you need it often
17:49 TimToady I've got various per-position things cached already in STD, so adding in line # isn't much more
17:50 TimToady like did I already check for whitespace here?
17:50 diakopter packra
17:51 TimToady see @*MEMOS in STD.pm
17:51 orafu joined #perl6
17:51 aindilis joined #perl6
17:51 TimToady and method lineof
17:56 pmichaud Tene: yes, I can put the text of the line in an annotation also.  But if we're doing that, we ought to just put the entire program text into the compiled output and use that.
17:57 pmurias bjj&
17:58 pmichaud Match in PGE keeps track of its original string, but it's not significantly more or less efficient than holding it in a contextual variable.
17:59 pmichaud (i.e., it's just a reference)
18:03 TimToady on the other hand, my impression is that PGE treats its match state objects as mutable, while Cursor is (at least notionally) based on immutable objects that get copied more frequently
18:04 TimToady with immutable state it is never necessary to put Cursor objects back to their previous state on backtracking; you just use the old object
18:04 TimToady which is how it can use lazy lists for its backtracking engine
18:05 PerlJam garbage collection is a good thing
18:05 TimToady anyway, carrying relatively static refs around gets more expensive the more you copyt them
18:05 PerlJam TimToady: What do you think about having // alwasy produce a Regex object and requiring m// to actually perform a Match?
18:06 TimToady what's the boolean value of // then?  :)
18:06 PerlJam Bool::True (always :)
18:06 moritz_ PerlJam: that would make $str.split(/.../) very non-dwimmy
18:06 TimToady I like the current design
18:07 TimToady p6 is all about lazy context
18:07 PerlJam moritz_: no it wouldn't ... you're passing a Regex object to split and split does the matching.
18:07 moritz_ speaking of split... it seems all implementations still think it's split($needle, $haystack)
18:08 TimToady note that we've removed the necessity to introspect the /
18:08 moritz_ PerlJam: right, I was confused
18:10 pmichaud TimToady: the question we came up with last week was something like:     /.../ ?? 'true' !! 'false'
18:10 pmichaud how do we know that /.../  is to be an immediate match?
18:10 TimToady it's in a boolean context
18:10 pmichaud do all regexes in boolean context match against $_ ?
18:11 TimToady yes
18:11 pmichaud okay.
18:11 TimToady $x ~~ is a topiclaizer
18:11 TimToady I've been saying this for years...
18:11 [particle]- so /.../ is the same as ?/.../
18:11 pmichaud no.
18:11 barney joined #perl6
18:11 pmichaud it depends on the context of /.../
18:11 PerlJam ?//, ~//, and +// are all immediate matches against $_ though
18:11 lambdabot Unknown command, try @list
18:11 pmichaud afaict, the synopses don't make it clear that any Regex in a boolean context performs a match
18:12 TimToady m// is the problem child under this view
18:12 TimToady if m// means ?// then you can't use is in list context
18:12 TimToady *it
18:12 [particle]- what if m// means \//
18:13 TimToady I huh in your general direction
18:13 [particle]- or is that |// (i'm still confused with that syntax)
18:13 TimToady I rehuh in your general direction
18:13 [particle]- basically, lazy context detection
18:13 TimToady context is always lazy
18:13 pmichaud TimToady: so, m/.../  always forces an immediate match on $_  (unless topicalized by smartmatching),   /.../ produces a regex that matches against $_ when in boolean context (as all regexes do)
18:13 TimToady so I don't know what you mean
18:14 [particle]- neither do i, i suppose
18:14 TimToady m// always forces an immediate match on $_ *especially* if topicalized by smartmatching
18:14 PerlJam [particle]-: m the stands for "magic"  :)
18:14 pmichaud okay.
18:14 TimToady the m// seems the $x via $_
18:14 pmichaud so   $x ~~ m/.../     matches $x against the Match object produced by m/.../
18:14 TimToady *sees
18:15 PerL_MonK im afraid to ask what '?' stands for then
18:15 [particle]- hrmm.
18:15 pmichaud oh, okay, what you just said then.
18:15 [particle]- PerL_MonK: prefix:<?> evaluates an expression in boolean context
18:16 TimToady basically, I guess, matches *always* match against $_
18:16 PerL_MonK i was expecting a more, magical answer ;)
18:16 pmichaud with   foo(Regex $x) { $_ = 'blah';  say ?$x; }
18:16 [particle]- can ops curry?
18:16 PerlJam TimToady: right,  $x~~ as topicalizer just hasn't sunk in.
18:16 [particle]- $x ~~;
18:16 pmichaud is $x matched against the local $_ or against the $_ in effect when the regex was defined?
18:16 [particle]- /match_me/;
18:16 jhorwitz joined #perl6
18:16 TimToady however, they match against the $_ in effect at the location of the //
18:16 pmichaud okay
18:16 pmichaud you just answered that, then.
18:17 pmichaud grep and split are special, though.
18:17 TimToady not at the ? location, which could be down in a service sub like split
18:17 [particle]- heh
18:17 TimToady either that, or a splitter has to alias its $_ to the CALLER::<$_> explicitly
18:18 pmichaud this doesn't match the discussion I remember on the topic -- at least not entirely.
18:18 TimToady maybe that makes more sense
18:18 [particle]- the pessimizer will be busy
18:18 Tene pmichaud: do you have a plan for context vars?
18:19 pmichaud with    "something".split(/.../)   --- how does split set the topic for the regex, then?
18:19 pmichaud Tene: answer #1:  Parrot isn't up for "real" context vars yet
18:19 skids joined #perl6
18:19 pmichaud Tene:  answer #2:  I've just introduced an opcode that allows us to simulate it a bit
18:20 pmichaud Tene: for real context vars the way that Perl 6 wants them, we need a lot more introspection on cotnexts
18:20 PerlJam TimToady: seems like that's a general implementation detail useful for split-like methods
18:20 pmichaud *contexts
18:20 TimToady perhaps $x ~~ // really turns into <-> $_ { // }($x)
18:20 meppl joined #perl6
18:20 PerlJam <->  is rw parameters?
18:21 TimToady yes
18:21 diakopter std: my $d=$d
18:21 p6eval std 26107: OUTPUT«ok 00:02 35m␤»
18:22 TimToady or whatever the right syntax is, the idea being that a match passed to a splitter is really a closure with a prebound $_
18:22 PerlJam I guess that gives s/// some help, but I'm not sure why rw for //
18:22 TimToady well, should really be "is ref" I suppose
18:22 PerlJam diakopter: be aware that those are the same $d
18:23 diakopter PerlJam: please explain..
18:23 PerlJam diakopter: you need to do something like my $d = $OUTER::d; to get the one from the outter scope.
18:23 TimToady as I said last night, declarations introduce names immediately
18:24 PerL_MonK left #perl6
18:24 PerlJam diakopter: as soon as you see "my $d", that puts $d in the local scope
18:24 pmichaud .oO( I think "match passed to a splitter" was to be "regex passed to a splitter" ...?)
18:24 PerlJam TimToady: yeah, but you have to use many different words until everyone gets it :)
18:24 diakopter ... faq (by diakopter)
18:27 pmichaud I'm guessing that a regex is a closure with a default parameter of OUTER::<$_>
18:27 pmichaud at least for the /.../ and m/.../  forms
18:28 pmichaud much like we do for other un-signatured closures
18:28 [particle]- can a regex ever take anything other than one param?
18:29 PerlJam Depends on if you count adverbs as parameters  :)
18:31 TimToady token foo ($more, $params) {...}
18:31 TimToady however, ~~ has no way to supply those extra params
18:32 [particle]- but split does
18:32 PerlJam If // is a closure with $_ as invocant, then ($x ~~ /.../)($foo, $bar);  should work
18:34 [particle]- it's nice to have a language that still has corners
18:34 PerlJam ($str ~~ HTML)('strict')  # or something.
18:34 pmichaud PerlJam: I don't see how that can be.
18:35 PerlJam But then I'd want something like $str ~~ HTML('strict')
18:35 moritz_ if HTML overrides .accepts, it can return a closure...
18:36 PerlJam pm: i'm hand-wavy right now.  that first one probably wouldn't work, but the second one might.
18:36 pmichaud it's easier to follow if you say $regex
18:36 pmichaud instead of HTML
18:36 TimToady well, all this is kinda beside the point if $x ~~ $y means $y.ACCEPTS($x)
18:37 PerlJam But I wonder what happens when you do  $str ~~ HTML;  and there are required parameters
18:37 pmichaud I'm really not concerned about the smart match case at the moment.
18:37 pmichaud I'm more interested in the .split(/.../)   .match(/.../)   and /.../ ?? foo !! bar   cases at the moment
18:38 pmichaud smartmatch is "special" -- we can do syntactic things to make it do what we want.
18:39 TimToady I suspect those guys probably just make sure their $_ is aliased appropriately
18:39 pmichaud I'm confused about what's been decided, then.
18:39 TimToady I'm just confused... :)
18:40 pmichaud with   my $regex = /.../;   $foo.split($regex)    ..... is $regex matching against split's $_ or the caller to split ?
18:40 PerlJam TimToady: you mean .split and .match alias $_ appropriately, while  /.../ ?? foo !! bar; just matches against the local $_
18:40 diakopter (or the $_ in the context of $regex' declaration)
18:40 TimToady split sets $_ to $foo in that case
18:41 pmichaud okay, so $regex matches against its callers $_, not against the $_ of the regex definition.
18:41 TimToady I don't think /.../ closurizes
18:41 TimToady yes
18:41 pmichaud and with  ?$regex ... ?
18:42 pmichaud is it still matching against the $_ at the point of the boolean, or ... ?
18:42 TimToady prefix:<?>'s caller's $_, again
18:42 pmichaud okay.
18:43 TimToady or something like that--at some point primitives take over and emulate the semantics, of course
18:43 pmichaud so, a regex in boolean context does an immediate match against $_ .  I can handle that.
18:43 TimToady so the actual eval of // might be triggered by binding, for instance, not the actual body of ?
18:43 cdarroch joined #perl6
18:44 PerlJam so, do I remember right that $str ~~ Foo is specced now and means something like  Foo.parse($str)  where .parse() invokes the TOP rule?
18:45 pmichaud No.
18:45 pmichaud $str foo asks  "$str does Foo?"
18:45 pmichaud sorry
18:45 pmichaud $str ~~ Foo    asks   "$str does Foo?"
18:45 pmichaud (unless the spec changed again while I wasn't looking)
18:45 moritz_ it didn't ;-)
18:46 moritz_ if you want Foo.parse, you write Foo.parse($str) ;-)
18:46 PerlJam okay, so you still have to do  $str ~~ / <Foo::TOP> /   or Foo.parse($str)  (but .parse does invoke TOP)
18:46 pmichaud .parse wants to invoke TOP by default, yes.
18:47 PerlJam okay, so if .parse invokes TOP, does it have a slurpy on the end (or something) for parameters to TOP?
18:47 PerlJam (or does TOP ever take parameters?)
18:47 pmichaud all methods have slurpy named
18:58 DemoFreak joined #perl6
18:59 pmichaud if you mean slurpy positional -- we haven't put that there but could certainly do so if needed.
19:04 justatheory joined #perl6
19:15 orafu joined #perl6
19:32 Util joined #perl6
19:33 Util evalbot: 'my $z = 1**Inf; say $z.perl'
19:33 moritz_ rakudo: my $Z = 1**Inf; say $Z.perl
19:33 p6eval rakudo 0310a3: OUTPUT«1␤»
19:33 moritz_ it runs on linux
19:34 Util And outputs "NaN" on MinGW/Win32. Thanks, moritz.
19:36 moritz_ rakudo: say (1**NaN).perl
19:36 p6eval rakudo 0310a3: OUTPUT«1␤»
19:37 Util Shouldn't that have produces NaN?
19:37 moritz_ that's a good question
19:37 Util s/produces/produced/
19:37 moritz_ my first thought was "yes"
19:38 moritz_ but then... can you imagine *any* x so that 1**x gives something other than 1?
19:38 [particle]- rakudo: say (1**'a').perl
19:38 p6eval rakudo 0310a3: OUTPUT«1␤»
19:41 Util 1**x == 1 when x is any number. If x is not a number, all bets should be off. 1**"Util_says_some_line_noise" should be NaN or throw an exception, IMHO.
19:42 moritz_ you've got a point there
19:45 frew|work joined #perl6
19:52 sri_kraih joined #perl6
20:08 orafu joined #perl6
20:22 * jnthn is back from nom
20:23 jnthn pmichaud: Will Thursday work for Rakudo day?
20:25 pmichaud yes
20:25 pmichaud that's probably best for me.
20:25 pmichaud Friday kids are home from school.
20:26 jnthn OK, it's best for me too, I think.
20:26 pmichaud I should have bytecode annotations done well before then.
20:26 pmichaud (working on them now, in fact)
20:26 jnthn Tomorrow will have too many distractions, and Friday I probably need to wrap some non-Rakudo stuff up before The Trip.
20:26 jnthn (bytecode annotations) great!
20:27 jnthn We can haz better errors!
20:27 jnthn Will you provide a hook in HLLCompiler for subscribing some sub that receives an uncaught exception?
20:27 jnthn Or just some default we can subclass is fine I guess.
20:29 pmichaud jnthn: we can do that, yes.
20:29 jnthn OK, great. :-)
20:29 pmichaud something somewhere.
20:31 jnthn specificity win ;-)
20:34 lucs Apart from running some code (which might fail because of some misunderstanding on my part), what's a practical way to figure out whether/how a given feature is currently implemented? (For example, I'm wondering about heredoc operators...)
20:34 skids run it in the evalbot here, where people are watching.
20:35 skids and check rakudo.org/status and RT
20:35 lucs Er, I wouldn't want to pollute the channel with my ignorance :/
20:35 lucs Ah, status, ok.
20:35 jnthn I think you can pm evalbot too.
20:35 [particle]- or examine t/spe
20:35 [particle]- *t/spec
20:36 lucs Ok, thanks.
20:36 Tene_ joined #perl6
20:37 sri_kraih_ joined #perl6
20:42 pmichaud and Rakudo doesn't implement heredocs yet.
20:42 pmichaud (in case status doesn't say that.)
20:42 TimToady STD parses them, fwiw
20:43 lucs pmichaud: That's what it looks like :)
20:43 pmichaud I'll have to check out STD's parsing.
20:43 pmichaud but at some point I'm going to be tired of emulating STD and just use it.  :-)
20:43 TimToady std: q:to'foo';␤stuff␤foo␤
20:44 p6eval std 26107: OUTPUT«##### PARSE FAILED #####␤Unrecognized quote modifier: 1 at /tmp/d5ckZFXAjZ line 1:␤------> [32mq:to'foo[31m';[0m␤FAILED 00:02 34m␤»
20:44 pmichaud then again, it's possible STD doesn't parse some of them :-)
20:44 TimToady strange...
20:52 hercynium joined #perl6
20:59 TimToady std: q:to/foo/;␤stuff␤foo␤
20:59 p6eval std 26107: OUTPUT«ok 00:03 35m␤»
20:59 TimToady std: q:to"foo";␤stuff␤foo␤
20:59 p6eval std 26107: OUTPUT«ok 00:02 35m␤»
20:59 TimToady std: q:to'foo';␤stuff␤foo␤
20:59 p6eval std 26107: OUTPUT«##### PARSE FAILED #####␤Unrecognized quote modifier: 1 at /tmp/bNbf3B3f2c line 1:␤------> [32mq:to'foo[31m';[0m␤FAILED 00:02 34m␤»
21:04 PerlJam don't you run afoul of the fact that ' can be in identifiers?
21:04 TimToady std: q:to 'foo';␤stuff␤foo␤
21:04 p6eval std 26107: OUTPUT«ok 00:03 35m␤»
21:04 TimToady apparently :)
21:05 moritz_ is the ' really needed in identifiers?
21:05 moritz_ I can see the point for the dash - and I frequently use it
21:05 PerlJam don't won't isn't etc.
21:05 pmichaud Depends on whether you like O'Malley or Klingon :-)
21:05 moritz_ but all examples for ' that I've seen were constructed
21:06 PerlJam is($foo);  isn't($bar);
21:06 moritz_ pmichaud: usually you don't give your variables names like O'Malley - that's typically used in data instead
21:06 moritz_ ah well, maybe I'm just not open enough for that kind of change
21:07 moritz_ I just think of Acme::don't, and how I explained that to non-perl-programmers (and not-so-experienced perl programmers as well)
21:07 TimToady the point is, I think, that the error message was misleading
21:07 PerlJam yes, indeed.
21:07 TimToady if it had said that to'foo is unrecognized I'd have known right away what the problem was
21:07 PerlJam (I too have little desire for ' in identifiers, fwiw)
21:09 pmichaud I can go either way on it.  I know that apostrophes get used often in French, for example, and that the words are simply wrong w/o them.
21:09 pmichaud e.g.,  $message-d'erreur
21:10 PerlJam does that mean that any glyph used in natural language text can be used in identifiers?
21:10 PerlJam :-)
21:11 pmichaud no, but if we've gone to the trouble of allowing unicode alphanumerics in identifiers, we could at least allow the apostrophe (if it's not onerous to do so)
21:13 pugs_svn r26108 | lwall++ | [STD] emit correct error message on unrecognized quote modifier
21:13 pugs_svn r26108 | lwall++ | treat Xop as non-diffy
21:15 moritz_ what does "diffy" mean?
21:15 lucs FWIW, there are very few words in French that require an apostrophe, they are used more for (not sure of the right term here) connecting words with elision (e.g., "l'avion" instead of the incorrect "le avion" ("the plane") -- but one word that requires an apostrophe for example: "aujourd'hui" ("today")).
21:16 TimToady produces a result of a different type than its arguments.  Xop takes a list and produces a list of (potentially) the same type, so we don't want to disallow [Xop] for instance
21:16 PerlJam lucs: "contractions" is the word we use in english.  (like "don't" for "do not")
21:16 lucs Ah, right :)
21:16 pmichaud PerlJam: but they're not really "contractions"
21:16 PerlJam l'avion looks like a contraction to me.
21:16 TimToady huffmanizations :)
21:17 moritz_ TimToady: ah, that makes sense. I was going to bother you about [Xop] at some point anyway ;-)
21:17 jnthn j'ai le contractions...je suis alle a l'hopital!
21:17 rgs d'hui is actually the contraction of de hui, hui meaning here in ancient French (latin hic)
21:17 moritz_ lol
21:17 lucs jnthn: Bring out the cigars!
21:17 pmichaud aujourd'hui would literally be "the day that is here"
21:17 TimToady std: q:to 'foo';␤stuff␤foo␤
21:17 p6eval std 26108: OUTPUT«ok 00:02 34m␤»
21:17 pmichaud or "on the day that is here"
21:17 TimToady std: q:to'foo';␤stuff␤foo␤
21:17 p6eval std 26108: OUTPUT«##### PARSE FAILED #####␤Unrecognized quote modifier: 1 at /tmp/V90UyOCajW line 1:␤------> [32mq:to'foo[31m';[0m␤FAILED 00:02 34m␤»
21:18 TimToady still a large lag on that...
21:18 pmichaud I don't think of l'avion as a contraction because the "uncontracted" form is technically incorrect.
21:18 TimToady why does it report version 26108 but keep 26107 semantics for many minutes?
21:18 lucs The point is that "aujourd'hui" is a single word, but "l'avion" is two.
21:18 pmichaud lucs: correct.
21:18 rgs lucs: d'accord.
21:18 rgs :p
21:18 PerlJam TimToady: are you sure your changes worked?  ;)
21:19 TimToady yes
21:19 TimToady was using @k in a scalar context
21:19 TimToady hence the 1
21:19 PerlJam std: q:to'foo';␤stuff␤foo␤
21:19 p6eval std 26108: OUTPUT«##### PARSE FAILED #####␤Unrecognized quote modifier: to'foo at /tmp/zvglHXR7EY line 1:␤------> [32mq:to'foo[31m';[0m␤FAILED 00:02 34m␤»
21:20 PerlJam that is *weird*
21:20 moritz_ std.pm is still being recompiled
21:20 TimToady what did you do different, besides wait longer? :)
21:20 moritz_ ah, now it's done
21:20 moritz_ the server is a bit slow
21:20 PerlJam moritz_: seems like it's reporting the wrong version then.
21:20 TimToady spoiled, only takes 30 seconds here...
21:21 moritz_ PerlJam: I think it first runs 'make', which first builds, and then checks STD.pm with itself, and then updates the revision number
21:21 moritz_ it's now in the './tryfile STD.pm' step
21:23 TimToady anyway, nearly all apostrophe errors should be handled by reporting what it is that you didn't recognize
21:23 TimToady likewise - errors
21:23 moritz_ std: 1
21:23 p6eval std 26108: OUTPUT«ok 00:02 35m␤»
21:24 TimToady std: say rand-rand
21:24 p6eval std 26108: OUTPUT«Undeclared routine:␤   rand-rand used at 1 ␤ok 00:02 35m␤»
21:25 moritz_ PerlJam: actually it's the other way round - it always reports the current svn revision, not the built revision
21:38 FurnaceBoy joined #perl6
21:42 jnthn our List multi method map(Code *&expr) {
21:42 jnthn Why the slurpy?
21:42 jnthn std: our List multi method map(Code *&expr) { ... }
21:42 p6eval std 26108: OUTPUT«ok 00:03 39m␤»
21:42 moritz_ because... there's a section on "slurpy code blocks" somehwere, I think in S04 or S06
21:44 payload1 joined #perl6
21:45 jnthn ah, found it, thanks.
21:45 jnthn ah!
21:45 jnthn It's not the slurpy I think
21:45 jnthn So much as that it's wrong in another way.
21:45 jnthn Code &expr means "an expression that returns Code"
21:46 moritz_ aye
21:46 jnthn And I think that *&expr from what I can see in the synopses would not change that.
21:46 jnthn I think we can drop the Code there, since all we need is something we can call. And the presence of the & sigil gives us that.
21:47 Woody4286 joined #perl6
21:47 jnthn OTOH, our List multi method grep(Code $test) { is fine
21:47 jnthn Because of the $ there.
21:47 jferrero joined #perl6
21:47 jnthn Though I am curious why we don't just write &test
21:49 * jnthn removes the Code
21:49 moritz_ (removing stuff)++
21:50 pmichaud the Code might be there to make the multi more explicit.
21:50 pmichaud e.g., to distinguish   (Code $test)   from (Str $test)
21:50 pmichaud as opposed to having to see the difference between  (&test)  and ($test)
21:51 jnthn pmichaud: Aye, but if you don't write the & sigil then you can't make it a slurpy block. NOt that we really support those just yet anyway...
21:51 pmichaud correct, we need the sigil for a slurpy block.
21:51 pmichaud *&code  is a significant enough difference for me :-)
21:51 jnthn I only knew those existed as of five mins ago. Wow.
21:51 jnthn Good good. :-)
21:52 jnthn Ah, when Rakudo gets correcter than it's own setting. ;-)
21:52 jnthn A lot of my fails were related to map
21:52 pmichaud but this points to another reason why setting should be sparing of type constraints :-)
21:52 pugs_svn r26109 | moritz++ | [t/spec] tests from and for RT #64478, ihrd++
21:53 pmichaud yes, I found a few places in the suite that had    foo(Hash %h)
21:53 pmichaud (where %h was being used as a simple hash, not a HoH)
21:54 jnthn Yeah. We'll be a bit upset about those now too.
21:54 moritz_ it's always hard to get things right that aren't implemented yet by any compiler
21:54 jnthn oh hey, I wonder if that's why hash.t was failing...
21:55 moritz_ actually there are a few more instances of that
21:55 jnthn ah, surprise!
21:56 jnthn Well, that's hash.t corrected and passing.
21:56 moritz_ type-based.t is also wrong
21:56 moritz_ and pair.t
21:56 * moritz_ fixes these right now
21:56 jnthn moritz_: Oh, thanks! :-)
21:56 jnthn I just fixed hash.t
21:56 pugs_svn r26110 | jnthn++ | [t/spec] Correct test that said Hash %hash when it really just meant %hash (Hash %hash is a HoH.
21:57 jnthn I'll delete those from my list to investigate.
21:57 pugs_svn r26111 | moritz++ | [t/spec] fix wrong usage of Hash %h and Array @a
21:58 pmichaud yay, more passing tests?
21:58 pmichaud or are these tests that passed in spite of being wrong?
21:58 jnthn pmichaud: They were passing before in spite of being wrong.
21:59 pmichaud drat.
21:59 jnthn pmichaud: Don't worry, we'll get more passes soon. ;-)
21:59 pmichaud isn't "impatience" one of the virtues?
21:59 pugs_svn r26112 | moritz++ | [t/spec] remove more wrong type constraints of the form 'Array @a'
21:59 moritz_ ack++
22:00 moritz_ ack'ing for Array\s*@ and Hash\s*% found a few of those
22:00 moritz_ (actually ack found all that I fixed)
22:01 pmichaud might also look for "Code\s*&".
22:01 moritz_ yes, one hit
22:01 jnthn OK, down to 5 more tests to investigate now.
22:02 pugs_svn r26113 | moritz++ | [t/spec] remove one more wrong type constraint, pmichaud++
22:03 wknight8111 joined #perl6
22:04 jnthn OK, only 3 test files now that I actually need to investigate, out of 20 initial fails. yay.
22:04 jnthn I know what 2 of them are.
22:04 jnthn If anyone fancies checking on: t\spec\S06-signature\passing-arrays.t                    9    1  6
22:04 jnthn If it's a perfectly valid test, I'll need to fix it...
22:04 jnthn (as in, fix Rakudo)
22:05 nbrown_ joined #perl6
22:05 moritz_ jnthn: did you svn up?
22:06 pmichaud jnthn: which tests appear to be failing in passing-arrays.t ?
22:06 pmichaud it appears correct to me.
22:07 jnthn not ok 6 - non-slurpy array does not take a single Int
22:07 kidd joined #perl6
22:07 jnthn It's more than possible I've messed up.
22:07 pmichaud that test is correct.
22:07 jnthn That is exaclty the area of the code I have changes in.
22:07 jnthn OK, thanks.
22:07 pmichaud rakudo:  sub foo(@a) { say @a.perl; };   foo(3);   # should be an error
22:07 p6eval rakudo 0310a3: OUTPUT«Non-Positional argument for @a in call to foo␤current instr.: 'die' pc 15853 (src/builtins/control.pir:204)␤»
22:07 pmichaud for exactly that reason.
22:08 jnthn oh oh oh
22:08 jnthn Then I'll know just what that is...
22:09 pugs_svn r26114 | moritz++ | [t] warn about my Array @a
22:13 pmichaud +    isa_ok(:foo.value, Bool::True, ':foo.value isa Bool::True');
22:13 pmichaud ...is that right?
22:13 pmichaud (the "isa" part?)
22:13 jnthn Yes. Duh. Stupid me.
22:14 moritz_ pmichaud: what do you expect it to be? a Bool instead of Bool::True?
22:14 moritz_ pmichaud: it used to be an Int, but it's a Bool these days
22:14 moritz_ jnthn: after I corrected the passing-arrays.t test it also fails in trunk
22:14 jnthn True, but isa feels...wrong.
22:15 jnthn moritz_: Oh?
22:15 moritz_ s/after/since/
22:15 moritz_ Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures:
22:15 moritz_ :(Any @bar)
22:15 moritz_ :(Any %bar)
22:15 moritz_ that's because dispatch by sigil-implied types is NYI
22:15 jnthn oh how handy
22:15 moritz_ I'd say we regress on that one
22:16 moritz_ wait
22:16 moritz_ that's a different file
22:16 moritz_ type-based.t
22:16 * moritz_ confused
22:16 moritz_ sorry
22:16 jnthn moritz_: Well, still it's a win because locally that works now. ;-)
22:16 jnthn > multi foo(@x) { say 1 }
22:16 jnthn > multi foo(%x) { say 2 }
22:16 jnthn > foo([1,2,3]); foo({ a => 1, b => 2});
22:16 jnthn 1
22:16 lambdabot <no location info>: parse error on input `2'
22:16 lambdabot <no location info>: parse error on input `@'
22:16 lambdabot <no location info>: parse error on input `{'
22:16 jnthn 2
22:17 moritz_ jnthn: should I fudge it anyway?
22:17 moritz_ I mean I don't know in which time frame you'll push
22:17 jnthn moritz_: Can you hold off comitting it for long enough for me to do another make spectest...
22:17 moritz_ jnthn: sure I can
22:17 jnthn Or fudge now if you like and we can unfudge later. But I hope to commit soon.
22:18 pmichaud asking for  "isa Bool::True"  just feels wrong.
22:18 moritz_ pmichaud: what would you prefer? isa Bool?
22:18 pmichaud yes
22:18 pmichaud and a separate test for truthity
22:18 pmichaud .
22:18 moritz_ we have that already
22:18 pmichaud then we should just verify that :foo.value is a Bool
22:19 pugs_svn r26115 | moritz++ | [t/spec] improvements suggested by pmichaud++
22:20 pmichaud jnthn: are you about to commit a lot of changes to actions.pm ?  Want me to hold off on a fix for :key and :!key ?
22:20 pugs_svn r26116 | moritz++ | [t/spec] fudge type-based.t for now, hopefully jnthn++ can ufudge it again
22:20 pugs_svn r26116 | moritz++ | soon ;-)
22:20 jnthn pmichaud: It's a fairly sizable diff, yeah.
22:20 pmichaud I can wait.  My fix for the others is small.
22:21 pmichaud (and for those reading along... the proposed patch in #64478 may be slightly off.)
22:21 jnthn Got passing-arrays.t running again. :-)
22:21 pmichaud \o/
22:21 moritz_ (real-time feedback on IRC)++
22:22 jnthn If that's Ilya's patch I'm at least partly to blame since I suggested to him what to try...
22:22 pmichaud I haven't looked too closely, but I'm worried that the value part might be a bind instead of an assign
22:23 jnthn If it is, then we were doing it wrong before too...
22:23 pmichaud no, because before we were using a value node
22:23 jnthn Or probably anyway.
22:23 pmichaud i.e., 0 / 1   as Int
22:23 jnthn Oh, yes.
22:23 jnthn Ah! And pairs can be assigned to!
22:23 pmichaud correct.
22:23 jnthn I had forgotten that.
22:23 jnthn Good catch.
22:24 pmichaud oh, but we ultimately call infix:=>  .... so....
22:25 jnthn I'm not sure how smart that is. OTOH, I'm not sure our pairs are assignable yet...
22:25 pmichaud I don't think they are yet, but they likely will be at some point.
22:25 jnthn rakudo: my $x = a => 42; say $x.perl; $x = 100; say $x.perl;
22:25 p6eval rakudo 0310a3: OUTPUT«"a" => 42␤100␤»
22:25 moritz_ rakudo: my $x = a => 3; $x.value = 400; say $x.perl
22:25 p6eval rakudo 0310a3: OUTPUT«"a" => 400␤»
22:25 pmichaud right.
22:26 jnthn Is that second output thus meant to be "a" => 100 there?
22:26 pmichaud rakudo:  my $x = a => Bool::True;  $x.value = 3;  say Bool::True;
22:26 p6eval rakudo 0310a3: OUTPUT«1␤»
22:26 jnthn (In which case paris are specialny)
22:26 pmichaud I'm wanting to make sure we don't accidentally change Bool::True  :-)
22:26 pmichaud rakudo:  my $x = a => Bool::True;  $x.value = 3;  say $x.perl;
22:26 p6eval rakudo 0310a3: OUTPUT«"a" => 3␤»
22:27 jnthn Yes, that would probably offend logicians too. We already offended the mathematicians with our e not being so constant. :-)
22:28 Lyle Hi All
22:29 moritz_ to parphrase TimToady, it's their turn now, everybody's been offended by Perl 6 at least once ;-)
22:29 jnthn Ah well, thankfully not my turn again yet. ;-)
22:29 Lyle I'm trying to track down problems with Rakudo on windows when called by IIS or Apache
22:30 jnthn Lyle: OH HAI :-)
22:30 jnthn Lyle: Cool. I'm doing Rakudo dev on Windows too. :-)
22:30 dalek rakudo: f822294 | (Moritz Lenz)++ | docs/ChangeLog:
22:30 dalek rakudo: [docs] more ChangeLog
22:30 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​8222940fc6f27b0dfa9a2c50473446a4ee1442b
22:30 jnthn Lyle: What problems are you running into?
22:30 Lyle I figure I can add the -t flag to do a trace to find out what happening
22:30 Lyle but I can't find the docs
22:30 jnthn perl6 --trace=1 may do it
22:31 Lyle jnthn: all works fine on the command prompt, but not through cgi
22:31 jnthn Lyle: In what sense is it failing?
22:31 jnthn Not giving any output?
22:32 jnthn If so, one interesting thing to try: write a little PIR CGI script and run that with Parrot and see if it works.
22:32 Lyle jnthn: basic scripts like hello on apache
22:32 jnthn That'll at least tell us if it's a Parrot-level or Rakudo-level issue.
22:32 pmichaud there's also the parrot_trace(1)  builtin.
22:32 Lyle but none of IIS
22:33 pmichaud (which can also be done with   Q:PIR { trace 1 };  :-)
22:33 Southen_ joined #perl6
22:33 jnthn Lyle: It gives output on Apache, but not IIS?
22:33 Lyle jnthn: yes
22:34 pmichaud bbiab
22:34 Lyle jnthn: I've managed to get november working on the command prompt
22:35 jnthn Lyle: Does it work at the command prompt also if you re-direct the output?
22:36 Lyle jnthn: with > filename on the end?
22:36 jnthn Lyle: Aye.
22:37 Lyle jnthn: yes it does
22:37 Lyle jnthn: when called through apache it just hangs and them timesout
22:38 moritz_ Lyle: did you precompile it?
22:38 jnthn Lyle: What about if you try and capture it from a Perl script, e.g. perl -e "print `perl6 ...`"
22:38 Lyle jnthn: I can see the perl6.exe process just sitting there in taskmgr
22:38 jnthn (Just pondering if it's some IO-level thing...)
22:38 moritz_ Lyle: it might be too slow if you don't precompile it
22:38 jnthn Lyle: Using CPU?
22:39 Lyle not using cpu
22:39 jnthn Hmm...
22:39 jnthn Suggesting it may be blocking on some IO. :-S
22:39 Lyle mortiz: hate to sound dumb, but how do I pre-compile? I'm very new to this
22:40 moritz_ Lyle: maybe November has a 'make' target for that
22:41 Lyle jnthn: perl -e "print...etc outputs properly from the command prompt
22:41 moritz_ if not, you can precompile with ./perl6 --target=PIR sourfile.pl > sourcefile.pir
22:41 jnthn Lyle: OK. Odd.
22:41 jnthn Lyle: Does a simple "print 'hello world'" style script work in Apache?
22:42 Lyle moritz: oh yes, sorry, yes it's been precompiled into pir files
22:42 jnthn And - this may be hard to test - but perhaps it is reading from $*IN (which I suspect November does to read POST data) that is hanging.
22:42 Lyle jnthn: yes simple script does work
22:42 Lyle jnthn: in apache
22:44 s1n sanity check: can anyone else see this?
22:44 moritz_ s1n: no, I can't ;-)
22:45 s1n hah good, seems irc is the only thing working properly :(
22:46 moritz_ Lyle: it might be a security feature that you can't open files from cgi scripts or something, unless they are explicitly allowed...
22:47 moritz_ Lyle: try a very simple CGI that works otherwise, and add a few lines that open a file, read a line, and close it again
22:47 moritz_ and then try again through the web server
22:47 Lyle jnthn: a trace should reveal that shouldn't it?
22:47 jnthn Lyle: Your best bet may me to try and pare down November, or build a simple Hello World up towards it, to work out exactly what it is that's causing the hang.
22:47 jnthn Lyle: A trace could well be revealing too.
22:47 Lyle moritz: I've done that already :)
22:47 moritz_ Lyle: and did it work?
22:47 Lyle mortiz: yes
22:47 jnthn Lyle: As could, if you can, breaking into it with a C debugger if it's hung on some blocking IO call.
22:48 dalek rakudo: 6eef54b | jnthn++ | src/classes/ (2 files):
22:48 dalek rakudo: Signature on positional and associative postcircumfixes should not use @ and % sigils, since they are what define said sigils in the signature.
22:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/6​eef54b86b17ca02f4ca52dc369eec76ee6e9c5a
22:48 dalek rakudo: fb553bd | jnthn++ | src/ (3 files):
22:48 dalek rakudo: More progress on typed arrays and hashes. This patch allows them to be declared, gets them responding correctly to .of, allows checking for (potentially typed) positionals/associatives/callables in the signature and allows the sigils and the Positional/Associative/Callable parametric types to participate in multi dispatch.
22:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/f​b553bd5ba649eb526a16a99f8caecb799c405ef
22:48 dalek rakudo: 4abd893 | jnthn++ | :
22:48 Lyle mortiz: on apache and on IIS the files were written to, but still no output
22:48 dalek rakudo: Merge branch 'master' of git@github.com:rakudo/rakudo
22:48 dalek rakudo: review: http://github.com/rakudo/rakudo/commit/4​abd893bdbb4fe205ec3e9191154243782b695e8
22:48 Lyle jnthn: that's a bit above me at this point but I'll look into it
22:49 Lyle Are there any docs on how to use the trace? Where it outputs to, etc?
22:49 jnthn Lyle: Well, trouble is, it outputs I think to STDERR
22:50 jnthn Lyle: But you could try at the start of the script $*ERR := open("some_log_file", :w)
22:50 jnthn Oh
22:50 jnthn But I fear that'll not actually work. :-|
22:50 Lyle jnthn: I could just point $*ERR to a local file then?
22:50 Lyle jnthn: oops you said that already lol
22:50 jnthn Yeah, but I don't think it'll influence where Parrot goes and prints stuff.. :-(
22:50 Lyle oh
22:51 jnthn moritz_: You can perhaps unfudge those sigil tests now.
22:51 jnthn moritz_: Also probably others too.
22:51 jnthn moritz_: I'll probably look soon at test coverage for this bunch of stuff I've been working on.
22:53 jnthn ...googling for masak november didn't entirley get me what I was hoping for...
22:53 davidad1 joined #perl6
22:53 moritz_ try viklund november ;-)
22:54 * moritz_ rebuilds and gets a segfault
22:54 jnthn fail
22:54 moritz_ let's see if a 'make clean' can change that
22:55 moritz_ gets further now
22:55 jnthn Lyle: If you look at say the file "wiki"
22:55 moritz_ -L/usr/lib  -licuuc -licudata -lpthread -lm
22:55 moritz_ Linked: perl6
22:55 jnthn I suggest create a CGI that works like hello world.
22:55 jnthn And then
22:55 moritz_ that's better ;-)
22:55 jnthn Add things like: use CGI;
22:55 jnthn etc
22:55 jnthn moritz_: Phew! :-)
22:56 Lyle jnthn: ok
22:56 jnthn my $cgi = CGI.new;
22:56 jnthn $cgi.init();
22:56 jnthn See if that hangs it.
22:56 jnthn If so, you've narrowed it down quite a bit.
22:56 jnthn rakudo: my Int @a = 1,2,3; say @x.of
22:56 p6eval rakudo 0310a3: OUTPUT«Scope not found for PAST::Var '@x' in ␤current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)␤»
22:56 Lyle jnthn: Any idea's on IIS? I've posted in the forum on iis.net but nothing yet
22:57 jnthn rakudo: my Int @a = 1,2,3; say @a.of
22:57 p6eval rakudo 0310a3: OUTPUT«get_iter() not implemented in class 'Integer'␤current instr.: '_block14' pc 54 (EVAL_17:39)␤»
22:57 jnthn meh, too soon
22:57 jnthn Lyle:
22:57 jnthn Lyle: No, not off hand.
22:57 moritz_ it should rebuild at the full hour, or so
22:57 jnthn Lyle: IIS is kidna Teh Suck, but I do have to work with it now and then so I have it running here too...so I can probably also take a crack at it.
22:57 Lyle jnthn: I've emailed jan from activestate about it but he is on holiday
22:58 Lyle jnthn: hopefully he'll be able to help when he gets back
22:58 Lyle jnthn: cool :)
22:58 jnthn Aye, if he has time and/or interest perhaps. :-)
22:59 Lyle Thanks for the help everyone. I've got to hit the hey, hopefully I'll get further tomorrow
23:00 jnthn Lyle: Thanks for working on it. :-)
23:03 pugs_svn r26117 | moritz++ | [t/spec] unfudge two tests, jnthn++
23:04 moritz_ rakudo: my Int @a; say @a.of
23:04 p6eval rakudo 0310a3: OUTPUT«get_iter() not implemented in class 'Integer'␤current instr.: '_block14' pc 54 (EVAL_17:39)␤»
23:05 moritz_ ah, it needs a reconfigure
23:05 moritz_ and the build script on the server didn't grok that
23:07 moritz_ rakudo: my Int @a; say @a.of
23:07 p6eval rakudo 0310a3: OUTPUT«Int␤»
23:07 moritz_ (it might still report the wrong version; please ignore that)
23:07 moritz_ rakudo: my Int @a = 2..4; say @a[1];
23:07 p6eval rakudo 0310a3: OUTPUT«3␤»
23:08 moritz_ rakudo: my Int @a = 2..4; @a[0] = 4.5; say "alive"
23:08 p6eval rakudo 0310a3: OUTPUT«alive␤»
23:08 moritz_ rakudo: my Int @a = 2..4; @a[0] = 'foo'; say "alive"
23:08 p6eval rakudo 0310a3: OUTPUT«alive␤»
23:09 Doubi joined #perl6
23:10 moritz_ I'm going to bed now, the autounfudge will run without me, I'll review its results tomorrow
23:10 jnthn moritz_: Note type-checking of assignments is not yet done. :-)
23:10 Tene_ joined #perl6
23:10 jnthn Gotta save something for tomorrow. ;-)
23:10 moritz_ for the impatient: t/spec/S03-operators/autovivification.t looks like a skip could be removed
23:10 moritz_ good night
23:10 jnthn night, moritz_
23:11 cognominal joined #perl6
23:12 * jnthn -> sleep too, night all
23:18 skids joined #perl6
23:26 davidad joined #perl6
23:29 s1n joined #perl6
23:35 meppl good night
23:39 skids so commitbit.pugscode.org's password is for svn+ssh://svn.pugscode.org/pugs right?
23:39 skids Or is it for someplace else?
23:39 skids cuz it don't work
23:42 diakopter I don't know if svn+ssh is enabled...?
23:42 diakopter I thought it was just http
23:43 skids for auth'd access?  It does exchange a key
23:47 mncharity joined #perl6
23:48 mncharity @tell pmurias re your interest in erlang, http://on-ruby.blogspot.com/2009/03/reia​-new-dynamic-language-on-erlang-vm.html
23:48 lambdabot Consider it noted.
23:48 mncharity left #perl6
23:53 brunoV joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs