pugscode.org/ | nopaste: sial.org/pbot/perl6 | pugs: [~] <m oo se> (or rakudo:, kp6:, smop: etc.) || We do Haskell, too | > reverse . show $ foldl1 (*) [1..4] | irclog: irc.pugscode.org/ Set by TimToady on 25 January 2008. |
|||
bacek | perl6: say (1..Inf)[5] | 00:14 | |
p6eval | kp6 r20713: OUTPUT[syntax error at position 4, line 1 column 4:say (1..Inf)[5 ^ HERE] | ||
..pugs: OUTPUT[6] | |||
..rakudo r28172: OUTPUT[get_pmc_keyed() not implemented in class 'Range'current instr.: '_block11' pc 55 (EVAL_14:25) | |||
..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] | |||
00:56
justatheory_ is now known as justatheory
01:03
alanhaggai joined
01:18
simcop2387 joined,
bacek left
|
|||
Auzon | rakudo: my @arr = <foo bar baz>; @arr .= chomp; @arr.perl.say; | 01:21 | |
p6eval | rakudo r28172 OUTPUT[Method 'chomp' not found for invocant of class 'Perl6Array'current instr.: '_block11' pc 77 (EVAL_10:29) | ||
Auzon | rakudo: my @arr = <foo bar baz>; @arr.chomp; @arr.perl.say; | ||
p6eval | rakudo r28172 OUTPUT[Method 'chomp' not found for invocant of class 'Perl6Array'current instr.: '_block11' pc 76 (EVAL_9:29) | ||
Auzon | rakudo: $_ = "HI"; .lc; .say; | 01:23 | |
p6eval | rakudo r28172 OUTPUT[No result objectcurrent instr.: 'parrot;PCT::Grammar;item' pc 48 (src/PCT/Grammar.pir:64) | ||
Auzon | rakudo: $_ = "HI"; $_.lc; $_.say; | ||
p6eval | rakudo r28172 OUTPUT[too few arguments passed (0) - 1 params expectedcurrent instr.: '_block11' pc 0 (EVAL_8:3) | ||
Auzon | rakudo: $_ = "HI"; say lc($_) | ||
p6eval | rakudo r28172 OUTPUT[too few arguments passed (0) - 1 params expectedcurrent instr.: '_block11' pc 0 (EVAL_12:3) | ||
Auzon | rakudo: say lc("HI") | ||
p6eval | rakudo r28172 OUTPUT[hi] | ||
01:26
Ched- left
01:27
Ched- joined
01:29
rhr left
01:30
bacek joined
01:37
simcop2387 left
01:41
Limbic_Region left
01:45
pen1 left,
Eevee left
|
|||
diakopter | converting yap6 to continuation passing style so parsers can mutate themselves at parse time even more freely/easily. | 01:46 | |
(and yes, that's from HOP too) | 01:47 | ||
nothingmuch | @tell ruoso www.ccs.neu.edu/scheme/pubs/stackhack4.html | 01:52 | |
lambdabot | Consider it noted. | ||
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:54 | |
lambdabot | Consider it noted. | ||
pugs_svnbot | r20714 | Auzon++ | [gsoc_spectest] Adding new tests for samebase in S29. (7 tests added) | 02:03 | |
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 | ||
perl6: say +<a b c d> | 02:14 | ||
p6eval | kp6 r20714: OUTPUT[] | 02:15 | |
..pugs: OUTPUT[4] | |||
..rakudo r28172: OUTPUT[4] | |||
..elf r20714: OUTPUT[4] | |||
02:16
justatheory left
|
|||
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:24 | |
02:26
jferrero left
02:43
kanru joined
03:09
stevan_ left
03:16
alanhaggai left
03:17
eternaleye joined
03:28
simcop2387 joined
03:32
drbean left
03:33
drbean joined
03:34
sri_work joined,
rhr joined
03:37
FurnaceBoy left
03:38
sri_work_ joined
03:49
justatheory joined
03:55
sri_work left
03:58
stevan_ joined
04:04
stevan_ left
04:05
stevan_ joined
04:08
alester joined
04:09
justatheory left
|
|||
pmichaud | Auzon, moritz: ping | 04:18 | |
never mind ping -- sent question to p6c instead ('split' in S29) | 04:37 | ||
afk, sleep | |||
04:41
sri_work_ is now known as sri_work
04:42
kanru left
04:46
bacek left
05:12
kaether left
05:13
kaether_ joined
05:14
kaether_ is now known as kaether
05:22
simcop2387 left
|
|||
pugs_svnbot | r20716 | lwall++ | [STD5] quote start/stop now uses parametric roles | 05:28 | |
r20716 | lwall++ | rule ast is now stored per-package including evaled role packages | |||
r20716 | lwall++ | lexer cache now uses separate subdirectories for every sublanguage | |||
05:29
simcop2387 joined
|
|||
pugs_svnbot | r20717 | lwall++ | [cheat] subsumed into gimme5 | 05:29 | |
05:31
simcop2387 left
05:43
simcop2387 joined
05:55
pen1 joined
05:56
alester left
06:08
ikeda joined
06:09
Jedai joined
06:18
ikeda_ joined
06:19
ikeda left
06:21
Psyche^ joined
06:30
Jedai left
06:36
Patterner left,
Psyche^ is now known as Patterner
06:52
alanhaggai joined
07:04
rindolf joined
07:11
rindolf left
|
|||
pugs_svnbot | r20718 | moritz++ | [spec] removed "unspecced" marking of grep tests that mutate $_ | 07:15 | |
r20718 | moritz++ | The same has been discussed for map.t already | |||
07:17
meppl joined
07:41
kaether_ joined,
iblechbot joined
07:45
kaether left,
kaether_ is now known as kaether
08:00
meppl left
08:09
barney joined
08:44
ikeda_ left
09:15
barney left
09:33
alanhaggai left,
alanhaggai joined
09:50
ruoso joined
09:55
kst left
09:58
kst joined
10:02
alanhaggai left
10:07
sri_work left
10:08
sri_work joined
10:21
edpratomo joined
10:28
ddwagnz joined
10:29
ddwagnz left
10:39
mjk joined
10:40
bacek joined
10:45
sri_work_ joined,
sri_work left
10:50
mjk left
10:52
mjk joined,
mjk left,
mjk joined
10:58
alanhaggai joined
11:03
broquain1 joined
11:14
broquaint left
11:16
edpratomo left
11:19
kaether left
|
|||
bacek | perl6: say elems(1,2,3,4) | 11:21 | |
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 | ||
..compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169 main::D... | |||
..pugs: OUTPUT[*** No compatible multi variant found: "&elems" at /tmp/xkrJ733Arw line 1, column 5 - line 2, column 1] | |||
..rakudo r28182: OUTPUT[4] | |||
..elf r20718: OUTPUT[Undefined subroutine &GLOBAL::elems called at (eval 14) line 3. at ./elf_f_faster line 4492] | |||
bacek | perl6: say elems (1,2,3,4) | ||
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 | ||
..main::DISPATCH('HASH(0x824be0c)', 'APPLY', 'HASH(0x8e52670)') ca... | |||
..pugs: OUTPUT[4] | |||
..rakudo r28182: OUTPUT[4] | |||
..elf r20718: OUTPUT[Undefined subroutine &GLOBAL::elems called at (eval 14) line 3. at ./elf_f_faster line 4492] | 11:22 | ||
bacek | hmm... | ||
11:34
Jedai joined
11:35
sri_work_ left,
sri_work joined
|
|||
bacek | perl6: say <5 -3 7 0 1 -9>[0].WHAT | 11:46 | |
p6eval | kp6 r20718: OUTPUT[5] | ||
..pugs: OUTPUT[Str] | |||
..rakudo r28182: OUTPUT[Str] | |||
..elf r20718: OUTPUT[Str] | |||
bacek | perl6: my @a= <5 -3 7 0 1 -9>; say @a[1] cmp @a[5]; | 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(0x824c0e4)', 'APPLY', 'HASH(0x8e57cd4)') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169 | ||
..main::DISPATCH('HASH(0x824c0e4)', 'APPLY', 'HASH(0x8e57cd4)') ca... | |||
..pugs: OUTPUT[-1] | |||
..rakudo r28182: OUTPUT[-1] | |||
..elf r20718: OUTPUT[-1] | |||
bacek | perl6: say -3 cmp -9 | 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(0x824c06c)', 'APPLY') called at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 169 | ||
..main::DISPATCH('HASH(0x824c06c)', 'APPLY') called at compiled/perl5-kp6-mp6/lib/Kin... | 11:49 | ||
..pugs: OUTPUT[1] | |||
..rakudo r28182: OUTPUT[1] | |||
..elf r20718: OUTPUT[-1] | |||
bacek | perl6: my @a= <5 -3 7 0 1 -9>; say @a[1], ' , @a[5];say @a[1] cmp @a[5]; | ||
perl6: my @a= <5 -3 7 0 1 -9>; say @a[1], ' ', @a[5];say @a[1] cmp @a[5]; | |||
p6eval | kp6 r20718: No output (you need to produce output to STDOUT) | 11:50 | |
..pugs: OUTPUT[***  Unexpected end of input expecting "\\", variable name or "'" at /tmp/K2fkwUCmIZ line 2, column 1] | |||
..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) | |||
..elf r20718: OUTPUT[Parse error in: /tmp/mhlCTcMi13panic at line 1 column 36 (pos 36): Error in quotesnabberWHERE: <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 | |||
moritz_ | ENOCLOSING ' | ||
p6eval | ..`quotesnabber' (eval):1:in `__quote_4317723' STD_red/prelude.rb:404:in `... | ||
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 | |||
..main::DISPATCH('HASH(0x824c1b4)', 'APPLY', 'HASH(0x8e5a49c)') ca... | |||
..pugs: OUTPUT[-3 -9-1] | |||
..rakudo r28182: OUTPUT[-3 -9-1] | |||
..elf r20718: OUTPUT[-3 -9-1] | |||
bacek | pugs: my @a= <5 -3 7 0 1 -9>; say @a.min | 11:54 | |
p6eval | OUTPUT[-9] | ||
bacek | perl6: say "-1".abs | 12:05 | |
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 | ||
..main::DISPATCH('HASH(0x8e4ec54)', 'abs') called at - line 11] | |||
..pugs: OUTPUT[1] | |||
..rakudo r28182: OUTPUT[Method 'abs' not found for invocant of class 'Perl6Str'current instr.: '_block11' pc 31 (EVAL_12:17) | |||
..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] | |||
bacek | perl6: say abs("-1") | ||
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 | ||
..main::DISPATCH('HASH(0x824bda4)', 'APPLY', 'HASH(0x8e4db34)') ca... | |||
..pugs: OUTPUT[1] | |||
..rakudo r28182: OUTPUT[absolute() not implemented in class 'Perl6Str'current instr.: '_block11' pc 25 (EVAL_12:17) | |||
..elf r20718: OUTPUT[Undefined subroutine &GLOBAL::abs called at (eval 14) line 3. at ./elf_f_faster line 4492] | |||
bacek | rakudo: say (1..3).join; | 12:27 | |
p6eval | rakudo r28182 OUTPUT[Method 'join' not found for invocant of class 'Range'current instr.: '_block11' pc 49 (EVAL_13:20) | ||
bacek | yak... | ||
rakudo: say "".reverse | 12:29 | ||
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) | ||
moritz_ | ouch | ||
rakudo: say "abc".reverse | |||
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) | ||
bacek | someone commited List.pir with 'join' commented out. | 12:30 | |
rakudo: say reverse("") | |||
p6eval | rakudo r28182 OUTPUT[] | ||
bacek | rakudo: say reverse('Pugs') | 12:31 | |
p6eval | rakudo r28182 OUTPUT[Pugs] | ||
bacek | great... | ||
12:37
sri_work left
|
|||
bacek | rakudo: say item(reverse('foo')) | 12:40 | |
p6eval | rakudo r28182 OUTPUT[Could not find non-existent sub itemcurrent instr.: '_block11' pc 39 (EVAL_12:18) | ||
12:40
sri_work joined
12:49
sri_work left
|
|||
diakopter | anyone know how to execute an inline block *that returns something* in Perl 5? | 12:51 | |
moritz_ | do { ... } | 12:52 | |
my $x = do { ... }; | |||
diakopter | oh :) that was too easy. | 12:53 | |
moritz_ | ;) | ||
12:54
sri_work joined
12:57
pmurias joined
12:58
sri_work left
12:59
sri_work joined,
sri_work left
|
|||
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* | 13:00 | |
(b/c I don't want to have to use eval to invent a unique coderef name | |||
moritz_ | (do { ...} )->() | ||
diakopter | ) | ||
hrmf | |||
moritz_ | buubot: eval: print ( do { sub { 3} })->() | 13:01 | |
buubot | moritz_: CODE(0x86fe948)undef | ||
moritz_ | buubot: eval: print +( do { sub { 3} })->() | ||
buubot | moritz_: 31 | ||
moritz_ | buubot: eval: +( do { sub { 3} })->() | ||
buubot | moritz_: 3 | ||
pmurias | diakopter: why don't you use . for concatenate? | ||
diakopter: re overloading | |||
diakopter | pmurias: it is, now | ||
for concatenate with no intervening whitespace allowed | 13:02 | ||
| allows optional whitespace; - enforces the presence of whitespace | |||
and I'm adding two more now | |||
postfix autoincrement will signify mandatory trailing whitespace | 13:03 | ||
and postfix autodecrement will signify optional trailing whitespace | |||
13:04
meteorjay left,
meteorjay joined
13:05
sri_work joined,
sri_work left
|
|||
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:07 | |
hopefully the rule p6ws won't ever have to be directly referenced | 13:08 | ||
also I'll overload ! to be the negative lookahead | |||
you don't need positive lookahead (obviously) in RD parsers | 13:09 | ||
since that's all it ever does.... | |||
pmurias: ok? | 13:10 | ||
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:12 | ||
pmurias | diakopter: seems ok | ||
shouldn't | mean perl6 longest token alteration? | 13:13 | ||
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 | ||
pmurias: it does! now :) which I haven't checked in | 13:14 | ||
I added longest-token-matching (by default) to alternate() | |||
that will obviously slow it down LOTS | |||
I added that a few hours ago | 13:15 | ||
I guess & could mean first match | |||
since it's at the same Perl 5 operator precedence level | 13:16 | ||
moritz_ | & has a meaning of its own in p6 regexes | ||
diakopter | right, but this isn't even the translation stage, yet | ||
I'm not trying to replicate the Perl 6 syntax in Perl 5 | |||
just make it easier to express RD grammars in Perl 5 | 13:17 | ||
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:18 | ||
similar to what TimToady is doing in gimme5 | |||
13:19
p6eval left,
p6eval joined
|
|||
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 | |
can pugs implement grammar-switching/mutation in BEGIN {}? | 13:22 | ||
I know it does inline operators | 13:23 | ||
pmurias | don't think so | ||
pugs grammar is coded in haskell | |||
diakopter | can any of the other implementations do that yet? | 13:24 | |
moritz_ | no | ||
diakopter | then one of my goals is for yap6 to be the first to prove that concept | ||
moritz_ | kp6 does BEGIN blocks, but they don't modify the grammar | ||
btw what's the syntax for grammar switching? | 13:25 | ||
I think pugs has limited support for macros, though | |||
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:30 | |
... 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). | |||
where "that particular branch of the AST" is the previously declared grammar GrammarX {} or whatever | 13:31 | ||
bacek | perl6: say 'a' <=> 'b' | ||
p6eval | kp6 r20718: OUTPUT[0] | ||
..pugs: OUTPUT[0] | |||
..rakudo r28182: OUTPUT[0] | |||
..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] | |||
bacek | perl6: say 'a' <=> 'a' | ||
p6eval | kp6 r20718: OUTPUT[0] | ||
..pugs: OUTPUT[0] | |||
..rakudo r28182: OUTPUT[0] | |||
..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] | |||
bacek | perl6: say 'a' cmp 'b' | 13:32 | |
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 | ||
..main::DISPATCH('HASH(0x824bf44)', 'APPLY', 'HASH(0x8e56c0c)') ca... | |||
..pugs: OUTPUT[-1] | |||
..rakudo r28182: OUTPUT[-1] | |||
..elf r20718: OUTPUT[-1] | |||
bacek | perl6: say 'b' cmp 'b' | ||
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 | ||
..main::DISPATCH('HASH(0x824bf44)', 'APPLY', 'HASH(0x8e56c0c)') ca... | |||
..pugs: OUTPUT[0] | |||
..rakudo r28182: OUTPUT[0] | |||
..elf r20718: OUTPUT[0] | |||
diakopter | bacek: would you message p6eval directly while a conversation is occuring please? | ||
esp if you're using perl6: | 13:33 | ||
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' | ||
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:35 | |
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:37 | ||
at least, if my understanding of what he said is correct. | |||
moritz_ | evalbot control restart | 13:38 | |
13:38
p6eval left
|
|||
pugs_svnbot | r20719 | moritz++ | [evalobt] truncate noisy kp6 error messages | 13:38 | |
moritz_ | diakopter: makes sense to me | ||
13:38
p6eval joined
|
|||
diakopter listens to the rain | 13:39 | ||
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:41 | ||
pmurias | moritz_: what debian branch should i use on a new laptop? | ||
moritz_ | uhm, there is no eval {} anymore, just eval '...' | ||
diakopter | right, whichever :D | 13:42 | |
moritz_ | pmurias: lenny is pretty good atm, I use it on my desktop for some time now | ||
pmurias | diakopter: it's try {} | ||
diakopter | pmurias, I know, I still mean eval "" | ||
moritz_ | pmurias: Etch is likely to be outdated, but you can use Etch + EtchAndHalf for newer drivers | ||
moritz_ doesn't recommend sid though. Sid is evil ;) | 13:43 | ||
pmurias | lenny is testing? | ||
yath forgot to report a bug early enough to get it into etchandahalf :-( | |||
so i'll have to recompile kernels every time now | 13:44 | ||
*sigh* | |||
diakopter | I really need to deprecate/fix this stupid gt0() function I created... it's rather broken | ||
moritz_ | yath: not so bad. If you run stable, you don't need to recompile your kernel very often | 13:45 | |
yath: and most of the time it's simply a matter of running make-kpkg | |||
yath | moritz_: in the last four weeks there were about five or six DSAs just dealing with kernel stuff :( | ||
moritz_ | yath: I know, but most didn't affect desktop machines | 13:46 | |
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 | ||
moritz_ | yath: ok, I agree with that. So use Lenny instead ;-) | ||
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:47 | |
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 | ||
moritz_ | yath: ok, $work is a good reason :/ | ||
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:48 | |
moritz_ | hey, we need #os_perl where perl people can discuss and rant about various OS ;) | ||
yath | .o(emacs--) | ||
moritz_ | ;-) | 13:49 | |
diakopter | pmurias: OOPS I got my operators wrong when telling them to you earlier.... SLAP forehead. "." enforces no whitespace, "+" enforces whitespace, "-" allows optional whitespace | ||
that way, ++ and -- are consistent as the trailing ones | 13:50 | ||
13:52
jan_ left
|
|||
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:52 | |
oh wait, no, can't be ^ | 13:53 | ||
diakopter looks for a unary prefix that's so far unused | |||
I wonder if there's any way to overload unary + and - ....? | 13:54 | ||
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... | ||
lambdabot | Consider it noted. | ||
diakopter reads perlovl | |||
bacek | perl6: say <a b A c b d>.sort: { lc $^a eq lc $^b } | 13:56 | |
pugs_svnbot | r20720 | moritz++ | [spec] fixed pos.t test that used a dies_ok() inappropriately | ||
p6eval | kp6 r20719: OUTPUT[no method 'APPLY' in Class 'Undef' at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345 | ||
..pugs: OUTPUT[abAcbd] | |||
..rakudo r28182: OUTPUT[bdacAb] | |||
..elf r20719: OUTPUT[Aabbcd] | |||
moritz_ | uhm, sorting with 'eq' doesn't make much sense ;) | ||
bacek | moritz_, it's from S29-list/uniq.t... | ||
perl6: say <a b A c b d>.sort: { lc $^a cmp lc $^b } | 13:57 | ||
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 ] | ||
..pugs: OUTPUT[aAbbcd] | |||
..rakudo r28182: OUTPUT[aAbbcd] | |||
..elf r20720: OUTPUT[Aabbcd] | |||
moritz_ | bacek: it does make sense for unique() | ||
bacek | moritz_, why? | 13:58 | |
moritz_ | bacek: because uniqueness doesn't need a total ordering ;) | ||
you just have to know if two items are identical to return a unique subset | 13:59 | ||
bacek | moritz_, too bad... I try to reimplement quadratic algo with something better... | ||
moritz_ | bacek: you can only do that for the default comparator | 14:00 | |
and for sane cases like numbers and strings | |||
yath | oh. just read that package'var is gone. | 14:01 | |
so no Acme::don't anymore :( | |||
pmurias | yath: suprised? ;) | ||
yath | pmurias: well, not really :) ' was perl4, wasn't it? | ||
pmurias | cannt tell i'm not old enough to rememer ' | 14:03 | |
pugs_svnbot | r20721 | moritz++ | [t] more content for deprecated-syntax.pod: | 14:05 | |
r20721 | moritz++ | * (in)correct usage of dies_ok | |||
r20721 | moritz++ | * "my" in pointy block signatures | |||
diakopter | oh good, I think unary +- are overloadable... just need a dispatch handler to tell if the 2nd argument is undef... | ||
moritz_ | ... and hope that there's no legal case with the 2nd arg being undef ;) | 14:06 | |
diakopter | moritz_: there can't be; all of the parser generators must return a valid parser.. if they don't, they're broken | ||
the root level parser generators aren't dynamic... | 14:07 | ||
moritz_ | diakopter: good ;) | ||
diakopter | now, the ones that are parameterized... those can fail on invalid input | ||
so they'll have to trap such errors | 14:08 | ||
14:12
jhorwitz joined
|
|||
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:16 | |
hunh. I wonder if this means that perl5: "string" + undef does the same thing as +"string" | 14:25 | ||
moritz_ | uhm, yes. Both return 0 + optionally a warning | 14:26 | |
diakopter | buubot: eval: ("42" + undef) | 14:27 | |
buubot | diakopter: 42 | ||
diakopter | buubot: eval: (+"42") | ||
buubot | diakopter: 42 | ||
diakopter | buubot: eval: ("42") | ||
buubot | diakopter: 42 | ||
14:27
kst left
|
|||
diakopter | ok, I guess it intifies it regardless | 14:28 | |
bacek | moritz_, in which spec uniq defined? I can't find it in svn.pugscode.org/pugs/docs/Perl6/Sp...ctions.pod | 14:30 | |
diakopter tries to imagine how to detect infinite recursion in CPS | 14:32 | ||
moritz_ | bacek: doesn't seem to be specced at all ;) | 14:33 | |
14:34
araujo left
|
|||
bacek | moritz_, ouch... | 14:37 | |
14:37
chris2 joined
|
|||
pmurias | diakopter: how do you do in a "normal" setting? | 14:38 | |
diakopter | pmurias: how do I do? | 14:40 | |
14:40
jan_ joined
|
|||
pmurias | diakopter: how do you detect infinite recursion in a "normal setting"? | 14:41 | |
;) | |||
14:43
mjk left
|
|||
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:43 | |
too many times | |||
where too many was 50 or 500 | |||
or whatever | |||
hm, I guess to do it in CPS would be the same thing; the received continuation would just be ignored for this purpose. | 14:45 | ||
bacek | rakudo: say 'a' <=> 'b' | ||
p6eval | rakudo r28182 OUTPUT[0] | ||
moritz_ | that is currect | 14:47 | |
diakopter | pmurias: does that sound okay? | 14:50 | |
obviously it places a limit on detectable nested expressions | |||
I should say, detectable right-associated expressions | |||
detectable right-associated nested expressions | 14:51 | ||
bacek | rakudo: my $a = []; say $a.join; | 15:04 | |
p6eval | rakudo r28182 OUTPUT[Method 'join' not found for invocant of class 'Arrayref'current instr.: '_block11' pc 56 (EVAL_10:23) | ||
pmurias | diakopter: sounds vagely ok | ||
bacek | pugs: say ~@array.uniq: { lc $^a eq lc $^b }, "a b c d", "method form of uniq with own comparator works"; | 15:11 | |
p6eval | OUTPUT[***  Unexpected "." expecting "::" Variable "@array" requires predeclaration or explicit package name at /tmp/p0qq2X0lcV line 1, column 12] | ||
bacek | pugs: say ~@array.uniq:{ lc $^a eq lc $^b }, "a b c d", "method form of uniq with own comparator works"; | ||
p6eval | OUTPUT[***  Unexpected "." expecting "::" Variable "@array" requires predeclaration or explicit package name at /tmp/9TTM5Ldixp line 1, column 12] | ||
bacek | pugs: say (~@array.uniq: { lc $^a eq lc $^b }), "a b c d", "method form of uniq with own comparator works"; | 15:12 | |
p6eval | OUTPUT[***  Unexpected "." expecting "::" Variable "@array" requires predeclaration or explicit package name at /tmp/k22X1qGyQi line 1, column 13] | ||
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"; | ||
p6eval | OUTPUT[a b A c d <SubBlock(<anon>)> a b c d method form of uniq with own comparator works] | ||
15:25
kcwu joined
15:27
mncharity joined
|
|||
pmurias | mncharity: hi | 15:30 | |
15:30
Jedai left
15:43
dominiko joined
|
|||
pmurias | mncharity: does STD_red lack much to parse STD.pm? | 15:48 | |
15:57
polettix joined
16:14
sri_work joined
16:52
justatheory joined
|
|||
pmurias | TimToady: there is a bug in gimme5, regex foo { (aa|a) a } dosn't match 'aa' as || is always ratchety even with $MAYBACKTRACK | 16:58 | |
17:04
sri_work left,
ruoso left
17:06
Lorn left
17:18
if joined
|
|||
rakudo_svn | r28183 | pmichaud++ | [rakudo]: | 17:29 | |
r28183 | pmichaud++ | * Update 'join' semantics. | |||
17:31
if is now known as FurnaceBoy
|
|||
pugs_svnbot | r20722 | pmichaud++ | S29: List.join should have @values as the invocant. | 17:31 | |
17:33
justatheory left
|
|||
pugs_svnbot | r20723 | diakopter++ | [yap6] checking in changes; I have literally no idea | 17:50 | |
r20723 | diakopter++ | how much of this is going to work. | |||
diakopter | (don't yap6: for a while; I'm sure there are syntax errors all over) | ||
moritz_ | diakopter: I'm prepare a perlmonks meditation as an update to this node: www.perlmonks.org/?node_id=628746 - should I mention yap6 there? | 17:56 | |
lambdabot | Title: Getting Involved with Perl 6 | ||
moritz_ | or would you rather prefer to work quietly until you have something to show? | ||
s/something/something more/ | |||
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:59 | ||
pmichaud | I don't think there's a .join method on Str invocants. | ||
diakopter | moritz_: you might as well mention it as an experiment in recursive descent grammars towards mutable grammars for Perl 6 | 18:01 | |
moritz_ | pmichaud: our Str multi method join ( $separator: @values ) | 18:02 | |
pmichaud: from S29 | |||
pmichaud | moritz_ isn't that in the section on List methods? | ||
moritz_ | pmichaud: does it matter? | 18:03 | |
$seperator: is a scalar, and marked as invocant | |||
pmichaud | I think that's actually incorrect in S29 -- I think it should be our Str multi method join ( @values : $separator ) | ||
otherwise @values.join(';') doesn't work | |||
(in r20722 I even changed S29 to read that way.) | 18:04 | ||
diakopter | hey moritz_: can anonymous subs be lvalue subs? | ||
moritz_ | diakopter: dunno, you have to try it ;) | 18:05 | |
diakopter | ok | ||
moritz_ | it burns down to "can anonymouns subs have :attributes?" | ||
s/burns/boils/ ;-) | |||
18:08
Jedai joined
|
|||
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:10 | |
pmichaud | okay, I retract my earlier statement. The tests are correct as written. | 18:11 | |
(method fallback causes it to work.) | |||
thus "foo".join(@values) falls back to join("foo", @values) | 18:12 | ||
18:13
dominiko left
|
|||
pmichaud | but the test descriptions are wrong then, as 'foo'.join(':') is equivalent to join('foo', ':') and not join(':', 'foo') | 18:16 | |
and, come to think of it, so is the output. hrm. | |||
I'll add a note to S29-list/join.t and maybe Auzon can clear it up :-) | 18:17 | ||
moritz_ | well, if you're sure the test is wrong I can clean it up now | ||
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:18
meppl joined
|
|||
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:19 | |
18:21
bacek left
|
|||
pugs_svnbot | r20724 | pmichaud++ | S29-list/join.t | 18:32 | |
r20724 | pmichaud++ | * Add a #?rakudo skip to the last two tests, and a note that the | |||
r20724 | pmichaud++ | tests themselves may be incorrect. | |||
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:38 | |
lambdabot | Auzon: You have 1 new message. '/msg lambdabot @messages' to read it. | ||
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. | ||
Auzon | @messages | ||
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... | ||
Auzon | away & | 18:42 | |
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.) | ||
moritz_ | www.perlmonks.org/?node_id=632816 # "Perl 6 Updates" meditation draft on my scratchpad. any comments before I post it for real? | 18:43 | |
lambdabot | Title: moritz's scratchpad | ||
19:04
eternaleye left,
eternaleye joined
19:05
kst joined
|
|||
mncharity | @tell fax Thanks for your work on elf! :) | 19:06 | |
lambdabot | Consider it noted. | ||
mncharity | better late than never :/ | ||
moritz_ | aye ;) | 19:07 | |
Auzon | moritz_: I suggest mentioning a recent revision that is known to compile cleanly | 19:17 | |
of Pugs, that is | |||
moritz_ | Auzon: ok, will do | ||
Auzon | also, the link for ruoso's grant is broken | 19:18 | |
in the elf paragraph: "join #perl6 on and" should be "join #perl6 on irc.freenode.net and" | 19:19 | ||
pasteling | "diakopter" at 209.9.237.164 pasted "fun with overloading operators on coderefs - the proof of concept works!" (26 lines, 515B) at sial.org/pbot/31245 | 19:20 | |
moritz_ | diakopter: woo that looks scary | 19:21 | |
diakopter | pmichaud: if you want a laugh; check out sial.org/pbot/31245 | ||
lambdabot | Title: Paste #31245 from "diakopter" at 209.9.237.164 | ||
moritz_ | Auzon: thanks, fixed all of those | ||
I published it now as www.perlmonks.org/?node_id=690945 | 19:22 | ||
lambdabot | Title: Getting Involved with Perl 6 - an Update | ||
Auzon | nice work moritz++ | ||
pugs: say $?PUGS_VERSION | |||
p6eval | OUTPUT[Perl6 User's Golfing System, version 6.2.13, October 17, 2006 (r18093)] | ||
moritz_ | thanks | ||
actually "last revision" is a bit exaggerated | 19:23 | ||
but nothing reallly happend to pugs inbetween :/ | |||
diakopter | further interesting - if you add an empty signature to bar (), bar still receives the argument .oO | ||
Auzon | Ah, I was wondering about the revision differences | 19:24 | |
moritz_ | Auzon: probably lots of kp6 commits ;) | ||
Auzon | elf: say 1 | ||
p6eval | OUTPUT[1] | ||
Auzon | perl6: say 1 | ||
p6eval | kp6 r20725: OUTPUT[1] | ||
..pugs: OUTPUT[1] | |||
..rakudo r28183: OUTPUT[1] | |||
..elf r20725: OUTPUT[1] | |||
19:25
Chillance joined
|
|||
Auzon | perl6: say "{1+1}" | 19:26 | |
p6eval | kp6 r20725: OUTPUT[{1+1}] | ||
..pugs: OUTPUT[2] | |||
..rakudo r28183: OUTPUT[{1+1}] | |||
..elf r20725: OUTPUT[{1+1}] | |||
moritz_ | pugs++ | ||
Auzon | That's the biggest "in your face" change that I keep forgetting. | ||
moritz_ | same for me | 19:28 | |
and that arrays don't interpolate anymore by default | |||
19:29
eternaleye left
|
|||
Auzon | I never really used that part of P5. | 19:29 | |
pmichaud | I wonder if I can get interpolation to work in rakudo. :-) | 19:30 | |
er, closure interpolation. the hooks are there already --just need to fill them in. | |||
moritz_ | pmichaud: why not? seems like "a jonathan" to me ;) | 19:31 | |
pmichaud | heh. | ||
okay, I'll do it then! Why should jonathan++ have all the fun? ;-) | |||
Auzon | I imagine elf could understand them without too much work either... | ||
moritz_ | (I hope you don't mind me paraphrasing you out of context ;) | ||
pmichaud | not at all :-) | ||
I paraphrase Larry all the time (hope he doesn't mind it :-) | 19:32 | ||
moritz_ | Auzon: probably, but I think mncharity and pmurias will wait for TimToady++'s refactor of the quoting stuff | ||
in STD.pm, that is | 19:33 | ||
Auzon | Makes sense. Rakudo doesn't use STD.pm, does it? | ||
moritz_ | no, but its parser is modeled after STD | ||
pmichaud | I'm aiming for STD.pm. I'm hoping/expecting that we'll be using STD.pm by the end of summer. | 19:35 | |
I think I should have protoregexes working by mid-to-late June. That'll take care of the biggest part of it. | 19:36 | ||
longest token matching sometime in july or august | |||
Auzon | moritz_: Did you look at my test cases for samebase? | 19:37 | |
moritz_ | Auzon: no. Will do now. | 19:38 | |
Auzon | The spec is a bit rough there, so I made some assumptions based off of samecase | 19:39 | |
moritz_ | uhm, where did you get all these fancy unicode chars from? | ||
;) | 19:40 | ||
btw it might be helpful to add a smartlink that points to S05 as well | |||
Auzon | KDE's character map :) | ||
I just searched for "with stroke" and got several that matched | 19:41 | ||
moritz_ | uhm wait | ||
is there a "combining stroke" char? | |||
Auzon | I don't understand unicode that much so the can probably be improved. | ||
moritz_ | problem is, combining chars can be placed onto any base char | 19:42 | |
Auzon | yes, there is. U+0335 and U+0336 | ||
moritz_ | which means that F + stroke can just be written as "F\x{0335}2C" | ||
s/2C// | 19:43 | ||
Auzon | So I need to find something without a combining character, correct? | ||
moritz_ | no | ||
it's just a case that doesn't occur in unicode world | 19:44 | ||
Auzon | Oh. OK, then I can change the test | ||
moritz_ tries to get his head straight | |||
actually I don't know if it's worth the effort for you to read about unicode stuff | 19:45 | ||
maybe I should take over that test, and consult with Juerd where I'm unclear | |||
Juerd | Unicode rocks :) | ||
moritz_ | Juerd: it does, indeed. But it't hard to write tests for if you don't grok it | 19:46 | |
(which I think we can't expect from Auzon++) | |||
Juerd | It's also hard to write tests for if you do :) | 19:47 | |
moritz_ | indeed | ||
Juerd | Encodings are pretty easy, but Unicode is hard. | ||
Auzon | I just haven't dealt with it so far (except in the sense of making it store and display correctly in my webapps) | ||
Juerd | Auzon: That's what I meant :) | 19:48 | |
moritz_ | heh ;) | ||
actually the spec is unclear here | |||
at least for "samecase" | 19:49 | ||
there are two versions of the :samecase regex modifiers | |||
one "dump" which copies on a per-grapheme base | |||
and one "smart" which tries to detect a pattern (uc, lc, ucfirst, lcfirst, capitalize) and applies that pattern to the second string | 19:50 | ||
S29 is silent about which the function/method samebase() refers to | |||
moritz_ composes mail to list | |||
pmichaud | moritz/auzon: Does sending questions about spec interpretation seem to work best for you? | 19:51 | |
(er, sending questions "to the list") | 19:52 | ||
Auzon | samebase and samecase are relatively new to the spec. | ||
moritz_ | pmichaud: so far not very well | ||
pmichaud | takes too long to get answers? | ||
moritz_ | one isn't clarified at all | ||
the one about inconsitencies with private method syntax in roles and classes | |||
Auzon | pmichaud: I've primarily been asking in here, which has been sufficient so far for me. | ||
moritz_ | other... dunno. many warnocked, though I don't remeber more specific cases | 19:53 | |
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. | ||
r20726 | putter++ | Updated test results. | |||
moritz_ | seldom got clear answers either way | ||
pmichaud | that's somewhat my experience as well. I'm wondering how we can improve it. | ||
diakopter | Bus error | 19:54 | |
moritz_ | get a spec grant for either TimToady or audreyt, if one of them were willing? | 19:56 | |
pmichaud | heh. I can't speak authoritatively for TimToady, but I think he might not be available for a grant at the moment. | ||
moritz_ | presumably. I'm just collecting ideas... | 19:57 | |
diakopter | Bus error | ||
pmichaud | I'd be willing to act as arbiter and decision maker, but I fear I'd decide wrongly as often as not. | ||
diakopter | sry; ww | ||
moritz_ | did I understand it right that same*base* actually carries *accent* information? | 19:59 | |
whereas same*case* carries *case* information? | 20:00 | ||
pmurias | mncharity: it was still possible to do hot-swapping with the refactoring $*compiler0.emitter = ...; | 20:01 | |
moritz_ | ok, mail sent to p6l - hopefully I won't get warnocked this time | 20:03 | |
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. | ||
mncharity | pmurias: re still possible, doh, did I just bungle that? pondering... | 20:04 | |
20:04
jhorwitz left
20:06
cognominal_ left,
cognominal_ joined
|
|||
pmurias | re rx_on_re, what i think now would be worth considering would be to use Cursor5 | 20:07 | |
it seems to be designed cleanly, and shaking any bugs in that would (presumably) help TimToady | |||
pmichaud | $ ./parrot perl6.pbc -e 'say "{1+1}";' | 20:09 | |
2 | |||
moritz_ | woot | ||
pmichaud++ | |||
of course all interpolation tests are still outside of spec/ | 20:10 | ||
20:12
Lorn joined
|
|||
pmichaud | no problem, I'm just glad it works :-) | 20:13 | |
moritz_ | wait 'til you access a variable in the closure | ||
does it blow up? ;-) | |||
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. | ||
pmichaud | > my $a = 'hello'; say " {$a} world "; hello world | 20:14 | |
> my $a = 'hello'; say " { substr($a, 2, 2) } world "; ll world | |||
lambdabot | Parse error at "=" (column 7) | ||
pmichaud | er, irc formatted that wrong for me. | ||
but yes, it works. | |||
moritz_ | pmichaud++ again ;) | 20:15 | |
pmurias | mncharity: hot swapping (monkey patching that is) the compiler would take 2 more lines | ||
pmichaud | > my $a = 'hello'; say "foo {$a} world "; | ||
foo hello world | |||
> my $a = 'hello'; say "foo { substr($a, 2, 2) } world "; | |||
foo ll world | |||
lambdabot | Parse error at "=" (column 7) | ||
moritz_ | sombody shot a goal | ||
pmurias | moritz_: yes | 20:16 | |
moritz_ | (it's europeen soccer championship, and I heard the cheers throughout the whole street) | ||
pmichaud | I always figured to look for the cars burning in the streets. :-) | ||
pmurias | mncharity: my $emitter = $*compiler.emitter;$parser = $*compiler.parser;$*compiler = Compiler.new(emitter=>$emitter,parser=>$parser) | 20:17 | |
moritz_ | pmurias: hey, this is Würzburg, not Paris ;) | ||
uhm, I meant pmichaud | |||
sorry | |||
pmichaud | moritz_: good point. :-) | ||
ooh, I need to see about booking travel to YAPC::EU | |||
although I should probably wait until Tuesday (better fares mid-week than weekend) | 20:18 | ||
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. | ||
pugs_svnbot | r20728 | pmichaud++ | S02-literals/autoref.t: | 20:19 | |
r20728 | pmichaud++ | * {} interpolates in double quotes, so use single quotes to display '{}'. | |||
rakudo_svn | r28184 | pmichaud++ | [rakudo]: | ||
r28184 | pmichaud++ | * Add {closure} interpolation to double-quoted strings. | |||
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. | ||
Auzon | pmichaud++ | 20:23 | |
That was fast! | |||
20:23
eternaleye_ joined
|
|||
pmichaud | well, like I said, the hooks were already there -- just needed to fill them in. | 20:23 | |
Auzon | rakudo: say "{1+1}" | 20:24 | |
p6eval | rakudo r28184 OUTPUT[2] | ||
pmichaud | rakudo: my @a = 1..5; say "countdown: { @a.reverse }"; | 20:25 | |
p6eval | rakudo r28184 OUTPUT[countdown: 5 4 3 2 1] | ||
Auzon | Um. I just now noticed that I did the wrong spec this week for my SoC project. | ||
moritz_ | Auzon: never mind ;) | 20:26 | |
but please add s small blog post about your progress | |||
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 | ||
moritz_ | you can just just copy&past the lines from your #perl6-soc report if you want | 20:27 | |
Auzon: it's just to keep the community informed that you're still doing things ;) | |||
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. | ||
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 | ||
moritz_ | Auzon: ok, thats fine | ||
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:29 | |
as TimToady is actively trying to get it to run | 20:30 | ||
mncharity | re works better, indeed, I believe that's where the recent focus has been | ||
*nod* | |||
pmurias | got to still understand the fate handling | ||
mncharity: to you understand how fates work in Cursor5? | 20:31 | ||
mncharity | no, I have little understanding of fate. | 20:32 | |
20:32
chris2 left
|
|||
pmurias | i'm installing debian on my new laptop so i'll soon see how elf performes on it ;) | 20:32 | |
Auzon | moritz_: I think that S29 also needs more details for pack/unpack. At the least, the P5 documentation should be added. | ||
pmurias | i accidently press space, and all the useless Desktop packages are installing :( | 20:33 | |
moritz_ | pmurias: that's what the good lord invented 'aptitude purge' for. But of course it takes a while first to install them :( | 20:34 | |
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. | ||
mncharity wonders if he has ever managed to do a fedora install without rerunning it at least once... | 20:35 | ||
moritz_ | Auzon: aye. But don't wait for it :( | ||
pmurias | what should i run?, i'm using my sluggish desktop machine now | 20:36 | |
Auzon | I added it to TASKS and I can send an email if that'd help | ||
mncharity | pmurias: re 'replacing the architecture of elf will need to be done sometime', <pause> | ||
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. | ||
Auzon | ok | 20:37 | |
pmichaud | istr that pack/unpack got some discussion on p6l in the not-too-distant past. | ||
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. | ||
pmichaud | might check the archives. | ||
moritz_ | pmichaud: I think they discussed how objects can be serialized, or how they can serialize themselves or some freaky stuff | 20:39 | |
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. | ||
pmurias | re replacing architecture doing BEGIN correctly requires compiling the whole program piecemeal, and then serialising it to disc | 20:40 | |
mncharity | why? | ||
pmurias | sub foo {...};BEGIN {foo()}; | 20:41 | |
my $var;BEGIN {$var = 123}; | |||
my $var;BEGIN {$var = 123};say $var; | |||
mncharity | why would that require any change in how the disk is touched? | ||
pmurias | s/to disc// | 20:42 | |
Auzon | Will Perl 6 emulate sprintf like Perl 5 did? | ||
pmurias | i should double check what i write | ||
it easier to implement some thing when you just creat stuff at runtime and the serialise it | 20:44 | ||
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:46 | |
pmurias | that's the way kp6 did it | 20:47 | |
it ended up rather messy | |||
mncharity | variant, or containers? | ||
Auzon | away& | ||
mncharity | Auzon: chao | ||
pmurias | mncharity: special containers | 20:48 | |
and some magic in the emitter, if i rememer correctly | |||
but i would go with the serilize everything aproach | 20:49 | ||
mncharity: the error stayed | |||
in re_test.t | |||
* re_tests.t | |||
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:50 | |
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:51 | |
i wanted this for AGES | |||
mncharity | re 'the error stayed', bizarre. it's been tested now on a variety of platforms. | ||
yath | \o/ | ||
mncharity | :) | ||
pmurias: what version of Regexp::Common are you using? | 20:52 | ||
pmurias | 2.122 | 20:53 | |
mncharity | re serializing the universe... eep, there has to be a better way. | ||
pmurias | it's simple | 20:55 | |
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. :/ | ||
pmichaud | re: 20:40 <pmurias> my $var;BEGIN {$var = 123};say $var; | ||
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 | |||
pmurias | pmichaud: it's possible to do it with some trick or other in order for use to work | 20:56 | |
mncharity | s/(if we can't do ruby-like eval-based metaprogramming) in BEGIN's/$1/ ;) yay, macros. | 20:57 | |
pmurias | mncharity: why are you against serializing the universe ? | ||
mncharity | because I don't understand what it means | 20:59 | |
bbiab | |||
how can END do cleanup if if can't access runtime variables? what purpose does it then serve? | 21:03 | ||
unless subs aren't considered variables? anyway & | 21:04 | ||
pmichaud | they can access runtime variables, just not lexical ones. :-) | ||
i.e., package variables and file-scoped lexicals are okay. | |||
21:04
perl7 joined
|
|||
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:05 | |
pmurias | dosn't it only refer to cloned closures? | 21:06 | |
mncharity | unless "runtime" variable is an alias for "lexical" variable? | ||
pmichaud | I'm not sure that it's referring only to lexical variables. | 21:07 | |
and yes, that may be only for cloned closures. | |||
pmurias | cloning TimToady would help ;) | 21:11 | |
rakudo_svn | r28185 | jonathan++ | [rakudo] Fix sleep. | 21:19 | |
moritz_ envies rakudo | 21:21 | ||
rakudo_svn | r28186 | pmichaud++ | [rakudo]: | 21:24 | |
r28186 | pmichaud++ | * A different version of sleep. | |||
21:25
perl7 left
|
|||
meppl | good night | 21:39 | |
21:43
meppl left
21:47
iblechbot left
21:48
alanhaggai left
21:49
meppl joined
21:53
justatheory joined
21:56
eternaleye_ left
21:58
FurnaceBoy left
22:00
justatheory left,
polettix left
22:01
meppl left
22:10
ofer joined
22:11
polettix joined
22:14
Lorn left
22:18
pmurias left
22:22
Jedai left
22:49
Eevee joined
22:51
Limbic_Region joined
22:53
meteorjay left
22:57
[particle] left
23:04
jjore is now known as zz_jjore,
zz_jjore is now known as jjore
|
|||
spinclad | diakopter: re leading whitespace operators: why not prefix ++ and -- ? "(++spaced+out++)" | 23:07 | |
23:13
jisom joined
|
|||
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:20 | |
so I ended up using a source filter :) | 23:21 | ||
(again) | |||
spinclad: but, it was fun, along the way, I caused a segfault in perl as well as a Bus error | 23:25 | ||
23:48
araujo joined
|
|||
spinclad | ooo, segfaults and bus errors, excellent! | 23:52 | |
23:56
wknight8111 joined
|
|||
diakopter | ugh; osx.5.3 update is 420MB | 23:58 |