perl6-projects.org/ | nopaste: sial.org/pbot/perl6 | evalbot: 'perl6: say 3;' | irclog: irc.pugscode.org/ | ~290 days 'til Xmas
Set by mncharity on 6 March 2009.
00:07 justatheory joined
TimToady sparc_: not any more, you also have to get rakudo these days 00:09
sparc_ oh ok, cool :)
Sartak rakudo.org/how-to-get-rakudo it's very easy nowadays
sparc_ i just got rakudo downloaded, and used the --gen-parrot option
it's a nice install process so far, gracias :p 00:10
00:10 justatheory left
sparc_ Sartak: ossum, thanks 00:11
00:11 Ariens_Hyperion left 00:20 ZuLuuuuuu left 00:25 alester is now known as AndyAway
pugs_svn r25741 | putter++ | [elf_h] Flatten some logical infix op applications before emitting. 00:26
r25741 | putter++ | Eg, &&(&&(2,3),4) -> &&(2,3,4). For elfblue, to keep code emitted from STD_red and STD.pm trees identical.
r25742 | lwall++ | [STD] give intelligent error message when placeholder fights with signature 00:30
00:36 meppl left
pugs_svn r25743 | lwall++ | [implicit-parameter.t] placeholder conflict requires eval_die_ok 00:39
00:43 M_o_C left 00:46 mikehh left 00:47 [particle]1 joined
mncharity hmm, STD.pm/gimme5 is looking more and more like a p6 implementation, rather than merely a parser. 00:47
00:49 M_o_C joined
mncharity TimToady: a random question, what is your vision for STD.pm with respect to scope? 00:51
00:52 protorom joined
mncharity as time passes, my impression is STD.pm keeps getting bigger, mostly with p6 code embedded in the regexen, and is moving beyond "just enough analysis to do a correct parse" towards... full lexical analysis? a full p6 implementation? 00:53
diakopter he said yesterday (here) that he didn't have that purpose... he wants to port gimme5 to viv's emitp5 00:54
first, at least
but, (imho) in order to do that... a lot of that p6 code in those regexen needs to be understood/interpreted... :P 00:55
00:56 justatheory joined
diakopter I think it was yesterday. 00:57
maybe it was the day before.
00:57 M_o_C left
pugs_svn r25744 | putter++ | [elfparse] Fork src/perl6/STD.pm and gimme5, r25030. 01:00
r25744 | putter++ | Elf had been tracking STD.pm HEAD, then stumbled and stopped on r25030. This forking makes it easier to non-linearly chase after the current STD.pm.
mncharity diakopter: ah, thanks! pondering... 01:01
01:02 protorom left 01:04 [particle] left 01:12 sparc_ left
mncharity irclog.perlgeek.de/perl6/2009-03-06#i_961681 thru irclog.perlgeek.de/perl6/2009-03-06#i_961938 01:19
01:20 c1sung left
diakopter mncharity: yeah.. "translate gimme5 to viv" 01:20
mncharity "just trying to get other people to do my work"... hmm... so if I go away, gimme5 might be translated into p6 and... oh, viv is p5. 01:22
so a p6->p5 compiler written in p5. which might then be translated into p6.
diakopter well, a compiler of just the parser 01:23
mncharity yeah... sigh.
diakopter but yeah I guess ... theoretically...
it could source translate the entire way
mncharity builds rakudo. though I suspect rakudo.org/status 's "accessing outer lexicals from eval" and "nested package/grammar/class declarations" mean rakudo can't run elf, and "Perl 6 closures in regexes" than it can't run STD.pm. ah well. 01:27
hmm, actually, STD_red-based elf might not need "accessing outer lexicals from eval"...? 01:28
cspencer what does a "Non-Positional argument for @vals in call to foo" imply? 01:34
01:38 justatheory left
mncharity context? 01:39
cspencer sure, let me get an example here, one second... 01:40
mncharity oh, it's a rakudo error message? 01:41
cspencer yes :)
rakudo: class Any is also { multi method foo(@vals:) { say "vals is a: " ~ @vals.WHAT } }; 2.foo;
p6eval rakudo ed4cd1: OUTPUT«Non-Positional argument for @vals in call to foo␤current instr.: 'die' pc 16289 (src/builtins/control.pir:204)␤» 01:42
cspencer so i'm aware that "2" isn't an array, but i suppose i was expecting @vals to slurp it in or something...
or do i need to write another multi method for that case?
rakudo: class Any is also { multi method foo(@vals:) { say "vals is a: " ~ @vals.WHAT } }; (2).foo; 01:43
p6eval rakudo ed4cd1: OUTPUT«Non-Positional argument for @vals in call to foo␤current instr.: 'die' pc 16289 (src/builtins/control.pir:204)␤»
diakopter class Any is also { multi method foo(@vals:) { say "vals is a: " ~ @vals.WHAT } }; 2.foo(3); 01:44
rakudo: class Any is also { multi method foo(@vals:) { say "vals is a: " ~ @vals.WHAT } }; 2.foo(3);
p6eval rakudo ed4cd1: OUTPUT«No applicable candidates found to dispatch to for 'foo'␤current instr.: 'parrot;P6metaclass;dispatch' pc 320 (src/classes/ClassHOW.pir:161)␤»
diakopter oh, I see
rakudo: class Any is also { multi method foo(@vals:) { say "vals is a: " ~ @vals.WHAT } }; ([2]).foo();
p6eval rakudo ed4cd1: OUTPUT«vals is a: Array␤»
cspencer rakudo: class Any is also { multi method foo(@vals:) { say "vals is a: " ~ @vals.WHAT } }; (2,).foo;
p6eval rakudo ed4cd1: OUTPUT«vals is a: Array␤» 01:45
mncharity "regression fudge"... tasty fudge which is turning itself back into flour and sugar...? 01:49
diakopter or fudge that, when eaten, helps one regress... 01:50
mncharity hmm, so fudge that reminds one of grad school talk snacks, or childhood treats 01:52
mncharity wonders "what's a $*foo ?". It seems assorted $+foo's have turned into them... 01:57
wait, that's just a global... curious... 01:58
02:01 tcliou|Away left, LCamel left, brunoV left 02:04 DemoFreak left
Sartak a contextualizable global I think 02:06
mncharity thanks :) 02:10
TimToady yes, we encourage all access to globals through context vars now 02:13
as for executing p6 closures, it's not really much problem for gimme5, so I don't see why it would be much more problem when viv translates p6 to p5 02:14
I do have to write some things oddly for gimme5 that viv would find it easier to backtraslate
and there are aspects to the backtranslation that assume p5 is doing things that it really isn't, like context vars emulated with local 02:15
mncharity: see above 02:16
groceries &
02:16 orafu left
bacek rakudo: my $c = &infix:<cmp>; say 5 &$c 42; 02:25
p6eval rakudo ed4cd1: OUTPUT«Statement not terminated properly at line 1, near ":<cmp>; sa"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
bacek std: my $c = &infix:<cmp>; say 5 &$c 42;
p6eval std 25744: OUTPUT«############# PARSE FAILED #############␤Syntax error (two terms in a row?) at /tmp/QRQxXFHKzd line 1:␤------> my $c = &infix:<cmp>; say 5 &$c 42;␤ expecting any of:␤ infix or meta-infix␤ infix stopper␤ standard stopper␤ statement modifier loop␤
..terminator␤FAILED...
02:26 orafu joined
bacek std: my $c = &infix:<cmp>; say &$c(5, 42); 02:26
p6eval std 25744: OUTPUT«ok 00:03 48m␤»
bacek rakudo: my $c = &infix:<cmp>; say &$c(5, 42);
p6eval rakudo ed4cd1: OUTPUT«Statement not terminated properly at line 1, near ":<cmp>; sa"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
02:27 orafu left
bacek wears masak's hat 02:27
02:27 orafu joined
mncharity re context vars, nod. I'm not sure I follow the rest. If it's a "you can do a transliteration from p6 to p5 with little analysis, don't really need a compiler" suggestion, I don't see how containers, etc, can be either compiled away or implemented without crippling performance, without a non-trivial compiler. 02:30
02:31 Maghnus left 02:32 Maghnus joined
mncharity The "smop is so brute fast we don't have to be smart" argument, while I don't buy it, has some plausibility... well, at least it's been argued. But I don't see how to do p6 on p5 without at least type analysis, which seems beyond the scope of viv. Or I'm just missing the point entirely... :) 02:35
02:35 Maghnus_ joined
diakopter the amount of substitutions in gimme5.... 02:36
mncharity drat. not the right thing. svn revert, and I'll make another try at :my another day.
02:36 Maghnus_ left
mncharity ...? 02:36
diakopter and the code generation.... it's definitely non-trivial, imho.
mncharity ok. but my impression is it's all local. no "we know this variable is doesn't escape scope and is never mumbled, so instead of the slow general p6 variable thing, we'll do simple and fast instead". 02:38
gimme5 seems to do "everything simple and fast". 02:39
the "fast" of which I am almost daily grateful. :)
diakopter my guess is that his Perl 6 code is very Perl 5y. 02:40
mncharity but the "everything simple" doesn't seem to get you full p6 on p5.
02:40 c9s__ joined
mncharity re p5y, perlcabal.org/svn/pugs/view/src/perl6/STD.pm , dunno 02:42
end of day for me. cheers, and thanks all. 02:43
diakopter ttyl 02:44
02:45 alester joined
mncharity You'd think you could get a good number for the diameter of a hydrogen atom without having to read primary literature, "please pay $30 to see this article" literature, but it seems no. sigh. :/ 02:46
good numbers can rarely be counted on
02:47 mncharity left
alester t/harness can miss options. :-( 02:50
02:51 Maghnus left 03:06 Maghnus joined 03:22 Whiteknight left 03:28 Chillance left 03:30 orafu left, OuLouFu joined
bacek rakudo: my $x=-7; $x min= -9; say $x 03:32
p6eval rakudo ed4cd1: OUTPUT«-9␤»
03:35 OuLouFu is now known as orafu 03:46 literal left 03:50 literal joined
bacek rakudo: multi sub foo(Code $c, *@values) { ... }; say foo(1..5); 03:53
p6eval rakudo ed4cd1: OUTPUT«No applicable candidates found to dispatch to for 'foo'␤current instr.: '_block14' pc 89 (EVAL_18:45)␤»
bacek rakudo: multi sub foo(Code $c = sub { ... }, *@values) { ... }; say foo(1..5);
p6eval rakudo ed4cd1: OUTPUT«No applicable candidates found to dispatch to for 'foo'␤current instr.: '_block14' pc 89 (EVAL_18:45)␤»
bacek perl6: multi sub foo(Code $c = sub { ... }, *@values) { ... }; say foo(1..5);
p6eval elf 25744: OUTPUT«Parse error in: /tmp/6tIb4SID36␤panic at line 1 column 30 (pos 30): Missing right brace␤WHERE: multi sub foo(Code $c = sub { ... }, *@values) { ... }; say ␤WHERE: /\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:255:in `_block_rest'␤ 03:54
..ST...
..pugs: OUTPUT«*** Unimplemented stub called␤ at /tmp/s8iVjAWyVW line 1, column 61-70␤ /tmp/s8iVjAWyVW line 1, column 50-54␤»
..rakudo ed4cd1: OUTPUT«No applicable candidates found to dispatch to for 'foo'␤current instr.: '_block14' pc 89 (EVAL_18:45)␤»
bacek perl6: multi sub foo(Code $c = sub { ... }, *@values) { say ~@values }; say foo(1..5);
p6eval rakudo ed4cd1: OUTPUT«No applicable candidates found to dispatch to for 'foo'␤current instr.: '_block14' pc 89 (EVAL_19:45)␤»
..pugs: OUTPUT«␤1␤»
..elf 25744: OUTPUT«Parse error in: /tmp/uORW50A4aA␤panic at line 1 column 30 (pos 30): Missing right brace␤WHERE: multi sub foo(Code $c = sub { ... }, *@values) { say ~@value␤WHERE: /\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:255:in `_block_rest'␤
..ST...
03:58 literal left, literal joined
bacek rakudo: my $f = sub { ... }; say $f ~~ Code; 03:59
p6eval rakudo ed4cd1: OUTPUT«1␤»
bacek rakudo: say -3 cmp -9 04:01
p6eval rakudo ed4cd1: OUTPUT«1␤»
bacek rakudo: say -3 <=> -9
p6eval rakudo ed4cd1: OUTPUT«1␤»
04:01 literal left, literal joined
TimToady rakudo: say '-3' cmp '-9' 04:04
p6eval rakudo ed4cd1: OUTPUT«-1␤»
TimToady bug in cmp
er, no
sorry
confusing with p5 04:05
bacek :)
TimToady rakudo: say -3 leg -9
p6eval rakudo ed4cd1: OUTPUT«-1␤»
TimToady nevermind
bacek perl6: say min(<5 -3 7 0 1 -9>)
p6eval pugs: OUTPUT«-9␤»
..rakudo ed4cd1: OUTPUT«-3␤»
..elf 25744: OUTPUT«Undefined subroutine &GLOBAL::min called at (eval 123) line 3.␤ at ./elf_h line 4377␤»
bacek Looks like pugs is correct here... 04:06
diakopter rakudo: say 'a' leg 'b'
p6eval rakudo ed4cd1: OUTPUT«-1␤»
TimToady perl6: say min <d e a d b e e f>
p6eval rakudo ed4cd1: OUTPUT«a␤»
..pugs: OUTPUT«d␤»
..elf 25744: OUTPUT«Undefined subroutine &GLOBAL::min called at (eval 123) line 3.␤ at ./elf_h line 4377␤»
TimToady rakudo gets that one right
and pugs worng
there's a lovely word
diakopter EALLWORNGOUT 04:07
TimToady at least elf is consistent :)
bacek perl6: say min { $^a cmp $^b } <5 -3 7 0 1 -9> 04:08
p6eval pugs: OUTPUT«*** ␤ Unexpected "7"␤ expecting operator, ":" or ","␤ at /tmp/bGjr8kdnZs line 1, column 31␤»
..rakudo ed4cd1: OUTPUT«Statement not terminated properly at line 1, near "7 0 1 -9>"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
..elf 25744: OUTPUT«Parse error in: /tmp/iaTks5N6PJ␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say min { $^a cmp $^b } <5 -3 ␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤
..STD_r...
bacek perl6: say min { $^a cmp $^b }, <5 -3 7 0 1 -9>
p6eval pugs: OUTPUT«*** Cannot cast from VCode (MkCode {isMulti = False, subName = "<anon>", subType = SubBlock, subOuterPads = [PRuntime {pr_pad = MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0xb651a6e9>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store ...
..elf 25744: OUTPUT«Use of uninitialized value $a in string comparison (cmp) at ./elf_h line 4283.␤Use of uninitialized value $b in string comparison (cmp) at ./elf_h line 4283.␤Undefined subroutine &GLOBAL::min called at (eval 124) line 3.␤ at ./elf_h line 4377␤»
..rakudo ed4cd1: OUTPUT«-3␤»
04:08 sparc_ joined
bacek perl6: say min { $^a cmp $^b }, <-3 -9> 04:09
p6eval elf 25744: OUTPUT«Use of uninitialized value $a in string comparison (cmp) at ./elf_h line 4283.␤Use of uninitialized value $b in string comparison (cmp) at ./elf_h line 4283.␤Undefined subroutine &GLOBAL::min called at (eval 124) line 3.␤ at ./elf_h line 4377␤»
..rakudo ed4cd1: OUTPUT«-3␤»
..pugs: OUTPUT«*** Cannot cast from VCode (MkCode {isMulti = False, subName = "<anon>", subType = SubBlock, subOuterPads = [PRuntime {pr_pad = MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0xb661cb51>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store ...
diakopter rakudo: [Rcmp] -1,0,1,0,-1,0,1,0,-1
p6eval rakudo ed4cd1: OUTPUT«Could not find non-existent sub Rcmp␤current instr.: '_block14' pc 53 (EVAL_16:38)␤»
diakopter eh
what'd I do wrong there 04:10
TimToady perl6: say [min] <d e a d b e e f>
p6eval elf 25744: OUTPUT«Undefined subroutine &GLOBAL::min called at (eval 133) line 3.␤ at ./elf_h line 4377␤»
..rakudo ed4cd1: OUTPUT«a␤»
..pugs: OUTPUT«*** ␤ Unexpected end of input␤ at /tmp/d4WdTTUQf7 line 2, column 1␤»
diakopter rakudo: [cmp] -1,0,1,0,-1,0,1,0,-1 04:11
p6eval rakudo ed4cd1: OUTPUT«Could not find non-existent sub cmp␤current instr.: '_block14' pc 53 (EVAL_16:38)␤»
TimToady perl6: say [min] <5 -3 7 0 1 -9>
p6eval elf 25744: OUTPUT«Parse error in: /tmp/Jm4TJb0bXz␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say [min] <5 -3 7 0 1 -9>␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤
..STD_red/st...
..rakudo ed4cd1: OUTPUT«-3␤»
..pugs: OUTPUT«*** ␤ Unexpected "7"␤ expecting operator, ":" or ","␤ at /tmp/glBjVEOt6P line 1, column 17␤»
bacek diakopter: there is no reduce metaop for cmp
TimToady yes, because it's "diffy"
diakopter rakudo: [eqv] -1,0,1,0,-1,0,1,0,-1
p6eval rakudo ed4cd1: OUTPUT«Could not find non-existent sub eqv␤current instr.: '_block14' pc 53 (EVAL_16:38)␤»
04:12 nekobaka joined
diakopter rakudo: [eqv]() -1,0,1,0,-1,0,1,0,-1 04:12
p6eval rakudo ed4cd1: OUTPUT«Could not find non-existent sub eqv␤current instr.: '_block14' pc 53 (EVAL_16:38)␤»
TimToady std: [eqv]() -1,0,1,0,-1,0,1,0,-1
p6eval std 25744: OUTPUT«ok 00:02 37m␤»
TimToady heh, took the - as binary 04:13
bacek rakudo looks totally wrong returning -3 for [min] <5 -3 7 0 1 -9>...
TimToady probably using leg on it
bacek and "min <5 -3 7 0 1 -9>" as well
TimToady: no. 04:14
It actually uses infix:cmp
TimToady which is picking leg
bacek my @array = <5 -3 7 0 1 -9>;
# Tests for C<min>:
is @array.min, -3, "basic method form of min works";
is min(@array), -3, "basic subroutine form of min works";
TimToady or leg semantics
bacek this is from t/spec. Is it correct?
diakopter rakudo: [>=] -1,0,1,0,-1,0,1,0,-1
TimToady - comes before '0'
p6eval rakudo ed4cd1: RESULT«Bool::False»
diakopter rakudo: [<=] -1,0,1,0,-1,0,1,0,-1 04:15
p6eval rakudo ed4cd1: RESULT«Bool::False»
TimToady I don't see any way that -3 can be the correct answer
oh, wait, I see what's happening 04:16
<...> is returning strings
perl6: say [min] +«<5 -3 7 0 1 -9>
diakopter rakudo: min(-3, 7, 0)
p6eval pugs: OUTPUT«*** ␤ Unexpected end of input␤ expecting block, "\\", variable name, "\187" or "\171"␤ at /tmp/JqjjymoOim line 2, column 1␤» 04:17
..rakudo ed4cd1: OUTPUT«say requires an argument at line 1, near " [min] +\x{ab}<"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
..elf 25744: OUTPUT«Parse error in: /tmp/LOyoUEDumz␤panic at line 1 column 13 (pos 13): Error in quotesnabber␤WHERE: say [min] +«<5 -3 7 0 1 -9>␤WHERE: /\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:1324:in `quotesnabber'␤ (eval):1:in `__quote_7233927'␤
..STD_red/prelude.r...
bacek oh..
p6eval rakudo ed4cd1: RESULT«-3»
TimToady perl6: say [min] +<< <5 -3 7 0 1 -9>
p6eval pugs: OUTPUT«*** ␤ Unexpected end of input␤ expecting block, "\\", variable name, ">>" or "<<"␤ at /tmp/OkgFSJFM3D line 2, column 1␤»
..rakudo ed4cd1: OUTPUT«say requires an argument at line 1, near " [min] +<<"␤␤current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)␤»
..elf 25744: OUTPUT«Undefined subroutine &GLOBAL::min called at (eval 125) line 3.␤ at ./elf_h line 4377␤»
TimToady perl6: say [min] map {+$_}, <5 -3 7 0 1 -9>
p6eval elf 25744: OUTPUT«Parse error in: /tmp/L1OTI3l5dJ␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say [min] map {+$_}, <5 -3 7 0␤WHERE:/\<-- HERE␤ STD_red/prelude.rb:99:in `panic'␤ STD_red/std.rb:76:in `scan_unitstopper'␤ STD_red/std.rb:224:in `comp_unit'␤ 04:18
..STD_r...
..rakudo ed4cd1: OUTPUT«-9␤»
..pugs: OUTPUT«*** ␤ Unexpected "map"␤ expecting operator, ":" or ","␤ at /tmp/lKOkmKCgCV line 1, column 11␤»
TimToady there you go
but seems like if all the strings are numbers, the dwimmy thing to return is a list of numbers 04:19
not a list of strings
04:20 Limbic_Region left
TimToady course, if you really mean numbers, (5,-3,7,0,1,-9) is no longer than the <> form 04:21
bacek rakudo: say "-3" cmp "7" 04:23
p6eval rakudo ed4cd1: OUTPUT«-1␤» 04:24
04:24 Kimtaro left
bacek rakudo: say "5" cmp "-3" 04:25
p6eval rakudo ed4cd1: OUTPUT«1␤»
04:28 Kimtaro joined 04:35 WootKit joined 04:41 WootKit left 05:21 masak joined
masak good morning! 05:22
05:22 alester left
cspencer masak: good morning! 05:22
masak I'm being visited by my kid sister this weekend, so not much time for Perl 6. but I have this two-hour window before she wakes up. :) 05:24
cspencer heh :) 05:25
congrats on your november wiki prize winning :) 05:28
masak thank you. :) 05:29
05:32 araujo left
masak rakudo: for any(1,2) -> $x {} 05:32
p6eval rakudo ed4cd1: OUTPUT«No exception handler and no message␤current instr.: 'return' pc 15956 (src/builtins/control.pir:39)␤»
masak bug? 05:33
bacek masak: actually no.
masak why not?
bacek rakudo: for any(1,2) -> $x {}; 1
p6eval rakudo ed4cd1: OUTPUT«No exception handler and no message␤current instr.: 'return' pc 15956 (src/builtins/control.pir:39)␤»
masak smiles
bacek rakudo: for any(1,2) -> $x { ; };
p6eval rakudo ed4cd1: OUTPUT«No exception handler and no message␤current instr.: 'return' pc 15956 (src/builtins/control.pir:39)␤»
bacek rakudo: try { for any(1,2) -> $x {}; } 05:34
p6eval rakudo ed4cd1: RESULT«Null PMC access in find_method()␤current instr.: '_block14' pc 77 (EVAL_17:44)␤»
masak submits rakudobug
bacek rakudo: sub foo { for any(1,2) -> $x {}; }; foo
p6eval rakudo ed4cd1: RESULT«any(undef, undef)» 05:35
masak there's a return in there somewhere.
bacek in REPL
rakudo: sub foo { return }; foo
p6eval rakudo ed4cd1: RESULT«undef»
masak what REPL? it behaves the same from the command line. 05:36
bacek masak: command line REPL :) 05:37
masak bacek: :P 05:38
bacek rakudo: my $f = -> { {} }; &f
p6eval rakudo ed4cd1: RESULT«Null PMC access in find_method()␤current instr.: '_block14' pc 77 (EVAL_18:44)␤»
masak rakudo: &f 05:39
p6eval rakudo ed4cd1: RESULT«Null PMC access in find_method()␤current instr.: '_block14' pc 77 (EVAL_16:44)␤»
masak submits
oh, moritz_++ already submitted the first of those. 05:41
masak should read already submitted bugs before submitting
rakudo: <> 05:43
p6eval rakudo ed4cd1: RESULT«[]»
masak rakudo: <STDIN>
p6eval rakudo ed4cd1: RESULT«"STDIN"»
masak those two were low-hanging fruit. ;)
masak submits them
bacek waves masak with "pull request" :) 06:13
masak :) 06:14
06:14 Maghnus left
bacek I've moved List.min/max into settings and fixed Range.min and Range.max. Last 4 commits in my master bracnh 06:14
branch
masak cool. 06:15
bacek Ah. List.reduce as well
afk & kids time
06:16 nihiliad left 06:41 Maghnus joined 06:42 WootKit joined 06:47 cspencer left 06:48 awarefish joined 06:52 awarefish left 06:56 WootKit left
masak sometimes gets bitten by the false friend `grep { !/<regex>/ }, @a` 06:57
06:59 Tene joined 07:05 sri_kraih joined 07:06 masak left 07:07 finanalyst joined 07:10 SamB left 07:11 Tene_ left 07:12 nikn left 07:16 NoirSoldats joined 07:21 NoirSoldats left 07:36 NoirSoldats joined, NoirSoldats left 07:37 Helios left 07:41 Helios joined 07:45 eternaleye joined
bacek std: my @list; my @result = @list.map():{ $_ * 2 }; 07:48
p6eval std 25744: OUTPUT«ok 00:02 35m␤»
07:57 kate21de joined 08:35 kate21de left 08:36 DemoFreak joined 08:37 kate21de joined 08:39 NoirSoldats joined
pugs_svn r25745 | finanalyst++ | Added descriptions to standard rules, regrouped rules, added new rule <word> to enable definition of <wb>. 08:43
r25745 | finanalyst++ | Eliminated deprecated <lt><gt><dot><sp>.
r25745 | finanalyst++ | Changed deprecated <null> to <?> and deprecated <fail> to <!>.
bacek perl6: my @array = <a b c d>; @array.map: { $_ ~= "c"; $_ ~ "d" }; say ~@array; 08:46
p6eval rakudo ed4cd1: OUTPUT«ac bc cc dc␤»
..pugs: OUTPUT«*** Can't modify constant item: VStr "a"␤ at /tmp/9N3L5nB60J line 1, column 38-47␤»
..elf 25745: OUTPUT«Permission denied at ./elf_h line 315.␤»
bacek dislike mutating map... 08:47
08:47 ejs joined 08:48 NoirSoldats left 08:49 Sepheebear left 08:50 NoirSoldats joined 08:52 Sepheebear joined
bacek perl6: my @array = <a>; @array.map: { $^a ~= "A"; $^b ~= "B" }; say ~@array; 08:52
p6eval pugs: OUTPUT«*** Can't modify constant item: VStr "a"␤ at /tmp/anjhypUtEd line 1, column 32-42␤»
..elf 25745: OUTPUT«Use of uninitialized value in subroutine entry at ./elf_h line 188.␤Can't use string ("") as a subroutine ref while "strict refs" in use at ./elf_h line 188.␤ at ./elf_h line 4377␤»
..rakudo ed4cd1: OUTPUT«Cannot assign to readonly variable.␤current instr.: 'die' pc 16289 (src/builtins/control.pir:204)␤»
bacek heh. And it actually doesn't work. 08:53
08:56 duke_leto joined, Sepheebear left 08:58 Sartak left 08:59 Sepheebear joined 09:04 barney joined 09:09 Kimtaro_ joined 09:26 Kimtaro left 09:40 NoirSoldats left 09:41 NoirSoldats joined 09:51 ejs left 09:55 araujo joined 09:59 NoirSoldats left 10:02 NoirSoldats joined 10:08 NoirSoldats left, mikehh joined 10:19 NoirSoldats joined 10:29 duke_leto left, c1sung joined 10:38 NoirSoldats left 10:42 M_o_C joined 10:45 NoirSoldats joined 10:49 elmex left, elmex joined 10:56 NoirSoldats left 11:03 elmex left, elmex joined 11:09 explorer joined 11:15 elmex left
dalek kudo: 4947aea | (Moritz Lenz)++ | docs/ChangeLog:
[ChangeLog] mention last/next working in grep()
11:37
pugs_svn r25746 | moritz++ | [t/spec] tests for last and next in grep 11:38
11:58 NoirSoldats joined 12:00 pmurias joined 12:05 Ariens_Hyperion joined
mikehh Hi, when I run the rakudo make spectest it no longer threads. It takes me 30 minutes now rather than about 15 12:07
is there any reason it has been disabled 12:08
and how do I get it back - I remember some config option but I can't find it at the moment
12:12 abra joined 12:14 abra left, abra joined
bacek commit 5944501430c79ff16647469d383750c4a301bd16 12:19
Author: pmichaud [email@hidden.address]
Date: Tue Feb 24 20:38:51 2009 -0600
Updated harness that doesn't rely on Parrot::Test::Harness.
This version doesn't honor the --jobs option; patches welcome
to re-add that feature. Also needs testing on Win32.
mikehh: that's reason why
12:21 pidus left
mikehh ok - I'll have a look 12:22
12:25 [particle] joined 12:33 pidus joined 12:37 [particle]1 left
pugs_svn r25747 | moritz++ | [t/spec] tests for RT #63710, bare <> and <STDIN> should be disallowed 12:38
dalek kudo: 137dcfa | (Cory Spencer)++ | src/ (2 files):
Implement .map in Pure Perl 6

commit cc76a676174b883e5b9025d36fdd34e9b7e13fe0 Merge: f1d4f77... ed4cd14... Author: Cory Spencer <cspencer@sprocket-2.local> Date: Sat Mar 7 19:03:50 2009 -0800
   Merge branch 'master' of git://github.com/rakudo/rakudo into any-pm
   Conflicts:
   src/setting/Any-list.pm
commit f1d4f77de8c5a46ecfed86bf9060d2eb5dc9072a Author: Cory Spencer <cspencer@sprocket-2.local> Date: Sat Mar 7 18:09:59 2009 -0800
   Remove the PIR map method and replace with a Perl 6 version.
commit a8824fac6d139c91352ee9f775a5e37eca4d446c Author: Cory Spencer <cspencer@sprocket-2.local> Date: Sat Mar 7 12:55:10 2009 -0800
   Removed PIR of grep and replaced with P6 version.
Signed-off-by: Moritz Lenz [email@hidden.address]
12:48
moritz_ @tell cspencer sorry for being inaccurate earlier... if you did only one commit, you don't need to --squash the commit (that only adds more clutter in that case) 12:49
lambdabot Consider it noted.
12:54 elmex joined, meppl joined 13:07 barney left
dalek kudo: 8b2a4ad | (Cory Spencer)++ | src/ (2 files):
Replaced the PIR Any.pairs method with a Perl 6 version.
13:14
13:48 orafu left 13:51 SamB joined 13:52 Whiteknight joined
dalek kudo: a6bd3a0 | (Moritz Lenz)++ | docs/running.pod:
[docs] added a man page as docs/running.pod
14:03
14:30 WootKit joined 14:35 Ariens_Hyperion left 14:41 simcop2387 left 14:42 cspencer joined
cspencer good morning! 14:44
lambdabot cspencer: You have 1 new message. '/msg lambdabot @messages' to read it.
pugs_svn r25748 | lwall++ | [STD] shorten parsefail message to get more into irc message 14:45
14:51 WootKit left 14:54 simcop2387 joined
pmurias diakopter: ping 15:04
diakopter pmurias: ppong
pmurias hi
diakopter howdy
pmurias when will you import ironperl into the git repo? ;) i want to see what it would take to integrate it with mildew 15:05
15:09 jan_ left
diakopter well, I need to identify whether Tim's parser (C++) can be used on mono/linux (if it can be translated trivially to C++/CLI), or if it needs to be swapped out for another parsing system first 15:09
however...
pmurias what do you use Tim's parser for? 15:11
diakopter that's what I was just thinking. I suspect the parser is needed only for parsing the tycho language. 15:12
so, if (and this sounds funny to me) all that needs to occur is to translate/reformat mildew's output to the C# VM api of tycho, then the parser is not needed. 15:13
I spent 6 hours or so yesterday stepping through various test programs on tycho to familiarize myself with the codebase. 15:14
a tough decision is whether to fork his codebase or to build upon it. 15:15
...(more)
pmurias so you are building ironperl on top of tycho 15:16
one problem i can see with it that tycho seems to a very dynamic sort of language, and in Perl 6 it's possible to infer quite a lot of type information which seems to be a potential performance loss 15:18
diakopter: if you are having problems with git you can always import ironperl into the pugs repo 15:19
diakopter that's the question... (whether or not to fork the codebase) 15:20
because there's already a lot of VM features that are *close* to Perl 6's requirements, but not exactly matching
it's GPLv2, btw 15:21
(tycho)
I haven't had problems with git 15:23
I've just committed the one test entry
just watching rakudo's patch queue build up makes me look askance
pmurias: are you on linux? 15:24
pmurias yes
diakopter which kernel/distro?
pmurias debian lenny 15:25
diakopter ok. I'm using ubuntu jaunty. if you want to prepare, you could build mono 2.5 from svn 15:26
pmurias i have windows vista too but i prefer not to use it unless i'm forced too
diakopter hrm, probably the first thing to do, then, is see if I can get tycho to run purely from its API without using the parser. 15:27
15:28 duke_leto joined 15:29 explorer is now known as Guest84032
pmurias why doesn't the parser run on linux? 15:30
diakopter well, it is pure C++, but it would have to be built differently from how it's built now (visual studio) to run on mono 15:32
so, the .net calls to the C++ library would have to be a different calling convention, of sorts. 15:33
and that just seems like a bit more infrastructure work than necessary for now..
it's a naive recdescent parser..
let me see if it will run on mono in pure C#... 15:35
I'm thinking that forking is going to be the way to go...
regarding what you said about dynamic vs. type inference 15:36
yes I'm sure there will be large performance overheard.
well, until tycho's "native types" can be ported/renamed to Perl 6's primitives 15:37
then it can just use those. esp the immutable ones.
15:38 netsquire joined
diakopter but actually, there are plenty of other options 15:38
pmurias what does using tycho give us?
15:38 Guest84032 left
diakopter scopes, captures, multiple and hierarchical namespaces, object references/proxies, an optional type system 15:39
s/captures/closures/
and two numeric systems (and the standard operators) for integers and Reals 15:40
along with arrays, sets, bags
and lazy lists
well, and lazy anything 15:41
so, a decent chunk of what parrot provides.
however, perhaps the biggest thing.... it has a module system 15:42
and importing of existing .dlls (including everything accesible to mono, which is gigantic)
so really, creating "native" tycho types that are wrappers around things from, say, the www.goletas.com/solutions/collections/ library.... would be excellent. 15:44
since tycho's type system piggybacks on top of .Net's type system, it has generics (with covariance/contravariance, using an open-source C# extension lib) 15:46
pmurias train& 15:48
15:48 pmurias left
diakopter tycho's AnyObject type is analogous to the DLR's DynamicObject type, which is essentially equivalent to C#'s 'dynamic' type (marker), which just means make all method dispatching runtime instead of compiletime. it's still a static type, per instance. 15:50
C#4, I mean
pmichaud good morning, all 15:53
diakopter 'morn
s1n morning 15:55
15:55 nihiliad joined 16:04 jan_ joined
diakopter it also has a macro system, but it's dependent on the parser (of course) 16:07
16:08 [particle] left 16:10 [particle] joined 16:15 duke_leto left 16:28 [particle]1 joined
diakopter wow, that's a testament to good software design. 16:28
all the runtime unit tests work just fine after commenting out any blocks/classes/methods that are dependent on the parser... 16:29
dalek kudo: a7214ac | (Moritz Lenz)++ | src/ (2 files):
re-implement List.min in Perl 6; Patch courtesy by bacek++
16:30
literal is it preferred to have builtins implemented in Perl 6? isn't PIR faster? 16:36
diakopter cuter in Perl? 16:37
moritz_ Perl 6 offers several advantages
cuter
cspencer literal: i believe the perl 6 builtins get compiled down to PIR
moritz_ you can do parametric roles
you can get interfaces correct that you can't in PIR 16:38
literal cspencer: and it all gets compiled down to machine code at some point...
moritz_ but yes, plain PIR is faster
and for example next() and last() work automatically in grep and map as they should 16:40
16:45 Ariens_Hyperion joined 16:47 sri_kraih_ joined, [particle] left 16:51 Tene_ joined 17:01 Whiteknight left 17:02 Tene left, abra left 17:03 jhorwitz joined 17:07 sri_kraih left 17:08 Kimtaro joined 17:11 lisppaste3 left 17:13 Kimtaro_ left 17:22 shyfx joined 17:23 shyfx left
pmichaud re: 137dcf -- I'd prefer to not see type constraints on invocants. 17:27
Also, we should not constrain the invocant to be an array. 17:28
any thoughts as to the best way to send comments on these commits? 17:30
17:30 nekobaka left
pmichaud 0 17:31
+ for @list -> $x { 17:32
0
+ if (&$by($res, $x) > 0) {
0
+ $res = $x;
0
+ }
0
ooops, sorry.
cut-n-paste from github doesn't work.
bacek, moritz: ping 17:33
moritz_ pmichaud: pong 17:34
pmichaud: send them p6c?
pmichaud it's kinda hard to get the relevant diff into the message, it appears. 17:35
moritz_ git-show 137dcf
then copy+paste
pmichaud okay, that could help.
moritz_ I can remove the type constraints
(although it'll have to way ~2 hours)
pmichaud yes, in general I think type constraints on invocants should be a no-no. _Especially_ in Any. 17:36
moritz_ ok
pmichaud also, the multi sub for min() is incorrect. In places where we know the code to be incorrect, we should comment it as such. 17:37
moritz_ ok, min() does require an ordering 17:40
I'll also fix that
shame on me for not checking that earlier
pmichaud it's a multi method. There's a sub that has an ordering, and one that doesn't (iirc, unless it's changed)
moritz_ For a C<min> function that does not require an ordering, see the
C<[min]> reduction operator.
pmichaud Yes. I think (especially in converting PIR methods to Perl 6) we need to make sure that we re-verify them against the spec before we commit them. 17:41
Why does map() have to have two methods? Can't it be done with just one? 17:43
ick! We're using postcircumfix:<[ ]> in map!?!?
bad bad bad
moritz_ how should it be done? 17:44
with an iterator?
pmichaud Yes, of some sort.
map is supposed to be lazy, iirc
@values.end causes that to not be the case.
lambdabot Unknown command, try @list
moritz_ right
17:45 Ariens_Hyperion left
pmichaud for any type of "iterator" operation, I think using indices is likely the wrong way to do it. 17:45
moritz_ is a Perl 6-level for() OK?
pmichaud should be okay for Rakudo.
moritz_ then I'll re-write it like that 17:46
pmichaud oh, I see why the subscripting is being done -- it's to get the correct arity in the map. 17:47
hmmm.
moritz_ that can be done differently
pmichaud anyway, I definitely don't want the two separate map() methods.
should be just one.
moritz_ for self.list -> $x { @a.push($x); take expr(|@a) if @a == arity } 17:48
pmichaud oh, that's nicer, yes.
moritz_ ok
I'll fix that tonight 17:49
pmichaud should I send comments like these to the list? Or should we just fix them and move on? 17:50
moritz_ send them to the list so that others can learn from it
17:53 Ariens_Hyperion joined
pmichaud should I do it as a reply to the ticket, or just a new thread? 17:53
I'm replying to (and reopening) the tickets. 18:01
moritz_ perl6: my $x = { 2 * $_ }; say $x.arity 18:14
p6eval elf 25748: OUTPUT«Use of uninitialized value $_ in multiplication (*) at (eval 123) line 3.␤Can't call method "arity" without a package or object reference at (eval 123) line 4.␤ at ./elf_h line 4377␤»
..pugs: OUTPUT«1␤»
..rakudo a7214a: OUTPUT«0␤»
moritz_ isn't that wrong?
cspencer pmichaud: sorry for the bad map implementation, that was me!
i couldn't quite figure out a single map method implementation that worked for all types 18:15
that's probably on account of my own inexperience though :)
moritz_ a 'for $values.list { ... }' should work
cspencer ok, that's what i'd done in grep, i'll redo it like that too 18:16
(unless you'd already started on it)
pmichaud I won't have time to do many of these fixes today.
moritz_ pmichaud: I guess cspencer and I will figure it out
pmichaud Indeed, it looks like most of my time is going to be spent reviewing other people's commits and not writing code :-| I guess that's the role of the pumpking, though. :-) 18:17
cspencer i've got the next couple of hours, i'll resubmit them later for review
pmichaud I'm fine with being the reviewer and not the fixer. :-)
cspencer and i'm happy to fix my mistakes! :)
moritz_ ;-)
pmichaud I agree with masak, I'd prefer to tell others what I'd like to see different than to change them myself.
that gives more people more experience 18:18
s/masak/moritz
cspencer that works for me
pmichaud I do think the "Any" methods are the likeliest candidates for moving to setting at this point.
cspencer if i've got questions re: implementation, should i send them to the list?
pmichaud I looked at most of the other classes and it appeared to me that they needed to stay in PIR a bit longer.
maybe I can just publish a list of candidate PIR methods to be migrated, and let others do the migration.
cspencer: yes, I'd send questions to the list. 18:19
questions are good.
cspencer alright, i'm off to the ferry, i'll send in fixed up Any methods later on tonight or tomorrow 18:20
pmichaud someone else might beat you to them :-)
but that'd be great.
I'm off as well, have a soccer game shortly. bbl.
18:20 Maghnus_ joined 18:21 Ariens_Hyperion left
moritz_ I think I have a fix for map 18:26
will spectest now, and commit later
18:33 Psyche^ joined 18:37 Maghnus left, Maghnus_ is now known as Maghnus, cspencer left
pugs_svn r25749 | moritz++ | [t/spec] bring minmax.t more in line with current S32 18:44
18:45 justatheory joined
dalek kudo: 167e251 | (Moritz Lenz)++ | src/setting/Any-list.pm:
make .map more Perlish, and fix complaints by pmichaud++

   * removed some type constraints on invocants
   * .map should work when lists become lazy, ie not querying @list.end
18:46
18:50 Patterner left, Psyche^ is now known as Patterner
pugs_svn r25750 | moritz++ | [S32/Containers] remove nonsensical return value from min/max 18:52
18:54 Ariens_Hyperion joined
pugs_svn r25751 | moritz++ | [S32/Containers] forgot to bump version number; fixed date from the future 19:00
19:00 jhorwitz left
dalek kudo: 0f1c600 | (Moritz Lenz)++ | src/setting/Any-list.pm:
Remove type constraints that either don't make sense or aren't checked anyway
19:08
19:14 cxreg left, yves left, scrottie left, gbacon left, szbalint left, gravity left, allbery_b left, ilbot2 left, f00li5h left, mj41 left 19:15 mj41 joined, gravity joined, allbery_b joined, szbalint joined, f00li5h joined, cxreg joined, yves joined, ilbot2 joined, scrottie joined, gbacon joined
pugs_svn r25752 | moritz++ | [t/spec] test next() and last() in map 19:33
19:37 ujwalic joined
ujwalic is this for Rakudo 19:38
19:40 ujwalic left, ujwalic joined
ujwalic is this for Rakudo 19:40
19:40 ffbb left
moritz_ what is for Rakudo? 19:41
ujwalic moritz_: github.com/rakudo/rakudo/tree/master 19:42
moritz_ yes
ujwalic I am building it for win32 it needs parrot/parrot_config 19:43
moritz_ did you do a 'perl Configure.pl --gen-parrot'?
ujwalic yes
moritz_ did it succeed? 19:44
ujwalic failed in between
moritz_ so what was the failure?
ujwalic lost internet connection, power failure 19:45
moritz_ then try a 'make parrot'
and then 'make'
or re-try the Configure step
ujwalic let me re-try
dalek kudo: 051ad51 | (Moritz Lenz)++ | src/setting/Any-list.pm:
remove implicit type constraint in .pairs
19:47
ujwalic where to put OpenGL (GLUT) src in parrot to recognise it 19:48
19:48 justatheory left
japhb ujwalic: Parrot is expecting GL and GLUT headers to be installed into system paths (or /usr/local on unix systems) 19:49
19:49 finanalyst left, Ariens_Hyperion left
ujwalic me on win32 PATH or INCLUDE env varable 19:49
japhb rurban on MAGnet:#parrot keeps altering that 19:50
but yes, I think it should work if you have it in INCLUDE
let me update and check the login 19:51
er
logic
ujwalic let me try them 19:52
japhb ujwalic: looking at the code in config/gen/opengl.pm, it looks like $ENV{INCLUDE} needs to include one or more directories that contain a subdirectory named 'gl', in which should be all the .h files. 19:55
That's for MSVC. For cygwin, it looks in /usr/include/w32api/GL/*.h
ujwalic japhb: me using MSVC, my INCLUDE contains both GL/gl.h and GL/glut.h 19:57
japhb You can run the gen::opengl config step verbose, and it should tell you what headers it finds.
What exactly is your full INCLUDE?
ujwalic INCLUDE=C:\wrk\mesa\Mesa-7.3\include;C:\wrk\glut-3.7.6\include 19:58
japhb OK, and both of those contain GL subdirectories, I assume ... if so, it should find them. 19:59
I'd say, run that config step verbose, and nopaste the output
19:59 Ariens_Hyperion joined
ujwalic ok 20:00
japhb And you probably want to do this in #parrot, since Rakudo doesn't enter the equation until Parrot is happy. ;-)
ujwalic sure :)
japhb ujwalic: just remember, it's on irc.perl.org 20:01
bacek good morning
perl6: my @array = <a b c d>; @array.map: { $_ ~= "c"; $_ ~ "d" }; say ~@array; 20:02
p6eval elf 25752: OUTPUT«Use of uninitialized value in subroutine entry at ./elf_h line 188.␤Can't use string ("") as a subroutine ref while "strict refs" in use at ./elf_h line 188.␤ at ./elf_h line 4377␤» 20:03
..pugs: OUTPUT«*** Can't modify constant item: VStr "a"␤ at /tmp/gGJq06qmSE line 1, column 38-47␤»
..rakudo 051ad5: OUTPUT«ac bc cc dc␤»
bacek perl6: my @array = <a b c>; my %hash = @array.map: { $^a => $^b }; say %hash.perl; 20:09
p6eval rakudo 051ad5: OUTPUT«{"a" => "b"}␤»
..elf 25752: OUTPUT«Use of uninitialized value in subroutine entry at ./elf_h line 188.␤Can't use string ("") as a subroutine ref while "strict refs" in use at ./elf_h line 188.␤ at ./elf_h line 4377␤»
..pugs: OUTPUT«*** Missing required parameters: $a $b␤ at /tmp/VHLHrtAvFS line 1, column 33-59␤»
bacek moritz_: you've got a bug in Any.map. 20:11
moritz_ bacek: that's bad :(
bacek: would you care to elaborate? 20:12
bacek After "for" you should check if (@args) { @args.splice(undef x ($arity-@args)); take (&$expression(|@args) } 20:13
moritz_ is that actually specced?
and I don't know if the signature will accept undef
bacek moritz_: no idea. But is was before in PIR version.
moritz_ that doesn't mean it's actually better 20:14
bacek if signature will not accept undef it's not "map" problem :)
rakudo: sub foo (Int $x, Int $y) { $x+$y }; map &foo, undef x 3; 20:15
p6eval rakudo 051ad5: OUTPUT«Use of uninitialized value␤»
bacek rakudo: sub foo (Int $x, Int $y) { 1 }; say [~] map &foo, undef x 3;
p6eval rakudo 051ad5: OUTPUT«Use of uninitialized value␤␤»
moritz_ anyway, we need spec clarification and tests. 20:16
bacek rakudo: sub foo (Int $x, Int $y) { say "hi"; 1 }; say [~] map &foo, undef x 4;
p6eval rakudo 051ad5: OUTPUT«Use of uninitialized value␤␤»
bacek moritz_: indeed.
What happened in my last example?
moritz_ you need xx for list replication 20:17
bacek rakudo: sub foo (Int $x, Int $y) { say "hi"; 1 }; say [~] map &foo, undef xx 4; 20:18
p6eval rakudo 051ad5: OUTPUT«Parameter type check failed for $x in call to foo␤current instr.: 'die' pc 16009 (src/builtins/control.pir:204)␤»
bacek ah.
moritz_ rakudo: sub foo (Int $x, Int $y) { say "hi"; 1 }; say [~] map &foo, Int xx 4
p6eval rakudo 051ad5: OUTPUT«hi␤hi␤11␤»
dalek kudo: 2daf6b7 | (Moritz Lenz)++ | docs/guide_to_setting.pod:
added "guide to setting" document
bacek moritz_: btw, whats wrong with my List.max? 20:20
moritz_ bacek: I haven't looked at it yet 20:21
bacek moritz_: ah. ok.
moritz_ the three patches I applied caused more works afterwards than I'd expected
bacek hey! pmichaud didn't complain about List.min! :) 20:23
20:24 jedai left
moritz_ well, he did 20:24
though it was the spec that was a bit inaccurate
20:24 lisppaste3 joined
moritz_ btw your .reduce patch also uses x instead of xx 20:25
bacek moritz_: yes. I've fixed it already in my local repo. 20:26
But we need consistent behaviour in map and reduce.
moritz_ aye 20:29
as I said, we need spec clarification and tests.
rakudo: say (1..6).map({$^a + $^b + $^c}).perl 20:32
p6eval rakudo 2daf6b: OUTPUT«[6, 15]␤»
moritz_ perl6: say (1..6).map({$^a + $^b + $^c}).perl 20:33
p6eval rakudo 2daf6b: OUTPUT«[6, 15]␤»
..pugs: OUTPUT«(6, 15)␤»
..elf 25752: OUTPUT«Global symbol "$c" requires explicit package name at (eval 125) line 3.␤ at ./elf_h line 4377␤»
bacek perl6: say (1,2).reduce: { $^a + $^b + $^c } 20:34
p6eval rakudo 2daf6b: OUTPUT«Use of uninitialized value␤3␤»
..pugs: OUTPUT«3␤»
..elf 25752: OUTPUT«Can't call method "reduce" without a package or object reference at (eval 123) line 3.␤ at ./elf_h line 4377␤»
bacek perl6: say (1,2).reduce: { $^a + $^b * $^c } 20:35
p6eval pugs: OUTPUT«1␤»
..elf 25752: OUTPUT«Can't call method "reduce" without a package or object reference at (eval 123) line 3.␤ at ./elf_h line 4377␤»
..rakudo 2daf6b: OUTPUT«Use of uninitialized value␤1␤»
bacek perl6: say (1..4).reduce: { $^a + $^b * $^c } 20:36
p6eval elf 25752: OUTPUT«Can't call method "reduce" without a package or object reference at (eval 124) line 3.␤ at ./elf_h line 4377␤»
..pugs: OUTPUT«7␤»
..rakudo 2daf6b: OUTPUT«Use of uninitialized value␤7␤»
bacek ok, pugs and rakudo agreed about reduce :)
moritz_ but where does the undef warning come from? 20:37
bacek moritz_: second round of reduce. 20:39
* $^c
moritz_ ah 20:40
I somehow misread that
20:40 c9s__ left
moritz_ @tell pmichaud I hope I addressed all your concerns with the built-ins in Perl 6. If so, please close the tickets 20:40
lambdabot Consider it noted.
20:41 c9s__ joined 20:44 Whiteknight joined 20:49 masak joined
masak good evening. 20:49
moritz_ good localtime() 20:50
masak you can tell where my focus is at tonight by the two errors I've found. :) 20:51
pugs_svn r25753 | masak++ | [CORE.pad] fixed value of pi
masak here comes the first one.
the second one is that viv doesn't output valid YAML. 20:52
moritz_ atan2(1,1)*4.14159265 wtf?
moritz_ didn't know that viv emitted yaml at all
masak moritz_: I think it's a typo originating from 3.14159265 being changed to the formula, and the decimals remaining. 20:53
moritz_: viv emits an AST.
the AST is in YAML.
moritz_ ah, that makes sense
masak or, is supposed to be.
the test for that it fails is to try to Load() the YAML output from viv when the input is 'say 2 + 2' 20:54
moritz_ which yaml module did you try?
masak YAML from CPAN.
moritz_ try YAML::XS 20:55
that's the one that emits it
masak (but that shouldn't matter. I believe most of them recognize correct YAML.)
I'll try YAML::XS too.
moritz_ the various YAML modules have slightly different ideas of what YAML actually is
ingy++ currently ports python's yaml module to perl right now, which should be much better
masak ah. 20:56
masak looks forward to meeting ingy on NPW
I want to ask him what happened to Kwid.
YAML::XS approves of the output. moritz_++ 20:57
now I just need to understand why the difference occurs. either they embody two different versions of YAML, or one of the modules is misimplemented. 20:58
moritz_ most likely both are
masak I didn't say 'exactly one' :) 21:00
21:00 donaldh joined
masak need to sleep now. 21:00
g'night.
21:00 masak left
moritz_ good night 21:01
21:05 Ariens_Hyperion left
ujwalic moritz_:on win32 is is unable to find parrot/parrot_config 21:08
moritz_ ujwalic: did parrot compile fine?
ujwalic nop 21:09
21:09 Kimtaro_ joined
moritz_ you need to fix that first. 21:09
ujwalic ya trying
moritz_ I think you can configure parrot to not use any opengl bindings at all 21:10
if that's what causes the trouble
ujwalic now the error is with link
it is using link not link.exe 21:11
moritz_ please try in #parrot
diakopter ujwalic: I'll talk with you about it in #parrot
sry, lag
ujwalic moritz_:thank you
21:27 Kimtaro left
bacek rakudo: multi sub foo(Code &x, *@values) {...}; multi sub foo(*@values) {...}; say foo(sub {}, 1,2,3); 21:28
p6eval rakudo 2daf6b: OUTPUT«Ambiguous dispatch to multi 'foo'. Ambiguous candidates had signatures:␤:(Code x, Any @values)␤:(Any @values)␤␤current instr.: '_block14' pc 101 (EVAL_18:52)␤»
bacek @msg pmichaud "multi sub foo(Code &x, *@values) {...}; multi sub foo(*@values) {...}; say foo(sub {}, 1,2,3)" reason why min() implementation cheating. 21:30
lambdabot Not enough privileges 21:31
bacek @say pmichaud "multi sub foo(Code &x, *@values) {...}; multi sub foo(*@values) {...}; say foo(sub {}, 1,2,3)" reason why min() implementation cheating.
lambdabot Maybe you meant: faq map slap src
moritz_ it's @tell here
bacek: but... no need
bacek ETOOMANYBOTIMPLEMENTATIONS
moritz_ bacek: the spec says that the sub version needs a comparison sub
if one doesn't want that, [min] is fine
bacek so, min(@array) shouldn't work? 21:32
moritz_ no.
bacek Which "no"? :) 21:33
moritz_ no, it shouldn't work.
read S32/Containers
bacek It's open in my vim.
And S29-list/minmax.t as well... 21:34
moritz_ that's not enough, you need to read it ;-)
bacek is min(@array), -3, "basic subroutine form of min works";
moritz_ svn up please
bacek It's called svn rebase here :) 21:35
moritz_ whatever
21:37 netsquire left
bacek svn is terribly slow... 21:37
afk & $work->accept(self) 21:38
21:46 Ariens_Hyperion joined 21:48 rkendall joined
moritz_ rakudo: my $s = 6; sub n ($d) { return $s if $d == 1 }; say n(1).perl 21:56
p6eval rakudo 2daf6b: OUTPUT«6␤»
diakopter rakudo: my $s = '"6"'; sub n ($d) { return $s if $d == 1 }; say n(1).perl
p6eval rakudo 2daf6b: OUTPUT«"\"6\""␤»
diakopter rakudo: my $s = '6'; sub n ($d) { return $s if $d == 1 }; say n(1).perl 21:57
p6eval rakudo 2daf6b: OUTPUT«"6"␤»
diakopter nice
moritz_ tries to reduce a really nasty rakudo bug to a smaller example
rakudo: my $a = 3, my $x = 5; say $x.perl; 21:59
p6eval rakudo 2daf6b: OUTPUT«Unable to set lvalue on PAST::Val node␤current instr.: 'parrot;PAST;Val;lvalue' pc 566 (src/PAST/Node.pir:161)␤»
moritz_ stupid
22:01 kjwcode joined 22:02 donaldh left
kjwcode Where does one find information on PerlA 6, as described in docs/guide_to_setting.pod in the Rakudo distribution? 22:04
22:08 Ariens_Hyperion left
moritz_ did you mean Perl 6? 22:09
the space between "Perl" and "6" is a non-breaking space, if your editor shows that PerlA 6, it means that its UTF-8 support is borken 22:10
diakopter probably pasted from guide_to_setting.pod ...?
moritz_ oh, it seems perldoc assumes latin1 as default
kjwcode moritz_: I was reading it in perldoc -- that may explain it. I was confused when I saw "PerlA".
Thank you for clearing that up. :) 22:11
moritz_ kjwcode: I'll add an =encoding directive, maybe that helps
kjwcode moritz_: Sounds great. Thank you!
moritz_ kjwcode: changes pushed - could you please pull and try again?
kjwcode moritz_: That's got it -- now showing as Perl 6. 22:12
moritz_ great
anyway, that documents needs more contents I guess 22:13
dalek kudo: ab00c66 | (Moritz Lenz)++ | docs/guide_to_setting.pod:
[docs] add an =encoding directive for kjwcode++
kjwcode Yup -- I think it gives me enough of a hint to play around a bit, when combined with the checkin message for perl6.pir. That's where I register things defined in src/settings, right? 22:14
moritz_ kjwcode: no. New files need to be added to build/Makefile.in 22:20
kjwcode moritz_: That makes sense. I'm reading through the tidings for March 2009, which give some detail as to what the settings are and how to work with them. Shall I submit a patch that adds that link to guide_to_setting.pod? 22:21
moritz_ kjwcode: I can just add it, since I'm editing it right now anyway 22:22
kjwcode moritz_: Sounds good. Do the docs at svn.pugscode.org/pugs/docs/Perl6/Sp...g-library/ still mostly apply, or is that too Pugs-specifc? 22:23
moritz_ kjwcode: they mostly apply, but they are not fully up-to-date
kjwcode Is there a better set of docs at the moment? 22:24
moritz_ no
we need to fix them 22:25
kjwcode Okay, cool -- that's likely enough to get me started. Is there a canonical "to-do" list?
moritz_ no
we respect the freedom of others so much that we don't tell them what to do, even when they ask for it :-) 22:27
dalek kudo: 8bbc31c | (Moritz Lenz)++ | docs/guide_to_setting.pod:
add links to guide_to_setting.pod.

asking.
kjwcode Works for me. :) I should play with it and try to make it work before I try to dig in too much, anyway. 22:28
ujwalic :) 22:37
22:41 kjwcode left 23:05 |jedai| joined 23:08 Porsbo left, Porsbo joined
ujwalic how to install rakudo in diff dir 23:12
moritz_ 1) write the installer 2) install it 3) ... 4) profit! 23:13
ujwalic got it :)
moritz_ 3) should be "submit patch" ;-)
23:14 PacoLinux left 23:18 aindilis joined
pmichaud hello, all 23:21
lambdabot pmichaud: You have 1 new message. '/msg lambdabot @messages' to read it.
23:21 M_o_C left
moritz_ hi pmichaud 23:21
23:23 bacek_ joined
pmichaud moritz++ # starting settings guide 23:24
I'm hoping I'll have time (+energy) to flesh a lot of this stuff out later tonight.
but I'm very glad you're starting them for us.
23:28 kate21de1 joined 23:30 justatheory joined 23:34 kate21de left
pmichaud afk # dinner 23:40
23:44 rkendall left
mikehh built parrot r37210 and rakudo usihg it passes make spectest - took over half-an-hour 23:48
moritz_ yes, it's slow since parallel testing doesn't work anymore :( 23:49
mikehh I was looking at that - have a couple of ideas I am thinking about
23:50 sparc_ left
mikehh how do I figure out the rakudo revision? 23:50
moritz_ git-show HEAD|grep ^commit 23:51
mikehh commit 8bbc31c6073002c97dc1dc7a64d5a1ba3c73840d ? 23:52
moritz_ aye 23:53
mikehh hmmmmnnn :-}
moritz_ the "joy" of a distributed version control system: not having a short commit identifier 23:54
though usually the first six to eight digits are enough
mikehh well it seems to include the revision you posted about an hour or so ago 23:55
moritz_ rakudo: print 1 23:56
p6eval rakudo 8bbc31: OUTPUT«1»
moritz_ so p6eval uses the first 6
mikehh it seens to work fine with parrot and rakudo in deparate directories in my home directory 23:57
separate
23:57 wayland76 left
moritz_ nice 23:58
23:58 wayland76 joined
mikehh I did a perl Configure.pl --parrot-config=../parrot/myconfig 23:58
moritz_ anyway, bed time here - have the appropriate amount of fun ;-) 23:59
wayland76 g'night :)
...and good morning to everyone else :)
mikehh same for me I think - I will test on AMD64 in the morning