perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/
Set by mncharity on 25 March 2009.
00:01 cotto left, davidad joined 00:02 alester left 00:04 cotto joined 00:06 Tene_ joined 00:08 sitaram joined 00:12 dKingston left 00:13 dKingston joined 00:17 Tene left 00:19 bacek_ joined
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:20
ruoso but it doesnt say it chained must be processed as a single dispatch.. is it? 00:22
TimToady no, that was merely a suggestion of mine on the mailing list about one way to look at it 00:25
but it's slightly problematic insofar as a *@args binding doesn't autothread under the current rules
the variant that says my $x = @args.shift autothreads the rest of the dynamic scope might allow it, however 00:26
if "my $x" defaults to Any rather than Object 00:27
00:27 dKingston left
TimToady but as the spec revision says, we don't really understand the performance implications of that 00:28
since pretty much every assignment would have to be checking ~~ Any in that case
on the other hand, it might be the sanest approach 00:29
since it unifies the autothreading to binding to scalar, whether a formal parameter or not 00:31
00:31 DemoFreak joined, DemoFreak left 00:32 ruoso left
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
neither of those is quite sane
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:44
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:46
anyway, we're just punting for now, since it makes my brane hert 00:47
I'll think about something easy like cmp O_o 00:48
diakopter --Any++ 00:49
TimToady though interestingly, the cmp issue also brings up dynamic scoping issues
diakopter ++Any--
TimToady since we haven't got a mechanism for failsofting failures in parallelizable operations yet
diakopter std: ++e 00:50
p6eval std 26101: OUTPUT«ok 00:02 36m␤»
TimToady it's *syntactically* fine
the semantics are more problematic :)
STD doesn't have a clue that ++ and -- are mutating 00:51
diakopter rakudo: my $a=3; say ++$a--; say --$a++; say $a; 00:55
p6eval rakudo 0310a3: OUTPUT«4␤2␤3␤»
TimToady rakudo: my $a=3; say $a + 1; say $a - 1; say $a; # :) 00:56
p6eval rakudo 0310a3: OUTPUT«4␤2␤3␤»
TimToady I'd say that's a bit clearererer... 00:57
nevertheless, it does demonstrate that the restriction in P5 is somewhat arbitrary. 00:59
we can't really afford such an arbitrary restriction and remain extensible to user-defined prefix/postfix operators
rakudo: ++e 01:00
p6eval rakudo 0310a3: ( no output )
TimToady heh
rakudo: say ++e
p6eval rakudo 0310a3: OUTPUT«3.71828182845905␤»
TimToady !!!!
rakudo: say ++2.718281828 01:01
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:02
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)␤»
TimToady rakudo: enum Foo of Int <:eee<42>>; say eee
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)␤»
TimToady rakudo: enum Foo of Int <eee>; say eee
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)␤»
TimToady rakudo: enum Foo <eee fff ggg>; say eee 01:04
p6eval rakudo 0310a3: OUTPUT«0␤»
TimToady rakudo: enum Foo <eee fff ggg>; say ++eee
p6eval rakudo 0310a3: OUTPUT«Method 'succ' not found for invocant of class ''␤current instr.: 'parrot;Perl6Object;' pc 2019 (src/classes/Object.pir:721)␤»
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)␤»
TimToady rakudo: enum Foo (eee => 42); say eee
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)␤»
TimToady rakudo: enum Foo ('eee' => 42); say eee
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)␤»
TimToady rakudo: say e++; say e++; 01:06
p6eval rakudo 0310a3: OUTPUT«2.71828182845905␤2.71828182845905␤»
TimToady rakudo: my $x = 42; say ++$x; say ++$x;
p6eval rakudo 0310a3: OUTPUT«43␤44␤» 01:07
TimToady rakudo: my $x = 42; say ++e; say ++e;
p6eval rakudo 0310a3: OUTPUT«3.71828182845905␤3.71828182845905␤»
TimToady curious
rakudo: my $x = 42; say e += 1; say e += 1;
p6eval rakudo 0310a3: OUTPUT«get_iter() not implemented in class 'Integer'␤current instr.: 'prefix:=' pc 20782 (src/builtins/misc.pir:17)␤»
TimToady rakudo: say ++pi 01:08
p6eval rakudo 0310a3: OUTPUT«4.14159265358979␤»
TimToady rakudo: say ++++pi;
p6eval rakudo 0310a3: OUTPUT«5.14159265358979␤»
TimToady rakudo: say ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++pi 01:09
p6eval rakudo 0310a3: OUTPUT«42.1415926535898␤»
TimToady :)
01:19 agentzh left, agentzh joined 01:29 Whiteknight left
diakopter rakudo: my $a=3; say ++$a--; say $a 01:35
p6eval rakudo 0310a3: OUTPUT«4␤3␤»
diakopter rakudo: my $a=3; say --$a--; say $a 01:36
p6eval rakudo 0310a3: OUTPUT«2␤1␤»
diakopter rakudo: --(my $e = $e); say $e 01:40
p6eval rakudo 0310a3: OUTPUT«-1␤»
diakopter starts
std: --(my $e = $e); say $e 01:43
p6eval std 26101: OUTPUT«ok 00:02 38m␤»
diakopter egash
rakudo: my $e = $e
p6eval rakudo 0310a3: ( no output )
diakopter rakudo: my $e = $e = 1 01:44
p6eval rakudo 0310a3: ( no output )
diakopter rakudo: my $e = $e = 1; say $e
p6eval rakudo 0310a3: OUTPUT«1␤»
diakopter rakudo: my $e = $e = 1 = $e; say $e
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)␤»
diakopter now _that's_ a Future 01:45
01:46 orafu joined
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)␤»
diakopter oh.
01:47 Tene_ is now known as Tene
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)␤»
diakopter rakudo:$e = (my $e = sub { $e = $^a } and $e($e)); $e($e); say 1; 01:53
well, it worked directly to p6eval. 01:54
and by "worked", I mean "didn't hang"
its reply was: 20:51 <p6eval> highlight 26101: OUTPUT«Odd number of elements in hash assignment at Cursor.pm line 139.â 01:55
01:56 mikehh left
diakopter std: "I am libertine languagified.".say 01:57
p6eval std 26101: OUTPUT«ok 00:04 35m␤»
TimToady rakudo: $e = (my $e = sub { $e = $^a } and $e($e)); $e($e); say 1; 01:58
p6eval rakudo 0310a3: ( no output )
diakopter std: my $f=$f
p6eval std 26101: OUTPUT«ok 00:02 35m␤»
TimToady names are introduced immediately in p6
diakopter oh. 01:59
is that recent?
TimToady unlike p5
no, many years old 02:00
diakopter hrm.
TimToady otherwise my $e = { $e() } wouldn't work
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)␤»
TimToady what is this, basic?
diakopter rakudo: my $e = sub { e$($e};
rakudo: my $e = sub { $e() };
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)␤»
rakudo 0310a3: ( no output )
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:03 agentzh left
TimToady from A4: 02:04
Note that the block is truly a closure because it relies on the lexical
scoping of C<$f>. (This form of lexical scoping works in Perl 6 because
the name C<$f> is introduced immediately within the statement. This
differs from the Perl 5 approach where the name is not introduced till
the end of the current statement.)
so it's been that way since at least 2002... :) 02:05
it's also what allows parameter defaults to refer back to earlier parameters 02:06
02:15 skids joined
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:15
erm 02:16
what yields
rakudo: `ICMP= table tennis`
p6eval rakudo 0310a3: ( no output ) 02:17
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)␤»
diakopter rakudo: my $e = { $e = $^a ?? $e(0) !! $e(4); $_-- }; $e(3); .say 02:18
02:18 alc joined
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
I mean, besides the pathological input..
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)␤»
diakopter hm 02:22
moritz_'s poor server
I think I had several long/hot-running requests running.
heh
02:23 eternaleye joined
diakopter std: --.-- 02:23
p6eval std 26101: OUTPUT«ok 00:02 36m␤»
diakopter std: --.--==++.++|>>.! 02:24
p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/2WvoOS0iSX line 1:␤------> --.--==++.++|>>.!␤ expecting any of:␤ prefix or noun␤ whitespace␤FAILED 00:02 36m␤»
diakopter std: --.--==++.++
p6eval std 26101: OUTPUT«ok 00:02 36m␤»
02:25 skids left
diakopter std: --.--==++.++|++.++!=--.-- 02:25
p6eval std 26101: OUTPUT«ok 00:02 36m␤»
diakopter rakudo: --.--==++.++|++.++!=--.--
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
diakopter std: --.--//=++.++||++.++\\=--.-- 02:26
p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Syntax error at /tmp/sy195O1lN0 line 1:␤------> --.--//=++.++||++.++\\=--.--␤ expecting any of:␤ postfix␤ postfix_prefix_meta_operator␤FAILED 00:02 36m␤»
diakopter std: --.--//=++.++||++.++//=--.--
p6eval std 26101: OUTPUT«ok 00:02 36m␤»
02:26 cdarroch left
diakopter std: .||=$_ 02:27
p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/lcdLv8pqG7 line 1:␤------> .||=$_␤ expecting any of:␤ prefix or noun␤ statement end␤ statement list␤ whitespace␤FAILED 00:02 34m␤»
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)␤»
diakopter std: .=$_; .say
p6eval std 26101: OUTPUT«ok 00:02 35m␤»
diakopter rakudo: $_ = { .() }; .(); 02:30
p6eval rakudo 0310a3: OUTPUT«maximum recursion depth exceeded␤current instr.: '_block21' pc 95 (EVAL_18:54)␤»
diakopter is that right?
TimToady looks right to me 02:32
that I haven't foggiest idea how std is parsing --.--
diakopter std: --($_ = $_ - 1) 02:33
p6eval std 26101: OUTPUT«ok 00:02 37m␤»
02:33 Kisu left
TimToady ah, it's parsing it as --(.--) obviously 02:34
diakopter rakudo: $_=3; --.--; .say
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)␤»
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)␤»
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)␤»
TimToady rakudo: $_ = 3; -- $_.--; .say
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
TimToady just doesn't believe in .-- I suspect 02:37
rakudo: $_ = 3; $_.--; .say
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)␤»
pmichaud correct, I don't think we do dotted postfix yet.
TimToady so it looks like we'll be able to execute arbitrary Morse Code... 02:38
std: ---...---
p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤"--" and "--" are not associative at /tmp/eJP1ESsmn5 line 1:␤------> ---...---␤ expecting any of:␤ POST␤ postfix␤ postfix_prefix_meta_operator␤ standard stopper␤ terminator␤FAILED 00:02 36m␤»
diakopter std: ... --- ...
p6eval std 26101: OUTPUT«ok 00:02 36m␤»
pmichaud ..."oso"? 02:39
TimToady std: ...---...
p6eval std 26101: OUTPUT«ok 00:02 35m␤»
TimToady you see, for every space you leave out, you save .5 meg of memory :) 02:40
diakopter std: -- --- .-. ... . -.-. --- -.. . 02:41
p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/WfMhZFf8gm line 1:␤------> -- --- .-. ... . -.-. --- -.. .␤ expecting any of:␤ noun␤ prefix or meta-prefix␤FAILED 00:02 36m␤»
02:43 Nikao joined
TimToady you forgot to capitalize the M and the C. :) 02:44
02:46 Nikao left
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:␤------> {DO} #{ Wabun Code } { --..--- -.-.- -- ..- .-. ...␤ expecting any of:␤ infix or meta-infix␤
.. in...
diakopter std: .||=$_ 02:52
p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/fpxyemVi7S line 1:␤------> .||=$_␤ expecting any of:␤ prefix or noun␤ statement end␤ statement list␤ whitespace␤FAILED 00:02 34m␤» 02:53
diakopter std: .=//=$_
p6eval std 26101: OUTPUT«##### PARSE FAILED #####␤Can't understand next input--giving up at /tmp/1eiODPLX02 line 1:␤------> .=//=$_␤ expecting dotty method or postfix␤FAILED 00:02 34m␤»
diakopter rakudo: $_ = $_ //= $_
p6eval rakudo 0310a3: ( no output )
diakopter rakudo: $_ = $_ //= $_; .say 02:54
p6eval rakudo 0310a3: OUTPUT«Use of uninitialized value␤␤»
02:56 eternaleye_ joined
diakopter rakudo: $_ = 3 = $_ //= $_; .say 02:56
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)␤»
diakopter rakudo: $_ = $_ //= $_ = 3; .say 02:57
p6eval rakudo 0310a3: OUTPUT«3␤»
diakopter rakudo: $_++ = $_++ //= $_++ = 3; .say 02:58
p6eval rakudo 0310a3: OUTPUT«3␤»
diakopter rakudo: $_++ //= $_++ = $_++ = 3; .say
p6eval rakudo 0310a3: OUTPUT«3␤»
diakopter rakudo: ++$_ //= ++$_ = ++$_ = 3; .say 02:59
p6eval rakudo 0310a3: OUTPUT«3␤»
diakopter rakudo: ++$_ //= ++$_ = ++$_ = 3; .say; $_.say
p6eval rakudo 0310a3: OUTPUT«3␤3␤»
diakopter rakudo: ++$_ //= ++$_ = (++$_ = 3); .say; $_.say 03:01
p6eval rakudo 0310a3: OUTPUT«3␤3␤»
03:01 skids left 03:02 skids joined 03:06 charsbar_ joined, mib_dfzp3n left
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)␤»
diakopter rakudo: $a++ = (my $a = 4)++;
p6eval rakudo 0310a3: OUTPUT«Null PMC access in find_method()␤current instr.: 'postfix:++' pc 20877 (src/builtins/op.pir:33)␤»
03:07 skids left
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)␤»
diakopter rakudo: $a = (my $a = 4);
p6eval rakudo 0310a3: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14068 (src/builtins/assign.pir:21)␤»
diakopter rakudo: $a = (my $a);
p6eval rakudo 0310a3: OUTPUT«Null PMC access in getprop()␤current instr.: 'infix:=' pc 14068 (src/builtins/assign.pir:21)␤»
diakopter rakudo: $a = ($a);
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)␤»
diakopter rakudo: (my $a) = $a;
p6eval rakudo 0310a3: ( no output )
diakopter rakudo: (my $a) = $a = 1; $a.say 03:09
p6eval rakudo 0310a3: OUTPUT«1␤»
diakopter rakudo: (my $a) = 1; $a.say
p6eval rakudo 0310a3: OUTPUT«1␤»
03:10 eternaleye left
diakopter rakudo: ((my $a = 1)/($a.say))++; $a.say 03:10
p6eval rakudo 0310a3: OUTPUT«1␤1␤»
03:11 b2gills left
diakopter rakudo: ((my $a = 1)/($a.say)/($a = 2))++; $a.say 03:11
p6eval rakudo 0310a3: OUTPUT«1␤2␤»
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)␤»
diakopter rakudo: ((my $a = 1)/($a.say++)++/(my $a = 2))++; $a.say 03:13
p6eval rakudo 0310a3: OUTPUT«Redeclaration of variable $a␤1␤2␤»
diakopter rakudo: ((my $a = 1)/($a.say++)++/($a = 2))++; $a.say
p6eval rakudo 0310a3: OUTPUT«1␤2␤»
diakopter rakudo: ((my $a = 1)/(say $a++)++/($a = 2))++; $a.say 03:15
p6eval rakudo 0310a3: OUTPUT«1␤2␤»
diakopter rakudo: ((my $a = 1)/(say $a++)++/($a = 8))++; $a.say 03:16
p6eval rakudo 0310a3: OUTPUT«1␤8␤»
diakopter rakudo: (my $a = 1)/(say ++++$a)/($a = 8)/($a.say) 03:17
p6eval rakudo 0310a3: OUTPUT«3␤8␤»
diakopter rakudo: ((my $a = 1)/(say ++++$a)/($a = 8)/($a.say)).say 03:19
p6eval rakudo 0310a3: OUTPUT«3␤8␤0.375␤»
03:19 meppl left
diakopter interesting 03:20
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
diakopter pugs: (my $a = 1)/(say ++$a)/($a = 8)/($a.say) 03:40
p6eval pugs: OUTPUT«2␤8␤»
diakopter rakudo: (my $a = 1)/(say ++$a)/($a = 8)/($a.say)
p6eval rakudo 0310a3: OUTPUT«2␤8␤»
03:43 Kisu joined 03:56 orafu left, orafu joined 04:04 mtve left 04:05 drbean left 04:06 drbean joined 04:32 alc left 04:35 FurnaceBoy left 04:44 masak joined
masak howdy, Sixers. 04:44
TimToady howdy doo
masak a Windows user has tried to get November building on Windows. \o/ 04:49
eiro hello world 05:07
05:12 alc joined 05:20 justatheory left 05:37 parduncia joined 05:49 mikehh joined 05:50 parduncia left 05:57 alc left 06:01 payload left, payload joined 06:05 khatar joined 06:06 khatar left, eiro joined 06:16 wolverian left 06:20 wolverian joined 06:26 RootKwok joined 06:29 c1sung left, Tene_ joined 06:30 Tene left 06:31 mtve joined 06:38 wolverian left 06:39 wolverian joined 06:46 orafu left, orafu joined 06:50 DemoFreak joined, mib_3wmvr4 joined, mib_3wmvr4 left 06:51 mberends joined 06:52 iblechbot joined
masak mberends: ping. 06:56
mberends masak: ahoy there! 07:03
masak mberends: ahoj, fellow Perl 6 hacker.
mberends: I'm in the middle of the strife. 07:04
of getting HTTP::Daemon to run. :)
mberends is that difficult? 07:05
masak about to commit a patch where a lot of _ are replaced by :: in the module names in the Pod. 07:06
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.
masak stand by for gist.
gist.github.com/91124 07:09
07:09 orafu left
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
07:09 orafu joined
masak ooh. 07:10
but I don't think that's my problem here.
note that the final error appears as I hit the page.
mberends gist looks good, but I'm not a full spec p6 compiler ;)
masak halp!
what's that supposed to mean? it's not working. :) 07:11
scroll down to when I run the script.
mberends gah! that is the detritus of attempting to link to the bacek++ new socket functions! they are not complete! kill! kill!
masak (which, by the way, is taken verbatim from the HTTP::Daemon Pod, with those modifications)
mberends: plz fix. kthxbai. 07:12
I'll just do my commit first.
mberends my bad. sry.
rly sry
masak happy to be adding quality to your software, sir. that's all. :) 07:13
there, pushed.
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?
masak I just don't see why; they are obviously wrong.
moritz_: don't think so; you want me too add some?
moritz_ masak: that would be great
moritz_ tries to keep the test coverage high
masak moritz_: I ran the spectests before committing, though. so I'm still a good boy by my count. 07:15
especially since it takes ages. :P
moritz_ yes, that's really annoying
mberends masak: good boy
moritz_ maybe I can do somethinig about that over the easter vacations
masak purrs
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 wolverian left, wolv joined
moritz_ I have to talk to pmichaud first, though 07:18
masak aye. 07:19
07:21 payload left
masak hm, the directory structure of t/spec/S32-* does not mirror dpcs/Perl6/Spec/S32-setting-library/* 07:22
moritz_ right 07:23
pugs_svn r26102 | moritz++ | [t/spec] initial, very basic tests for IO.ins
masak but it seems I could simply create a new S32-io in the former, and still be consistent.
oh.
or not.
rakudo: =$*IN; say "FOO" 07:27
p6eval rakudo 0310a3: ( no output )
masak what's going on there? 07:28
moritz_ masak: p6eval starts rakudo with 'echo -n | perl6 $file' to prevent it from hanging 07:32
hm
rakudo: say "still alive" 07:33
p6eval rakudo 0310a3: OUTPUT«still alive␤»
moritz_ but it prints nothing on my local copy as well
masak moritz_: locally, does it say "FOO" for you? 07:34
moritz_ no
masak: submit a bug ;-)
masak submits a bug
Matt-W Good morning
moritz_ it doesn't even try to read something from STDIN
it just terminates
masak Matt-W: a good morning to you, sir.
moritz_ masak: anyway, it's usually a bad idea to test IO with p6eval
masak moritz_: aye. I'll remember that.
07:35 nihiliad left 07:38 DemoFreak left 07:39 payload joined
eiro i'm trying to figure out what $self-􏿽xC3>$method becomes in perl6 07:55
$self->$method (sorry for weird symbols)
masak eiro: so $method is a string, yah?
eiro masak, yep 07:56
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")
p6eval rakudo 0310a3: OUTPUT«OH HAI␤» 07:58
masak that's the closest I get right now.
hold on, I'll try with .HOW.dispatch too.
07:58 c1sung joined
masak rakudo: class A { method foo { say "OH HAI" }; method bar($method) { self.HOW.dispatch(A, $method) } }; A.new.bar("foo") 07:58
p6eval rakudo 0310a3: OUTPUT«OH HAI␤»
masak yup, that's better.
ruoso++ 07:59
08:01 cls_bsd_ is now known as cls_bsd 08:03 [particle] joined
eiro masak, \o/ HOW !!! 08:08
masak eiro: indeed. 08:09
eiro that's cool: i looked as the way to generate graphviz UML class diagrams from *pir
masak wow, cool! 08:10
08:10 [particle]1 left
eiro but perhaps there is a better way 08:10
masak eiro: well, what is your goal?
eiro a real introspection
masak eiro: using STD.pm might be a good idea.
eiro masak, well ... i want to see in real life how much my brain is sick
masak eiro: who doesn't? :P 08:11
eiro :-)
the uml diagram of my last program is a good clue :)
so i want to do it :-) 08:12
masak eiro: my question was more like "What do you want the UML diagrams to show?"
with the answer to that question, it might be possible to help you further.
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
i dream about a perl6 rewrite of this software
so i prepare some tools for it
masak eiro: two words: start simple. 08:14
eiro ( i'll need ya: it's a full webbasef soft )
masak because this sounds like an ambitious project.
eiro that's what i do
masak and you'll need all partial successes you can get.
eiro for the moment, i just write some tools close to the project 08:15
not the project itself
i need support to MARC, ASN.1, Z39-50, and REST
masak ok... 08:16
eiro so there's a long road
masak aye.
eiro i start now ;)
masak let me know when you get somewhere. :)
eiro masak, sure!
masak I like to review other people's Perl 6 code.
eiro cool :)
thanks in advance 08:17
masak np. now go forth and write cool Perl 6 code.
eiro i'll also need some infos about your web framework: templating system, MVC separation ... 08:18
(perhaps: help to hack on it)
masak nice!
I'll try to give as detailed a status update as I can. 08:19
(it might be good for the next blog post, too.)
there are three of us working on the Web.pm grant.
Tene, ihrd and I.
08:20 donaldh joined
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:20
ihrd is working on Dispatch, something called Routes, and is aiming for an MVC framework, which he calls Forest. 08:21
08:21 donaldh left
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:21
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:23
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 ?
masak EOU
eiro: at present, it doesn't.
eiro <xsl:for-each><html:li>
masak eiro: I'd recommend asking Tene the same question.
eiro arggg ...
Tene_, ???
masak eiro: as far as I know, it doesn't do XML.
eiro masak, but ... everything is xml now on the web! 08:26
masak eiro: not really, no.
08:26 bacek_ left
masak especially not HTML. 08:26
eiro xhtml+svg+...
:(
masak eiro: I wish you were right, but...
the reality out there is quite different.
I don't want to shut out people who want to generate XHTML though, which is why I want to port Genshi. 08:27
it's XML-based.
eiro masak, your framework must bring good pratices on the perl6 world so you have to handle it ! :)
masak eiro: I agree fully.
eiro: I just don't automatically assume that XML == Good Practice.
there are many, many reasons to prefer HTML to XHTML.
see www.webdevout.net/articles/beware-of-xhtml 08:28
eiro what ? sure it is! html is an awfull bastarization of SGML! it *must* *die*
masak eiro: eventually, perhaps. but it cannot die today, because XHTML isn't a viable alternative. 08:29
I'm all for generating XHTML in my own applications, but I simply cannot force it on everybody in Web.pm.
that's not realistic.
eiro perhaps: i'll read your article asap and tell ya :)
masak sounds good. 08:30
I'm very open to discussing this.
eiro is there a dedicated mailing list ?
masak eiro: for Web.pm? yes, we're using the Novmber mailing list. 08:32
groups.google.com/group/november-wiki
Tene_ reads scrollback
masak eiro: also see www.b-list.org/weblog/2008/jun/18/html/ if you have the energy. it's equally good. 08:33
Tene_: morning.
Tene_ masak: I was due for sleep 3 hours ago, actually. :) 08:34
masak right. you're on that continent. 08:35
Tene_ Yeah, the weird one.
masak mberends: ping. 08:37
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:38
eiro arg ... i need to create a google account :( 08:40
ok .. i'll do it! for perl6, for OSS, for freedom !
;)
masak the sacrifices we have to make. 08:41
08:43 Tene_ is now known as Tene
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
08:46 RootKwok left
Tene eiro: I don't know what the API should look like or what exactly should be generated. 08:46
masak eiro: for a different approach to tags generation, see my SVG module on github. 08:47
eiro Tene, neither me for the moment :)
ok, thx
08:47 orafu left
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
08:48 orafu joined
eiro ok ... lot of things to read now ... i'll come back 08:49
masak eiro++
eiro now i'll work to earn my daily meal ;)
++
masak speaking of which... :) 08:50
masak .WORK
08:56 ejs joined 09:03 payload1 joined 09:06 cognominal joined, cognominal left 09:07 cognominal joined, payload left 09:11 kidd left 09:21 elmex left, elmex joined 09:25 PacoLinux joined 09:27 plash joined
bacek mberends: hey, what's wrong with sockets? 09:30
(and good evening) 09:31
09:49 jferrero joined 10:09 pmurias joined 10:11 payload1 left 10:12 Southen joined 10:13 iblechbot left 10:21 DemoFreak joined
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
that makes me feel much better.
10:29 Southen_ left 11:00 eiro left 11:01 eiro joined, eiro left
masak rakudo: say ++e 11:02
p6eval rakudo 0310a3: OUTPUT«3.71828182845905␤»
masak submits rakudobug
as a mathematician, I'm deeply insulted.
11:03 eiro joined, eiro left
jnthn What's a constant? ;-) 11:04
masak jnthn: that attitude actually explains a lot. :P 11:06
11:08 brunoV left 11:12 eiro joined 11:37 orafu left 11:38 orafu joined
eiro masak, does november still use netcat ? 11:43
moritz_ I think it never did
masak eiro: no, it doesn't. and hasn't ever.
eiro: you're thinking of HTTP::Daemon.
moritz_ it runs on top of apache as an ordinary CGI script
masak I think HTTP::Daemon uses socat nowadays, and is on its way over to Parrot sockets. 11:44
and if Lyle succeeds, November might soon run on IIS as well.
eiro oh ... i thought that there was no socket in perl6
oh
ok 11:45
masak std: --.--
p6eval std 26102: OUTPUT«ok 00:02 36m␤»
masak rakudo: --.--
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)␤»
eiro is there something like poe planned ? 11:46
masak is STD.pm overly permissive here, or is Rakudo overly restrictive?
eiro: I don't have any such plans :) but hopefully there will be real threading in Rakudo, as opposed to Perl 5. 11:47
eiro thanks .. 11:48
masak ah. Rakudo simply doesn't implement .-- yet...
rakudo: my $a; $a.--
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)␤»
jnthn I'm kinda curious what STD thinks --.-- means... 11:49
Oh, maybe --($_.--)
masak jnthn: aye.
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)␤»
masak submits rakudobug
diakopter: you keep felling fruit to the ground, and then leave it lying there... :)
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
I'm sure we already have at least 2 for this issue.
moritz_ masak: we have tickets for that
masak this case merits a ticket, methinks.
this is in the same statement.
do we have tickets for that? 11:52
moritz_ rakudo: $a␤my $a = 1
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)␤»
moritz_ rakudo: $a;␤my $a = 1
p6eval rakudo 0310a3: ( no output )
moritz_ rakudo: $a;␤my $a = 1; say "alive"
p6eval rakudo 0310a3: OUTPUT«alive␤»
eiro perl6 unicode operators are hard to undertand: # RAKUDO: синтаксис Hash :exists еще не реализован 11:53
;)
moritz_ these are comments, not operators :-)
masak eiro: that comment has an English translation, too. :) don't play innocent.
eiro masak, coming from east side of the earth, right ? ;) 11:54
masak eiro: besides, I can read it fine.
eiro: nope.
I'm from the same side as you.
11:54 payload joined
masak but while you were watching TV, I studied languages. :P 11:54
(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
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
ok
masak eiro: use.perl.org/~masak/journal/37341
11:56 kane_ joined
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:57
oh, and Hash.:exists is still not реализован! what's up with that? :) 11:58
eiro masak, i have to be honest too: i didn't read only philo books :) 11:59
masak good. :)
that would have been almost as bad as too much TV, I think...
pmurias to much TV = any TV? ;) 12:00
12:01 nbrown joined
masak mberends: from the HTTP:Daemon Pod: "The most recent successfully tested Rakudo revision is Parrot r37432." 12:03
12:04 PacoLinux left
masak mberends: does that mean that you haven't tested HTTP::Daemon since the Great Leaving of the Nest? 12:04
mberends: or is it just stale Pod?
jnthn TV - I watch *so* little of it... 12:06
*sigh* Not too much more things to do before I can work on Rakudo today. 12:07
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
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.
eiro masak, what mountains ?
jnthn, will you come to france for FPW2009 ? 12:10
12:10 orafu left, orafu joined
eiro (i have to finish my slides) 12:10
masak eiro: the cliffs and hills of a small island in the Swedish western archipelago.
eiro sweden! i really want to visit the country! images from there are so beautifull 12:11
Matt-W eiro: It's great there 12:12
12:12 zamolxes joined
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...
jnthn eiro: If you go to Sweden, don't miss Abisko. :-)
masak jnthn: what?
jnthn hopes masak knows where Abisko is.
masak oh, yeah. 12:14
that one.
sure I know.
jnthn masak: It's probably the most beautiful bit of Sweden I've found to date.
I really loved it up there. Gotta go back some day.
masak jnthn: no, actually I haven't heard that name, ever.
eiro jnthn, *what*! but i come there just to see you talking! you have to change you vacations! 12:15
(i note Abisko.)
jnthn masak: Wow.
masak: travel.jnthn.net/country/sweden/abisko/
masak jnthn: I've yet to be so far north. 12:16
jnthn masak: I've met few Swedes who have.
12:17 payload left
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.
jnthn Having been up there, I always find it incredibly bizzare to here people talk about Stockholm being in the north.
masak :)
jnthn erm, *hear* 12:18
masak the paradoxes of Swedish geography...
jnthn srsly though, I did find the north very pretty. It's worth a trip up there, IMHO. :-) 12:20
masak I believe you.
one day, I'll go there.
right now, I'm mostly glad winter is being phased out. 12:21
don't need to chase it unnecessarily.
12:24 payload joined
jnthn masak: Got t-shirt weather there yet? 12:24
12:24 payload left
masak jnthn: 冬暖夏涼 12:25
jnthn: uh, I mean no, not unless you want a cold. 12:26
jnthn :-) 12:27
12:30 DemoFreak left
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:32
jnthn I actually don't completely dislike winter. 12:33
masak it has its merits.
jnthn Snow can be pretty.
masak but this sunshine... wow.
jnthn Yes. :-) 12:34
Being able to sit outside in a t-shirt and enjoy a cold pivo is so nice.
12:37 wolv is now known as wolverian 12:50 yahooooo left 12:53 iblechbot joined, PacoLinux joined 13:08 ruoso joined 13:52 ejs left 14:02 ilbot2 joined 14:07 hercynium left 14:13 skids joined
mberends bacek: I had problems porting HTTP::Daemon over to using listen() and accept(), not your fault ;) 14:18
masak mberends: you're back! \o/ 14:19
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 ;)
masak mberends: do you have an estimate on an unbroken HTTP::Daemon?
masak has coding itch
masak sings "unbreak my module" ♪ 14:22
dalek kudo: 2c7f5b3 | pmichaud++ | docs/spectest-progress.csv:
spectest-progress.csv update: 349 files, 8436 passing, 0 failing
moritz_ that's a nice number ;)
masak aye. we've had it for three days now. :P
Matt-W I particularly like the 0 failing bit
but 8,439 passing is nice 14:23
very nice
moritz_ masak: we'll have more on tomorrow's update
masak moritz_: nice.
Matt-W wonders when rakudo will pass 9,000
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
I've just emailed the group about it 14:26
I think an index.p6 rather than wiki.sh would be the solution
moritz_ Lyle++
masak Lyle++
I'll read the mail first. 14:27
14:27 justatheory joined, meppl joined
mberends masak: getting right tuit 14:29
masak mberends: awesome.
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
Lyle: if you like github, this is your chance to fork, commit, and do a pull request.
14:32 wolverian left 14:33 exodist joined 14:34 hercynium joined 14:36 payload joined, [particle]1 joined
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
14:39 orafu left
masak mberends: not tonight, I'm afraid. 14:39
14:39 orafu joined
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
oh, and thanks for reminding me about parrotsketch. :)
now I have time to think about whether I have something to report.
pmichaud moritz_: possible --jobs patch for t/harness: nopaste.snit.ch/16177
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
masak Lyle: that's OK too. :)
Lyle masak: got to get on with some work now, but I'll have a look at it again later...
masak cool. 14:42
pmichaud bbiab
moritz_ pmichaud: testing it now, needs some tweaking...
pmichaud: the exec line should be exec => ['perl6'], (including the square brackets) 14:55
pmichaud: apart from that it's fine, and with a sufficiently new TAP::Harness it works in parallel
14:56 wolverian joined, eternaleye_ left
pmichaud does it need to be './perl6' ? 14:57
moritz_ erm, yes
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
masak often commits when working
moritz_ s/commit/push/
I'm still a bit caught in the svn terminology 14:59
pmichaud same here, as you can tell :-)
14:59 hercynium left 15:00 orafu left 15:01 orafu joined, kane_ left
mberends masak: pierced the $work firewall, doing your fix via my box at home :D 15:02
masak mberends++ # renegade Perl 6 hacking
mberends masak: try r37917 autoexec.demon.nl:8888 15:03
seein' ya 15:04
an' my favicon face
masak :) 15:05
you look so happy!
mberends committing :D
moritz_ it's not too fast, but it's *very* nice! 15:07
[particle]1 still needs netcat, though :(
mberends pushed. hopefully the native socket support will speed it up.
masak it's Rakudo. :) the application we all love and use, but which has gotten significantly _slower_ in the past few months.
15:08 [particle]1 is now known as [particle]-
masak mberends: pulling. 15:08
15:08 [particle]- is now known as [particle1, [particle1 is now known as [particle]-
jnthn masak: Well, if you'd prefer Rakudo to be fast and wrong... ;-) 15:08
pmichaud fast and wrong we can do.
moritz_ speaking of pushing... I've now finished a spectest run 13 minutes
masak jnthn: not complaining. (I did say 'love')
mberends: a pull reveals nuttin'. 15:09
mberends :O
masak mberends: did you push to eric256/perl6-examples? 15:10
dalek kudo: ea94175 | (Moritz Lenz)++ | t/harness:
re-enable parallel testing in t/harness again

Requires a sufficiently recent Test::Harness. For example the harness works fine with 3.12, but for parallelism you need something newer, 3.16 seems to work.
15:11
kudo: 27f0c01 | (Moritz Lenz)++ | README:
document requirements for parallel testing
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
masak tries
mberends masak: I _thought_ I had, but the github site is unchanged. 15:12
masak mberends: aye.
pmichaud moritz_: I didn't put any code for handling TEST_JOBS in my patch... do we need it?
mberends investigates
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
masak moritz_: it's parallel. moritz_++ pmichaud++ 15:13
skids pmichaud: www.perlfoundation.org/perl6/index....erl6_tasks is now a tuit eater for Synopsis work. Old stuff moved to github wiki, and could be linked to rakudo.org/status
(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
skids Sorry for the delay, weekend consumed by HD crash.
pmichaud ouch, HD crash
moritz_ pmichaud: no, it seems it's not needed, it was just old habit ;-)
masak mberends: git pull --rebase
pmichaud skids: do you have an account on rakudo.org ?
skids Yeah, HD crash == time suckage
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
at least, that's the way it appears to me
maybe you're not set up as an author?
skids Yeah I don't see an edit link... 15:16
literal < mberends> masak: git blocked here by $work firewall :(
mberends: ssh blocked as well?
mberends masak: git realpushed
masak pulls
15:16 zamolxes left
pmichaud skids: when I log in, I see a link for "Create content" on the left... do you get that? 15:16
skids nope. 15:17
mberends masak: podrot is still there, this being a hack to unhack a previously failed hack.
pmichaud aha. You need to email [email@hidden.address] and ask for page creation privileges.
skids Thanks, I'll do that. 15:18
masak mberends: I might get around to fixing potrot.
mberends I also have tuits this evening, see how it goes :) 15:19
masak ooh, imcc errors are gone in this new version as well! 15:20
socat error remains. 15:21
see previous paste.
it says 'No such file or directory'. which file or directory is it trying to find?
mberends looks, frowning 15:22
masak I see no file access in the test-daemon script.
jnthn actually manages to break "say 42" in his local tree 15:23
[particle]- yeah, but is it faster?
literal haha
jnthn make spectest is way faster, yeah! 15:24
However we fail everything because we don't give any output. ;-)
15:24 dKingston joined
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?
dalek kudo: 4453712 | pmichaud++ | build/Makefile.in:
Refactor checks for Makefile updates so that 'make realclean' continues to work.
pmichaud masak: it's fine to mention speed -- we know it's an issue. 15:26
15:26 mberends left
pmichaud masak: are you noticing compilation speed or runtime speed as the bigger issue? 15:27
masak pmichaud: runtime.
pmichaud okay.
PerlJam is still just happy to have a compiler that executes actual perl 6 code, so speed isn't an issue yet.
pmichaud for that, we keep increasing the pain level on Parrot
jnthn moritz_: No, a fairly tricky patch I'm working on. :-)
masak pmichaud: when I put a lintel in Druid nowadays, there's a noticeable pause.
PerlJam: indeed.
15:27 Tene_ joined
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.
PerlJam masak: but keep mentioning the speed problem ;)
jnthn moritz_: Sorry!
15:28 mberends joined
masak covers mouth 15:29
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
jnthn pmichaud++ # excellent!
15:30 PhatEddy joined
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.
moritz_ wonders if there's a spec for line number informatoin in Match objects
jnthn pmichaud: Yes. :-)
We can haz prettier backtracez.
moritz_ and if not, maybe writing one would make sense
pmichaud moritz_: there's not one in Match objects, but STD has one.
masak mberends: what's './test.pl' in the HTTP::Daemon source? 15:32
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)␤»
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
moritz_ rakudo: sub e { exp 1 }; say e; say ++e; 15:36
p6eval rakudo 0310a3: OUTPUT«2.71828182845905␤3.71828182845905␤»
moritz_ rakudo: sub e { return exp 1 }; say e; say ++e;
p6eval rakudo 0310a3: OUTPUT«2.71828182845905␤3.71828182845905␤»
PerlJam rakudo: sub e { exp 1 }; say e; say ++e; say e; 15:37
p6eval rakudo 0310a3: OUTPUT«2.71828182845905␤3.71828182845905␤2.71828182845905␤»
PhatEddy Anyone know how to export a class attribute accessor method?
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)␤»
PerlJam rakudo: sub x { return 4; }; say x; say ++x; say x;
p6eval rakudo 0310a3: OUTPUT«4␤5␤4␤»
PerlJam That's an interesting behavior
masak mberends: I don't have such a file, I think.
moritz_ indeed
15:39 Tene left
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
masak ah. trying that. 15:40
jnthn PerlJam: Accidental feature! ;-)
mberends masak: FSVO x.y.z.
masak uh huh.
PerlJam jnthn: just add it to the spec :)
mberends masak: 127.0.0.1 even. And you're right, test.pl is gone. 15:41
masak mberends: rot, rot, rot :P
mberends lol
masak
.oO( something rotten in the state of Daemon... )
mberends knows what he'll get for homework today... 15:42
mberends .oO( speaking of which, I'm almost going to miss my train! ) 15:43
masak: continue in 2 hours? 15:44
masak mberends: have to depart soon, unfortunately. :/
but I'll keep working offline tonight.
and we'll continue to take over the wo... er, hack on this, tomorrow.
mberends ok, see you in the morrow 15:45
masak aye, sir.
15:45 orafu left, mberends left, orafu joined
masak shouts something after mberends 15:46
mberends: FWIW, the 'make run' thing worked! \o/
mberends: (but it's pretty bad IMHO that the examples in the Pod didn't.)
but 'make run' working is Very Good News. now I can continue my Lobster work offline. :) 15:49
pmichaud @seen eric256
lambdabot I saw eric256 leaving #perl6 2m 16d 9h 17m 28s ago, and .
15:52 brunoV joined
masak has always been curious why there's an ', and .' there. 15:52
15:52 meppl left 15:56 sitaram left
skids ponders the fact that .oO(...) is valid in many languages 15:57
PhatEddy rakudo: constant $x = 1; $x += 2; say $x
p6eval rakudo 0310a3: OUTPUT«3␤»
masak oh noes! 15:58
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...
masak adds that one to the growing list of sins
16:01 clintongormley joined
pmichaud I think constant is not yet implemented (as constant, at any rate). 16:02
16:02 Psyche^ joined
masak pmichaud: that theory fits the data, at least. :P 16:02
16:03 amoc left
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
(in case jnthn happens to read the above :-)
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:04
pmichaud that seems.... odd. 16:06
moritz_ jnthn, pmichaud: when do you plan to replace 'is also' on classes with 'augment'?
pmichaud oh, whenever. :-)
moritz_ there's a patch to update the test suite in RT
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:07 Khisanth left, masak left
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...
pmichaud jnthn: the type information is just a property on the @y container, yes?
moritz_ and while you are at it, I think that 'class A { ... }; class A { actual methods here }' shouldn't complain
rakudo: class A { ... }; class A { method b { } }; say "alive" 16:09
jnthn pmichaud: No
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)␤»
jnthn pmichaud: It's a parametric type.
moritz_ pugs: class A { ... }; class A { method b { } }; say "alive"
p6eval pugs: ( no output )
moritz_ elf: class A { ... }; class A { method b { } }; say "alive"
jnthn pmichaud: So it stores it as a lexical.
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'␤
..S...
jnthn pmichaud: The real issue is
16:09 sitaram joined
moritz_ pugs: say "alive" 16:09
p6eval pugs: OUTPUT«alive␤»
jnthn my Int @y; say @y ~~ Positional[Int]; # 1 16:10
my Int @y; @y = 1,2,3; say @y ~~ Positional[Int]; # 0
pmichaud jnthn: yes, that's my point.
what is it that associates @y with Positional[Int] ?
(internally) 16:11
jnthn pmichaud: doing a role
pmichaud: Basically, since we are some way off making Array parametric
I do on the container the equivalent of @y does Positional[Int]
(Just emit a call to infix:<does>
pmichaud doesn't that use setprop at some level?
jnthn )
No
I don't believe so anyway...
pmichaud well, that's likely the problem then. 16:12
jnthn ?
pmichaud if I do my Int $x;
is that still held as a property on the $x PMC ?
or did that change also?
jnthn For scalars, then yes, it's held as a property. 16:13
16:13 nihiliad left
jnthn But does 16:13
my @y = 1,2,3; # actually replace @y?
Because I was under the impression it should call !STORE
pmichaud depends on what you mean by "replace"
jnthn Hmm. It claims it does call !STORE. 16:14
pmichaud yes, I think it calls !STORE (from Array)
16:14 Patterner left, Psyche^ is now known as Patterner
jnthn As in, the actual type, such that if I infix:does'd it, it'll retain that. 16:14
my @y; @y[0] = 1; say @y ~~ Positional[Int] # 1 16:15
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.
you didn't assign to @y, you assigned to @y[0]
jnthn pmichaud: Yes, I know. Just isolating the problem. 16:17
oh, hmm
oh noes...I know what it is. :-(
.sub 'infix:=' :multi(['Perl6Array'], _)
Seems for some reason after we've called infix:<does> on an Array, we don't call this multi-variant. 16:18
(Even though it is a subclass. Hmm.)
pmichaud it probably thinks another (likely the scalar variant) is closer.
PerlJam jnthn: Isn't knowing half the battle? Rejoice that you're half way to a solution! ;)
jnthn Nasty.
pmichaud or it doesn't think that the variant is a ['Perl6Array']
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?
(i.e., as we get farther along)
because I think it should be the same for Scalars 16:20
(whichever it is)
jnthn I'm not convinced it'll be quite either-or.
It's for sure that my Int @y needs to have @y doing Positional[Int] 16:21
But when you take, say @y[42], then this "container" is at that point somewhat divorced from it's parent container.
pmichaud it's just "Int" at that point, yes?
jnthn Right, so in that case it'd need a property.
pmichaud it cant be something that does Int ? 16:22
jnthn Well, anything that Int.ACCEPTS(...) could be assigned to it.
But it is just like a normal scalar type-check at that point.
The Positional[Int] is more for talking about the array as a whole. 16:23
sub foo(Int @x) { } # tests for does Positional[Int]
pmichaud right, I see the difference.
(now I do, anyway)
jnthn In that second case, we don't consider the values.
Just that it does the role.
16:23 orafu left 16:24 orafu joined
jnthn In the long run, I expect that we will not re-bless, but instead Array becomes a role. 16:24
Then we pun an Array[Int]
Which is defined as something like role Array[::T] does Positional[T] { ... } 16:25
(Which will be more efficient, of course.)
pmichaud right. okay, I'm following now (mostly) 16:26
thanks for efficient explanation :-)
if it helps, I'm fine with eliminating the multi-ness of 'infix:=' in favor of explicit type checks
jnthn Anyway, at this point I ain't so sure what to do next...
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.
jnthn We have over the course of Rakudo history flip-flopped between the two, I think.
Yeah, but assignment is something we want to be, well, unslow. :-)
pmichaud I suspect doing the check isn't going to add significantly.
it's just a does and a tailcall 16:28
(does, test, and tailcall)
jnthn True, but PCC is slow so the re-dispatch hurts. But maybe I shouldn't worry about that for now. :-)
Anyway, if you're OK with me working around it like that for now, i'll go with it.
PerlJam pmichaud: or figure out how to guarantee that parrot doesn't guess wrong.
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 ;)
pmichaud for infix:= we've tended to flip between methods and subs
jnthn Ah, true. 16:30
16:30 Khisanth joined
jnthn (fix) Well, I could always give them signatures and re-bless them into Perl6MultiSub's in that case. :-P 16:30
Oh hey, maybe that isn't such a stupid idea... 16:31
pmichaud I'd be fine with that also.
I'm not terribly attached to the current infix:= implementation other than the fact that it "works" 16:32
I'm very open to refactors (as long as they "work" to at least the same level as what we have now)
jnthn Maybe we should schedule some time to discuss this area at NPW.
pmichaud actually, we need to be making a list somewhere of NPW topics to discuss :-)
jnthn We still need to sort out binding to hash and array values too.
pmichaud binding in general is an issue too. 16:33
jnthn Which probably figures into this lot.
pmichaud I'm happy with figuring this out at NPW, also.
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.
For now.
pmichaud quick fix sounds good.
jnthn Yes, that too.
I'd really like to get a first cut of this stuff working.
pmichaud anyway, my suggestion is explicit typecheck in infix:= 16:35
(the one that is being mistakenly called)
16:39 jferrero left
jnthn pmichaud: OK, that seems to help :-) 16:40
Woo, and my patch at least makes it through the sanity tests. 16:43
I fear the spectests will be a different story though.
16:45 braceta joined, nihiliad joined, braceta left
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 )
diakopter rakudo: ;3;;3;;3;;3; ;3;; ;3; 3;;3;3;;3; ;; ;33;3;333; 3 ;;3;;3 ; ;;; ;; ; say 'ok'
p6eval rakudo 0310a3: OUTPUT«ok␤»
pmurias ruoso: how should the module where we fill in capture's MESSAGE be called?
ruoso hmm... re-capture? ;) 16:48
pmichaud moritz_: I don't know that we'll be able to s/is also/augment/ anytime very soon. 16:49
it's a fairly significant change to the way we build classes and roles.
(from a parsing perspective)
16:49 kane_ joined, kane__ left
pmichaud we may want/need contextual variable support in PGE/NQP in order to do it properly. 16:51
pmurias ruoso: i'm not very happy with that name but i can't think of a better name 16:53
ruoso pmurias, I think it's about stage 1 caputre 16:54
maybe s1native
pmurias i could be filled in native 16:55
ruoso hmm... in fact 16:56
it could
pmurias or we could have capture-part1 and capture-part2
16:58 schinkelm joined 16:59 sri_kraih_ left
jnthn OK, I'm scared... 17:04
> multi foo(Int &x) { say 1 }
> multi foo(Str &x) { say 2 }
> sub a() returns Int { return 42 }
> sub b() returns Str { return "OH HAI" }
> foo(&a); foo(&b);
1
lambdabot <no location info>: parse error on input `42'
<no location info>: parse error on input `2'
<no location info>: parse error on input `"'
<no location info>: parse error on input `;'
<no location info>: parse error on input `1'
jnthn 2
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?
jnthn PerlJam: Yes. :-) 17:07
Especially happy that I didn't have to go fiddle with the multi dispatcher and this Just Worked.
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.
PerlJam (assuming spectest didn't randomly fail)
jnthn As in, variants of the parametric type with different type parameters.
make spectest is failing some stuff.
It's hard to be sure how serious it is just yet. 17:09
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.
pugs_svn r26104 | hinrik++ | [util/perl6.vim] classify the proto keyword differently 17:10
PerlJam jnthn++
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
But I'm only down to S04 yet, so...
pugs_svn r26105 | hinrik++ | [util/perl6.vim] update TODO 17:13
17:14 kane_ left
pugs_svn r26106 | pmurias++ | [re-smop] 17:14
r26106 | pmurias++ | added missing files
r26106 | pmurias++ | added .positional to capture
17:14 hercynium joined 17:16 [particle]- left 17:17 frew|work left 17:19 hercynium left 17:20 hercynium joined
pugs_svn r26107 | pmurias++ | [re-smop] fixed all gcc warnings 17:20
17:22 [particle]1 joined, [particle]1 is now known as [particle]-
jnthn pmichaud: ping 17:27
pmichaud: Or actually can scribble it here...I did add a dynop very like the one you just added recently. :-) 17:28
17:28 schinkelm left 17:30 eternaleye joined 17:32 eternaleye left 17:34 eternaleye joined
diakopter std: my $a = my $b = 4; 17:35
p6eval std 26107: OUTPUT«ok 00:02 35m␤»
diakopter rakudo: my $a = my $b = 4;
p6eval rakudo 0310a3: ( no output )
Tene_ pmichaud: any chance you could get the text of the line in an annotation too? 17:42
17:42 Tene_ is now known as Tene
Tene pmichaud: that could certainly make for much nicer error reporting. :) 17:42
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:43
is how STD does it 17:44
moritz_ TimToady: should .line or so be specced in the Match object?
TimToady line numbers are also generated from the position in the progam string
why?
you can derive it from the pos 17:45
as STD does
I suppose if Match knows its original string, then .line can be provided
but STD currently cheats on that for efficiency
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?
TimToady used to carry .orig around in all the Cursors, but that was hard to manage in P5 without accidental dups
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
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:48
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
if you need it often
TimToady I've got various per-position things cached already in STD, so adding in line # isn't much more
like did I already check for whitespace here? 17:50
diakopter packra
17:51 orafu left
TimToady see @*MEMOS in STD.pm 17:51
17:51 orafu joined, aindilis joined
TimToady and method lineof 17:51
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:56
pmurias bjj& 17:57
17:57 pmurias left, skids left
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:58
(i.e., it's just a reference) 17:59
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:03
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
which is how it can use lazy lists for its backtracking engine
PerlJam garbage collection is a good thing 18:05
TimToady anyway, carrying relatively static refs around gets more expensive the more you copyt them
PerlJam TimToady: What do you think about having // alwasy produce a Regex object and requiring m// to actually perform a Match?
TimToady what's the boolean value of // then? :) 18:06
PerlJam Bool::True (always :)
moritz_ PerlJam: that would make $str.split(/.../) very non-dwimmy
TimToady I like the current design
p6 is all about lazy context 18:07
18:07 sitaram left
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)
TimToady note that we've removed the necessity to introspect the / 18:08
moritz_ PerlJam: right, I was confused
pmichaud TimToady: the question we came up with last week was something like: /.../ ?? 'true' !! 'false' 18:10
how do we know that /.../ is to be an immediate match?
TimToady it's in a boolean context
pmichaud do all regexes in boolean context match against $_ ?
TimToady yes 18:11
pmichaud okay.
TimToady $x ~~ is a topiclaizer
I've been saying this for years...
[particle]- so /.../ is the same as ?/.../
pmichaud no.
18:11 barney joined
pmichaud it depends on the context of /.../ 18:11
PerlJam ?//, ~//, and +// are all immediate matches against $_ though
lambdabot Unknown command, try @list
pmichaud afaict, the synopses don't make it clear that any Regex in a boolean context performs a match
TimToady m// is the problem child under this view 18:12
if m// means ?// then you can't use is in list context
*it
[particle]- what if m// means \//
TimToady I huh in your general direction 18:13
[particle]- or is that |// (i'm still confused with that syntax)
TimToady I rehuh in your general direction
[particle]- basically, lazy context detection
TimToady context is always lazy
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)
TimToady so I don't know what you mean
[particle]- neither do i, i suppose 18:14
TimToady m// always forces an immediate match on $_ *especially* if topicalized by smartmatching
PerlJam [particle]-: m the stands for "magic" :)
pmichaud okay.
TimToady the m// seems the $x via $_
pmichaud so $x ~~ m/.../ matches $x against the Match object produced by m/.../
TimToady *sees
PerL_MonK im afraid to ask what '?' stands for then 18:15
[particle]- hrmm.
pmichaud oh, okay, what you just said then.
[particle]- PerL_MonK: prefix:<?> evaluates an expression in boolean context
TimToady basically, I guess, matches *always* match against $_ 18:16
PerL_MonK i was expecting a more, magical answer ;)
pmichaud with foo(Regex $x) { $_ = 'blah'; say ?$x; }
[particle]- can ops curry?
PerlJam TimToady: right, $x~~ as topicalizer just hasn't sunk in.
[particle]- $x ~~;
pmichaud is $x matched against the local $_ or against the $_ in effect when the regex was defined?
[particle]- /match_me/;
18:16 jhorwitz joined
TimToady however, they match against the $_ in effect at the location of the // 18:16
pmichaud okay
you just answered that, then.
grep and split are special, though. 18:17
TimToady not at the ? location, which could be down in a service sub like split
[particle]- heh
TimToady either that, or a splitter has to alias its $_ to the CALLER::<$_> explicitly
pmichaud this doesn't match the discussion I remember on the topic -- at least not entirely. 18:18
TimToady maybe that makes more sense
[particle]- the pessimizer will be busy
Tene pmichaud: do you have a plan for context vars?
pmichaud with "something".split(/.../) --- how does split set the topic for the regex, then? 18:19
Tene: answer #1: Parrot isn't up for "real" context vars yet
18:19 skids joined
pmichaud Tene: answer #2: I've just introduced an opcode that allows us to simulate it a bit 18:19
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
pmichaud *contexts
TimToady perhaps $x ~~ // really turns into <-> $_ { // }($x)
18:20 meppl joined
PerlJam <-> is rw parameters? 18:20
TimToady yes 18:21
diakopter std: my $d=$d
p6eval std 26107: OUTPUT«ok 00:02 35m␤»
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 //
TimToady well, should really be "is ref" I suppose
PerlJam diakopter: be aware that those are the same $d
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.
TimToady as I said last night, declarations introduce names immediately
18:24 PerL_MonK left
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" ...?)
PerlJam TimToady: yeah, but you have to use many different words until everyone gets it :)
diakopter ... faq (by diakopter)
pmichaud I'm guessing that a regex is a closure with a default parameter of OUTER::<$_> 18:27
at least for the /.../ and m/.../ forms
much like we do for other un-signatured closures 18:28
[particle]- can a regex ever take anything other than one param?
PerlJam Depends on if you count adverbs as parameters :) 18:29
18:30 justatheory left
TimToady token foo ($more, $params) {...} 18:31
however, ~~ has no way to supply those extra params
[particle]- but split does 18:32
PerlJam If // is a closure with $_ as invocant, then ($x ~~ /.../)($foo, $bar); should work
[particle]- it's nice to have a language that still has corners 18:34
PerlJam ($str ~~ HTML)('strict') # or something.
pmichaud PerlJam: I don't see how that can be.
PerlJam But then I'd want something like $str ~~ HTML('strict') 18:35
moritz_ if HTML overrides .accepts, it can return a closure...
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
instead of HTML
TimToady well, all this is kinda beside the point if $x ~~ $y means $y.ACCEPTS($x)
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.
I'm more interested in the .split(/.../) .match(/.../) and /.../ ?? foo !! bar cases at the moment
smartmatch is "special" -- we can do syntactic things to make it do what we want. 18:38
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.
TimToady I'm just confused... :)
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 $_
diakopter (or the $_ in the context of $regex' declaration)
TimToady split sets $_ to $foo in that case
pmichaud okay, so $regex matches against its callers $_, not against the $_ of the regex definition. 18:41
TimToady I don't think /.../ closurizes
yes
pmichaud and with ?$regex ... ?
is it still matching against the $_ at the point of the boolean, or ... ? 18:42
TimToady prefix:<?>'s caller's $_, again
pmichaud okay.
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.
TimToady so the actual eval of // might be triggered by binding, for instance, not the actual body of ?
18:43 cdarroch joined
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:44
pmichaud No. 18:45
$str foo asks "$str does Foo?"
sorry
$str ~~ Foo asks "$str does Foo?"
(unless the spec changed again while I wasn't looking)
moritz_ it didn't ;-)
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)
pmichaud .parse wants to invoke TOP by default, yes.
PerlJam okay, so if .parse invokes TOP, does it have a slurpy on the end (or something) for parameters to TOP? 18:47
(or does TOP ever take parameters?)
pmichaud all methods have slurpy named
18:58 DemoFreak joined
pmichaud if you mean slurpy positional -- we haven't put that there but could certainly do so if needed. 18:59
19:04 justatheory joined, hercynium left 19:11 plash left 19:15 orafu left, orafu joined 19:32 Util joined
Util evalbot: 'my $z = 1**Inf; say $z.perl' 19:33
moritz_ rakudo: my $Z = 1**Inf; say $Z.perl
p6eval rakudo 0310a3: OUTPUT«1␤»
moritz_ it runs on linux
Util And outputs "NaN" on MinGW/Win32. Thanks, moritz. 19:34
moritz_ rakudo: say (1**NaN).perl 19:36
p6eval rakudo 0310a3: OUTPUT«1␤»
Util Shouldn't that have produces NaN? 19:37
moritz_ that's a good question
Util s/produces/produced/
moritz_ my first thought was "yes"
but then... can you imagine *any* x so that 1**x gives something other than 1? 19:38
[particle]- rakudo: say (1**'a').perl
p6eval rakudo 0310a3: OUTPUT«1␤»
19:40 dKingston left
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:41
moritz_ you've got a point there 19:42
19:45 frew|work joined 19:46 eternaleye left 19:49 barney left 19:52 sri_kraih joined 20:08 orafu left, orafu joined
jnthn is back from nom 20:22
pmichaud: Will Thursday work for Rakudo day? 20:23
pmichaud yes 20:25
that's probably best for me.
Friday kids are home from school.
jnthn OK, it's best for me too, I think. 20:26
pmichaud I should have bytecode annotations done well before then.
(working on them now, in fact)
jnthn Tomorrow will have too many distractions, and Friday I probably need to wrap some non-Rakudo stuff up before The Trip.
(bytecode annotations) great!
We can haz better errors! 20:27
Will you provide a hook in HLLCompiler for subscribing some sub that receives an uncaught exception?
Or just some default we can subclass is fine I guess.
pmichaud jnthn: we can do that, yes. 20:29
jnthn OK, great. :-)
pmichaud something somewhere.
jnthn specificity win ;-) 20:31
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.
and check rakudo.org/status and RT 20:35
lucs Er, I wouldn't want to pollute the channel with my ignorance :/
Ah, status, ok.
jnthn I think you can pm evalbot too.
[particle]- or examine t/spe
*t/spec
lucs Ok, thanks. 20:36
20:36 Tene_ joined 20:37 sri_kraih_ joined
pmichaud and Rakudo doesn't implement heredocs yet. 20:42
(in case status doesn't say that.)
TimToady STD parses them, fwiw
lucs pmichaud: That's what it looks like :) 20:43
pmichaud I'll have to check out STD's parsing.
but at some point I'm going to be tired of emulating STD and just use it. :-)
TimToady std: q:to'foo';␤stuff␤foo␤
p6eval std 26107: OUTPUT«##### PARSE FAILED #####␤Unrecognized quote modifier: 1 at /tmp/d5ckZFXAjZ line 1:␤------> q:to'foo';␤FAILED 00:02 34m␤» 20:44
pmichaud then again, it's possible STD doesn't parse some of them :-)
TimToady strange...
20:45 sri_kraih left 20:47 ruoso left 20:49 Tene left 20:52 hercynium joined
TimToady std: q:to/foo/;␤stuff␤foo␤ 20:59
p6eval std 26107: OUTPUT«ok 00:03 35m␤»
TimToady std: q:to"foo";␤stuff␤foo␤
p6eval std 26107: OUTPUT«ok 00:02 35m␤»
TimToady std: q:to'foo';␤stuff␤foo␤
p6eval std 26107: OUTPUT«##### PARSE FAILED #####␤Unrecognized quote modifier: 1 at /tmp/bNbf3B3f2c line 1:␤------> q:to'foo';␤FAILED 00:02 34m␤»
PerlJam don't you run afoul of the fact that ' can be in identifiers? 21:04
TimToady std: q:to 'foo';␤stuff␤foo␤
p6eval std 26107: OUTPUT«ok 00:03 35m␤»
TimToady apparently :)
moritz_ is the ' really needed in identifiers? 21:05
I can see the point for the dash - and I frequently use it
PerlJam don't won't isn't etc.
pmichaud Depends on whether you like O'Malley or Klingon :-)
moritz_ but all examples for ' that I've seen were constructed
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
ah well, maybe I'm just not open enough for that kind of change
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
PerlJam yes, indeed.
TimToady if it had said that to'foo is unrecognized I'd have known right away what the problem was
PerlJam (I too have little desire for ' in identifiers, fwiw)
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
e.g., $message-d'erreur
PerlJam does that mean that any glyph used in natural language text can be used in identifiers? 21:10
:-)
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:11
pugs_svn r26108 | lwall++ | [STD] emit correct error message on unrecognized quote modifier 21:13
r26108 | lwall++ | treat Xop as non-diffy
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")).
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")
lucs Ah, right :)
pmichaud PerlJam: but they're not really "contractions"
PerlJam l'avion looks like a contraction to me.
TimToady huffmanizations :)
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!
rgs d'hui is actually the contraction of de hui, hui meaning here in ancient French (latin hic)
moritz_ lol
lucs jnthn: Bring out the cigars!
pmichaud aujourd'hui would literally be "the day that is here"
TimToady std: q:to 'foo';␤stuff␤foo␤
p6eval std 26108: OUTPUT«ok 00:02 34m␤»
pmichaud or "on the day that is here"
TimToady std: q:to'foo';␤stuff␤foo␤
p6eval std 26108: OUTPUT«##### PARSE FAILED #####␤Unrecognized quote modifier: 1 at /tmp/V90UyOCajW line 1:␤------> q:to'foo';␤FAILED 00:02 34m␤»
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.
TimToady why does it report version 26108 but keep 26107 semantics for many minutes?
lucs The point is that "aujourd'hui" is a single word, but "l'avion" is two.
pmichaud lucs: correct.
rgs lucs: d'accord.
:p
PerlJam TimToady: are you sure your changes worked? ;)
TimToady yes 21:19
was using @k in a scalar context
hence the 1
PerlJam std: q:to'foo';␤stuff␤foo␤
p6eval std 26108: OUTPUT«##### PARSE FAILED #####␤Unrecognized quote modifier: to'foo at /tmp/zvglHXR7EY line 1:␤------> q:to'foo';␤FAILED 00:02 34m␤»
PerlJam that is *weird* 21:20
moritz_ std.pm is still being recompiled
TimToady what did you do different, besides wait longer? :)
moritz_ ah, now it's done
the server is a bit slow
PerlJam moritz_: seems like it's reporting the wrong version then.
TimToady spoiled, only takes 30 seconds here...
21:20 jhorwitz left
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
it's now in the './tryfile STD.pm' step
TimToady anyway, nearly all apostrophe errors should be handled by reporting what it is that you didn't recognize 21:23
likewise - errors
moritz_ std: 1
p6eval std 26108: OUTPUT«ok 00:02 35m␤»
TimToady std: say rand-rand 21:24
p6eval std 26108: OUTPUT«Undeclared routine:␤ rand-rand used at 1 ␤ok 00:02 35m␤»
moritz_ PerlJam: actually it's the other way round - it always reports the current svn revision, not the built revision 21:25
21:31 PhatEddy left 21:33 clintongormley left 21:38 FurnaceBoy joined
jnthn our List multi method map(Code *&expr) { 21:42
Why the slurpy?
std: our List multi method map(Code *&expr) { ... }
p6eval std 26108: OUTPUT«ok 00:03 39m␤»
moritz_ because... there's a section on "slurpy code blocks" somehwere, I think in S04 or S06
21:44 payload1 joined
jnthn ah, found it, thanks. 21:45
ah!
It's not the slurpy I think
So much as that it's wrong in another way.
Code &expr means "an expression that returns Code"
21:46 skids left, payload left
moritz_ aye 21:46
jnthn And I think that *&expr from what I can see in the synopses would not change that.
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
jnthn OTOH, our List multi method grep(Code $test) { is fine 21:47
Because of the $ there.
21:47 jferrero joined
jnthn Though I am curious why we don't just write &test 21:47
21:48 brunoV left
jnthn removes the Code 21:49
moritz_ (removing stuff)++
pmichaud the Code might be there to make the multi more explicit. 21:50
e.g., to distinguish (Code $test) from (Str $test)
as opposed to having to see the difference between (&test) and ($test)
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.
*&code is a significant enough difference for me :-)
jnthn I only knew those existed as of five mins ago. Wow.
Good good. :-)
Ah, when Rakudo gets correcter than it's own setting. ;-) 21:52
A lot of my fails were related to map
pmichaud but this points to another reason why setting should be sparing of type constraints :-)
pugs_svn r26109 | moritz++ | [t/spec] tests from and for RT #64478, ihrd++
pmichaud yes, I found a few places in the suite that had foo(Hash %h) 21:53
(where %h was being used as a simple hash, not a HoH)
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
jnthn oh hey, I wonder if that's why hash.t was failing...
moritz_ actually there are a few more instances of that 21:55
jnthn ah, surprise!
Well, that's hash.t corrected and passing. 21:56
moritz_ type-based.t is also wrong
and pair.t
moritz_ fixes these right now
jnthn moritz_: Oh, thanks! :-)
I just fixed hash.t
pugs_svn r26110 | jnthn++ | [t/spec] Correct test that said Hash %hash when it really just meant %hash (Hash %hash is a HoH.
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
pmichaud yay, more passing tests? 21:58
or are these tests that passed in spite of being wrong?
jnthn pmichaud: They were passing before in spite of being wrong.
pmichaud drat. 21:59
jnthn pmichaud: Don't worry, we'll get more passes soon. ;-)
pmichaud isn't "impatience" one of the virtues?
pugs_svn r26112 | moritz++ | [t/spec] remove more wrong type constraints of the form 'Array @a'
moritz_ ack++
ack'ing for Array\s*@ and Hash\s*% found a few of those 22:00
22:00 nihiliad left
moritz_ (actually ack found all that I fixed) 22:00
pmichaud might also look for "Code\s*&". 22:01
moritz_ yes, one hit
jnthn OK, down to 5 more tests to investigate now.
pugs_svn r26113 | moritz++ | [t/spec] remove one more wrong type constraint, pmichaud++ 22:02
22:03 wknight8111 joined
jnthn OK, only 3 test files now that I actually need to investigate, out of 20 initial fails. yay. 22:04
I know what 2 of them are.
If anyone fancies checking on: t\spec\S06-signature\passing-arrays.t 9 1 6
If it's a perfectly valid test, I'll need to fix it...
(as in, fix Rakudo)
22:05 nbrown_ joined
moritz_ jnthn: did you svn up? 22:05
pmichaud jnthn: which tests appear to be failing in passing-arrays.t ? 22:06
it appears correct to me.
jnthn not ok 6 - non-slurpy array does not take a single Int 22:07
22:07 kidd joined
jnthn It's more than possible I've messed up. 22:07
pmichaud that test is correct.
jnthn That is exaclty the area of the code I have changes in.
OK, thanks.
pmichaud rakudo: sub foo(@a) { say @a.perl; }; foo(3); # should be an error
p6eval rakudo 0310a3: OUTPUT«Non-Positional argument for @a in call to foo␤current instr.: 'die' pc 15853 (src/builtins/control.pir:204)␤»
pmichaud for exactly that reason.
jnthn oh oh oh 22:08
Then I'll know just what that is...
pugs_svn r26114 | moritz++ | [t] warn about my Array @a 22:09
pmichaud + isa_ok(:foo.value, Bool::True, ':foo.value isa Bool::True'); 22:13
...is that right?
(the "isa" part?)
jnthn Yes. Duh. Stupid me.
22:14 nbrown_ left
moritz_ pmichaud: what do you expect it to be? a Bool instead of Bool::True? 22:14
pmichaud: it used to be an Int, but it's a Bool these days
jnthn: after I corrected the passing-arrays.t test it also fails in trunk
jnthn True, but isa feels...wrong.
moritz_: Oh? 22:15
moritz_ s/after/since/
Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures:
:(Any @bar)
:(Any %bar)
that's because dispatch by sigil-implied types is NYI
jnthn oh how handy
moritz_ I'd say we regress on that one
wait 22:16
that's a different file
type-based.t
moritz_ confused
sorry
jnthn moritz_: Well, still it's a win because locally that works now. ;-)
> multi foo(@x) { say 1 }
> multi foo(%x) { say 2 }
> foo([1,2,3]); foo({ a => 1, b => 2});
1
lambdabot <no location info>: parse error on input `2'
<no location info>: parse error on input `@'
<no location info>: parse error on input `{'
jnthn 2
moritz_ jnthn: should I fudge it anyway? 22:17
I mean I don't know in which time frame you'll push
jnthn moritz_: Can you hold off comitting it for long enough for me to do another make spectest...
moritz_ jnthn: sure I can
jnthn Or fudge now if you like and we can unfudge later. But I hope to commit soon.
pmichaud asking for "isa Bool::True" just feels wrong. 22:18
moritz_ pmichaud: what would you prefer? isa Bool?
pmichaud yes
and a separate test for truthity
.
moritz_ we have that already
pmichaud then we should just verify that :foo.value is a Bool
pugs_svn r26115 | moritz++ | [t/spec] improvements suggested by pmichaud++ 22:19
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
r26116 | moritz++ | soon ;-)
jnthn pmichaud: It's a fairly sizable diff, yeah.
pmichaud I can wait. My fix for the others is small.
(and for those reading along... the proposed patch in #64478 may be slightly off.) 22:21
jnthn Got passing-arrays.t running again. :-)
pmichaud \o/
moritz_ (real-time feedback on IRC)++
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
jnthn If it is, then we were doing it wrong before too... 22:23
pmichaud no, because before we were using a value node
jnthn Or probably anyway.
pmichaud i.e., 0 / 1 as Int
jnthn Oh, yes.
Ah! And pairs can be assigned to!
pmichaud correct.
jnthn I had forgotten that.
Good catch.
pmichaud oh, but we ultimately call infix:=> .... so.... 22:24
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.
jnthn rakudo: my $x = a => 42; say $x.perl; $x = 100; say $x.perl;
p6eval rakudo 0310a3: OUTPUT«"a" => 42␤100␤»
moritz_ rakudo: my $x = a => 3; $x.value = 400; say $x.perl
p6eval rakudo 0310a3: OUTPUT«"a" => 400␤»
pmichaud right.
jnthn Is that second output thus meant to be "a" => 100 there? 22:26
22:26 nbrown left
pmichaud rakudo: my $x = a => Bool::True; $x.value = 3; say Bool::True; 22:26
p6eval rakudo 0310a3: OUTPUT«1␤»
jnthn (In which case paris are specialny)
pmichaud I'm wanting to make sure we don't accidentally change Bool::True :-)
rakudo: my $x = a => Bool::True; $x.value = 3; say $x.perl;
p6eval rakudo 0310a3: OUTPUT«"a" => 3␤»
jnthn Yes, that would probably offend logicians too. We already offended the mathematicians with our e not being so constant. :-) 22:27
Lyle Hi All 22:28
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. ;-)
Lyle I'm trying to track down problems with Rakudo on windows when called by IIS or Apache
jnthn Lyle: OH HAI :-) 22:30
Lyle: Cool. I'm doing Rakudo dev on Windows too. :-)
dalek kudo: f822294 | (Moritz Lenz)++ | docs/ChangeLog:
[docs] more ChangeLog
22:30 Tene_ is now known as Tene
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
but I can't find the docs
jnthn perl6 --trace=1 may do it
Lyle jnthn: all works fine on the command prompt, but not through cgi 22:31
jnthn Lyle: In what sense is it failing?
Not giving any output?
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
jnthn That'll at least tell us if it's a Parrot-level or Rakudo-level issue.
pmichaud there's also the parrot_trace(1) builtin.
Lyle but none of IIS
pmichaud (which can also be done with Q:PIR { trace 1 }; :-) 22:33
22:33 Southen_ joined, iblechbot left
jnthn Lyle: It gives output on Apache, but not IIS? 22:33
Lyle jnthn: yes
pmichaud bbiab 22:34
Lyle jnthn: I've managed to get november working on the command prompt
jnthn Lyle: Does it work at the command prompt also if you re-direct the output? 22:35
Lyle jnthn: with > filename on the end? 22:36
jnthn Lyle: Aye.
Lyle jnthn: yes it does 22:37
jnthn: when called through apache it just hangs and them timesout
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 ...`"
Lyle jnthn: I can see the perl6.exe process just sitting there in taskmgr
jnthn (Just pondering if it's some IO-level thing...)
moritz_ Lyle: it might be too slow if you don't precompile it
jnthn Lyle: Using CPU?
Lyle not using cpu 22:39
jnthn Hmm...
Suggesting it may be blocking on some IO. :-S
Lyle mortiz: hate to sound dumb, but how do I pre-compile? I'm very new to this
22:39 exodist left
moritz_ Lyle: maybe November has a 'make' target for that 22:40
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
jnthn Lyle: OK. Odd.
Lyle: Does a simple "print 'hello world'" style script work in Apache?
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.
Lyle jnthn: yes simple script does work
jnthn: in apache
s1n sanity check: can anyone else see this? 22:44
moritz_ s1n: no, I can't ;-)
s1n hah good, seems irc is the only thing working properly :( 22:45
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:46
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
and then try again through the web server
Lyle jnthn: a trace should reveal that shouldn't it?
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 Southen left
jnthn Lyle: A trace could well be revealing too. 22:47
Lyle moritz: I've done that already :)
moritz_ Lyle: and did it work?
Lyle mortiz: yes
jnthn Lyle: As could, if you can, breaking into it with a C debugger if it's hung on some blocking IO call.
dalek kudo: 6eef54b | jnthn++ | src/classes/ (2 files):
Signature on positional and associative postcircumfixes should not use @ and % sigils, since they are what define said sigils in the signature.
22:48
kudo: fb553bd | jnthn++ | src/ (3 files):
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.
kudo: 4abd893 | jnthn++ | :
Merge branch 'master' of [email@hidden.address]
Lyle mortiz: on apache and on IIS the files were written to, but still no output
Lyle jnthn: that's a bit above me at this point but I'll look into it
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
Lyle: But you could try at the start of the script $*ERR := open("some_log_file", :w) 22:50
Oh
But I fear that'll not actually work. :-|
Lyle jnthn: I could just point $*ERR to a local file then?
jnthn: oops you said that already lol
jnthn Yeah, but I don't think it'll influence where Parrot goes and prints stuff.. :-(
Lyle oh
jnthn moritz_: You can perhaps unfudge those sigil tests now. 22:51
moritz_: Also probably others too.
moritz_: I'll probably look soon at test coverage for this bunch of stuff I've been working on.
...googling for masak november didn't entirley get me what I was hoping for... 22:53
22:53 davidad1 joined
moritz_ try viklund november ;-) 22:53
moritz_ rebuilds and gets a segfault 22:54
jnthn fail
moritz_ let's see if a 'make clean' can change that
22:55 davidad left
moritz_ gets further now 22:55
jnthn Lyle: If you look at say the file "wiki"
moritz_ -L/usr/lib -licuuc -licudata -lpthread -lm
Linked: perl6
jnthn I suggest create a CGI that works like hello world.
And then
moritz_ that's better ;-)
jnthn Add things like: use CGI;
etc
moritz_: Phew! :-)
Lyle jnthn: ok 22:56
jnthn my $cgi = CGI.new;
$cgi.init();
See if that hangs it.
If so, you've narrowed it down quite a bit.
rakudo: my Int @a = 1,2,3; say @x.of
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)␤»
Lyle jnthn: Any idea's on IIS? I've posted in the forum on iis.net but nothing yet
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)␤»
jnthn meh, too soon
Lyle:
Lyle: No, not off hand.
moritz_ it should rebuild at the full hour, or so
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.
Lyle jnthn: I've emailed jan from activestate about it but he is on holiday
22:58 justatheory left
Lyle jnthn: hopefully he'll be able to help when he gets back 22:58
jnthn: cool :)
jnthn Aye, if he has time and/or interest perhaps. :-)
Lyle Thanks for the help everyone. I've got to hit the hey, hopefully I'll get further tomorrow 22:59
jnthn Lyle: Thanks for working on it. :-) 23:00
pugs_svn r26117 | moritz++ | [t/spec] unfudge two tests, jnthn++ 23:03
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)␤»
moritz_ ah, it needs a reconfigure 23:05
and the build script on the server didn't grok that
rakudo: my Int @a; say @a.of 23:07
p6eval rakudo 0310a3: OUTPUT«Int␤»
23:07 cognominal left
moritz_ (it might still report the wrong version; please ignore that) 23:07
rakudo: my Int @a = 2..4; say @a[1];
p6eval rakudo 0310a3: OUTPUT«3␤»
moritz_ rakudo: my Int @a = 2..4; @a[0] = 4.5; say "alive" 23:08
p6eval rakudo 0310a3: OUTPUT«alive␤»
moritz_ rakudo: my Int @a = 2..4; @a[0] = 'foo'; say "alive"
p6eval rakudo 0310a3: OUTPUT«alive␤»
23:09 Doubi joined
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
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
good night
jnthn night, moritz_
23:11 cognominal joined
jnthn -> sleep too, night all 23:12
23:18 Util left, skids joined 23:23 Tene left 23:26 davidad joined 23:28 Tene_ is now known as Tene 23:29 s1n joined, davidad1 left
meppl good night 23:35
23:36 meppl left
skids so commitbit.pugscode.org's password is for svn+ssh://svn.pugscode.org/pugs right? 23:39
Or is it for someplace else?
cuz it don't work
23:42 cdarroch left
diakopter I don't know if svn+ssh is enabled...? 23:42
I thought it was just http
skids for auth'd access? It does exchange a key 23:43
23:47 mncharity joined
mncharity @tell pmurias re your interest in erlang, on-ruby.blogspot.com/2009/03/reia-n...ng-vm.html 23:48
lambdabot Consider it noted.
23:48 mncharity left 23:53 brunoV joined 23:56 Lyle left, dukeleto|work left