pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/ Set by TimToady on 25 January 2008. |
|||
00:00
aindilis left
00:01
aindilis joined
00:06
fridim_ joined
00:08
rhizo_ is now known as rhizo
00:16
araujo left
00:20
Limbic_Region joined
00:22
bsb joined
00:27
justatheory joined
00:36
justatheory left
00:49
Auzon left
00:59
fridim_ left
01:05
braceta left,
braceta joined
01:09
kanru left,
IRSeekBot left
01:25
Ched- left
01:26
Ched- joined,
Limbic_Region left
01:28
aindilis left
01:33
Auzon joined
02:12
melg left
02:14
bacek joined
|
|||
bacek | hi there | 02:14 | |
02:21
alexe joined
02:24
bsb left
02:38
bsb joined
02:57
Alias_ left
02:59
bacek left
03:03
bacek joined
03:04
bacek left,
bsb left
03:10
eternaleye left
03:11
penk joined
03:31
bacek joined
03:36
bacek left
|
|||
Auzon | perl6: module Foo {sub test is export {say "hi"}}; test(); | 03:45 | |
exp_evalbot | kp6: OUTPUT[<is> not implemented at compiled/perl5-kp6-mp6/lib/KindaPerl6/Grammar/Term.pm line 1818, <> line 1.] | ||
..pugs: OUTPUT[*** No such subroutine: "&test" at /tmp/vlX40ZWhgR line 1, column 45-51] | |||
..rakudo: OUTPUT[Could not invoke non-existent sub testcurrent instr.: '_block11' pc 21 (EVAL_11:15)called from Sub 'parrot;PCT::HLLCompiler;eval' pc 783 (src/PCT/HLLCompiler.pir:458)called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1065 (src/PCT/HLLCompiler.pir:587)called from Sub | |||
..'parrot;PCT::HLLCompiler;command_line' pc 1244 (src/PCT/HLLCompil... | |||
..elf: OUTPUT[Undefined subroutine &GLOBAL::test called at (eval 15) line 9. at ./elf_f_faster line 4600] | 03:46 | ||
Auzon | perl6: module Foo {sub test is export {say "hi"}}; use Foo; test(); | ||
exp_evalbot | kp6: OUTPUT[<is> not implemented at compiled/perl5-kp6-mp6/lib/KindaPerl6/Grammar/Term.pm line 1818, <> line 1.] | ||
..pugs: OUTPUT[pugs: *** Unsafe function 'use' called under safe mode at /tmp/uU39c7WiZl line 1, column 1] | |||
..rakudo: OUTPUT[Error: file cannot be read: Foo.pmcurrent instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103)called from Sub 'require' pc 7614 (src/gen_builtins.pir:5348)called from Sub 'use' pc 7580 (src/gen_builtins.pir:5329)called from Sub '_block11' pc 27 | |||
..(EVAL_11:15)called from Sub 'parrot;PCT::HLLCompiler;eval' pc 783 ... | |||
..elf: OUTPUT[Cant locate Foo in ( . ).] | |||
04:17
eternaleye joined
04:18
alexe left
04:20
alexe_ joined,
alexe_ is now known as alexe
05:01
aindilis joined
05:11
bsb joined
05:12
braceta left
05:16
rindolf joined
05:32
alanhaggai joined
05:33
rhizo left
05:35
alc joined
05:37
alanhaggai left
05:48
meppl joined
|
|||
pugs_svnbot | r20537 | bacek++ | Add 'emit pop @pop' for rakudo for skipped test | 05:48 | |
r20538 | bacek++ | Add skipping for rakudo | 05:51 | ||
05:55
schmalbe joined
|
|||
vixey | what's the difference between elf_f and elf_f_faster? | 05:59 | |
is it only the stuff in EmitFasterP5? | 06:00 | ||
06:00
schmalbe left
|
|||
Auzon | Yes. See elf_f_src/Elf.pm and elf_f_src/Elf_Faster.pm | 06:02 | |
vixey | why was elf_f_faster created? | 06:04 | |
Auzon | elf_f usually takes 3-5 seconds to do anything | ||
elf_f_faster takes .25s | |||
the faster variant is available in the evalbot here. | 06:05 | ||
elf: say "hi" | |||
exp_evalbot | OUTPUT[hi] | ||
vixey | so why are there two? | ||
rather than just make elf_f faster | |||
Auzon | since _faster is mostly the same, it can churn though the tests quicker | ||
It's not equivalent in all cases | |||
and _faster was made after the regular one. At the time, they didn't know how much faster it would be. | 06:06 | ||
vixey | I see | ||
06:08
polettix joined
|
|||
spinclad | and elf_f uses Moose, which may turn out to be a good object system to build on (being a good match to perl 6 semantics) | 06:08 | |
Auzon | right. The main change in the faster variant is the removal of Moose. | 06:09 | |
06:10
polettix left
06:17
IRSeekBot joined
06:18
alanhaggai joined
06:30
aindilis left
06:56
polettix joined,
polettix left
07:12
iblechbot joined
07:16
luqui joined
07:21
IllvilJa left
07:29
alanhaggai left
07:36
IllvilJa joined
|
|||
vixey | perl6: my $x = 3; is $x, 3, '?' | 07:58 | |
exp_evalbot | kp6: OUTPUT[no method 'APPLY' in Class 'Undef' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345 KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x824be54)', 'APPLY', 'HASH(0x8e4df30)', 'HASH(0x8e524f8)', 'HASH(0x8e525dc)') called at | ||
..compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169 main::DISPATCH('HASH(0x824... | |||
..pugs: OUTPUT[*** No such subroutine: "&is" at /tmp/CcDqwjKNJn line 1, column 12 - line 2, column 1] | |||
..rakudo: OUTPUT[Could not invoke non-existent sub iscurrent instr.: '_block11' pc 57 (EVAL_11:28)called from Sub 'parrot;PCT::HLLCompiler;eval' pc 783 (src/PCT/HLLCompiler.pir:458)called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1065 (src/PCT/HLLCompiler.pir:587)called from Sub | |||
..'parrot;PCT::HLLCompiler;command_line' pc 1244 (src/PCT/HLLCompiler... | |||
..elf: OUTPUT[Undefined subroutine &GLOBAL::is called at (eval 15) line 4. at ./elf_f_faster line 4600] | |||
vixey | perl6: use Test; my $x = 3; is $x, 3, '?' | 07:59 | |
exp_evalbot | kp6: OUTPUT[no method 'APPLY' in Class 'Undef' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345 KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x824be4c)', 'APPLY', 'HASH(0x8e516d0)', 'HASH(0x8e57f18)', 'HASH(0x8e57ffc)') called at | ||
..compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169 main::DISPATCH('HASH(0x824... | |||
..pugs: OUTPUT[pugs: *** Unsafe function 'use' called under safe mode at /tmp/fZntVt3Wel line 1, column 1] | |||
..rakudo: OUTPUT[Error: file cannot be read: Test.pmcurrent instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103)called from Sub 'require' pc 7614 (src/gen_builtins.pir:5348)called from Sub 'use' pc 7580 (src/gen_builtins.pir:5329)called from Sub '_block11' pc 27 | |||
07:59
alanhaggai joined
|
|||
exp_evalbot | ..(EVAL_11:15)called from Sub 'parrot;PCT::HLLCompiler;eval' pc 783... | 07:59 | |
..elf: OUTPUT[Cant locate Test in ( . ).] | |||
moritz_ | rakudo: 1 | 08:00 | |
exp_evalbot | RESULT[1] | 08:01 | |
vixey | sub func( $a, $b, $c ) { $var }; seems fine | 08:02 | |
but in elf_f my sub func( $a, $b, $c ) { $var }; breaks | |||
moritz_ | elf: $x = 1; say $x; | 08:04 | |
exp_evalbot | OUTPUT[Global symbol "$x" requires explicit package name at (eval 14) line 3.Global symbol "$x" requires explicit package name at (eval 14) line 4. at ./elf_f_faster line 4600] | ||
moritz_ | ah, elf is strict | ||
vixey | elf: my sub foo {} | 08:10 | |
exp_evalbot | OUTPUT[Use of uninitialized value in concatenation (.) or string at ./elf_f_faster line 3458.Use of uninitialized value in concatenation (.) or string at ./elf_f_faster line 3458.Can't call method "sigil" on unblessed reference at ./elf_f_faster line 4037.] | ||
08:13
araujo joined
|
|||
moritz_ | vixey: if you don't produce output, the expression will be wrapped in ((do { ... }).perl).print (or something along these lines) | 08:13 | |
vixey | putting my before sub means that elf wont even compile it | 08:14 | |
08:15
cosimo joined
|
|||
vixey | (do{if((($n->var()->sigil() eq '@'))) { | 08:16 | |
perl6: my sub foo {} | 08:19 | ||
exp_evalbot | kp6: RESULT[{ ... }] | ||
..pugs: RESULT[\sub :(@_) "$_" := "Scalar" #<Scalar:0xb71c881c> "@_" := "Array" #<Array:0xb71c7494> "&?ROUTINE" := "Sub" #<Sub:0xb6604cec> "&?BLOCK" := "Sub" #<Sub:0xb6604cec> {"&foo" := "Sub" #<Sub:0xb712ee64>, "$_" := "Scalar" #<Scalar:0xb71d2d00> | |||
.. ... | |||
..rakudo: OUTPUT[Lexically scoped subs not yet implemented. at line 1, near ""current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)called from Sub 'parrot;Perl6;Grammar;Actions;_block2332' pc 112036 (src/gen_actions.pir:5258)called from Sub | |||
..'parrot;Perl6;Grammar;Actions;_block2315' pc 111941 (src/gen_actions.pir:5220)c... | |||
..elf: OUTPUT[Use of uninitialized value in concatenation (.) or string at ./elf_f_faster line 3458.Use of uninitialized value in concatenation (.) or string at ./elf_f_faster line 3458.Can't call method "sigil" on unblessed reference at ./elf_f_faster line 4037.] | |||
08:25
alc left
08:27
Lunchy left
|
|||
vixey | ../elf_f -v -e 'my sub foo {}' | 08:39 | |
it prints out | |||
CompUnit([VarDecl(my,undef,undef,undef,undef,undef,=,undef)],undef) | |||
CompUnit(statements=>[VarDecl(scope=>'my',typenames=>undef,plurality=>undef,var=>undef,postcircumfix=>undef,traits=>undef,default_op=>'=',default_expr=>undef)],filename=>undef) | |||
so I guess that the IRx1 nodes need to be added to, to get that parsed properly, is that true? | 08:40 | ||
08:43
pbuetow joined
08:47
smtms left
09:14
viklund joined
09:26
alc joined
09:30
chris2_ joined
09:32
chris2_ is now known as chris2
09:33
pbuetow left
09:37
iblechbot left
10:09
Lunchy joined
10:11
alexe left
10:35
alc left
10:37
Chillance joined
10:48
luqui left
10:54
viklund left
10:55
viklund joined
11:12
ruoso joined
11:22
penk left
11:30
alanhaggai_ joined
11:39
braceta joined
11:43
braceta left
11:44
alanhaggai left
11:47
chris2 left
11:52
iblechbot joined
12:11
braceta joined
12:17
alanhaggai_ left
12:18
smtms joined
12:25
FurnaceBoy joined
12:33
pmurias joined
|
|||
pmurias | vixey: if you install Perl::Tidy you'll have the output of -v with indentation | 12:34 | |
making elf_f faster would require playing with Moose internals | 12:36 | ||
bacek_ | perl6: say +map { undef }, <1 3 5 7>; | 12:37 | |
exp_evalbot | kp6: OUTPUT[no method 'APPLY' in Class 'Undef' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345 KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x824be94)', 'APPLY', 'HASH(0x824be94)', 'HASH(0x8e565dc)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm | ||
..line 169 main::DISPATCH('HASH(0x824be94)', 'APPLY', 'H... | |||
..pugs: OUTPUT[4] | |||
..rakudo: OUTPUT[Could not invoke non-existent sub mapcurrent instr.: '_block11' pc 74 (EVAL_11:29)called from Sub 'parrot;PCT::HLLCompiler;eval' pc 783 (src/PCT/HLLCompiler.pir:458)called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1065 (src/PCT/HLLCompiler.pir:587)called from Sub | |||
..'parrot;PCT::HLLCompiler;command_line' pc 1244 (src/PCT/HLLCompile... | |||
..elf: OUTPUT[Undefined subroutine &GLOBAL::map called at (eval 14) line 3. at ./elf_f_faster line 4600] | |||
bacek_ | perl6: say +map { () }, <1 3 5 7>; | ||
exp_evalbot | kp6: OUTPUT[no method 'APPLY' in Class 'Undef' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345 KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x824becc)', 'APPLY', 'HASH(0x8e52470)', 'HASH(0x8e569c4)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm | ||
..line 169 main::DISPATCH('HASH(0x824becc)', 'APPLY', 'H... | |||
..pugs: OUTPUT[0] | |||
..rakudo: OUTPUT[Could not invoke non-existent sub mapcurrent instr.: '_block11' pc 74 (EVAL_11:29)called from Sub 'parrot;PCT::HLLCompiler;eval' pc 783 (src/PCT/HLLCompiler.pir:458)called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1065 (src/PCT/HLLCompiler.pir:587)called from Sub | |||
..'parrot;PCT::HLLCompiler;command_line' pc 1244 (src/PCT/HLLCompile... | |||
..elf: OUTPUT[Undefined subroutine &GLOBAL::map called at (eval 14) line 3. at ./elf_f_faster line 4600] | |||
bacek_ | why it is '4' in first sample and '0' in second? | 12:38 | |
moritz_ | bacek_: undef is one time | ||
s/time/item/ | 12:39 | ||
bacek_: so the list you get is (undef, undef, undef, undef) | |||
which has four items | |||
pmurias | pugs say+map { undef },<1 3 5 7> | ||
pugs: say map { undef },<1 3 5 7> | |||
exp_evalbot | OUTPUT[] | ||
pmurias | pugs: say [map { undef },<1 3 5 7>] | 12:40 | |
exp_evalbot | OUTPUT[ ] | ||
pmurias | pugs: say (map { undef },<1 3 5 7>).join(';') | ||
exp_evalbot | OUTPUT[;;;] | ||
moritz_ | pugs: say perl map { undef}, 1..4 | 12:41 | |
exp_evalbot | OUTPUT[(undef, undef, undef, undef)] | ||
bacek_ | pugs: my @l = (1..2); say +@l; @l.push((),); say +@l; | ||
exp_evalbot | OUTPUT[22] | ||
12:41
araujo left
|
|||
bacek_ | rakudo: my @l = (1..2); say +@l; @l.push((),); say +@l; | 12:41 | |
exp_evalbot | OUTPUT[22] | ||
pmurias | () is an empty list not undef | 12:43 | |
bacek_ | pmurias, rakudo generates .return() for {()}. | 12:44 | |
pmurias | and? | 12:45 | |
bacek_ | pmurias, will it be 'caught' "unless defined res goto done" ? | 12:46 | |
pmurias | i'm not a parrot user/developer | ||
i can try to look at it but i don't know much about parrot/rakudo | 12:47 | ||
12:50
pbuetow joined
|
|||
bacek_ | pmurias, not nessary. I just try to find out correct behaviour for my map implementation. | 12:51 | |
pmurias | i guess the pugs one is correct | ||
moritz_ | indeed | 12:52 | |
pmurias | pugs: (1,3,5,7).map({$_,$_+1}).join(';') | ||
exp_evalbot | RESULT["1;2;3;4;5;6;7;8"] | 12:53 | |
rindolf | pmurias: ah cool. | ||
pmurias: I blogged about something like that. | |||
pmurias | url? ;) | 12:54 | |
rindolf | pmurias: trying to get use.perl.org | ||
12:55
FurnaceBoy left
|
|||
rindolf | pmurias: 209.85.129.104/search?q=cache:i9D0d...=firefox-a | 12:55 | |
lambdabot | tinyurl.com/6lpxkg | ||
bacek_ | $ ../../parrot perl6.pbc | ||
> say (1,3,5,7).map({$_,$_+1}).join(';') | |||
1 2;3 4;5 6;7 8 | |||
lambdabot | Parse error at "{$_,$..." (column 20) | ||
bacek_ | hmm... | ||
why it 'flatten' in pugs? | 12:56 | ||
moritz_ | bacek_: because it should, unless in slice context | 12:57 | |
rindolf: %hash{@array} = (1) x @array; is the cleanest and shortest way in perl | |||
sorry, @hash{@array} = ... | |||
gotta go | 12:58 | ||
13:29
iblechbot left
13:33
alanhaggai joined
13:39
meppel-san joined
13:51
rdice joined
13:57
meppl left
14:09
aindilis joined
14:10
rindolf left
14:28
cmarcelo joined
15:01
alanhaggai left,
alanhaggai joined
15:13
cjfields joined
|
|||
cjfields | pugs: my $str = 'Foo'; my $str2 = $str.split('').join(''); say $str.chars; say $str2.chars; | 15:14 | |
exp_evalbot | OUTPUT[33] | ||
cjfields | rakudo: my $str = 'Foo'; my $str2 = $str.split('').join(''); say $str.chars; say $str2.chars; | ||
exp_evalbot | OUTPUT[3Method 'chars' not found for invocant of class 'String'current instr.: '_block11' pc 121 (EVAL_10:43) | ||
cjfields | perl6: my $str = 'Foo'; my $str2 = $str.split('').join(''); say $str.chars; say $str2.chars; | 15:15 | |
exp_evalbot | kp6: OUTPUT[syntax error at position 42, line 1 column 42:my $str = 'Foo'; my $str2 = $str.split('').join(''); say $str.chars; say $str2.chars ^ HERE] | ||
..pugs: OUTPUT[33] | |||
..rakudo: OUTPUT[3Method 'chars' not found for invocant of class 'String'current instr.: '_block11' pc 121 (EVAL_10:43)called from Sub 'parrot;PCT::HLLCompiler;eval' pc 783 (src/PCT/HLLCompiler.pir:458)called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1065 | |||
..(src/PCT/HLLCompiler.pir:587)called from Sub 'parrot;PCT::HLLCompiler;command_line' pc 124... | |||
..elf: OUTPUT[Can't locate object method "chars" via package "Foo" (perhaps you forgot to load "Foo"?) at (eval 17) line 5. at ./elf_f_faster line 4600] | |||
cjfields | perl6: my $str = 'Foo'; my @chars = $str.split(''); my $str2 = @chars.join(''); say $str.chars; say $str2.chars; | 15:17 | |
exp_evalbot | kp6: OUTPUT[no method 'split' in Class 'Str' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345 KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x8e527d8)', 'split', 'HASH(0x8e52898)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169 | ||
..main::DISPATCH('HASH(0x8e527d8)', 'split', 'HASH(0x8e52898)') call... | |||
..pugs: OUTPUT[33] | |||
..rakudo: OUTPUT[3Method 'chars' not found for invocant of class 'String'current instr.: '_block11' pc 136 (EVAL_10:50)called from Sub 'parrot;PCT::HLLCompiler;eval' pc 783 (src/PCT/HLLCompiler.pir:458)called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1065 | |||
..(src/PCT/HLLCompiler.pir:587)called from Sub 'parrot;PCT::HLLCompiler;command_line' pc 124... | |||
..elf: OUTPUT[Can't locate object method "chars" via package "Foo" (perhaps you forgot to load "Foo"?) at (eval 17) line 6. at ./elf_f_faster line 4600] | |||
15:18
cjfields left
15:20
exp_evalbot left
|
|||
pugs_svnbot | r20539 | moritz++ | [evalbot] filter rakudo's stack traces also in 'perl6:' mode | 15:20 | |
15:20
exp_evalbot joined
|
|||
moritz_ | perl6: () | 15:21 | |
exp_evalbot | kp6: RESULT[( )] | ||
..pugs: RESULT[()] | |||
..rakudo: RESULT[Null PMC access in find_method()current instr.: '_block11' pc 38 (EVAL_11:18) | |||
..elf: RESULT[Undef.new(!!!)] | |||
15:26
Ingmar left
15:28
elmex joined
15:32
FurnaceBoy joined
15:33
Psyche^ joined
15:42
justatheory joined
15:44
Patterner left,
Psyche^ is now known as Patterner
15:51
justatheory left
15:56
iblechbot joined
16:01
alanhaggai left
16:38
alanhaggai joined
16:46
lisppaste3 left
16:51
cmarcelo left
16:56
Psyche^ joined
16:58
ludan joined
17:01
lisppaste3 joined
17:05
ludan left
17:07
Patterner left,
Psyche^ is now known as Patterner
17:10
kanru joined
17:31
meteorjay joined
18:07
braceta_ joined,
armagad joined
18:17
braceta__ joined
|
|||
rakudo_svn | r27816 | pmichaud++ | [rakudo]: | 18:18 | |
r27816 | pmichaud++ | * Fix codingstds and metadata on rakudo files. | |||
18:18
ruoso left
|
|||
rakudo_svn | r27818 | pmichaud++ | [rakudo]: | 18:19 | |
r27818 | pmichaud++ | * Improve the mapping of Parrot's built-in types to Rakudo types. | |||
r27818 | pmichaud++ | * Resolves RT#54796. | |||
18:24
braceta left
18:26
braceta_ left
|
|||
pmichaud | rakudo: sub foo(:$w=4){say $w};foo('w'=>3);foo(w=>3); | 18:28 | |
exp_evalbot | OUTPUT[33] | ||
pmichaud | evalbot has an older version of rakudo. | 18:29 | |
Auzon | pmichaud: It should be rebuilt every 5 minutes | 18:32 | |
and Parrot should be built hourly | |||
pmichaud | just a sec. | ||
18:32
armagad left
|
|||
pmichaud | where are #perl6 logs kept? | 18:32 | |
or, let's put it this way. | 18:33 | ||
rakudo: sub foo(:$w=4){say $w};foo('w'=>3);foo(w=>3); | |||
exp_evalbot | OUTPUT[33] | ||
pmichaud | but my version of rakudo gives | ||
$ ./parrot perl6.pbc | |||
sub foo(:$w=4){say $w};foo('w'=>3);foo(w=>3); | |||
w 3 | |||
3 | |||
ergo, the evalbot version of rakudo is out of date. | |||
Auzon | I'll look into it. | 18:34 | |
pmichaud | but most of diakopter's rt tickets were using an outdated version of rakudo. | ||
Auzon | Is there a way to check parrot's version? | ||
pmichaud | (I'm not saying rakudo's output is correct in my case -- it's not -- I'm just saying that using evalbot to report bugs isn't very helpful.) | ||
not down to a svn revision level, now. | 18:35 | ||
s/now/no. | |||
i.e., this is parrot 0.6.2 | |||
Auzon | oh. | ||
pmichaud | where are the #perl6 logs? | 18:36 | |
Auzon | irc.pugscode.org/ | ||
lambdabot | Title: IRC log for #perl6, 2008-05-26 | ||
pmichaud | thanks. | ||
Auzon | Try your command again, now. I accidentally broke Rakudo's updater for evalbot, and it should be fixed now | 18:37 | |
pmichaud | rakudo: sub foo(:$w=4){say $w};foo('w'=>3);foo(w=>3); | ||
exp_evalbot | OUTPUT[w 33] | ||
pmichaud | better. | ||
but I'm still not happy that evalbot was being used to report bugs. | 18:38 | ||
Auzon | Sorry about evalbot being out of date. | ||
pmichaud | at least not until we're sure that it's keeping up-to-date with trunk. | ||
Auzon | I'll keep an eye on it. | 18:39 | |
pmurias | evalbot should mention the rakudo revision used | 18:43 | |
pmichaud | that would be very nice. | ||
I'd be more willing to accept rakudobugs from eval if they included the correct svn revision number. | |||
pugs_svnbot | r20540 | pmurias++ | [elf] added a TODO section to README | ||
pmurias | pmichaud: how does one report bugs from the evalbot? | 18:46 | |
pmichaud | ...how do you mean? | 18:47 | |
Auzon | Having the svn revision visible wouldn't've caught this problem, but I can see about patching it | ||
pmichaud | it might have caught the problem. | ||
but even if it didn't, it would've saved me time trying to figure out why evalbot's version was so out of whack from stuff I had done the day before. | 18:48 | ||
pmurias | pmichaud: using evalbot to report bugs meant using evalbot to find the bug? | ||
18:48
araujo joined
|
|||
Auzon | svn was being updated correctly, but the directory wasn't being built after one of my changes. :-/ | 18:48 | |
pmichaud | pmurias: correct. If I can be guaranteed that evalbot is up-to-date w.r.t. rakudo head, then it's okay. | 18:49 | |
but since evalbot appears to have been using an out-of-date version of rakudo, we ended up with 4 or 5 "false" RT tickets in rakudo's queue. | |||
it would've been nice for someone to at least gotten a copy of rakudo trunk and verified it before reporting all of these things as "bugs" | 18:50 | ||
pugs: sub foo(:$w=4){say $w};foo('w'=>3);foo(w=>3); | 18:54 | ||
exp_evalbot | OUTPUT[43] | ||
pmurias | is there an accepted way for dumping Match objects? | 18:55 | |
pmichaud | not that I'm aware of. I've been using a slightly modified form of Data::Dumper | ||
pmurias | s/dumping/viewing/ | ||
19:03
mncharity joined
|
|||
pmurias | mncharity: hi | 19:11 | |
mncharity | vixey: re 'my sub f(){}', it gets broken in the FromAST to IR conversion. elf started out "just enough p6 coverage to be able to happily write in p6". That's now mission creep'ed to "pass t/", in an effort to attract developers. but coverage of all the possible AST trees has never been systematically expanded, and is thus spotty. | 19:12 | |
vixey | ah ok, thanks | ||
mncharity | for writing p6, rather than passing t/, you can use my $f = sub(){}; | ||
vixey | I was wondering how to implement perl 6 grammars in perl 6 | ||
mncharity | that one is easy... | 19:13 | |
"with great difficulty" | |||
;) | |||
vixey | haha | ||
I read STD.pm and some docs .. it does seem tricky | |||
there's currently no p6 program that will parse p6 and let you play with the AST? | 19:14 | ||
mncharity | no | ||
vixey | ok | ||
mncharity | the best hope of that near term seems to be a translation of STD_red into p6. | ||
which should be straightforward, but given the size of STD (600? rules), is a bit of effort. | 19:15 | ||
vixey | I wonder if compling STD.pm into (Perl 6 - grammars) is straght forward? | ||
mncharity | no | ||
pmurias | vixey: what do you mean by playing with the AST? | 19:16 | |
mncharity | STD.pm is... a rather flakey work in progress. STD_red only works by variously extending it. | ||
vixey | pmurias: well print it out as perl5, lisp.. and so on | ||
or anything | |||
mncharity | rakudo is coming at it from the other side, starting with a real set of rules, and slowly moving towards STD coverage. | ||
and pugs has the best, albeit not actively developed, coverage of all. but is like STD_red in being a non-rules hack. | 19:17 | ||
pmurias | vixey: by AST you mean the match tree | ||
or the IRx1 | |||
? | |||
mncharity | re non-rules hack, though one which was designed to be converted at some point. just never happened. | ||
vixey | I guess the match tree | 19:18 | |
19:18
wknight8111 joined
|
|||
vixey | why is implementing rules hard? | 19:18 | |
pmichaud | ever implemented a regex engine? ;-) | 19:19 | |
mncharity | there's a scraper for the rakudo Match tree dump format in elf_on_rakudo. Unfortunately the Match's aren't (weren't annotated with the rule which generated them, so actually doing anything with the tree is problematic). | ||
vixey | pmichaud: well never with efficiency in mind | ||
mncharity | s/(weren't/(weren't)/ | ||
pmurias | pmichaud: you did it in pir, so you had an extra challenge ;) | 19:21 | |
pmichaud | pir was easier than C. | ||
which is why I did it in PIR. | |||
mncharity | I started to move the p5 yet_another_regex_engine into elf, more to provide regex support than to help with STD, but it turned out to not run on 32-bit machines (!:( ), so it got backburnered. | ||
pmurias | pmichaud: did you do much assembler before? | 19:22 | |
pmichaud | yes. But PIR really isn't an assembler. | ||
it's an assembly language only if you ignore the fact that it supports objects, classes, method calls, named params, positional params, slurpy params, etc. | 19:23 | ||
pmurias | it lacks proper structural programming support | ||
pmichaud | just because PIR doesn't have structured programming constructs doesn't mean that one can't write structured programs with it :-) | 19:24 | |
mncharity | misc/pX/Common/yet_another_regex_engine/ misc/elf/elf_e_src/EmitRegexYare.pm | ||
pmurias | mncharity: it might make sense to do a regex engine which does things the way gimme5 does | 19:29 | |
vixey | I look at the grammar and see Prolog | 19:30 | |
: is ! .. etc | |||
pmurias | vixey: on hard thing about grammer is the longest token matching which forces you to write a DFA-with-frills to do efficiently | 19:33 | |
vixey | where is longest token matching described? | 19:34 | |
pmurias | S05 | 19:36 | |
mncharity | hi pmurias | 19:40 | |
pugs_svnbot | r20541 | putter++ | [elf] Fleshed out <scoped> AST->IR. 'my sub f(){}' now reaches IR. vixey++. | ||
r20541 | putter++ | undef.perl is now "undef". -e 'say $?PACKAGE;' now "Main". Added (commented out) assorted speculative IR node definitions for regex. | |||
mncharity | re gimme5, my understanding is gimme5 is still a research project in progress. with hand spot checking rather than any test suite. and thus not ready for implementation in p6. I could be wrong though. | 19:42 | |
re see Prolog, there is *also* a combined p6/p5 regex/regexp engine written in prolog. misc/Grammars/snapshot_of_prolog_engine.pl . but that's unrelated abandonware. | 19:44 | ||
;) | |||
hi pmurias | 19:45 | ||
pmurias | rehi ;) | ||
would better match dumping be usefull? | 19:46 | ||
in a clearer and terser format? | 19:47 | ||
(that sounded like really lame advertising) ;) | 19:49 | ||
mncharity | lol | ||
perhaps... could add default handling to EmitFaster instead... P) | 19:50 | ||
* :) | 19:51 | ||
vixey: the main difference between elf_f_faster and elf_f (soon to be renamed elf_f_somethingorother) is object attributes don't work yet in faster, so, eg, has @.a; won't actually be an empty array. | 19:52 | ||
Auzon | Is there a general way to check the traits of something? (variables, packages, modules, subroutines, etc) | ||
mncharity | ooo, good question. dunno. | ||
Auzon | The specs say a lot about setting them, but I don't see anything at all about checking them | 19:53 | |
perl6: my $foo is bar; | 19:54 | ||
exp_evalbot | kp6: OUTPUT[<is> not implemented at compiled/perl5-kp6-mp6/lib/KindaPerl6/Grammar/Term.pm line 1818, <> line 1.] | ||
..pugs: RESULT[\undef] | |||
..rakudo: OUTPUT[PAST::Compiler can't compile node of type Perl6::Grammarcurrent instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103) | |||
..elf: RESULT[undef] | |||
Auzon | pugs: my $foo is bar; say $foo.is('bar'); | ||
exp_evalbot | OUTPUT[*** No such method in class Scalar: "&is" at /tmp/RoEJqiUji5 line 1, column 21-35] | ||
pmurias | mncharity: i'll add the default handling first than (to stop people being misguided in using elf_f_slower) ;) | ||
Auzon | pugs: my $foo is bar; say $foo.IS('bar'); | 19:55 | |
exp_evalbot | OUTPUT[*** No such method in class Scalar: "&IS" at /tmp/wwq3Yn8qtJ line 1, column 21-35] | ||
Auzon | pugs: my $foo is bar; say $foo.ISA('bar'); | ||
exp_evalbot | OUTPUT[*** No such method in class Scalar: "&ISA" at /tmp/OCIti596Uc line 1, column 21-36] | ||
pmurias | mncharity: why does HASH inherit from Hash? | ||
mncharity | LOL | 19:56 | |
re _slower | |||
re Hash, | |||
elf: class Hash { method zog(){42} }; say {}.zog; | 19:57 | ||
pmurias | s/in/into | ||
exp_evalbot | OUTPUT[Parse error in: /tmp/BlTjajZZQrpanic at line 1 column 39 (pos 39): Statement not terminated properlyWHERE: h { method zog(){42} }; say {}.zog;WHERE: /\<-- HERE STD_red/prelude.rb:98:in `panic' STD_red/std.rb:355:in `eat_terminator' STD_red/std.rb:269:in | ||
..`block in statementlist' STD_red/prelude.rb:15... | |||
mncharity | drat | ||
Auzon | pugs: my $foo is bar; say $foo.TRAITS; # This would be nice. | ||
exp_evalbot | OUTPUT[*** No such method in class Scalar: "&TRAITS" at /tmp/Rqt69pEQVU line 1, column 21-32] | ||
mncharity | elf: class Hash { method zog(){42} }; say ({}).zog; | ||
exp_evalbot | OUTPUT[42] | ||
pmurias | why do we use HASH then? | ||
mncharity | something is broken about STD_red's parsing of method call following close brace. | ||
pmurias | instead of telling autobox to use Hash? | 19:58 | |
19:59
rindolf joined
|
|||
mncharity | because HASH is just an unboxed raw hash. Hash is a regular Moose-or-p5 object. it's not yet clear how to handle the autoboxed forms once we start doing things which manipulate "extra" info attached to objects. Perhaps the "inside out object" idiom. | 19:59 | |
rindolf | Hi all. | ||
vixey | hey rindolf | 20:00 | |
rindolf | Hi vixey | ||
mncharity | Hash.new, actually, any X.new other than Pair.new, is as yet unimplemented. | ||
err, for X ne HASH, ARRAY, etc. | |||
currently Hash, Array, etc, are just places to dump methods. | 20:01 | ||
there's something for the todo list... go through S29/whatever dumping in methods. | |||
Hash will probably get a has %.primitive; or some such to contain the actual data. | 20:02 | ||
pmurias | perl6: my @a = 1;@a[1] = 2; | 20:06 | |
exp_evalbot | kp6: RESULT[2] | ||
..pugs: RESULT[\2] | |||
..rakudo: OUTPUT[get_pmc_keyed() not implemented in class 'Integer'current instr.: '_block11' pc 49 (EVAL_10:27) | |||
..elf: OUTPUT[Can't use string ("1") as an ARRAY ref while "strict refs" in use at (eval 14) line 4. at ./elf_f_faster line 4616] | |||
Auzon | pmurias: You'd probably get better results if you explicitly generate output. | ||
mncharity | another item for the todo list... understand how p6 Lists are supposed to work, and make elf do something closer to the right thing. | 20:07 | |
pmurias | Auzon: i was trying to generate errors ;) | 20:08 | |
Auzon | Ah. | ||
pmurias | perl6: my @a =1;say @a[1]; | ||
exp_evalbot | kp6: OUTPUT[] | ||
..pugs: OUTPUT[] | |||
..rakudo: OUTPUT[get_pmc_keyed() not implemented in class 'Integer'current instr.: '_block11' pc 46 (EVAL_10:26) | |||
..elf: OUTPUT[Can't use string ("1") as an ARRAY ref while "strict refs" in use at (eval 14) line 4. at ./elf_f_faster line 4616] | |||
20:10
rindolf left
|
|||
cognominal_ | perl6: my @a; say @.WHAT | 20:12 | |
pugs_svnbot | r20542 | putter++ | [STD_red] Improved <scoped> tree. This change was intended to be part of r20541. | ||
20:12
exp_evalbot left,
exp_evalbot joined
|
|||
pmurias | mncharity: do you have a test for the defaults? | 20:12 | |
cognominal_ | perl6: my @a; say @.WHAT | ||
20:12
exp_evalbot left,
exp_evalbot joined
|
|||
cognominal_ | oops, I am killing the bot | 20:13 | |
Auzon | It seems so ;) | ||
cognominal_ | pugs: my @a; say @a.WHAT | ||
exp_evalbot | OUTPUT[Array] | ||
Auzon | Though, I wonder which implementation is killing it | ||
cognominal_ | I want a exemple to paste on a slide but the bots don't want to cooperate | 20:14 | |
perl6: say "Hi!" | |||
exp_evalbot | kp6: OUTPUT[Hi!] | ||
..pugs: OUTPUT[Hi!] | |||
..rakudo: OUTPUT[Hi!] | |||
..elf: OUTPUT[Hi!] | |||
cognominal_ | what is elf? | ||
mncharity | pmurias: t/ ? ;) no. | ||
Auzon | elf is Perl6 written in Perl6 running on Perl5. mncharity is the primary programmer on it. It's being fairly rapidly developed, and if I recall correctly, it's designed to provide enough of Perl6 to be useful in writing a Perl6 compiler. | 20:17 | |
spinclad | elf_f: elf_f_mooser :) | ||
(mooser: one who catches meese) | 20:18 | ||
mncharity | lol :) | 20:21 | |
re elf, pmurias has done a bunch of work on it too. | 20:22 | ||
pmurias | not much (yet) ;) | 20:25 | |
mncharity | elf is a p6 implementation with a STD-based external parser written in ruby, and a bootstrapped p6 to p5 compiler written in p6. Currently parsing ~70% of t/, and passing ~8% of files and ~4% of tests. Though perhaps more usable than that would seem to suggest. ~p5 native speed. | 20:26 | |
Auzon: which was the test file you thought might start passing once 'package Roo;' was supported? | 20:27 | ||
Auzon | mncharity: t/spec/S11/module_file.t for "module Foo;". | 20:28 | |
errr. S11-modules maybe? I'll check | |||
20:28
alanhaggai left
|
|||
Auzon | t/spec/S11-modules/module-file.t is for "module Foo;" | 20:29 | |
mncharity | ah, ok. thanks :) | ||
Auzon | I haven't touched any "package Foo;" stuff yet, but I'll let you know when I see some | ||
20:31
chris2 joined
|
|||
moritz_ | re | 20:33 | |
cognominal_ | STD? | 20:37 | |
this one I know, but I am after the acronym | |||
pmurias | STD means standard | 20:38 | |
moritz_ | not "sexually transmitted decease" | ||
;-) | |||
mncharity | re STD, src/perl6/STD.pm, TimToady's p6 grammar. | 20:42 | |
pmurias | mncharity: is it ok if new in faster only supports the Foo.new('key','value'), and not Foo.new({key=>'value'})? | ||
mncharity | whatever is easiest. we're officially not supporting named args yet, either for internal or external use. | 20:44 | |
even though, of course, the Moose-based elf necessarily uses them slightly. | |||
20:45
perl7 joined
|
|||
fullermd | moritz_: Hey there. Finally got a little time to read that thing more carefully. | 20:45 | |
moritz_ | fullermd: ok, any comments? | 20:46 | |
20:46
meppel-san left
|
|||
moritz_ | most of all: does it make sense? ;-) | 20:46 | |
fullermd | moritz_: I understand it a bit better, I think. It all seems to make sense. | ||
moritz_ | I have to admit I'm not too sure of the stuff that I wrote in this one | 20:47 | |
fullermd | The proto regex section took a run or two to get it figured out. The multiple 'sym's on the lines took a little puzzling to unravel. Maybe it could be clearer earlier what each means/applies to? | ||
Also ran across another typo or two at the end. | |||
"shouldn't have to now all this stuff" | |||
mncharity | I've been puzzling over how to add named args without completely trashing our performance. I'm thinking something like 3 apis, normal pure positionals, a two arg marker+Capture full sig/capture support, and something in between to do named but not horrendous performance. perhaps marker,positional args...,hash-o-named-args. | ||
fullermd | moritz_: Also, factorial would be [*], not [+] :) | 20:48 | |
20:48
meppel-san joined
|
|||
moritz_ | good catch, thanks | 20:48 | |
fullermd | moritz_: Some places sprinkled through it, the wording seems a little odd as a native English speaker, but it was always perfectly understandable. | 20:49 | |
moritz_ | fullermd: well, I'm not a native English speaker, but I try my best... I'll got through it again when I'm more awake than now, maybe I fix a bit | 20:50 | |
fullermd | moritz_: A little blurb on "now that I've defined this grammar {}, how do I use it in my program" would be a nice finale. Maybe showing defining and using that factorial. | ||
(chosen because it's small and obvious) | 20:51 | ||
moritz_ | fullermd: ok | ||
fullermd | But aside from that nitpicking, it's a good read, and makes good sense :) | 20:52 | |
diakopter | Auzon or moritz_ or anyone: would someone like to add the current-built svn revision to each implementation's output? perhaps a wrapper calling script (custom for each implementation) that prepends the revision number to the output? Also I guess the wrapper calling script could catch failures? | ||
20:52
Limbic_Region joined
|
|||
diakopter | (the old pugs_svnbot had the revision number in its nick) | 20:54 | |
20:55
dolmen joined
|
|||
moritz_ | kp6: say "whoami" | 20:55 | |
exp_evalbot | r20542: OUTPUT[whoami] | ||
diakopter | oh | ||
mncharity | perl6: say "whoami" | 20:56 | |
moritz_ | the easiest solution would be for each executable to have an option that prints its revision | ||
exp_evalbot | kp6: OUTPUT[whoami] | ||
..pugs: OUTPUT[whoami] | |||
..rakudo: OUTPUT[whoami] | |||
..elf: OUTPUT[whoami] | |||
mncharity | elf: say "whoami" | ||
exp_evalbot | OUTPUT[whoami] | ||
moritz_ | needs enhancements, though | ||
mncharity | rakudo: say "whoami" | ||
exp_evalbot | OUTPUT[whoami] | ||
pmichaud | it's not always easy for the executables to catch the revision number | ||
moritz_ | I'll try to find tuits tomorrow | 20:57 | |
diakopter | rakudo: die; #just testing | ||
exp_evalbot | OUTPUT[Diedcurrent instr.: 'die' pc 7505 (src/gen_builtins.pir:5124) | ||
pmichaud | for example, how would I capture the revision number in source? | ||
dolmen | rakudo.org is quite slow... | ||
slashdoted? | |||
diakopter | perhaps the svnup/rebuild script could generate a wrapper script for each implementation that has the revision-number-as-built | 20:58 | |
(so it doesn't have to look it up each invocation) | 20:59 | ||
rakudo: exit 3; #testing again | 21:00 | ||
exp_evalbot | No output (you need to produce output to STDOUT) | ||
Auzon | Could we have the Makefile do this magic? | ||
fullermd has always just done it with a keyword in a source file. | |||
pmichaud | We can't assume that everyone is building rakudo from an svn checkout. | 21:01 | |
dolmen | rakudo: say (1..10) + 3 | 21:02 | |
exp_evalbot | OUTPUT[MMD function __add not found for types (97, 94)current instr.: 'infix:+' pc 9334 (src/gen_builtins.pir:6496) | ||
Auzon | Maybe just include it if it is being built from SVN? | ||
dolmen | rakudo: say (1..10) + (1..5) | 21:03 | |
exp_evalbot | OUTPUT[MMD function __add not found for types (97, 97)current instr.: 'infix:+' pc 9334 (src/gen_builtins.pir:6496) | ||
dolmen | rakudo: say (1) + (1) | ||
exp_evalbot | OUTPUT[2] | ||
pmichaud | looks like parrot's "add" doesn't know how to numify lists. | ||
fullermd | If you stuck it in a keyword, it would just be expanded or not (though I dunno how you'd get "not" without trying; it has to come out of SVN somewhere along the path) | ||
dolmen | rakudo: say (1..2) + (1..2) | ||
pmichaud | iiuc, keywords are the svn revision number of the file | ||
exp_evalbot | OUTPUT[MMD function __add not found for types (97, 97)current instr.: 'infix:+' pc 9334 (src/gen_builtins.pir:6496) | ||
dolmen | rakudo: say (1..2) | 21:04 | |
exp_evalbot | OUTPUT[12] | ||
Auzon | SVN doesn't support such keywords that I'm aware of. | ||
fullermd | It is? I thought it had the tree number. | ||
fullermd continues to fail to regret not using svn... | |||
dolmen | rakudo: say (1|2) | ||
Auzon | Maybe with a checkout script | ||
exp_evalbot | OUTPUT[get_string() not implemented in class 'Junction'current instr.: 'print' pc 7719 (src/gen_builtins.pir:5337) | ||
Auzon | What do you use, fullermd? | ||
pmichaud | (tree number) wouldn't that mean that every "svn up" would have to modify the files to update the number, then? | ||
fullermd | Oh, I jumped from CVS to bzr. But that's waaay ---->OT. | 21:05 | |
diakopter | pmichaud: yesterday TimToady said that foo(,,) sends at least two empty positional arguments... I don't think that's in the spec though | ||
fullermd | Well, whatever files you had it set in, yah. | ||
diakopter | (currently rakudo combines multiple commas to one) | ||
pmichaud | diakopter: yes, I saw that. I'll have to figure out how to add that to PGE's operator precedence parser. | ||
that's likely to be pretty low on my list right now, though. :-) | 21:06 | ||
Auzon | pugs: say $?PUGS_VERSION | 21:10 | |
exp_evalbot | OUTPUT[Perl6 User's Golfing System, version 6.2.13, October 17, 2006 (r18093)] | ||
pugs_svnbot | r20543 | putter++ | [elf] Support 'package Foo;'. | ||
21:11
iblechbot left
|
|||
Auzon | perl6: say $*PERLVER | 21:11 | |
exp_evalbot | kp6: OUTPUT[] | ||
..pugs: OUTPUT[] | |||
..rakudo: OUTPUT[] | |||
..elf: OUTPUT[Can't call method "Str" on an undefined value at ./elf_f_faster line 625. at ./elf_f_faster line 4454] | |||
Auzon | perl6: say $?PERLVER | ||
exp_evalbot | kp6: OUTPUT[syntax error at position 4, line 1 column 4:say $?PERLVE ^ HERE] | ||
..pugs: OUTPUT[*** Undeclared variable: ("$?PERLVER",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0xb689bdc0>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = <ref:0xb68a5a88>}),("@_",PELexical {pe_type = (mkType "Array"), pe_proto = | |||
..<Array:0xb689b25c>, pe_flags = MkEntryFlags {ef_isContext = False}, pe_st... | |||
..rakudo: OUTPUT[Scope not found for PAST::Var '$PERLVER'current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103) | |||
..elf: OUTPUT[Global symbol "$PERLVER" requires explicit package name at (eval 14) line 3. at ./elf_f_faster line 4454] | |||
21:12
rdice left
|
|||
Auzon | Wow. I thought at least one implementation would handle that. | 21:12 | |
mncharity | pugs predated it. | ||
Auzon | perl6: say $?FILE | 21:14 | |
exp_evalbot | kp6: OUTPUT[syntax error at position 4, line 1 column 4:say $?FIL ^ HERE] | ||
..pugs: OUTPUT[/tmp/HLVgYtRirD] | |||
..rakudo: OUTPUT[Scope not found for PAST::Var '$FILE'current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103) | |||
..elf: OUTPUT[/tmp/rbUdtldN56] | |||
21:14
FurnaceBoy left
|
|||
moritz_ | pugs++ elf++ | 21:15 | |
21:15
ruoso joined
|
|||
Auzon | Indeed. It's tested some, as well. | 21:15 | |
diakopter | perl6: die "dead"; | 21:16 | |
21:16
exp_evalbot left
|
|||
diakopter | oops :/ | 21:17 | |
21:17
exp_evalbot joined
|
|||
dolmen | efficient ;) | 21:17 | |
perl6: die "alive"; | |||
21:17
exp_evalbot left
21:18
exp_evalbot joined
|
|||
diakopter | perl6: exit 4; | 21:18 | |
exp_evalbot | kp6: No output (you need to produce output to STDOUT) | ||
..pugs: OUTPUT[*** Unsafe function 'exit' called under safe mode at /tmp/NPZRV6VHa2 line 1, column 1-7] | |||
..rakudo: No output (you need to produce output to STDOUT) | |||
..elf: No output (you need to produce output to STDOUT) | |||
Auzon | That's not supposed to be possible... | ||
diakopter | perl6: doing the impossible. | 21:19 | |
exp_evalbot | kp6: OUTPUT[no method 'APPLY' in Class 'Undef' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345 KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x824bddc)', 'APPLY') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169 | ||
..main::DISPATCH('HASH(0x824bddc)', 'APPLY') called at compiled/perl5-kp6-mp6/lib/Kin... | |||
..pugs: OUTPUT[***  Unexpected end of input expecting ".", "\187", ">>", "=", "^", operator name, qualified identifier, variable name, "...", "--", "++", "i", array subscript, hash subscript or code subscript at /tmp/9uU6vgFs0a line 1, column 22] | |||
..rakudo: OUTPUT[Statement not terminated properly at line 1, near "."current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82) | |||
Auzon | Heh. | ||
exp_evalbot | ..elf: OUTPUT[Parse error in: /tmp/UCrb2Mg01qpanic at line 1 column 0 (pos 0): Can't understand next input--giving upWHERE: doing the impossible.WHERE:/\<-- HERE STD_red/prelude.rb:98:in `panic' STD_red/std.rb:76:in `scan_unitstopper' STD_red/std.rb:224:in `comp_unit' | ||
..STD_red/std.rb:210:in `_UNIT' ./../STD_red/STD_red_run:108:in `main' .... | |||
Auzon | No Poetry Mode? :-/ | 21:20 | |
21:25
exp_evalbot left
|
|||
pugs_svnbot | r20544 | putter++ | [elf] Added $?PERLVER. Auzon++ | 21:25 | |
21:25
exp_evalbot joined
21:26
wknight8111 left,
wknight8111_ joined
|
|||
diakopter | perl6: 1; say $_; | 21:27 | |
exp_evalbot | kp6: OUTPUT[] | ||
..pugs: OUTPUT[] | |||
..rakudo: OUTPUT[too few arguments passed (0) - 1 params expectedcurrent instr.: '_block11' pc 0 (EVAL_10:3) | |||
..elf: OUTPUT[Can't call method "Str" on an undefined value at ./elf_f_faster line 625. at ./elf_f_faster line 4456] | |||
diakopter | perl6: use v6; say 0.WHAT; | 21:28 | |
exp_evalbot | kp6: OUTPUT[Int] | ||
..pugs: OUTPUT[Int] | |||
..rakudo: OUTPUT[Int] | |||
..elf: OUTPUT[Int] | |||
Auzon | We're trying to reorganize stuff from t/* to t/spec/*, correct? | ||
diakopter | affirmative | 21:29 | |
Auzon | I propose that I move t/magicals to t/spec/S02-magicals, and check the tests that rely on the filename. | ||
moritz_ | Auzon: yes | ||
Auzon | and then I want to add tests checking the existence of $?PERLVER and friends | 21:30 | |
spinclad | mncharity: perhaps for middle api, recognized named args (same name in arg and param list, no slurpies) could be mapped to underlying positionals? assumes signature available at call site (how often not?)... should work well for any known underlayer, p5, parrot, cl, ... | ||
dolmen is building rakudo: | |||
./perl6scalar.c: Dans la fonction «Parrot_Perl6Scalar_class_init» : | |||
./perl6scalar.c:565: attention : initialization from incompatible pointer type | |||
./perl6scalar.c:728: attention : initialization from incompatible pointer type | |||
moritz_ | Auzon: but first check that the tests are still in sync with the synopsis | ||
diakopter | elf: system('pwd'); | 21:31 | |
Auzon | OK, yeah. | ||
exp_evalbot | OUTPUT[/home/evalenv/pugs/misc/elf] | ||
spinclad | perl6: system('pwd'); | ||
exp_evalbot | kp6: OUTPUT[no method 'APPLY' in Class 'Undef' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345 KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x824bd1c)', 'APPLY', 'HASH(0x8e4db7c)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169 | ||
..main::DISPATCH('HASH(0x824bd1c)', 'APPLY', 'HASH(0x8e4db7c)') ca... | |||
..pugs: OUTPUT[*** Unsafe function 'system' called under safe mode at /tmp/GHVfjtmYJu line 1, column 1-14] | |||
..rakudo: OUTPUT[Could not invoke non-existent sub systemcurrent instr.: '_block11' pc 28 (EVAL_7:17) | |||
..elf: OUTPUT[/home/evalenv/pugs/misc/elf] | |||
moritz_ | elf: print system('uptime') | 21:32 | |
exp_evalbot | OUTPUT[256] | ||
pugs_svnbot | r20545 | putter++ | [elf] Add emitter classname to $?PERLVER. | ||
Auzon | System gives the output and the return status? | 21:34 | |
mncharity | elf: $?PERLVER | 21:35 | |
exp_evalbot | RESULT['elf / perl 5.8.8'] | ||
pmichaud | isn't it "run" instead of "system" now? | ||
moritz_ | yes | ||
21:36
exp_evalbot left,
exp_evalbot joined
|
|||
mncharity | spinclad: re 'signature available at call site (how often not?)', I was aiming for something which didn't require whole program analysis, which elf isn't currently set up for (I keep on deferring it). | 21:37 | |
21:37
exp_evalbot left
|
|||
mncharity | but interesting idea | 21:37 | |
21:37
exp_evalbot joined
|
|||
mncharity | spec pointer on run()? | 21:37 | |
moritz_ | S29 | ||
Auzon | mncharity: You might want $?PERLVAR to mention elf_f/elf_f_faster, but I'm not certain how you'd implement that easily | ||
mncharity | elf: $?PERLVER | 21:38 | |
exp_evalbot | RESULT['elf / perl 5.8.8 / EmitFasterP5'] | ||
dolmen | perl6: say 'abc' x 3 | ||
exp_evalbot | kp6: OUTPUT[abcabcabc] | ||
..pugs: OUTPUT[abcabcabc] | |||
..rakudo: OUTPUT[abcabcabc] | |||
..elf: OUTPUT[abcabcabc] | |||
dolmen | perl6: say 'abc' xx 3 | ||
21:38
exp_evalbot left
|
|||
mncharity | :) | 21:38 | |
Auzon | Cool. | ||
21:38
exp_evalbot joined
|
|||
moritz_ | istr that xx is reserved for lists | 21:38 | |
Auzon | Which implementation is killing evalbot? | ||
pugs: say 'abc' xx 3 | 21:39 | ||
exp_evalbot | OUTPUT[abcabcabc] | ||
Auzon | rakudo: say 'abc' xx 3 | ||
exp_evalbot | OUTPUT[Could not invoke non-existent sub xcurrent instr.: '_block11' pc 34 (EVAL_11:19) | ||
mncharity | also have to add a runtime variant. compiled to and running on javascript, it would have the same $?PERLVER. | ||
Auzon | kp6: say 'abc' xx 3 | ||
exp_evalbot | r20545: OUTPUT[no method 'APPLY' in Class 'Undef' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345 KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x824be0c)', 'APPLY', 'HASH(0x8e4de68)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169 | ||
..main::DISPATCH('HASH(0x824be0c)', 'APPLY', 'HASH(0x8e4de68)') ca... | |||
Auzon | elf: say 'abc' xx 3 | ||
21:39
exp_evalbot left
|
|||
Auzon | sorry about the spam... | 21:39 | |
21:39
exp_evalbot joined
|
|||
moritz_ | but why the f*ck does it segfault so often? | 21:39 | |
dolmen | in rakudo op.pir I see that arg0 to infix:++ is a string arg1 is an int | 21:40 | |
pmichaud | ...infix:++ ? | ||
mncharity | hmm, can "evalbot" be run as a command line program? that could be nifty. | ||
dolmen | infix:xx | ||
:) | |||
moritz_ | mncharity: that shouldn't be too much work | 21:41 | |
Auzon | mncharity: re mentioning "Javascript" or similar in $?PERLVER, I think you'd want to change $*OS for that. | ||
ok. brb & | 21:42 | ||
21:42
Auzon left
|
|||
mncharity | not in $?PERLVER, but in $*PERLVER. Unless of course the js version was used to compile it. | 21:43 | |
pmichaud | (infix:xx) I suspect someone copied infix:x and didn't bother to test it. | ||
moritz_ | whoever is currently regression-testing evalbot's mechanisms of running external programs: please don't break it | ||
dolmen | what is the difference between infix:x and infix:xx | ||
? | |||
pmichaud | infix:<x>, string/buffer replication | 21:44 | |
infix:<xx>, list replication | |||
diakopter | perl6: use v6; | ||
dolmen | in rakudo op.pir : | ||
exp_evalbot | kp6: RESULT[DISPATCH: calling on invalid object:$VAR1 = 'perl'; at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 128 main::DISPATCH('perl') called at - line 11] | ||
..pugs: RESULT[undef] | |||
..rakudo: RESULT[Null PMC access in find_method()current instr.: '_block11' pc 38 (EVAL_11:18) | |||
..elf: RESULT[undef] | |||
dolmen | .sub 'infix:xx' :multi(_,_) | ||
.param string a | |||
.param int b | |||
21:45
Auzon joined
|
|||
pmichaud | rakudo is obviously wrong there. :-) | 21:45 | |
moritz_ | dolmen: [ ] send patch! | ||
dolmen is a rakudo newbie | 21:46 | ||
pmurias | mncharity: shouldn't the code which elf runs be run in a seperate package? | ||
pmichaud | a lot of things got added to rakudo during my "absence" that I haven't had a chance to check yet. | ||
dolmen is a parrot newbie | |||
pmichaud | infix:xx would be another of those :-) | ||
diakopter | is there a way to quit REPL ./perl6 (rakudo) other than Ctrl-C? | ||
pmichaud | ctrl-D ? | 21:47 | |
moritz_ | did you try Ctrl+D? | ||
mncharity | pmurias: 'the code which elf runs', huh? | ||
pmurias | elf_f_faste -e 'say 3', compile 'say 3' and runs it | ||
diakopter | ... other than Ctrl-. | ||
pmurias | exit()? | 21:48 | |
mncharity | runs it in Main, per spec, no? | ||
moritz_ | yes | ||
pmurias | but the compiler package hierarchy is different from the compiled code package hierarchy | 21:49 | |
diakopter | exit does the same as pressing enter on a blank line; seemingly nothing. | ||
Auzon | die "get me out of here!"; # maybe? | ||
moritz_ | doesn't exit the REPL | ||
Auzon | Oh. Right, because of the Eval. | 21:50 | |
pmurias | defining a sub in the compiler namespace shouldn't change the compiler | ||
* redefining | |||
moritz_ | but as long as variables aren't persistent over multiple exuctions I won't use the REPL very much | ||
mncharity | elf should at some point allow you to specify the p5 root (perhaps p6 root?) of the package tree. so instead of taking over the p5 interpreter, and fighting with any other p6 implementation using it simulatneously, one could instead say 'use p5; package Foo; use Elf; Foo::eval('say $?PACKAGE'); #=> "Main", but really "Foo::Main". | 21:51 | |
moritz_ | not even 'our' vars, so it's not scope issue | ||
mncharity | pmurias: 'defining a sub in the compiler namespace shouldn't change the compiler', if it's a compile time definition, eg, inside a BEGIN{}, then yes, it should. | 21:52 | |
rakudo_svn | r27825 | pmichaud++ | [rakudo]: | 21:53 | |
r27825 | pmichaud++ | * Add dies_ok and lives_ok to Test.pm | |||
r27825 | pmichaud++ | * Patch courtesy Vasily Chekalkin <bacek at bacek.com> | |||
r27825 | pmichaud++ | * Resolves RT#54826 (bacek++) | |||
mncharity | re redefining, oh, as for elf_f_faster EmitSimpleP5.pm -e 'say 3', | 21:54 | |
pmurias | yes | 21:55 | |
i'm sure that is not legal | |||
mncharity | just because elf_f_faster was previously compiled, doesn't mean it's own version of EmitSimpleP5.pm is off invisible somewhere. the compiler is just normal code. | ||
pmurias | i'll have to search the spec/irc log to challange it | 21:57 | |
moritz_: is there a way to search the log for non-alphanumerics? | |||
mncharity | you could hypothetically compile a program which didn't use eval() into an executable which didn't include the compiler. but () that's not implemented, and () then EmitSimpleP5 wouldn't run at all because it would be missing the rest of the compiler. you'd have to say elf_f_stripped Elf.pm -e 'say 3' | ||
21:58
justatheory joined
|
|||
moritz_ | pmurias: if you give me a mysql query I'll run it | 21:58 | |
pmurias: but otherwise no, don't think so | 21:59 | ||
pmurias | why? | ||
why does the search ignore non-alphanumerics? | |||
mncharity: what i imagine is that the compiled code lives in CURRENTLY_COMPILED_CODE_PACKAGE:: | 22:00 | ||
moritz_ | pmurias: it's the way mysql fulltext indexes work. :/ | 22:01 | |
pmurias | mysql-- | ||
Auzon | karma mysql | ||
@karma mysql | |||
lambdabot | mysql has a karma of -1 | ||
pmurias | and it cannot harass the compiler because EmitSimpleP5 is translated into SOMETHING::EmitSimpleP5 | 22:02 | |
mncharity | pmurias: and is *eval() GLOBAL::eval or CURRENTLY_COMPILED_CODE_PACKAGE::GLOBAL::eval? and does it take a String or a CURRENTLY_COMPILED_CODE_PACKAGE::String? and return a Code or a ... etc. | 22:03 | |
re Code, oh, I mean, eva(3) returns Int or CCCP::Int | 22:05 | ||
22:05
perl7 left
|
|||
mncharity | "p6, the Compile Time lives" | 22:06 | |
pmurias | i suppose it's all CCCP::thing | 22:07 | |
moritz_ heads off to bed | |||
Auzon | Good night moritz_. | ||
pmurias | mncharity: eval(3) returns CCCP::Int | 22:09 | |
22:09
cognominal_ left
|
|||
pmurias | if it didn't it would be possible to modifi 3.HOW() and stop the compilation process | 22:10 | |
22:11
wknight8111_ is now known as wknight8111
|
|||
mncharity | let's see... so the idea is elf EmitSimpleP5.pm -e 'say 3' should return an error (eg, because ESP assumes a $*compiler0 has been defined, when it hasn't). | 22:16 | |
btw, it can't be CCCP::Int, or at least, on the p6 level, there must be no way to distinguish a CCCP::Int from an Int, including comparing Int and eval("Int") class objects. | 22:17 | ||
dolmen | rakudo: 3 x 4 | 22:18 | |
exp_evalbot | RESULT["3333"] | ||
dolmen | rakudo: 3 xx 4 | ||
exp_evalbot | OUTPUT[Could not invoke non-existent sub xcurrent instr.: '_block11' pc 34 (EVAL_11:19) | ||
dolmen | rakudo: 3 xy 4 | ||
exp_evalbot | OUTPUT[Could not invoke non-existent sub ycurrent instr.: '_block11' pc 34 (EVAL_11:19) | ||
dolmen | looks like the grammar doen't recognize infix:xx | 22:19 | |
pmichaud | looks to me as though rakudo doesn't recognize 'xx' as an operator. | ||
dolmen | where should I look at? | ||
pmichaud | src/parser/grammar-oper | ||
src/parser/grammar-oper.pg | |||
infix:<x> is there, but infix:<xx> isn't. | |||
Auzon | perl6: try {die 'qwerty} | ||
doh | 22:20 | ||
perl6: try {die 'qwerty'}; say $!; | |||
exp_evalbot | kp6: No output (you need to produce output to STDOUT) | ||
..pugs: OUTPUT[***  Unexpected end of input expecting "\\", variable name or "'" at /tmp/hvHaMIljIX line 2, column 1] | |||
..rakudo: OUTPUT[Statement not terminated properly at line 1, near "'qwerty}"current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82) | |||
..elf: OUTPUT[Parse error in: /tmp/FClm1BAZ7Opanic at line 1 column 10 (pos 10): Error in quotesnabberWHERE: try {die 'qwerty}WHERE: /\<-- HERE STD_red/prelude.rb:98:in `panic' STD_red/std.rb:1286:in `quotesnabber' (eval):1:in `__quote_8146019' STD_red/prelude.rb:404:in `block | |||
..in longest_token_match' STD_red/prelude.rb:400:in `eac... | |||
kp6: OUTPUT[syntax error at position 24, line 1 column 24:try {die 'qwerty'}; say $! ^ HERE] | |||
..pugs: OUTPUT[qwerty] | |||
..rakudo: OUTPUT[qwerty] | |||
..elf: OUTPUT[Bad file descriptor] | |||
Auzon | aha. $! is specced in S04, not S02 | 22:21 | |
22:21
wknight8111 left
22:22
wknight8111 joined
|
|||
mncharity ponders 3.HOW()... | 22:23 | ||
pmurias | implementing it? | 22:24 | |
22:24
cognominal_ joined
|
|||
pmurias | -x is broken | 22:24 | |
perl elf_f_faster -x test.p6 > out;perl out produces an error | 22:25 | ||
while perl elf_f_faster test.p6 is ok | |||
22:26
Chillance left
22:28
cognominal_ left
|
|||
mncharity | re elf_f_faster -x test.p6 > out, it sounds like you want an elf_f_faster -o out test.p6 , which include the prelude and such in addition to test.p6. but which doesn't exist yet. | 22:28 | |
pmurias | with test.p6 being class Foo { };my $foo = Foo.new(); | 22:29 | |
mncharity | one could say elf -x -o out Prelude.pm PrimitivesP5.pm test.p6... it might even work? | 22:30 | |
rakudo_svn | r27827 | pmichaud++ | [rakudo]: | ||
r27827 | pmichaud++ | * Fix [] subscripts to use keyed_int. | |||
Auzon | In pugs/t/, what is the consensus on indenting? Tabs don't seem to show up in the smartlinks in the synopses. | 22:31 | |
pmurias | mncharity: i'll go to sleep as my productivity is extremly low now | 22:32 | |
pmurias yaws | |||
mncharity | good god, no tabs. any tabs, not-explicitly there as tabs for testing, should be removed on sight. | ||
lol | |||
good night pmurias :) | |||
pmurias | good night | ||
22:32
pmurias left
|
|||
Auzon | eek. OK, ok, no tabs | 22:33 | |
mncharity | *chuckle* | 22:34 | |
Auzon | I'll keep them in my own projects. ;) | 22:36 | |
mncharity | basically the convention is the pugs repo is a tab-free-environment. :) | ||
22:36
justatheory left
|
|||
mncharity | oh, modulo Makefiles of course, where they are semantically significant. :/ | 22:37 | |
'we realized it was a mistake, but we had 20 users by then, so we couldn't change it'... | 22:38 | ||
Auzon | Yep. I read that. | ||
mncharity | (paraphrase) | ||
22:39
cognominal_ joined
|
|||
SamB | mncharity: at the time that might have been a reasonable statement | 22:40 | |
mncharity | I don't disagree... but would be unsurprised to find that has cost a person life worth of time in the years since. | 22:42 | |
*it has | 22:43 | ||
i'm off. have fun all & | 22:44 | ||
Auzon | See you, mncharity | 22:45 | |
22:45
mncharity left
|
|||
Auzon | pugs: try {die 'qwerty'} say $! | 22:45 | |
exp_evalbot | OUTPUT[***  Unexpected "say" expecting operator at /tmp/xZuvRDRI7B line 1, column 20] | ||
Auzon | pugs: try {die 'qwerty'}; say $! | ||
exp_evalbot | OUTPUT[qwerty] | ||
Auzon | pugs: try {die 'qwerty'}; say $! ~~ /qwerty/; | ||
exp_evalbot | OUTPUT[] | ||
Auzon | pugs: try {die 'qwerty'}; say ~$! ~~ /qwerty/; | 22:46 | |
exp_evalbot | OUTPUT[] | ||
22:46
meppel-san is now known as meppl
|
|||
Auzon | pugs: try {die 'qwerty'}; say ~$! ~~ /q/; | 22:46 | |
exp_evalbot | OUTPUT[] | ||
Auzon | pugs: try {die 'qwerty'}; say $!.match(/q/); | 22:47 | |
exp_evalbot | OUTPUT[] | ||
Auzon | rakudo: try {die 'qwerty'}; say $!.match(/q/); | ||
exp_evalbot | OUTPUT[Method 'match' not found for invocant of class 'Exception'current instr.: '_block11' pc 72 (EVAL_12:33) | ||
dolmen | how can I print a list, formatted | 22:49 | |
with somlething like join in raduko? | |||
Auzon | rakudo: say (1 .. 10).join(', '); | 22:50 | |
exp_evalbot | OUTPUT[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | ||
Auzon | Like that? | ||
dolmen | yes | ||
Auzon | rakudo: (1 .. 10).join(', ').say; # pure OO? | 22:51 | |
exp_evalbot | OUTPUT[1, 2, 3, 4, 5, 6, 7, 8, 9, 10] | ||
dolmen | do you have a map example? | 22:53 | |
Auzon | rakudo: (1 .. 10).map({$_ + 5}).join(', ').say; | 22:54 | |
exp_evalbot | OUTPUT[Method 'map' not found for invocant of class 'List'current instr.: '_block11' pc 63 (EVAL_11:25) | ||
dolmen | :( | ||
Auzon | rakudo: my @a = 1 .. 10; @a.map({$_ + 5}).join(', ').say; | ||
exp_evalbot | OUTPUT[Method 'map' not found for invocant of class 'List'current instr.: '_block11' pc 78 (EVAL_11:32) | ||
Auzon | hum. | ||
dolmen | well... how can I check that a value I get is a list of lists? | 22:55 | |
rakudo: ((1..2) X (3..4)).join(', ').say | 22:56 | ||
exp_evalbot | OUTPUT[1 3, 1 4, 2 3, 2 4] | ||
dolmen | is there something like a typeof operator? | 22:57 | |
Auzon | rakudo: my @a = (1..2) X (3..4); for (@a) {say $_.WHAT} | ||
exp_evalbot | OUTPUT[NumNum] | ||
dolmen | cool | ||
Auzon | rakudo: my @a = ((1..2) X (3..4)); for (@a) {say $_.WHAT} | ||
exp_evalbot | OUTPUT[NumNumNumNumNumNumNumNum] | ||
Auzon | rakudo: my @a = [1,2], [3,4]; for (@a) {say $_.WHAT} | 22:58 | |
exp_evalbot | OUTPUT[IntInt] | ||
Auzon | rakudo: my @a = [1,2], [3,4]; for (@a) {say .WHAT} | ||
exp_evalbot | OUTPUT[No result objectcurrent instr.: 'parrot;PCT::Grammar;item' pc 48 (src/PCT/Grammar.pir:64) | ||
Tene | Yeah, that's NYI, I guess. | ||
I can look at it tomorrow evening if you remind me. | |||
Auzon | rakudo: say ([1,2], [3,4]).perl | 22:59 | |
exp_evalbot | OUTPUT[[1, 2, 3, 4]] | ||
Auzon | mhm. I think that's wrong. | ||
Tene | It is. pmichaud++ still has work on list context queued. | ||
pmichaud | anything involving arrays or hashes is suspect in rakudo at the moment. | 23:00 | |
dolmen | how do I submit a patch? | ||
pmichaud | until we get list context resolved. | ||
dolmen: for rakudo? see README | |||
dolmen | sorry, rtfm ;) | 23:01 | |
rakudo: when does mean "assoc(list)" in grammar-oper.pg | 23:03 | ||
exp_evalbot | OUTPUT[Statement not terminated properly at line 1, near "in grammar"current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82) | ||
dolmen | humans: when does mean "assoc(list)" in grammar-oper.pg ? | ||
s/when/what/ | |||
pmichaud | it means an operator has "list" associativity. See S03. | ||
also described in S06, under "is assoc". | 23:04 | ||
Auzon | Is it possible to get an Exception's text? I want to be able to match it with a regex. | 23:08 | |
pmichaud | isn't that just ~$! ? | ||
Auzon | perl6: try {die "qwerty"}; say (~$!).WHAT; | ||
exp_evalbot | kp6: OUTPUT[syntax error at position 24, line 1 column 24:try {die "qwerty"}; say (~$!).WHAT ^ HERE] | 23:09 | |
..pugs: OUTPUT[Str] | |||
..rakudo: OUTPUT[Str] | |||
..elf: OUTPUT[Int] | |||
Auzon | perl6: try {die "qwerty"}; say (~$!) ~~ /q/; | ||
exp_evalbot | kp6: OUTPUT[syntax error at position 24, line 1 column 24:try {die "qwerty"}; say (~$!) ~~ /q/ ^ HERE] | ||
..pugs: OUTPUT[] | |||
..rakudo: OUTPUT[q] | |||
..elf: OUTPUT[syntax error at (eval 15) line 4, near ") ~" at ./elf_f_faster line 4456] | |||
Auzon | That ought to work | ||
meppl | good night | 23:11 | |
Auzon | Night, meppl | ||
meppl | ;) | 23:12 | |
23:13
meppl left
|
|||
Auzon | pugs: use Test; | 23:15 | |
exp_evalbot | OUTPUT[pugs: *** Unsafe function 'use' called under safe mode at /tmp/tFPdq2kj94 line 1, column 1] | ||
Auzon | rakudo: use Test; | ||
exp_evalbot | OUTPUT[Error: file cannot be read: Test.pmcurrent instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103) | ||
dolmen | what is the Perl6 length operator/function for a list? | 23:16 | |
Auzon | .elems | ||
rakudo: (1..10).elems | |||
exp_evalbot | RESULT[10] | ||
wolverian | or Num context | ||
Auzon | rakudo: +(1..10) | ||
exp_evalbot | RESULT[10] | ||
wolverian | rakudo: +("a".."c") | ||
dolmen | perl6: my @a = (1,2) xx 4; say @a.elems; | ||
23:17
exp_evalbot left
|
|||
wolverian | whoops... | 23:17 | |
23:17
exp_evalbot joined
|
|||
Auzon | xx is broken somewhere. | 23:17 | |
wolverian | 1..10 is a bad test, since the last element equals the count of elems | ||
dolmen | I'm working on it | ||
wolverian | that's confusing for a perl5 coder | ||
Auzon | True, wolverian. | ||
rakudo: (5 .. ^10).elems | |||
exp_evalbot | RESULT[6] | ||
dolmen will submit his first Perl6/rakudo patch in a few minutes... | |||
Auzon | rakudo: (5 .. ^10) | ||
exp_evalbot | RESULT[[5, 6, 7, 8, 9, 10]] | 23:18 | |
Auzon | That's wrong. | ||
pugs: (5 .. ^10) | |||
exp_evalbot | RESULT[(5, 6, 7, 8, 9, 10)] | ||
dolmen | pugs: my @a = (1,2) xx 4; say @a.elems; | ||
exp_evalbot | OUTPUT[8] | ||
Auzon | That's wrong, too, I think... :-/ | ||
dolmen | pugs: my @a = (1,2,'a') xx 4; say @a.elems; | ||
exp_evalbot | OUTPUT[12] | ||
Auzon | pugs: ^4 | 23:19 | |
exp_evalbot | RESULT[(0.0, 1.0, 2.0, 3.0)] | ||
dolmen | pugs: my @a = 'a' xx 4; say @a.elems; | ||
exp_evalbot | OUTPUT[4] | ||
Auzon | pugs: 1 .. ^4 | ||
exp_evalbot | RESULT[(1, 2, 3, 4)] | ||
Auzon | Ah. ^ isn't working properly there | ||
but on its own, it's fine | 23:20 | ||
dolmen | pugs: my @a = 'a' x 4; say @a.elems; | 23:21 | |
exp_evalbot | OUTPUT[1] | ||
23:21
chris2 left
|
|||
dolmen | pugs: my $a = 'a' x 4; say @a.elems; | 23:21 | |
exp_evalbot | OUTPUT[***  Unexpected "." expecting "::" Variable "@a" requires predeclaration or explicit package name at /tmp/itbWWYCMm7 line 1, column 24] | ||
dolmen | pugs: my $a = 'a' x 4; say $a.elems; | ||
exp_evalbot | OUTPUT[1] | ||
dolmen | pugs: my @a = 1,2 xx 4; say @a.elems; | ||
exp_evalbot | OUTPUT[5] | ||
dolmen | pugs: my @a = (1,2) xx 4; say @a.elems; | ||
exp_evalbot | OUTPUT[8] | ||
dolmen | pugs: my @a = ((1,2)) xx 4; say @a.elems; | 23:22 | |
exp_evalbot | OUTPUT[8] | ||
Auzon | pugs: "abcd".elems.say | ||
exp_evalbot | OUTPUT[1] | ||
pmichaud | pugs: my @a = (1,2) xx 4; say @@a.elems; | ||
exp_evalbot | OUTPUT[***  Unexpected "." expecting "::" Variable "@@a" requires predeclaration or explicit package name at /tmp/1xZiG7ZsUR line 1, column 28] | ||
pmichaud | pugs: my @a = [1,2] xx 4; say @a.elems; | ||
exp_evalbot | OUTPUT[8] | ||
pmichaud | hmmm. | 23:23 | |
dolmen | how can/(should I be able to) get a list of lists? | ||
pmichaud | I would think that [1,2] xx 4; would do it | ||
Auzon | in Rakudo, you may not be able to. | ||
Pugs... who knows. | |||
pmichaud | rakudo doesn't know list context very well yet. | ||
dolmen | Auzon: I trying to fix it in rakudo | ||
Auzon | I think that [1,2] xx 4 should as well. | ||
Because there's no flattening there, correct? | 23:24 | ||
pmichaud | pugs: my $a = [1,2]; say ($a xx 4).elems | ||
exp_evalbot | OUTPUT[8] | ||
dolmen | Is it right or wrong? | 23:25 | |
Auzon | pugs: my $a = [1,2]; ($a xx 4).perl | ||
exp_evalbot | RESULT["(1, 2, 1, 2, 1, 2, 1, 2)"] | ||
Auzon | That's wrong. It should be grouped somehow. | ||
hm | |||
not sure. I'll have to check the specs when I can | 23:26 | ||
pmichaud | I think pugs is broken there. I'm pretty sure rakudo will have difficulty with list flattening for a little while longer. | ||
dolmen | I'm at the point where I can get the same wrong result as Pugs for xx... | 23:27 | |
23:27
alester left
|
|||
Auzon | I'll mark testing this on my list of things to do. | 23:28 | |
Right now, I have some reorganization that I want to get done before I lose my place | |||
23:29
meteorjay left,
pbuetow left
|
|||
dolmen | in PIR, how can I push a list in a list without ti to be flattened ? | 23:30 | |
Auzon | dolmen: Are you in #parrot on irc.perl.org? They know PIR better. | 23:31 | |
dolmen | ok | ||
Auzon | We can still help with general perl6 stuff, and there's some overlap | ||
23:33
BinGOs left
|
|||
pugs_svnbot | r20546 | Auzon++ | dollar_underscore.t -> dollar_bang.t since the test is really about $! and not $_. also added two new test cases. | 23:36 | |
dolmen | S03 says about xx: If the operator is being evaluated in ordinary list context, the operator returns a flattened list. | ||
So pugs seems right. | |||
No? | 23:37 | ||
pugs: my @a = ((1,2)) xx 0; say @a.elems; | |||
exp_evalbot | OUTPUT[0] | ||
dolmen | pugs: my @a = ((1,2)) xx 0; say @a.perl; | ||
exp_evalbot | OUTPUT[[]] | ||
wolverian | pugs: @@ (1,2) xx 3 | 23:38 | |
exp_evalbot | OUTPUT[***  Unexpected " (" expecting "::" at /tmp/b0llIyVnfX line 1, column 3] | ||
dolmen | pugs: my @a = [1,2] xx 0; say @a.perl; | ||
exp_evalbot | OUTPUT[[]] | ||
wolverian | where's my chunks :) | ||
dolmen | pugs: my @a = @@ [1,2] xx 0; say @a.perl; | ||
exp_evalbot | OUTPUT[***  Unexpected "@a" expecting "=", "::", context, ":" or "(" at /tmp/nkN8RhU1nf line 1, column 4] | ||
dolmen | pugs: my @a = @@ ([1,2] xx 0); say @a.perl; | 23:39 | |
exp_evalbot | OUTPUT[***  Unexpected "@a" expecting "=", "::", context, ":" or "(" at /tmp/P6dfj0Ei1D line 1, column 4] | ||
dolmen | pugs: my @a = @([1,2] xx 0); say @a.perl; | ||
exp_evalbot | OUTPUT[[]] | ||
dolmen | pugs: my @a = @@([1,2] xx 0); say @a.perl; | ||
exp_evalbot | OUTPUT[*** Unknown syntactic construct: Syn "@@{}" [Ann (Pos (MkPos "/tmp/GVjbGDzrAQ" 1 12 1 22)) (App (Var "&infix:xx") Nothing [Syn "\\[]" [Ann (Pos (MkPos "/tmp/GVjbGDzrAQ" 1 13 1 16)) (Syn "," [Val (VInt 1),Val (VInt 2)])],Val (VInt 0)])] at /tmp/GVjbGDzrAQ line 1, column 9-23] | ||
dolmen | rakudo: my @a = @@([1,2] xx 0); say @a.perl; | 23:40 | |
exp_evalbot | OUTPUT[Statement not terminated properly at line 1, near "= @@([1,2]"current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82) | ||
dolmen | pmichaud, rakudo patch sent : infix:<xx> | 23:45 | |
pmichaud | rakudo doesn't understand @@ yet. | 23:50 | |
I don't know if pugs understands @@ yet. | |||
pugs: my @a = ([1, 2], [1, 2]); say @a.elems; | 23:51 | ||
exp_evalbot | OUTPUT[2] | ||
pmichaud | pugs: my @a = ([1, 2], [1, 2]); say (@a, ()).elems; | ||
exp_evalbot | OUTPUT[2] | ||
pmichaud | I would expect say ([1,2] x 2, ()).elems to return the same result | 23:52 | |
pugs: say([1,2] xx 2, ()).elems | |||
exp_evalbot | OUTPUT[1212] | ||
pmichaud | oops | ||
pugs: say ([1,2] xx 2, ()).elems | |||
exp_evalbot | OUTPUT[4] | ||
pmichaud | so I think pugs is not quite right there. [1,2] isn't a list, it's an array. | 23:53 | |
dolmen | perl6: [1, 2].perl | 23:58 | |
exp_evalbot | kp6: RESULT['[ 1, 2 ]'] | ||
..pugs: RESULT["[1, 2]"] | |||
..rakudo: RESULT["[1, 2]"] | |||
..elf: RESULT['[1,2]'] | |||
dolmen | perl6: (1, 2).perl | ||
exp_evalbot | kp6: RESULT['( 1, 2 )'] | ||
..pugs: RESULT["(1, 2)"] | |||
..rakudo: RESULT["[1, 2]"] | |||
..elf: RESULT['2'] | |||
pmichaud | pugs: say (1..3) xx -4; | 23:59 | |
exp_evalbot | OUTPUT[] |