Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-06-08

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:12 bacek perl6: say (1..Inf)[5]
00:13 p6eval kp6 r20713: OUTPUT[syntax error at position 4, line 1 column 4:␤say (1..Inf)[5␤    ^ HERE␤]
00:13 p6eval ..pugs: OUTPUT[6␤]
00:13 p6eval ..rakudo r28172: OUTPUT[get_pmc_keyed() not implemented in class 'Range'␤current instr.: '_block11' pc 55 (EVAL_14:25)␤
00:13 p6eval ..elf r20713: OUTPUT[Use of uninitialized value in range (or flip) at (eval 14) line 3.␤Can't use string ("") as an ARRAY ref while "strict refs" in use at (eval 14) line 3.␤ at ./elf_f_faster line 4492␤]
01:02 alanhaggai joined #perl6
01:16 simcop2387 joined #perl6
01:20 Auzon rakudo: my @arr = <foo bar baz>; @arr .= chomp; @arr.perl.say;
01:20 p6eval rakudo r28172 OUTPUT[Method 'chomp' not found for invocant of class 'Perl6Array'␤current instr.: '_block11' pc 77 (EVAL_10:29)␤
01:20 Auzon rakudo: my @arr = <foo bar baz>; @arr.chomp; @arr.perl.say;
01:20 p6eval rakudo r28172 OUTPUT[Method 'chomp' not found for invocant of class 'Perl6Array'␤current instr.: '_block11' pc 76 (EVAL_9:29)␤
01:21 Auzon rakudo: $_ = "HI"; .lc; .say;
01:21 p6eval rakudo r28172 OUTPUT[No result object␤current instr.: 'parrot;PCT::Grammar;item' pc 48 (src/PCT/Grammar.pir:64)␤
01:21 Auzon rakudo: $_ = "HI"; $_.lc; $_.say;
01:21 p6eval rakudo r28172 OUTPUT[too few arguments passed (0) - 1 params expected␤current instr.: '_block11' pc 0 (EVAL_8:3)␤
01:22 Auzon rakudo: $_ = "HI"; say lc($_)
01:22 p6eval rakudo r28172 OUTPUT[too few arguments passed (0) - 1 params expected␤current instr.: '_block11' pc 0 (EVAL_12:3)␤
01:22 Auzon rakudo: say lc("HI")
01:22 p6eval rakudo r28172 OUTPUT[hi␤]
01:25 Ched- joined #perl6
01:28 bacek joined #perl6
01:45 diakopter converting yap6 to continuation passing style so parsers can mutate themselves at parse time even more freely/easily.
01:45 diakopter (and yes, that's from HOP too)
01:50 nothingmuch @tell ruoso http://www.ccs.neu.edu/scheme/pubs/stackhack4.html
01:50 lambdabot Consider it noted.
01:52 nothingmuch @tell ruoso that link should illustrate how to build a CPS with SLIMEy frame abstractions over C/llvm using setjmp or llvm's exceptions
01:52 lambdabot Consider it noted.
02:01 pugs_svnbot r20714 | Auzon++ | [gsoc_spectest] Adding new tests for samebase in S29. (7 tests added)
02:02 Auzon S29 is so huge. I've looked over it around 8 times, and I usually see one or two things to add each time
02:13 Auzon perl6: say +<a b c d>
02:13 p6eval kp6 r20714: OUTPUT[␤]
02:13 p6eval ..pugs: OUTPUT[4␤]
02:13 p6eval ..rakudo r28172: OUTPUT[4␤]
02:13 p6eval ..elf r20714: OUTPUT[4␤]
02:22 pugs_svnbot r20715 | Auzon++ | [gsoc_spectest] added mention of pos and length to deprecated-syntax.pod. Also added a test to check that Str.pos is gone. (added 1 test)
02:42 kanru joined #perl6
03:16 eternaleye joined #perl6
03:27 simcop2387 joined #perl6
03:31 drbean joined #perl6
03:32 sri_work joined #perl6
03:33 rhr joined #perl6
03:37 sri_work_ joined #perl6
03:47 justatheory joined #perl6
03:56 stevan_ joined #perl6
04:03 stevan_ joined #perl6
04:07 alester joined #perl6
04:16 pmichaud Auzon, moritz: ping
04:36 pmichaud never mind ping -- sent question to p6c instead  ('split' in S29)
04:36 pmichaud afk, sleep
05:12 kaether_ joined #perl6
05:27 pugs_svnbot r20716 | lwall++ | [STD5] quote start/stop now uses parametric roles
05:27 pugs_svnbot r20716 | lwall++ | rule ast is now stored per-package including evaled role packages
05:27 pugs_svnbot r20716 | lwall++ | lexer cache now uses separate subdirectories for every sublanguage
05:28 simcop2387 joined #perl6
05:28 pugs_svnbot r20717 | lwall++ | [cheat] subsumed into gimme5
05:42 simcop2387 joined #perl6
05:54 pen1 joined #perl6
06:06 ikeda joined #perl6
06:08 Jedai joined #perl6
06:17 ikeda_ joined #perl6
06:19 Psyche^ joined #perl6
06:51 alanhaggai joined #perl6
07:03 rindolf joined #perl6
07:14 pugs_svnbot r20718 | moritz++ | [spec] removed "unspecced" marking of grep tests that mutate $_
07:14 pugs_svnbot r20718 | moritz++ | The same has been discussed for map.t already
07:16 meppl joined #perl6
07:39 kaether_ joined #perl6
07:40 iblechbot joined #perl6
08:08 barney joined #perl6
09:32 alanhaggai joined #perl6
09:49 ruoso joined #perl6
09:56 kst joined #perl6
10:06 sri_work joined #perl6
10:19 edpratomo joined #perl6
10:27 ddwagnz joined #perl6
10:28 ddwagnz left #perl6
10:37 mjk joined #perl6
10:39 bacek joined #perl6
10:44 sri_work_ joined #perl6
10:50 mjk joined #perl6
10:50 mjk joined #perl6
10:56 alanhaggai joined #perl6
11:02 broquain1 joined #perl6
11:20 bacek perl6: say elems(1,2,3,4)
11:20 p6eval kp6 r20718: 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(0x824bdfc)', 'APPLY', 'HASH(0x8e4df08)', 'HASH(0x8e52500)', 'HASH(0x8e52554)', 'HASH(0x8e525a8)') called at
11:20 p6eval ..compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169␤  main::D...
11:20 p6eval ..pugs: OUTPUT[*** No compatible multi variant found: "&elems"␤    at /tmp/xkrJ733Arw line 1, column 5 - line 2, column 1␤]
11:20 p6eval ..rakudo r28182: OUTPUT[4␤]
11:20 p6eval ..elf r20718: OUTPUT[Undefined subroutine &GLOBAL::elems called at (eval 14) line 3.␤ at ./elf_f_faster line 4492␤]
11:20 bacek perl6: say elems (1,2,3,4)
11:20 p6eval kp6 r20718: 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(0x8e52670)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169␤
11:20 p6eval ..main::DISPATCH('HASH(0x824be0c)', 'APPLY', 'HASH(0x8e52670)') ca...
11:20 p6eval ..pugs: OUTPUT[4␤]
11:20 p6eval ..rakudo r28182: OUTPUT[4␤]
11:20 p6eval ..elf r20718: OUTPUT[Undefined subroutine &GLOBAL::elems called at (eval 14) line 3.␤ at ./elf_f_faster line 4492␤]
11:20 bacek hmm...
11:33 Jedai joined #perl6
11:33 sri_work joined #perl6
11:45 bacek perl6: say  <5 -3 7 0 1 -9>[0].WHAT
11:45 p6eval kp6 r20718: OUTPUT[5␤]
11:45 p6eval ..pugs: OUTPUT[Str␤]
11:45 p6eval ..rakudo r28182: OUTPUT[Str␤]
11:45 p6eval ..elf r20718: OUTPUT[Str␤]
11:46 bacek perl6: my @a= <5 -3 7 0 1 -9>; say @a[1] cmp @a[5];
11:46 p6eval kp6 r20718: 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(0x824c0e4)', 'APPLY', 'HASH(0x8e57cd4)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169␤
11:46 p6eval ..main::DISPATCH('HASH(0x824c0e4)', 'APPLY', 'HASH(0x8e57cd4)') ca...
11:46 p6eval ..pugs: OUTPUT[-1␤]
11:46 p6eval ..rakudo r28182: OUTPUT[-1␤]
11:46 p6eval ..elf r20718: OUTPUT[-1␤]
11:47 bacek perl6: say -3 cmp -9
11:47 p6eval kp6 r20718: 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(0x824c06c)', 'APPLY') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169␤
11:47 p6eval ..main::DISPATCH('HASH(0x824c06c)', 'APPLY') called at compiled/perl5-kp6-mp6/lib/Kin...
11:47 p6eval ..pugs: OUTPUT[1␤]
11:47 p6eval ..rakudo r28182: OUTPUT[1␤]
11:47 p6eval ..elf r20718: OUTPUT[-1␤]
11:47 bacek perl6: my @a= <5 -3 7 0 1 -9>; say @a[1], ' , @a[5];say @a[1] cmp @a[5];
11:48 bacek perl6: my @a= <5 -3 7 0 1 -9>; say @a[1], ' ', @a[5];say @a[1] cmp @a[5];
11:48 p6eval kp6 r20718: No output (you need to produce output to STDOUT)
11:48 p6eval ..pugs: OUTPUT[*** ␤    Unexpected end of input␤    expecting "\\", variable name or "'"␤    at /tmp/K2fkwUCmIZ line 2, column 1␤]
11:48 p6eval ..rakudo r28182: OUTPUT[Statement not terminated properly at line 1, near "' , @a[5];"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
11:48 p6eval ..elf r20718: OUTPUT[Parse error in: /tmp/mhlCTcMi13␤panic at line 1 column 36 (pos 36): Error in quotesnabber␤WHERE:  <5 -3 7 0 1 -9>; say @a[1], ' , @a[5];say @a[1] cmp @a[5];␤WHERE:                              /\<-- HERE␤  STD_red/prelude.rb:98:in `panic'␤  STD_red/std.rb:1286:in
11:48 moritz_ ENOCLOSING '
11:48 p6eval ..`quotesnabber'␤  (eval):1:in `__quote_4317723'␤  STD_red/prelude.rb:404:in `...
11:48 p6eval kp6 r20718: 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(0x824c1b4)', 'APPLY', 'HASH(0x8e5a49c)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169␤
11:48 p6eval ..main::DISPATCH('HASH(0x824c1b4)', 'APPLY', 'HASH(0x8e5a49c)') ca...
11:48 p6eval ..pugs: OUTPUT[-3 -9␤-1␤]
11:48 p6eval ..rakudo r28182: OUTPUT[-3 -9␤-1␤]
11:48 p6eval ..elf r20718: OUTPUT[-3␤ ␤-9␤-1␤]
11:52 bacek pugs: my @a= <5 -3 7 0 1 -9>; say @a.min
11:52 p6eval OUTPUT[-9␤]
12:03 bacek perl6: say "-1".abs
12:03 p6eval kp6 r20718: OUTPUT[no method 'abs' in Class 'Str'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤        KindaPerl6::Runtime::Perl5::MOP::__ANON__('HASH(0x8e4ec54)', 'abs') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169␤
12:03 p6eval ..main::DISPATCH('HASH(0x8e4ec54)', 'abs') called at - line 11␤]
12:03 p6eval ..pugs: OUTPUT[1␤]
12:03 p6eval ..rakudo r28182: OUTPUT[Method 'abs' not found for invocant of class 'Perl6Str'␤current instr.: '_block11' pc 31 (EVAL_12:17)␤
12:03 p6eval ..elf r20718: OUTPUT[Can't call method "abs" without a package or object reference at (eval 14) line 3.␤ at ./elf_f_faster line 4492␤]
12:04 bacek perl6: say abs("-1")
12:04 p6eval kp6 r20718: 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(0x824bda4)', 'APPLY', 'HASH(0x8e4db34)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169␤
12:04 p6eval ..main::DISPATCH('HASH(0x824bda4)', 'APPLY', 'HASH(0x8e4db34)') ca...
12:04 p6eval ..pugs: OUTPUT[1␤]
12:04 p6eval ..rakudo r28182: OUTPUT[absolute() not implemented in class 'Perl6Str'␤current instr.: '_block11' pc 25 (EVAL_12:17)␤
12:04 p6eval ..elf r20718: OUTPUT[Undefined subroutine &GLOBAL::abs called at (eval 14) line 3.␤ at ./elf_f_faster line 4492␤]
12:26 bacek rakudo: say (1..3).join;
12:26 p6eval rakudo r28182 OUTPUT[Method 'join' not found for invocant of class 'Range'␤current instr.: '_block11' pc 49 (EVAL_13:20)␤
12:26 bacek yak...
12:27 bacek rakudo: say "".reverse
12:27 p6eval rakudo r28182 OUTPUT[Method 'join' not found for invocant of class 'List'␤current instr.: 'parrot;Perl6Str;reverse' pc 725 (src/gen_builtins.pir:477)␤
12:28 moritz_ ouch
12:28 moritz_ rakudo: say "abc".reverse
12:28 p6eval rakudo r28182 OUTPUT[Method 'join' not found for invocant of class 'List'␤current instr.: 'parrot;Perl6Str;reverse' pc 725 (src/gen_builtins.pir:477)␤
12:28 bacek someone commited List.pir with 'join' commented out.
12:28 bacek rakudo: say reverse("")
12:28 p6eval rakudo r28182 OUTPUT[␤]
12:29 bacek rakudo: say reverse('Pugs')
12:29 p6eval rakudo r28182 OUTPUT[Pugs␤]
12:30 bacek great...
12:38 bacek rakudo: say item(reverse('foo'))
12:38 p6eval rakudo r28182 OUTPUT[Could not find non-existent sub item␤current instr.: '_block11' pc 39 (EVAL_12:18)␤
12:39 sri_work joined #perl6
12:50 diakopter anyone know how to execute an inline block *that returns something* in Perl 5?
12:51 moritz_ do { ... }
12:51 moritz_ my $x = do { ... };
12:51 diakopter oh :)  that was too easy.
12:51 moritz_ ;)
12:53 sri_work joined #perl6
12:55 pmurias joined #perl6
12:58 sri_work joined #perl6
12:58 diakopter moritz_: ok, extend that question with: and then immediately executes an anonymous subroutine that's returned by the block *without assigning the anonymous subroutine to a coderef*
12:59 diakopter (b/c I don't want to have to use eval to invent a unique coderef name
12:59 moritz_ (do { ...} )->()
12:59 diakopter )
12:59 diakopter hrmf
12:59 moritz_ buubot: eval: print ( do { sub { 3}  })->()
12:59 buubot moritz_:  CODE(0x86fe948)undef
12:59 moritz_ buubot: eval: print +( do { sub { 3}  })->()
12:59 buubot moritz_:  31
13:00 moritz_ buubot: eval:  +( do { sub { 3}  })->()
13:00 buubot moritz_:  3
13:00 pmurias diakopter: why don't you use . for concatenate?
13:00 pmurias diakopter: re overloading
13:00 diakopter pmurias: it is, now
13:00 diakopter for concatenate with no intervening whitespace allowed
13:01 diakopter | allows optional whitespace; - enforces the presence of whitespace
13:01 diakopter and I'm adding two more now
13:01 diakopter postfix autoincrement will signify mandatory trailing whitespace
13:02 diakopter and postfix autodecrement will signify optional trailing whitespace
13:03 meteorjay joined #perl6
13:04 sri_work joined #perl6
13:06 diakopter to make constructs like this prettier:  token1 + o(o(p6ws) + token2)  becomes  token1 + o(~token2)   and  o(token2 + p6ws) + token1  becomes  o(token2++) + token1    etc
13:06 diakopter hopefully the rule p6ws won't ever have to be directly referenced
13:07 diakopter also I'll overload ! to be the negative lookahead
13:08 diakopter you don't need positive lookahead (obviously) in RD parsers
13:08 diakopter since that's all it ever does....
13:08 diakopter pmurias: ok?
13:10 diakopter I'm trying to optimize this syntax not just for readability of the STD_hand grammar, but also the future readability of the grammars generated (from both STD.pm and from inline operation mutation/creation and grammar declaration/application)
13:11 pmurias diakopter: seems ok
13:11 pmurias shouldn't | mean perl6 longest token alteration?
13:12 diakopter now I just finished converting all the parser generators over to CPS, so that they can modify both the input stream and the continuation parser/handler itself
13:12 diakopter pmurias: it does!  now :) which I haven't checked in
13:12 diakopter I added longest-token-matching (by default) to alternate()
13:12 diakopter that will obviously slow it down LOTS
13:13 diakopter I added that a few hours ago
13:14 diakopter I guess & could mean first match
13:14 diakopter since it's at the same Perl 5 operator precedence level
13:14 moritz_ & has a meaning of its own in p6 regexes
13:15 diakopter right, but this isn't even the translation stage, yet
13:15 diakopter I'm not trying to replicate the Perl 6 syntax in Perl 5
13:15 diakopter just make it easier to express RD grammars in Perl 5
13:16 diakopter in the translation stage, we'll use STD_hand to read STD.pm, and then generate a Perl6in5::Grammar from it, called STD_auto.pm
13:17 diakopter similar to what TimToady is doing in gimme5
13:18 p6eval joined #perl6
13:20 diakopter I'm attending YAPC::NA again this year, and I want to have STD_hand done (so that it can at least generate an AST from STD.pm) by then... so maybe people there will take an interest and pitch in to implement the marriage with elf/smop/whatever
13:21 diakopter can pugs implement grammar-switching/mutation in BEGIN {}?
13:21 diakopter I know it does inline operators
13:21 pmurias don't think so
13:21 pmurias pugs grammar is coded in haskell
13:22 diakopter can any of the other implementations do that yet?
13:23 moritz_ no
13:23 diakopter then one of my goals is for yap6 to be the first to prove that concept
13:23 moritz_ kp6 does BEGIN blocks, but they don't modify the grammar
13:23 moritz_ btw what's the syntax for grammar switching?
13:23 moritz_ I think pugs has limited support for macros, though
13:28 diakopter I don't think there will be a Perl6in5::Grammar syntax for grammar switching; it'll built into some special parser constructor/handler.  if a "use GrammarX" (I think that's the Perl 6 syntax???) statement is encountered, special parse-time handling will occur to interpret/evaluate (using the grammar-translation continuation handlers) that particular branch of the AST (and probably everything up to it, which is why it's good for ...
13:28 diakopter ... such things to be in a BEGIN block) to generate the new/modified grammar, and use that instead of the continuation parser that was passed to the "use GrammarX" parser.  Macros would work the same way.  Same with quoting (including balanced stop character detection).
13:29 diakopter where "that particular branch of the AST" is the previously declared  grammar GrammarX {} or whatever
13:30 bacek perl6: say 'a' <=> 'b'
13:30 p6eval kp6 r20718: OUTPUT[0␤]
13:30 p6eval ..pugs: OUTPUT[0␤]
13:30 p6eval ..rakudo r28182: OUTPUT[0␤]
13:30 p6eval ..elf r20718: OUTPUT[Argument "b" isn't numeric in numeric comparison (<=>) at (eval 14) line 3.␤Argument "a" isn't numeric in numeric comparison (<=>) at (eval 14) line 3.␤0␤]
13:30 bacek perl6: say 'a' <=> 'a'
13:30 p6eval kp6 r20718: OUTPUT[0␤]
13:30 p6eval ..pugs: OUTPUT[0␤]
13:30 p6eval ..rakudo r28182: OUTPUT[0␤]
13:30 p6eval ..elf r20718: OUTPUT[Argument "a" isn't numeric in numeric comparison (<=>) at (eval 14) line 3.␤Argument "a" isn't numeric in numeric comparison (<=>) at (eval 14) line 3.␤0␤]
13:30 bacek perl6: say 'a' cmp 'b'
13:30 p6eval kp6 r20718: 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(0x824bf44)', 'APPLY', 'HASH(0x8e56c0c)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169␤
13:30 p6eval ..main::DISPATCH('HASH(0x824bf44)', 'APPLY', 'HASH(0x8e56c0c)') ca...
13:30 p6eval ..pugs: OUTPUT[-1␤]
13:30 p6eval ..rakudo r28182: OUTPUT[-1␤]
13:30 p6eval ..elf r20718: OUTPUT[-1␤]
13:31 bacek perl6: say 'b' cmp 'b'
13:31 p6eval kp6 r20718: 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(0x824bf44)', 'APPLY', 'HASH(0x8e56c0c)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169␤
13:31 p6eval ..main::DISPATCH('HASH(0x824bf44)', 'APPLY', 'HASH(0x8e56c0c)') ca...
13:31 p6eval ..pugs: OUTPUT[0␤]
13:31 p6eval ..rakudo r28182: OUTPUT[0␤]
13:31 p6eval ..elf r20718: OUTPUT[0␤]
13:31 diakopter bacek: would you message p6eval directly while a conversation is occuring please?
13:31 diakopter esp if you're using perl6:
13:32 moritz_ diakopter: I was refering to the Perl 6 syntax for grammar switching - and I think you're right that it's somehow done through 'use'
13:33 diakopter and since 'use' statements need (still) to be applied at parse-time anyway (as in Perl 5) in their own compilation unit (just like BEGIN), that same "use" handler would be "use"d.
13:36 diakopter and as TimToady said previously, "use" statements fall into the category of things that halt the longest-token-matcher and commit to a branch immediately
13:36 diakopter at least, if my understanding of what he said is correct.
13:37 moritz_ evalbot control restart
13:37 pugs_svnbot r20719 | moritz++ | [evalobt] truncate noisy kp6 error messages
13:37 moritz_ diakopter: makes sense to me
13:37 p6eval joined #perl6
13:37 * diakopter listens to the rain
13:39 diakopter so, it seems that anything that requires the cessation of the current compilation unit requires an execute-up-till-this-point jump, including eval{}
13:40 pmurias moritz_: what debian branch should i use on a new laptop?
13:40 moritz_ uhm, there is no eval {} anymore, just eval '...'
13:40 diakopter right, whichever :D
13:40 moritz_ pmurias: lenny is pretty good atm, I use it on my desktop for some time now
13:41 pmurias diakopter: it's try {}
13:41 diakopter pmurias, I know, I still mean eval ""
13:41 moritz_ pmurias: Etch is likely to be outdated, but you can use Etch + EtchAndHalf for newer drivers
13:41 * moritz_ doesn't recommend sid though. Sid is evil ;)
13:42 pmurias lenny is testing?
13:42 * yath forgot to report a bug early enough to get it into etchandahalf :-(
13:42 yath so i'll have to recompile kernels every time now
13:42 yath *sigh*
13:43 diakopter I really need to deprecate/fix this stupid gt0() function I created... it's rather broken
13:43 moritz_ yath: not so bad. If you run stable, you don't need to recompile your kernel very often
13:43 moritz_ yath: and most of the time it's simply a matter of running make-kpkg
13:44 yath moritz_: in the last four weeks there were about five or six DSAs just dealing with kernel stuff :(
13:44 moritz_ yath: I know, but most didn't affect desktop machines
13:44 yath moritz_: it's not that compiling a kernel on POWER6 takes long, but it's just an extra step instead of apt-get update && apt-get upgrade
13:45 moritz_ yath: ok, I agree with that. So use Lenny instead ;-)
13:45 diakopter I kindof want to kill pugs_svnbot and replace with dalek, since dalek has decent flood prevention, so my longer commit messages work :)
13:46 yath moritz_: not until it's stable :P problem is, in our corporate network i have no direct internet access, so i have to have to get the new packages from security.d.o all the time, run dpkg-scanpackages and so forth
13:46 moritz_ yath: ok, $work is a good reason :/
13:47 yath fortunately i have limited access to a DMZ. so i wrote a perl-ten-liner that merges the output of ls /mirror with Packages.gz and builds a zip with the new packages ;)
13:47 moritz_ hey, we need #os_perl where perl people can discuss and rant about various OS ;)
13:47 yath .o(emacs--)
13:48 moritz_ ;-)
13:48 diakopter pmurias: OOPS I got my operators wrong when telling them to you earlier.... SLAP forehead.  "." enforces no whitespace, "+" enforces whitespace, "-" allows optional whitespace
13:48 diakopter that way, ++ and -- are consistent as the trailing ones
13:51 diakopter I guess ~ will be the optional leading whitespace, and ^ for mandatory leading whitespace (even though that meaning is nearly opposite its other meanings; oh well)
13:51 diakopter oh wait, no, can't be ^
13:51 * diakopter looks for a unary prefix that's so far unused
13:52 diakopter I wonder if there's any way to overload unary + and - ....?
13:52 moritz_ @tell Auzon re t/spec/S29-str/pos.t dies_ok needs a code ref, so either use eval_dies_ok or dies_ok({$str.pos}) instead. I'm going to fix and enhance it...
13:52 lambdabot Consider it noted.
13:52 * diakopter reads perlovl
13:54 bacek perl6:  say  <a b A c b d>.sort: { lc $^a eq lc $^b }
13:54 pugs_svnbot r20720 | moritz++ | [spec] fixed pos.t test that used a dies_ok() inappropriately
13:54 p6eval kp6 r20719: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
13:54 p6eval ..pugs: OUTPUT[abAcbd␤]
13:54 p6eval ..rakudo r28182: OUTPUT[bdacAb␤]
13:54 p6eval ..elf r20719: OUTPUT[Aabbcd␤]
13:54 moritz_ uhm, sorting with 'eq' doesn't make much sense ;)
13:55 bacek moritz_, it's from S29-list/uniq.t...
13:55 bacek perl6:  say  <a b A c b d>.sort: { lc $^a cmp lc $^b }
13:55 p6eval kp6 r20720: OUTPUT[error in Block at compiled/perl5-kp6-mp6/lib/KindaPerl6/Grammar/Sub.pm line 753, <> line 1.␤*** Syntax Error in Block: missing closing curly bracket  ␤]
13:55 p6eval ..pugs: OUTPUT[aAbbcd␤]
13:55 p6eval ..rakudo r28182: OUTPUT[aAbbcd␤]
13:55 p6eval ..elf r20720: OUTPUT[Aabbcd␤]
13:56 moritz_ bacek: it does make sense for unique()
13:56 bacek moritz_, why?
13:57 moritz_ bacek: because uniqueness doesn't need a total ordering ;)
13:57 moritz_ you just have to know if two items are identical to return a unique subset
13:58 bacek moritz_, too bad... I try to reimplement quadratic algo with something better...
13:58 moritz_ bacek: you can only do that for the default comparator
13:59 moritz_ and for sane cases like numbers and strings
13:59 yath oh. just read that package'var is gone.
13:59 yath so no Acme::don't anymore :(
14:00 pmurias yath: suprised? ;)
14:00 yath pmurias: well, not really :) ' was perl4, wasn't it?
14:01 pmurias cannt tell i'm not old enough to rememer '
14:03 pugs_svnbot r20721 | moritz++ | [t] more content for deprecated-syntax.pod:
14:03 pugs_svnbot r20721 | moritz++ |  * (in)correct usage of dies_ok
14:03 pugs_svnbot r20721 | moritz++ |  * "my" in pointy block signatures
14:04 diakopter oh good, I think unary +- are overloadable... just need a dispatch handler to tell if the 2nd argument is undef...
14:04 moritz_ ... and hope that there's no legal case with the 2nd arg being undef ;)
14:05 diakopter moritz_: there can't be; all of the parser generators must return a valid parser.. if they don't, they're broken
14:05 diakopter the root level parser generators aren't dynamic...
14:05 moritz_ diakopter: good ;)
14:06 diakopter now, the ones that are parameterized... those can fail on invalid input
14:06 diakopter so they'll have to trap such errors
14:11 jhorwitz joined #perl6
14:14 diakopter the biggest benefit of these infix concatenate variants is that they always expect two and only two argument parsers.  This makes a lot of the recursion in the parser generators unnecessary; the recursion is handled by Perl 5's operator precedence levels.
14:24 diakopter hunh.  I wonder if this means that perl5: "string" + undef does the same thing as +"string"
14:24 moritz_ uhm, yes. Both return 0 + optionally a warning
14:25 diakopter buubot: eval: ("42" + undef)
14:25 buubot diakopter:  42
14:26 diakopter buubot: eval: (+"42")
14:26 buubot diakopter:  42
14:26 diakopter buubot: eval: ("42")
14:26 buubot diakopter:  42
14:27 diakopter ok, I guess it intifies it regardless
14:29 bacek moritz_, in which spec uniq defined? I can't find it in http://svn.pugscode.org/pugs/docs/Perl6/Spec/Functions.pod
14:31 * diakopter tries to imagine how to detect infinite recursion in CPS
14:32 moritz_ bacek: doesn't seem to be specced at all ;)
14:36 bacek moritz_, ouch...
14:36 chris2 joined #perl6
14:36 pmurias diakopter: how do you do in a "normal" setting?
14:38 diakopter pmurias: how do I do?
14:39 jan_ joined #perl6
14:40 pmurias diakopter: how do you detect infinite recursion in a "normal setting"?
14:40 pmurias ;)
14:41 diakopter pmurias: oh; previously, depth for each parser_coderef+input_arrayref was stored in a global hash, and if a given parser detected it had descended within itself too many items on the exact same input, it returned false
14:42 diakopter too many times
14:42 diakopter where too many was 50 or 500
14:42 diakopter or whatever
14:43 diakopter hm, I guess to do it in CPS would be the same thing; the received continuation would just be ignored for this purpose.
14:44 bacek rakudo: say 'a' <=> 'b'
14:44 p6eval rakudo r28182 OUTPUT[0␤]
14:45 moritz_ that is currect
14:48 diakopter pmurias: does that sound okay?
14:49 diakopter obviously it places a limit on detectable nested expressions
14:49 diakopter I should say, detectable right-associated expressions
14:49 diakopter detectable right-associated nested expressions
15:02 bacek rakudo: my $a = []; say $a.join;
15:02 p6eval rakudo r28182 OUTPUT[Method 'join' not found for invocant of class 'Arrayref'␤current instr.: '_block11' pc 56 (EVAL_10:23)␤
15:02 pmurias diakopter: sounds vagely ok
15:10 bacek pugs: say ~@array.uniq: { lc $^a eq lc $^b },  "a b c d", "method form of uniq with own comparator works";
15:10 p6eval OUTPUT[*** ␤    Unexpected "."␤    expecting "::"␤    Variable "@array" requires predeclaration or explicit package name␤    at /tmp/p0qq2X0lcV line 1, column 12␤]
15:10 bacek pugs: say ~@array.uniq:{ lc $^a eq lc $^b },  "a b c d", "method form of uniq with own comparator works";
15:10 p6eval OUTPUT[*** ␤    Unexpected "."␤    expecting "::"␤    Variable "@array" requires predeclaration or explicit package name␤    at /tmp/9TTM5Ldixp line 1, column 12␤]
15:10 bacek pugs: say (~@array.uniq: { lc $^a eq lc $^b }),  "a b c d", "method form of uniq with own comparator works";
15:10 p6eval OUTPUT[*** ␤    Unexpected "."␤    expecting "::"␤    Variable "@array" requires predeclaration or explicit package name␤    at /tmp/k22X1qGyQi line 1, column 13␤]
15:11 bacek pugs: my @array=<a b A c b d>; say ~@array.uniq: { lc $^a eq lc $^b },  "a b c d", "method form of uniq with own comparator works";
15:11 p6eval OUTPUT[a b A c d <SubBlock(<anon>)> a b c d method form of uniq with own comparator works␤]
15:24 kcwu joined #perl6
15:26 mncharity joined #perl6
15:28 pmurias mncharity: hi
15:42 dominiko joined #perl6
15:46 pmurias mncharity: does STD_red lack much to parse STD.pm?
15:56 polettix joined #perl6
16:12 sri_work joined #perl6
16:50 justatheory joined #perl6
16:57 pmurias TimToady: there is a bug in gimme5, regex foo { (aa|a) a } dosn't match 'aa' as || is always ratchety even with $MAYBACKTRACK
17:16 if joined #perl6
17:27 rakudo_svn r28183 | pmichaud++ | [rakudo]:
17:27 rakudo_svn r28183 | pmichaud++ | * Update 'join' semantics.
17:30 pugs_svnbot r20722 | pmichaud++ | S29: List.join should have @values as the invocant.
17:48 pugs_svnbot r20723 | diakopter++ | [yap6] checking in changes; I have literally no idea
17:48 pugs_svnbot r20723 | diakopter++ | how much of this is going to work.
17:49 diakopter (don't yap6: for a while; I'm sure there are syntax errors all over)
17:54 moritz_ diakopter: I'm prepare a perlmonks meditation as an update to this node: http://www.perlmonks.org/?node_id=628746 - should I mention yap6 there?
17:54 lambdabot Title: Getting Involved with Perl 6
17:55 moritz_ or would you rather prefer to work quietly until you have something to show?
17:55 moritz_ s/something/something more/
17:56 pmichaud the last four lines of S29-list/join.t look odd to me.  At any rate I think the last two tests are incorrect.
17:58 * moritz_ is totally confused about what is allowed and what isn't
17:58 pmichaud I don't think there's a .join method on Str invocants.
18:00 diakopter moritz_: you might as well mention it as an experiment in recursive descent grammars towards mutable grammars for Perl 6
18:00 moritz_ pmichaud:  our Str multi method join ( $separator: @values )
18:00 moritz_ pmichaud: from S29
18:00 pmichaud moritz_  isn't that in the section on List methods?
18:01 moritz_ pmichaud: does it matter?
18:01 moritz_ $seperator: is a scalar, and marked as invocant
18:02 pmichaud I think that's actually incorrect in S29 -- I think it should be   our Str multi method join ( @values : $separator )
18:02 pmichaud otherwise   @values.join(';')  doesn't work
18:02 pmichaud (in r20722 I even changed S29 to read that way.)
18:03 diakopter hey moritz_: can anonymous subs be lvalue subs?
18:03 moritz_ diakopter: dunno, you have to try it ;)
18:03 diakopter ok
18:03 moritz_ it burns down to "can anonymouns subs have :attributes?"
18:04 moritz_ s/burns/boils/ ;-)
18:07 Jedai joined #perl6
18:09 diakopter I'm hoping that the lvalue-ness checking of postfix in/decrement is all that remains after overloading... I don't want my overloaded ++ &routine's result to be assigned back to the object of the ++.
18:09 pmichaud okay, I retract my earlier statement.  The tests are correct as written.
18:09 pmichaud (method fallback causes it to work.)
18:10 pmichaud thus  "foo".join(@values)   falls back to join("foo", @values)
18:14 pmichaud but the test descriptions are wrong then,  as  'foo'.join(':')  is equivalent to join('foo', ':')  and not join(':', 'foo')
18:15 pmichaud and, come to think of it, so is the output.  hrm.
18:15 pmichaud I'll add a note to S29-list/join.t and maybe Auzon can clear it up :-)
18:15 moritz_ well, if you're sure the test is wrong I can clean it up now
18:16 pmichaud I'm not completely sure of anything except that what is in the test file didn't match S29 (either before my change or after)
18:17 meppl joined #perl6
18:18 pmichaud I think I tend to be (overly) cautious when it comes to perceived ambiguities or errors in the spec -- as often as not I'm surprised by the actual answer.
18:30 pugs_svnbot r20724 | pmichaud++ | S29-list/join.t
18:30 pugs_svnbot r20724 | pmichaud++ | * Add a #?rakudo skip to the last two tests, and a note that the
18:30 pugs_svnbot r20724 | pmichaud++ |   tests themselves may be incorrect.
18:34 mncharity pmurias: hi.  re "does STD_red lack much to parse STD.pm?", my guess is yes, but I don't really know.  I'd be interested in hearing.
18:36 Auzon pong?
18:36 lambdabot Auzon: You have 1 new message. '/msg lambdabot @messages' to read it.
18:36 mncharity you might grab an old copy of STD.pm, and apply misc/STD/STD_extract , to break STD up into pieces, and then check how many of the pieces parse.  or perhaps update STD_extract to handle the current STD.pm.
18:36 Auzon @messages
18:36 lambdabot moritz_ said 4h 43m 50s ago: re t/spec/S29-str/pos.t dies_ok needs a code ref, so either use eval_dies_ok or dies_ok({$str.pos}) instead. I'm going to fix and enhance it...
18:40 Auzon away &
18:40 pugs_svnbot r20725 | Auzon++ | [gsoc_spectest] More TASKS and fixed use of dies_ok (moritz++ for catching the other bad use of it. 1 changed test.)
18:42 moritz_ http://www.perlmonks.org/?node_id=632816 # "Perl 6 Updates" meditation draft on my scratchpad. any comments before I post it for real?
18:42 lambdabot Title: moritz's scratchpad
19:03 eternaleye joined #perl6
19:03 kst joined #perl6
19:04 mncharity @tell fax Thanks for your work on elf! :)
19:04 lambdabot Consider it noted.
19:05 mncharity better late than never :/
19:06 moritz_ aye ;)
19:15 Auzon moritz_: I suggest mentioning a recent revision that is known to compile cleanly
19:15 Auzon of Pugs, that is
19:16 moritz_ Auzon: ok, will do
19:17 Auzon also, the link for ruoso's grant is broken
19:18 Auzon in the elf paragraph: "join #perl6 on and" should be "join #perl6 on irc.freenode.net and"
19:18 pasteling "diakopter" at 209.9.237.164 pasted "fun with overloading operators on coderefs - the proof of concept works!" (26 lines, 515B) at http://sial.org/pbot/31245
19:19 moritz_ diakopter: woo that looks scary
19:19 diakopter pmichaud: if you want a laugh; check out http://sial.org/pbot/31245
19:19 lambdabot Title: Paste #31245 from "diakopter" at 209.9.237.164
19:20 moritz_ Auzon: thanks, fixed all of those
19:20 moritz_ I published it now as http://www.perlmonks.org/?node_id=690945
19:20 lambdabot Title: Getting Involved with Perl 6 - an Update
19:21 Auzon nice work moritz++
19:21 Auzon pugs: say $?PUGS_VERSION
19:21 p6eval OUTPUT[Perl6 User's Golfing System, version 6.2.13, October 17, 2006 (r18093)␤]
19:21 moritz_ thanks
19:21 moritz_ actually "last revision" is a bit exaggerated
19:21 moritz_ but nothing reallly happend to pugs inbetween :/
19:22 diakopter further interesting - if you add an empty signature to bar (), bar still receives the argument .oO
19:22 Auzon Ah, I was wondering about the revision differences
19:22 moritz_ Auzon: probably lots of kp6 commits ;)
19:23 Auzon elf: say 1
19:23 p6eval OUTPUT[1␤]
19:23 Auzon perl6: say 1
19:23 p6eval kp6 r20725: OUTPUT[1␤]
19:23 p6eval ..pugs: OUTPUT[1␤]
19:23 p6eval ..rakudo r28183: OUTPUT[1␤]
19:23 p6eval ..elf r20725: OUTPUT[1␤]
19:23 Chillance joined #perl6
19:24 Auzon perl6: say "{1+1}"
19:24 p6eval kp6 r20725: OUTPUT[{1+1}␤]
19:24 p6eval ..pugs: OUTPUT[2␤]
19:24 p6eval ..rakudo r28183: OUTPUT[{1+1}␤]
19:24 p6eval ..elf r20725: OUTPUT[{1+1}␤]
19:24 moritz_ pugs++
19:25 Auzon That's the biggest "in your face" change that I keep forgetting.
19:26 moritz_ same for me
19:26 moritz_ and that arrays don't interpolate anymore by default
19:28 Auzon I never really used that part of P5.
19:29 pmichaud I wonder if I can get interpolation to work in rakudo.  :-)
19:29 pmichaud er, closure interpolation.  the hooks are there already --just need to fill them in.
19:29 moritz_ pmichaud: why not? seems like "a jonathan" to me ;)
19:29 pmichaud heh.
19:30 pmichaud okay, I'll do it then!  Why should jonathan++ have all the fun?  ;-)
19:30 Auzon I imagine elf could understand them without too much work either...
19:30 moritz_ (I hope you don't mind me paraphrasing you out of context ;)
19:30 pmichaud not at all :-)
19:30 pmichaud I paraphrase Larry all the time (hope he doesn't mind it :-)
19:31 moritz_ Auzon: probably, but I think mncharity and pmurias will wait for TimToady++'s refactor of the quoting stuff
19:31 moritz_ in STD.pm, that is
19:31 Auzon Makes sense. Rakudo doesn't use STD.pm, does it?
19:32 moritz_ no, but its parser is modeled after STD
19:33 pmichaud I'm aiming for STD.pm.  I'm hoping/expecting that we'll be using STD.pm by the end of summer.
19:34 pmichaud I think I should have protoregexes working by mid-to-late June.  That'll take care of the biggest part of it.
19:34 pmichaud longest token matching sometime in july or august
19:36 Auzon moritz_: Did you look at my test cases for samebase?
19:36 moritz_ Auzon: no. Will do now.
19:37 Auzon The spec is a bit rough there, so I made some assumptions based off of samecase
19:38 moritz_ uhm, where did you get all these fancy unicode chars from?
19:38 moritz_ ;)
19:39 moritz_ btw it might be helpful to add a smartlink that points to S05 as well
19:39 Auzon KDE's character map :)
19:39 Auzon I just searched for "with stroke" and got several that matched
19:40 moritz_ uhm wait
19:40 moritz_ is there a "combining stroke" char?
19:40 Auzon I don't understand unicode that much so the can probably be improved.
19:40 moritz_ problem is, combining chars can be placed onto any base char
19:41 Auzon yes, there is. U+0335 and U+0336
19:41 moritz_ which means that F + stroke can just be written as "F\x{0335}2C"
19:41 moritz_ s/2C//
19:42 Auzon So I need to find something without a combining character, correct?
19:42 moritz_ no
19:42 moritz_ it's just a case that doesn't occur in unicode world
19:43 Auzon Oh. OK, then I can change the test
19:43 * moritz_ tries to get his head straight
19:43 moritz_ actually I don't know if it's worth the effort for you to read about unicode stuff
19:43 moritz_ maybe I should take over that test, and consult with Juerd where I'm unclear
19:44 Juerd Unicode rocks :)
19:44 moritz_ Juerd: it does, indeed. But it't hard to write tests for if you don't grok it
19:44 moritz_ (which I think we can't expect from Auzon++)
19:46 Juerd It's also hard to write tests for if you do :)
19:46 moritz_ indeed
19:46 Juerd Encodings are pretty easy, but Unicode is hard.
19:46 Auzon I just haven't dealt with it so far (except in the sense of making it store and display correctly in my webapps)
19:46 Juerd Auzon: That's what I meant :)
19:46 moritz_ heh ;)
19:47 moritz_ actually the spec is unclear here
19:47 moritz_ at least for "samecase"
19:47 moritz_ there are two versions of the :samecase regex modifiers
19:48 moritz_ one "dump" which copies on a per-grapheme base
19:48 moritz_ and one "smart" which tries to detect a pattern (uc, lc, ucfirst, lcfirst, capitalize) and applies that pattern to the second string
19:49 moritz_ S29 is silent about which the function/method samebase() refers to
19:49 * moritz_ composes mail to list
19:50 pmichaud moritz/auzon:  Does sending questions about spec interpretation seem to work best for you?
19:50 pmichaud (er, sending questions "to the list")
19:50 Auzon samebase and samecase are relatively new to the spec.
19:50 moritz_ pmichaud: so far not very well
19:50 pmichaud takes too long to get answers?
19:51 moritz_ one isn't clarified at all
19:51 moritz_ the one about inconsitencies with private method syntax in roles and classes
19:51 Auzon pmichaud: I've primarily been asking in here, which has been sufficient so far for me.
19:51 moritz_ other... dunno. many warnocked, though I don't remeber more specific cases
19:52 pugs_svnbot r20726 | putter++ | [elf] Revert r20618 and r20628 (the refactoring of *$emitter etal into Compiler).  Perserved r20637.  The Compiler ugliness and globals had a purpose - emitter and parser are now again hot-swappable.
19:52 pugs_svnbot r20726 | putter++ | Updated test results.
19:52 moritz_ seldom got clear answers either way
19:52 pmichaud that's somewhat my experience as well.  I'm wondering how we can improve it.
19:53 diakopter Bus error
19:54 moritz_ get a spec grant for either TimToady or audreyt, if one of them were willing?
19:55 pmichaud heh.  I can't speak authoritatively for TimToady, but I think he might not be available for a grant at the moment.
19:55 moritz_ presumably. I'm just collecting ideas...
19:55 diakopter Bus error
19:56 pmichaud I'd be willing to act as arbiter and decision maker, but I fear I'd decide wrongly as often as not.
19:56 diakopter sry; ww
19:58 moritz_ did I understand it right that same*base* actually carries *accent* information?
19:58 moritz_ whereas same*case* carries *case* information?
20:00 pmurias mncharity: it was still possible to do hot-swapping with the refactoring $*compiler0.emitter = ...;
20:02 moritz_ ok, mail sent to p6l - hopefully I won't get warnocked this time
20:02 pugs_svnbot r20727 | putter++ | [elfish/rx_on_re] Project start - create an all-p6 regex engine from the p5 yet_another_regex_engine, by "keep it working" incremental migration.  t/ and Regexp_ModuleA.pm copied from yare; crufty old EmitRegexYare.pm moved from elf_e_src.
20:02 mncharity pmurias: re still possible, doh, did I just bungle that?  pondering...
20:04 cognominal_ joined #perl6
20:05 pmurias re rx_on_re, what i think now would be worth considering would be to use Cursor5
20:06 pmurias it seems to be designed cleanly, and shaking any bugs in that would (presumably) help TimToady
20:07 pmichaud $ ./parrot perl6.pbc -e 'say "{1+1}";'
20:07 pmichaud 2
20:08 moritz_ woot
20:08 moritz_ pmichaud++
20:09 moritz_ of course all interpolation tests are still outside of spec/
20:10 Lorn joined #perl6
20:11 pmichaud no problem, I'm just glad it works :-)
20:12 moritz_ wait 'til you access a variable in the closure
20:12 moritz_ does it blow up? ;-)
20:12 mncharity re hot-swap, so the hypothesis is one could revert the initialization changes while regaining hot-swapping by saying '*$emitter1 = ' to '*$compiler1.emitter = '...  that works for swapping parser and emitter but not compiler, no?  ./elf_f_faster NewCompiler.pm -e '...' wouldn't work.
20:13 pmichaud > my $a = 'hello';   say " {$a} world "; hello world
20:13 pmichaud > my $a = 'hello';   say " { substr($a, 2, 2) } world "; ll world
20:13 lambdabot Parse error at "=" (column 7)
20:13 lambdabot Parse error at "=" (column 7)
20:13 pmichaud er, irc formatted that wrong for me.
20:13 pmichaud but yes, it works.
20:13 moritz_ pmichaud++ again ;)
20:13 pmurias mncharity: hot swapping (monkey patching that is) the compiler would take 2 more lines
20:13 pmichaud > my $a = 'hello';   say "foo {$a} world ";
20:13 pmichaud foo hello world
20:13 pmichaud > my $a = 'hello';   say "foo { substr($a, 2, 2) } world ";
20:13 pmichaud foo ll world
20:14 lambdabot Parse error at "=" (column 7)
20:14 lambdabot Parse error at "=" (column 7)
20:14 moritz_ sombody shot a goal
20:14 pmurias moritz_: yes
20:14 moritz_ (it's europeen soccer championship, and I heard the cheers throughout the whole street)
20:14 pmichaud I always figured to look for the cars burning in the streets.  :-)
20:15 pmurias mncharity: my $emitter = $*compiler.emitter;$parser = $*compiler.parser;$*compiler = Compiler.new(emitter=>$emitter,parser=>$parser)
20:15 moritz_ pmurias: hey, this is Würzburg, not Paris ;)
20:15 moritz_ uhm, I meant pmichaud
20:15 moritz_ sorry
20:16 pmichaud moritz_: good point.  :-)
20:16 pmichaud ooh, I need to see about booking travel to YAPC::EU
20:16 pmichaud although I should probably wait until Tuesday (better fares mid-week than weekend)
20:17 mncharity the introduction of everyone having non-local knowledge of how a compiler is assembled and customized is very not worth a few lines shortened Compiler.
20:17 pugs_svnbot r20728 | pmichaud++ | S02-literals/autoref.t:
20:17 pugs_svnbot r20728 | pmichaud++ | * {} interpolates in double quotes, so use single quotes to display '{}'.
20:18 rakudo_svn r28184 | pmichaud++ | [rakudo]:
20:18 rakudo_svn r28184 | pmichaud++ | * Add {closure} interpolation to double-quoted strings.
20:18 mncharity but, feel free to create an elfish/elf_the_way_it_should_be/ .  i almost created one to preserve the change before reverting, but decided it would be easy enough for you to do if you wished to.
20:21 Auzon pmichaud++
20:21 Auzon That was fast!
20:22 eternaleye_ joined #perl6
20:22 pmichaud well, like I said, the hooks were already there -- just needed to fill them in.
20:22 Auzon rakudo: say "{1+1}"
20:22 p6eval rakudo r28184 OUTPUT[2␤]
20:23 pmichaud rakudo:  my @a = 1..5;  say "countdown: { @a.reverse }";
20:23 p6eval rakudo r28184 OUTPUT[countdown: 5 4 3 2 1␤]
20:24 Auzon Um. I just now noticed that I did the wrong spec this week for my SoC project.
20:24 moritz_ Auzon: never mind ;)
20:25 moritz_ but please add s small blog post about your progress
20:25 pmurias mncharity: replacing the architecture of elf will need to be done sometime, but i hesitate to start it withought a large continous chunk of free time
20:25 moritz_ you can just just copy&past the lines from your #perl6-soc report if you want
20:25 moritz_ Auzon: it's just to keep the community informed that you're still doing things ;)
20:25 mncharity pmurias: re Cursor5, it does look interesting, and modulo checking with TimToady, I encourage folks to work on it.  It could be neat to run it against a test suite, to get some idea of coverage and performance.  Absent that, it's unclear whether it could be an alternative to yare.
20:26 Auzon moritz_: I'm writing up an end of week report now. I had something keeping me busy all of Friday and half of yesterday
20:26 moritz_ Auzon: ok, thats fine
20:27 mncharity re Cursor5, actually, p6 versions might be more interesting than the p5 versions - could run it on non-p5 backends.
20:28 pmurias in the long run yes, but the p5 version of Cursor5 works better i guess
20:28 pmurias as TimToady is actively trying to get it to run
20:28 mncharity re works better, indeed, I believe that's where the recent focus has been
20:28 mncharity *nod*
20:29 pmurias got to still understand the fate handling
20:29 pmurias mncharity: to you understand how fates work in Cursor5?
20:30 mncharity no, I have little understanding of fate.
20:31 pmurias i'm installing debian on my new laptop so i'll soon see how elf performes on it ;)
20:31 Auzon moritz_: I think that S29 also needs more details for pack/unpack. At the least, the P5 documentation should be added.
20:31 pmurias i accidently press space, and all the useless Desktop packages are installing :(
20:32 moritz_ pmurias: that's what the good lord invented 'aptitude purge' for. But of course it takes a while first to install them :(
20:33 mncharity pmurias: ooh, good reminder.  could you recheck... well, I guess you can't do a real recheck now, but... fyi, yare is believed to no longer have the failure mode you observed, which I speculate was caused by having an old Regex::Common.
20:33 * mncharity wonders if he has ever managed to do a fedora install without rerunning it at least once...
20:34 moritz_ Auzon: aye. But don't wait for it :(
20:34 pmurias what should i run?, i'm using my sluggish desktop machine now
20:34 Auzon I added it to TASKS and I can send an email if that'd help
20:34 mncharity pmurias: re 'replacing the architecture of elf will need to be done sometime', <pause>
20:35 moritz_ Auzon: don't wast your time on the email. If it's in the spec as a TODO, it's known and will eventually be worked on.
20:35 Auzon ok
20:36 pmichaud istr that pack/unpack got some discussion on p6l in the not-too-distant past.
20:36 mncharity re run, cd misc/pX/Common/yet_another_regex_engine/; prove t/re_tests.t .   it will probably require you to update your Regexp::Common from cpan.
20:36 pmichaud might check the archives.
20:38 moritz_ pmichaud: I think they discussed how objects can be serialized, or how they can serialize themselves or some freaky stuff
20:38 mncharity re 'replacing the architecture of elf will need to be done sometime', the elf architecture undergoes continuous replacement. :)  Next steps are likely 'move IR analysis out of Emit' and... hmm, that may reduce the importance of moving to multimethods internally... so, not clear what after that.
20:38 pmurias re replacing architecture doing BEGIN correctly requires compiling the whole program piecemeal, and then serialising it to disc
20:39 mncharity why?
20:39 pmurias sub foo {...};BEGIN {foo()};
20:40 pmurias my $var;BEGIN {$var = 123};
20:40 pmurias my $var;BEGIN {$var = 123};say $var;
20:40 mncharity why would that require any change in how the disk is touched?
20:40 pmurias s/to disc//
20:40 Auzon Will Perl 6 emulate sprintf like Perl 5 did?
20:41 pmurias i should double check what i write
20:43 pmurias it easier to implement some thing when you just creat stuff at runtime and the serialise it
20:45 mncharity my impression is BEGIN requires running things at compiletime (as do macros) - not hard, and observing side effects - hard.  Containers might help, plus other observers... BEGIN{eval('our $*foo;')}...  it might be easiest to have an emitter variant which logs changes as they go by.
20:45 pmurias that's the way kp6 did it
20:45 pmurias it ended up rather messy
20:45 mncharity variant, or containers?
20:45 Auzon away&
20:46 mncharity Auzon: chao
20:46 pmurias mncharity: special containers
20:47 pmurias and some magic in the emitter, if i rememer correctly
20:47 pmurias but i would go with the serilize everything aproach
20:47 pmurias mncharity: the error stayed
20:48 pmurias in re_test.t
20:48 pmurias * re_tests.t
20:49 mncharity ok.  so... I have no idea what mix static analysis, emitter additions, and compile-runtime magic will be needed for BEGIN.  basically, if we can't do ruby-like eval-based metaprogramming in BEGIN's, we have a problem.  todo list. ;)
20:49 yath yay, just reading through S02: Heredocs allow optional whitespace both before and after terminating delimiter. Leading whitespace equivalent to the indentation of the delimiter will be removed from all preceding lines
20:49 yath i wanted this for AGES
20:49 mncharity re 'the error stayed', bizarre.  it's been tested now on a variety of platforms.
20:49 yath \o/
20:49 mncharity :)
20:50 mncharity pmurias: what version of Regexp::Common are you using?
20:51 pmurias 2.122
20:52 mncharity re serializing the universe... eep, there has to be a better way.
20:53 pmurias it's simple
20:53 mncharity re 2.122 :(  sigh.  oh well.  then issue still not understood.  but established not to occur on a variety of linux distributions, MacOS, and assorted hardware.  :/
20:53 pmichaud re:   20:40 <pmurias> my $var;BEGIN {$var = 123};say $var;
20:54 pmichaud S04 still says:  Some closures produce Code objects at compile time that cannot be cloned, because they're not attached to any runtime code that can actually clone them. BEGIN, CHECK, INIT, and END blocks fall into this category. Therefore you can't reliably refer to run-time variables from these closures even if they appear to be in the scope. (The compile-time closure may, in fact, see some kind of permanent copy of the variable for some storage clas
20:55 pmurias pmichaud: it's possible to do it with some trick or other in order for use to work
20:55 mncharity s/(if we can't do ruby-like eval-based metaprogramming) in BEGIN's/$1/   ;)  yay, macros.
20:56 pmurias mncharity: why are you against serializing the universe ?
20:57 mncharity because I don't understand what it means
20:58 mncharity bbiab
21:01 mncharity how can END do cleanup if if can't access runtime variables?  what purpose does it then serve?
21:02 mncharity unless subs aren't considered variables?  anyway &
21:02 pmichaud they can access runtime variables, just not lexical ones.  :-)
21:02 pmichaud i.e., package variables and file-scoped lexicals are okay.
21:03 perl7 joined #perl6
21:04 mncharity ah, ok.  sounds like an S04 'insert "lexical"' edit request, unless I just missed it, or the paragraph's context makes it clear.
21:04 pmurias dosn't it only refer to cloned closures?
21:04 mncharity unless "runtime" variable is an alias for "lexical" variable?
21:05 pmichaud I'm not sure that it's referring only to lexical variables.
21:05 pmichaud and yes, that may be only for cloned closures.
21:10 pmurias cloning TimToady would help ;)
21:17 rakudo_svn r28185 | jonathan++ | [rakudo] Fix sleep.
21:19 * moritz_ envies rakudo
21:23 rakudo_svn r28186 | pmichaud++ | [rakudo]:
21:23 rakudo_svn r28186 | pmichaud++ | * A different version of sleep.
21:37 meppl good night
21:47 meppl joined #perl6
21:51 justatheory joined #perl6
22:08 ofer joined #perl6
22:09 polettix joined #perl6
22:48 Eevee joined #perl6
22:50 Limbic_Region joined #perl6
23:06 spinclad diakopter: re leading whitespace operators: why not prefix ++ and -- ?  "(++spaced+out++)"
23:12 jisom joined #perl6
23:19 diakopter spinclad: I took a look at that; I couldn't get the overload handler to distinguish between them... also, I couldn't use the real postfix ++/-- either
23:19 diakopter so I ended up using a source filter :)
23:19 diakopter (again)
23:24 diakopter spinclad: but, it was fun, along the way, I caused a segfault in perl as well as a Bus error
23:46 araujo joined #perl6
23:51 spinclad ooo, segfaults and bus errors, excellent!
23:54 wknight8111 joined #perl6
23:57 diakopter ugh; osx.5.3 update is 420MB

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

Perl 6 | Reference Documentation | Rakudo