Camelia, the Perl 6 bug

IRC log for #perl6, 2008-06-12

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs

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

All times shown according to UTC.

Time Nick Message
00:01 TimToady I believe when pugs implemented that the right side of = wasn't an implicit closure
00:02 TimToady in other words, pugs is wrong there
00:02 Auzon It's a really cool concept. Sadly, no one seems to be able to do it yet, so I won't rely on it when I'm not testing it
00:02 Auzon (1..5).map({Foo.new(count => $_)}) works just fine, but it's uglier
00:05 yahooooo joined #perl6
00:06 eternaleye_ joined #perl6
00:09 Auzon rakudo: try {my @o = (1..5); @o>>++;}; say "lives ok"
00:09 p6eval rakudo r28246 OUTPUT[Statement not terminated properly at line 1, near ">>++;}; sa"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
00:15 yahooooo joined #perl6
00:35 speckbot r14550 | larry++ | fixed "samebase" illogic pointed out by moritz++
00:53 speckbot r14551 | larry++ | added <...> et al. as suggested by ruoso++
01:07 pugs_svnbot r20765 | lwall++ | [STD] parse (and use) <...>
01:19 pugs_svnbot r20766 | lwall++ | [STD] s/basechar/ignoreaccent/
01:20 Auzon We're renaming basechar?
01:20 Auzon Err, never mind
01:22 Auzon I thought you meant samebase.
01:22 TimToady that too
01:22 TimToady is now sameaccent
01:23 TimToady .oO(Kato! What have you done to my rheum?)
01:24 Auzon perl6: a|bc|def.perl.say
01:24 Auzon perl6: a|bc|def.values.perl.say
01:24 p6eval kp6 r20766: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/Ki​ndaPerl6/Runtime/Perl5/MOP.pm line 345␤
01:24 p6eval ..pugs: OUTPUT[*** No such subroutine: "&a"␤    at /tmp/ctZsmlQh7U line 1, column 1 - line 2, column 1␤]
01:24 p6eval ..rakudo r28247: OUTPUT[Statement not terminated properly at line 1, near ".perl.say"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
01:24 p6eval ..elf r20766: OUTPUT[Undefined subroutine &GLOBAL::a called at (eval 14) line 3.␤ at ./elf_f_faster line 4496␤]
01:24 p6eval kp6 r20766: OUTPUT[syntax error at position 20, line 1 column 20:␤a|bc|def.values.perl.sa␤                    ^ HERE␤]
01:25 p6eval ..pugs: OUTPUT[*** No such subroutine: "&a"␤    at /tmp/wx7y1pyUsZ line 1, column 1 - line 2, column 1␤]
01:25 p6eval ..rakudo r28247: OUTPUT[Statement not terminated properly at line 1, near ".values.pe"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
01:25 p6eval ..elf r20766: OUTPUT[Undefined subroutine &GLOBAL::a called at (eval 14) line 3.␤ at ./elf_f_faster line 4496␤]
01:25 TimToady precedence
01:25 TimToady not to mention quotes...
01:25 Auzon pugs: say (1|2|3).perl
01:25 p6eval OUTPUT[(1 | 2 | 3)␤]
01:25 Auzon pugs: say 1|2|3.perl
01:25 p6eval OUTPUT[any(VInt 1,VInt 2,VStr "3")␤]
01:26 TimToady that's wrong
01:26 Auzon which part?
01:26 TimToady that should parse as (say 1)|2|(3.perl)
01:26 TimToady er, rather
01:26 TimToady say (1|2)|(3.perl)
01:27 TimToady oh, wait, that's what it idi
01:27 TimToady *did
01:27 TimToady see the quotes around "3"
01:27 * diakopter sees
01:27 Auzon Yes.
01:27 Auzon Which is why I shouldn't mix functional calls and method calls.
01:28 Auzon Not that it'd help here
01:28 Auzon pugs: perl(1|2|3)
01:28 p6eval RESULT["(1 | 2 | 3)"]
01:28 rhr what is say(1|2) supposed to print?
01:28 TimToady lists don't autothread
01:29 TimToady so it's whatever 1|2 stringifies to as a junction
01:29 Auzon pugs: say ~(1|2)
01:29 p6eval OUTPUT[any(VStr "1",VStr "2")␤]
01:30 rhr is that just unspecced on purpose?
01:30 TimToady that lists don't autothread?  that's specced somewhere...
01:30 rhr no, ~(1|2)
01:30 TimToady it is not specced how Junction should stringify
01:31 rhr ok
01:31 TimToady but making it the same as Junction.perl is probably reasonable
01:32 Auzon OK. Another question. The candidates for the methods of an object are processed with the multimethods of a given class, then the ones of its superclass, correct?
01:32 r0bby joined #perl6
01:32 [particle] joined #perl6
01:33 TimToady I presume you mean really multimethods and not multisubs
01:33 TimToady I've argued that one both ways in my head
01:34 TimToady I think current spec says that you determine which class to dispatch to before you do multiple dispatch within that class's multimethods
01:34 TimToady if I recall...
01:34 TimToady but not ifn't I don't recall...
01:35 TimToady biab &
01:35 Auzon Thanks TimToady++
01:36 Helios- joined #perl6
01:40 pugs_svnbot r20767 | Auzon++ | [gsoc_spectest] New tests for parallel dispatch in S12. (21 tests added)
02:30 pmichaud_ joined #perl6
02:42 japhb joined #perl6
03:21 felipe joined #perl6
03:24 Entonian joined #perl6
03:37 redicaps joined #perl6
04:20 Entonian_ joined #perl6
04:20 pugs_svnbot r20768 | diakopter++ | [yap6] well, the grammar engine is stabilized/reliable;
04:20 pugs_svnbot r20768 | diakopter++ | now the grammar needs fixin'
04:29 alc joined #perl6
04:51 iblechbot joined #perl6
05:00 Eevee joined #perl6
05:31 Eevee_ joined #perl6
05:43 Entonian_ joined #perl6
05:43 barney joined #perl6
05:50 Eevee__ joined #perl6
06:14 simcop2387 joined #perl6
06:20 Psyche^ joined #perl6
06:28 meppl joined #perl6
06:49 TimToady joined #perl6
06:49 silug joined #perl6
06:49 qmole joined #perl6
06:49 bbkr_ joined #perl6
06:49 kcwu joined #perl6
06:49 cls_bsd joined #perl6
06:49 kolibrie joined #perl6
06:49 gugod joined #perl6
06:49 PerlJam joined #perl6
06:49 diakopter joined #perl6
06:49 perlbot joined #perl6
07:03 pmurias joined #perl6
07:17 ting joined #perl6
07:20 iblechbot joined #perl6
07:33 Jedai joined #perl6
07:36 viklund joined #perl6
07:39 redicaps left #perl6
07:49 elmex joined #perl6
09:12 Ched- joined #perl6
09:13 Ched- left #perl6
10:22 rakudo_svn r28257 | jonathan++ | [rakudo] Fill out the implementation of ^.., ..^ and ^..^ operators.
10:24 vixey joined #PeRL6
10:49 ludan joined #perl6
11:04 fullermd joined #perl6
11:13 rakudo_svn r28258 | jonathan++ | [rakudo] Fix trailing whitespace.
11:14 rakudo_svn r28259 | jonathan++ | [rakudo] Add min and max to list. Patch courtesy of Vasily Chekalkin (bacek++).
11:17 felipe joined #perl6
11:37 mjk joined #perl6
11:50 rindolf joined #perl6
12:23 wknight8111 joined #perl6
12:25 bacek joined #perl6
12:41 renormalist joined #perl6
12:44 Jedai joined #perl6
13:01 cmarcelo joined #perl6
13:06 rakudo_svn r28263 | jonathan++ | [rakudo] A few changes to get us a little further along with role attributes.
13:11 pbuetow joined #perl6
13:17 iblechbot joined #perl6
13:22 rakudo_svn r28264 | jonathan++ | [rakudo] Initial work to support basic attribute composition. Far from complete, but gets private attributes from a directly composed role working.
13:23 sri_work joined #perl6
13:29 pugs_svnbot r20769 | jnthn++ | [spectest] A couple of basic tests for role attribute composition.
13:30 rakudo_svn r28265 | jonathan++ | [rakudo] Get accessor and handles methods of roles in the correct namespace, making composition of public attributes work.
13:32 rakudo_svn r28266 | jonathan++ | [rakudo] Add passing regression test for some basic role attribute composition to spectest_regression.
13:39 alc joined #perl6
13:49 sscaffidi joined #perl6
14:05 chris2 joined #perl6
14:05 Ara4n joined #perl6
14:10 cognominal_ joined #perl6
14:13 alester joined #perl6
14:32 jhorwitz joined #perl6
14:43 IllvilJa joined #perl6
14:48 pugs_svnbot r20770 | jnthn++ | [spectest] A couple of tests were using $.x as an lvalue without having declared it 'is rw'. Fix this.
14:50 ruoso joined #perl6
14:53 rakudo_svn r28267 | jonathan++ | [rakudo] Support 'is rw' on attribute declarations. Trying to use the accessor in l-value context when it's not marked 'is rw' now results in an exception, as per S12.
15:09 rakudo_svn r28269 | jonathan++ | [rakudo] Fix 'handles'. The fact we have to do this may point to a PCT bug - it hadn't used to require a PAST::Val node here.
15:17 [particle] joined #perl6
15:24 [particle]1 joined #perl6
15:40 stevan_ joined #perl6
16:02 gbarr joined #perl6
16:41 mncharity joined #perl6
16:43 rakudo_svn r28273 | jonathan++ | [rakudo] Allow types to be declared on attributes and enforce them. We also move a little closer to STD.pm in this patch and gain support for type conjunctions (the code was there, just not being called into), so you can do my Type1 Type2 $foo.
16:45 mncharity no elf-ish activity at all... :/
16:46 armagad joined #perl6
16:48 mncharity kolibrie: re exercise Cursor5 engine, you might find http://svn.pugscode.org/pugs/misc/pX​/Common/yet_another_regex_engine/t/  of use, though it's based on a somewhat outdated rx syntax.
16:48 lambdabot Title: Revision 20770: /misc/pX/Common/yet_another_regex_engine/t, http://tinyurl.com/5ujc2g
16:49 eternaleye_ joined #perl6
16:51 pmurias joined #perl6
17:08 alester left #perl6
17:11 pmurias mncharity: i'm trying to do the things i have to till the end of this week and hopefull i'll have lots of free for elf during the next one
17:15 diakopter pmurias: I strictified yap6 for you
17:15 pugs_svnbot r20771 | diakopter++ | [yap6] added a new memoization/recursion-escape technique.
17:15 pugs_svnbot r20771 | diakopter++ | The diff is very very long.
17:16 diakopter that new technique, once it's working (it syntax-checks in perl now! :), should give O(n) parsing once I add a zillion trace lines and actually get it working.  you might call that last commit a stub.
17:17 Southen_ joined #perl6
17:17 diakopter I forgot to say, O(n) parsing, even when the grammar is filled with left recursive rules (both direct and indirect).
17:17 diakopter which I *know* will be the case with this grammar.....
17:18 diakopter commutativity &
17:24 pmurias diakopter: comutativity = commuting?
17:37 t35t0r joined #perl6
17:40 t35t0r woo autothreading
17:42 pbuetow joined #perl6
17:43 pmurias diakopter: why don't use overload -- instead of using a source filter?
17:43 rakudo_svn r28276 | jonathan++ | [rakudo] Get us closer to S12 role composition semantics for attributes. This patch implements, 'Two has attributes of the same name, whether public or private, are simply merged into one slot, provided the types are the same; otherwise, the composition fails.' Also, move some
17:43 rakudo_svn ..code around to make sure we do the role composition once everything inside the class has been declared, not before, as per the spec.
17:45 pbuetow joined #perl6
17:48 pmurias s/don't/not/
17:50 diakopter pmurias: yeah commuting; a pun
17:51 diakopter pmurias: how would I use overload for what the source filter is doing
17:52 pmurias looking in the camel more&
17:52 mncharity http://netropolis.org/hash/70-lisp-and-perl :)
17:52 lambdabot Title: Lisp and Perl
17:52 mncharity pmurias: re time, neat. :)
17:52 diakopter while you're thinking about that, let me know if you have any ideas for autogenerating all those declarations (uppercase/lowercase) and the wrapper functions and the %N
17:57 iblechbot joined #perl6
17:58 diakopter b/c those are a pain to type every time I add a rule
18:00 pmurias diakopter: overloaded ++ dosn't return a value, not nice :(
18:01 pmurias diakopter: why do you need all those declarations?
18:04 pmurias are there used elsewhere then for creating the subs?
18:07 pmurias a rule foo {...} could be replaced by rule foo => sub {...} or rule 'foo' {} which would create the appropriate sub and %N entry
18:07 diakopter pmurias: yeah; I couldn't use ++, so I worked around it with a source filter :D
18:07 diakopter the declarations are necessary so the scalars are created before the coderefs are created
18:08 pmurias why do you need the scalars?
18:08 diakopter because the rules refer to each other
18:09 diakopter and if it parses $rulename (or some function that returns $rulename) before it's declared, perl dwidm and doesn't complain, but the references are empty
18:10 diakopter even if they're assigned coderefs in main
18:10 diakopter anyway, obviously the grammar could be in a separate file and then the package file generated and then eval'd from it...
18:11 pmurias diakopter: you are doing it to enable sub foo {bar}; sub bar {...} style thing?
18:12 pmurias with &foo being declared later in the file then being defined?
18:12 diakopter yes
18:12 Southen joined #perl6
18:12 diakopter any other ideas on implementing that?
18:13 pmurias use foo() instead of foo
18:14 diakopter do you mean sub foo() {} or sub bar { foo() }
18:14 pmurias sub bar { foo() }
18:15 diakopter yeah, I could use that, but that's too many arcs
18:15 diakopter :P
18:15 eternaleye joined #perl6
18:15 diakopter not too many to type, I mean (obviously)... too many to look at
18:19 * diakopter wonders if an entire package can be eval'd like that
18:19 diakopter and if it would persist..
18:20 pmurias diakopter: you have a list of sub foo();sub bar();... on top
18:20 pmurias * could have
18:21 r0bby joined #perl6
18:21 diakopter it's not the functions that are the problem, anyway, it's the  my $Uppercase = parser { $lowercase->(@_) } that are the problem
18:22 pmurias what to use you the $Uppercase for?
18:22 diakopter Uppercase is what lowercase() returns
18:22 diakopter it's the generated parser
18:22 diakopter parser sub { lower... } builds the parsers
18:23 pmurias why can use have rule 'lowercase' {} create &lowercase
18:23 diakopter based on how they're declared below it
18:23 pmurias s/can use/can't you/
18:23 diakopter I tried that, but would you declare them as "our"?
18:24 diakopter b/c I couldn't get them to persist
18:24 pmurias with sub lowercase(); at the top allowing you to omit parens
18:24 pmurias all subs are our in p5
18:24 pmurias well global
18:24 diakopter no, I mean $U and $l
18:25 pmurias throw $U and $l away
18:25 diakopter they have to be there
18:25 pmurias what for?
18:25 pmurias you only use them to generate &l
18:25 diakopter the parsers have to be generated before they're used... and declared before they're generated, but the generating subs have to be declared before the rules are declared
18:25 pmurias it's possible to that withought tem
18:26 pmurias s/tem/them
18:26 diakopter I'll be impressed.... I mean, if MJD couldn't figure it out... :P
18:28 diakopter so you'd have   sub rule ($&) { eval qq{ sub $_[0] { \$.... what?
18:30 diakopter parser {} returns a coderef...  what would you call this coderef?
18:30 t35t0r left #perl6
18:30 pmurias i wouldn't use eval
18:30 diakopter I suppose parser could stash it in a hash
18:31 pmurias is yap6 supposed to work right now?
18:31 * diakopter waits for pmurias to explain the idea
18:31 diakopter pmurias: nope
18:31 diakopter well, it should work with "use v6;" :)
18:32 pmurias yap6: use v6;1;
18:32 p6eval yap6 r20771 OUTPUT[Can't locate Tie/IxHash.pm in @INC (@INC contains: ../lib lib /etc/perl /usr/local/lib/perl/5.8.8 /usr/local/share/perl/5.8.8 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl .) at lib/Perl6in5/Compiler/Parser.pm line 19.␤BEGIN
18:32 p6eval ..failed--compilation aborted at lib/Perl6in5/Compiler/Parser.pm lin...
18:32 diakopter yup
18:33 diakopter moritz_: Auzon: Tie::IxHash ?
18:33 * Auzon checks
18:33 diakopter you asked whether yap6 works, not "yap6:"
18:33 pmurias yes
18:34 pmurias got back something strange :{...}, so i guess it does
18:34 Auzon yap6: 1
18:34 p6eval yap6 r20771 OUTPUT[parse successful␤:{inp => "use v6;\n1",success => 1,want => "RE (?-xism:^(\\d+))",name => "/tmp/hTHW7qIxZq",hit => "",ast => [["","","","","","","","","","","","​","","","","","","","","","","","","​","","","","","","",""],["EOI"]],mut => 0,backed => 0,col => 1,fated => 1,pos =>
18:34 p6eval ..9,line => -1}␤]
18:34 pasteling "diakopter" at 209.9.237.164 pasted "sorta broken" (4 lines, 276B) at http://sial.org/pbot/31292
18:35 diakopter heh
18:35 diakopter I didn't realize it can stringify a re
18:36 diakopter obviously the ast part doesn't work yet... also, don't give it anything longer; it ulimit/segfaults
18:36 pmurias i'll do the refactoring then
18:36 diakopter wait, just give me 1 rule example
18:37 pmurias i intend to do it for 1 rule first
18:37 pmurias you can revert if you wish
18:37 diakopter ok; cool
18:43 cjfields joined #perl6
18:44 pmurias execnow {...} is just do {...}?
18:45 diakopter rakudo: 1;;
18:45 p6eval rakudo r28278 OUTPUT[Syntax error at line 1, near ";"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
18:45 diakopter pmurias: I guess so, yeah... obviously that shouldn't be necessary with your change
18:46 barney joined #perl6
18:46 ilogger2 joined #perl6
18:50 cjfields perl6: say "ABCDEFGH".trans( ('A..CE..G' => ' a..c e..g ');
18:50 p6eval kp6 r20771: OUTPUT[syntax error at position 20, line 1 column 20:␤say "ABCDEFGH".trans( ('A..CE..G' => ' a..c e..g ')␤                    ^ HERE␤]
18:50 p6eval ..pugs: OUTPUT[*** ␤    Unexpected end of input␤    expecting ":", identifier or ")"␤    at /tmp/FQw8LW0euz line 2, column 1␤]
18:50 p6eval ..rakudo r28278: OUTPUT[Statement not terminated properly at line 1, near "( ('A..CE."␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
18:50 p6eval ..elf r20771: OUTPUT[Parse error in: /tmp/q3voElZEA3␤panic at line 1 column 0 (pos 0): Can't understand next input--giving up␤WHERE: say "ABCDEFGH".trans( ('A..CE.␤WHERE:/\<-- HERE␤  STD_red/prelude.rb:98:in `panic'␤  STD_red/std.rb:76:in `scan_unitstopper'␤  STD_red/std.rb:224:in `comp_unit'␤
18:50 p6eval ..STD_red/std.rb:210:in `_UNIT'␤  ./../STD_red/STD_red_run:108:in `...
18:50 cjfields perl6: "ABCDEFGH".trans( ('A..CE..G' => ' a..c e..g '));
18:50 p6eval kp6 r20771: OUTPUT[no method 'trans' in Class 'Str'␤ at compiled/perl5-kp6-mp6/lib/Ki​ndaPerl6/Runtime/Perl5/MOP.pm line 345␤
18:50 p6eval ..pugs: RESULT["abcDefgH"]
18:50 p6eval ..rakudo r28278: OUTPUT[too few arguments passed (2) - 3 params expected␤current instr.: '_block11' pc -340016394 ((unknown file):-1)␤
18:50 p6eval ..elf r20771: OUTPUT[Can't locate object method "trans" via package "ABCDEFGH" (perhaps you forgot to load "ABCDEFGH"?) at (eval 14) line 3.␤ at ./elf_f_faster line 4496␤]
18:51 cjfields Don't know if TimToady is around, but how should transliteration handle spaces
18:52 diakopter replace them with time?
18:53 cjfields like "ABCDEFGH".trans( ('A..CE..G' => ' a..c e..g ')), which has two Ranges with spaces
18:53 cjfields diakopter:  :D
18:53 cjfields No, I mean if one wanted to transliterate a literal ' '.
18:55 diakopter provide the hex?
18:56 cjfields S05 indicates that trans() uses a List of Pairs; each Pair key/val could be an Array, Range, or string
18:56 cjfields I thought of that, but there is this one:
18:57 cjfields perl6: say " <>&".trans( (['<',    '>',    '&',    ] => ["&lt;", "&gt;", "&amp;" ]))
18:57 p6eval kp6 r20771: OUTPUT[no method 'trans' in Class 'Str'␤ at compiled/perl5-kp6-mp6/lib/Ki​ndaPerl6/Runtime/Perl5/MOP.pm line 345␤
18:57 p6eval ..pugs: OUTPUT[ &lt;&gt;&amp;␤]
18:57 p6eval ..rakudo r28278: OUTPUT[too few arguments passed (2) - 3 params expected␤current instr.: '_block11' pc -339180784 ((unknown file):-1)␤
18:57 p6eval ..elf r20771: OUTPUT[Can't call method "trans" without a package or object reference at (eval 14) line 3.␤ at ./elf_f_faster line 4496␤]
18:57 * cjfields ignoring rakudo for the moment; that's what I'm trying to implement...
18:58 cjfields perl6: say " <>&".trans( ([' ',      '<',    '>',    '&'    ] => ['&nbsp;', '&lt;', '&gt;', '&amp;' ]))
18:58 p6eval kp6 r20771: OUTPUT[no method 'trans' in Class 'Str'␤ at compiled/perl5-kp6-mp6/lib/Ki​ndaPerl6/Runtime/Perl5/MOP.pm line 345␤
18:58 p6eval ..pugs: OUTPUT[&nbsp;&lt;&gt;&amp;␤]
18:58 p6eval ..rakudo r28278: OUTPUT[too few arguments passed (2) - 3 params expected␤current instr.: '_block11' pc -340315406 ((unknown file):-1)␤
18:58 p6eval ..elf r20771: OUTPUT[Can't call method "trans" without a package or object reference at (eval 14) line 3.␤ at ./elf_f_faster line 4496␤]
19:00 cjfields I'm assuming the Array form only accepts single characters for the key, while the value can be any length
19:00 pmichaud I think that spaces are significant in the translation keys
19:00 cjfields That's what I thought, but the spec test indicate otherwise
19:00 pmichaud the spec tests can be wrong.
19:01 pmichaud that's why we're reviewing them.  :-)
19:01 pmichaud also, I think it's likely that the test was written before the current version of trans() in S05.
19:01 diakopter sometimes, all three of: the spec, the spectests, and the implementations are wrong...
19:02 rindolf joined #perl6
19:03 diakopter afk
19:05 cjfields Okay; that makes the most sense.  The interesting bit is that 'AD..Z' (string) is supposed to be converted over to a List ('A', 'D'..'Z'), which involves a little behind-the-scenes work
19:05 cjfields but I have a p6 grammar that gets through that bit
19:06 cjfields Just trying to work out the whitespace bit.  I'll see how p5 deals with it for now.
19:07 pmichaud (supposed to be converted to a List) ... where did you see that?
19:07 cjfields "The two sides of any pair can be strings interpreted as tr/// would: $str.=trans( 'A..C' => 'a..c', 'XYZ' => 'xyz' );"
19:08 pmichaud but that doesn't say anything about converting the strings into a list.
19:09 cjfields Wouldn't 'A..C'  be (
19:09 cjfields ('A', 'B',
19:09 cjfields 'C')
19:09 * cjfields hitting 'Enter' too many times
19:11 cjfields That would be the same as 'A'..'C', but the first is a string interpreted as a Range of values (similar to the older 'A-Z' in p5 tr///)
19:11 pmichaud 'A..C' would represent the characters A through C, yes, but I don't see anything that indicates it has to be done using a List.
19:12 pmichaud I'm not saying it cannot be doing with a List, only that I don't see it being required by the spec.
19:12 pmichaud s/doing/done/
19:12 cjfields okay, I see what you mean
19:15 cjfields I have currently 5/17 tests passing the current spec (the patch is in RT for that one).  All failing tests have the spacing issue, ranges, or are p5-like tr///.
19:17 macae joined #perl6
19:17 pmichaud coool.
19:20 diakopter pmurias: any progress? :)  I'm excited to see what you create
19:20 diakopter rakudo: (; ;)
19:20 p6eval rakudo r28279 OUTPUT[Syntax error at line 1, near "(; ;)"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
19:21 pmichaud yes, I know about that one.  I haven't had a chance to look at STD.pm to see where it handles empty things in statementlist or semilist
19:22 diakopter elf: (; ;)
19:22 p6eval OUTPUT[Use of uninitialized value in join or string at ./elf_f_faster line 159.␤Use of uninitialized value in join or string at ./elf_f_faster line 159.␤syntax error at (eval 14) line 3, near "(,"␤ at ./elf_f_faster line 4496␤]
19:22 diakopter pugs: (; ;)
19:22 p6eval OUTPUT[*** ␤    Unexpected ";"␤    expecting expression or ")"␤    at /tmp/oRDTG6f2Js line 1, column 2␤]
19:22 pmichaud heh.
19:22 pmichaud we're all confused.
19:23 diakopter yap6: (; ;)
19:23 p6eval yap6 r20771 OUTPUT[syntax error (or degenerate/incomplete grammar) at line 0 col 1 near "; ;)"␤Expected: "only".␤]
19:23 diakopter Expected "only" lol
19:23 * mncharity briefly wonders why p6 implementations are being fed orange smiley faces...
19:24 pmichaud because the lemon ones are too tart.
19:24 diakopter kp6: (; ;)
19:24 p6eval kp6 r20771: OUTPUT[syntax error at position 0, line 1 column 0:␤(; ;␤^ HERE␤]
19:25 mncharity :)
19:26 diakopter yap6: say 4;
19:26 p6eval yap6 r20771 OUTPUT[parse successful␤:{inp => "use v6;\nsay 4;",success => 1,want => "package",name => "/tmp/tKCrKUX1B0",hit => "",ast => [["","","","","","","","","","","","","","","",""​,"","","","","","","","","","","","","","","","",​"","","","","","","","","","","",""],["EOI"]],mut => 0,backed =>
19:26 p6eval ..0,col => 6,fated => 1,pos => 14,line => -1}␤]
19:26 diakopter that's quite the ast :P
19:27 pmurias diakopter: it turned out the issue is more complex then i think, but i'm steadily moving in the right directions proximity
19:27 diakopter I guess now I should tell you I wasted probably 8 hours last week trying to work around it myself...
19:27 diakopter well, not wasted.  I learned a lot.
19:29 mncharity i'm puzzling over the question of when exactly we'll start seeing people writing in p6 again.
19:30 mncharity does pugs' ext/ figure in the rakudo project vision anywhere?  or is the code too stale, and authors all gone.
19:30 moritz_ mncharity: ext/CGI/ nearly works on rakudo
19:30 moritz_ mncharity: and I plan to get ext/Sudoku/ running as well
19:30 mncharity :)
19:31 mncharity any feel for when those might be possible?
19:33 moritz_ not really
19:34 mncharity :/   ok, tnx
19:35 pmurias mncharity: PCR was used in production twice afaik
19:37 pugs_svnbot r20772 | moritz++ | [ext/Sudoku] no need for 'my' in pointy blocks
19:37 diakopter pugs: say;;
19:37 p6eval OUTPUT[␤]
19:39 mncharity re PCR, one potential elf story was "being able to compile p6 rx to fast p5 will be of interest to people, and attract them to p6 and elf".  but... even if one accepts the former, the latter two don't really follow...
19:44 pmurias diakopter: shouldn't program do the parsing, instead of returning a sub which does the parsing?
19:46 mncharity puzzle is, looking ahead at a strawman elf dev path of 'CL backend => fastest pX ever'; 'rx engine in'; 'parser->p6 => full bootstrap, runs like the wind'; 'sync rx w spec'; 'flesh out prelude'; 'run ext/'; 'run in browser'; ... or something perhaps vaguely somewhat like that...
19:47 pmurias pX means?
19:48 pmurias p(5|6)?
19:48 ron joined #perl6
19:48 ron pugs: say 'hello';;
19:48 p6eval OUTPUT[hello␤]
19:48 diakopter p-56
19:48 mncharity re 5|6, yes.
19:48 diakopter /usr/bin/perl56
19:48 ron left #perl6
19:49 pmurias mncharity: do you think a CL backend would beat perl5?
19:50 mncharity puzzle is, it's not clear at what point in that path anyone starts being interested in writing p6.  kp6, well advertised but non-bootstrapped and glacial wasn't it.  current elf half-bootstrapped and fast but poorly advertised isn't it.  unclear to me what is it...  what is sufficient for folks to start writing p6 again?
19:51 mncharity re CL faster than p5, yes, no question.  and critically, abstractions can compile away,
19:51 moritz_ mncharity: features on demand would bring people back to p6
19:52 mncharity so you are not always faced with "there the right way to do this... but I can afford the sub/method call cost of it...".
19:52 diakopter maybe they're/we're waiting for Dlugosz to finish his rigorous spec doc
19:52 mncharity "features on demand"?
19:52 pmurias "we write a test, you write the feature"
19:52 moritz_ right
19:53 mncharity ah... ok.  yes, that was very nice.
19:56 mncharity re rigorous spec doc, ... one issue is, the story has always been "need impl to serve as foil for language design".  with p6l still arguing over .WHAT, well, my fuzzy impression is oo is on TimToady's todo list after parsing.  I've repeatedly found myself stuck on "I just need a bleeping spec"... but currently think of that view as a misunderstanding of the p6 dev process.
19:56 pmurias re intrested in writing p6, you mean the point when people start playing with it or writing (semi-) serious stuff in it
19:57 mncharity so there seem likely to be one or more p6-like impls for a while, with people starting to use them, generating experience and feedback, with the spec continuing to revised... rather than a spec->impls->users waterfall.
19:58 diakopter why doesn't someone melt these shotgun pellets into a bullet...
19:59 diakopter oh yeah; b/c there's no rifle...
19:59 mncharity re meaning of intrested in writing p6, people writing ext/ like things?  not sure if that's play or semi-serious.
20:01 mncharity creating order 10 classes and at least high order 100 lines of code with the indent of doing something?
20:02 diakopter I submitted two items to the GSOC tasks idea page - 1. flesh out the Perl 6 test suite  2. Write the Perl 6 compiler in Perl 6 [without a complete implementation on which to run it].  Obviously the second was a little far-fetched
20:03 mncharity diakopter: well, there's this: there's a p6 story that p6+cpan will create an environment for language evolution.  towards a p7 which is ai complete or somesuch.  something like that.  point is, if gracefully evolving language and implementation is a requirement for p6.0.0, then p6 being as yet incompletely spec'ed isn't really a problem, because
20:03 pugs_svnbot r20773 | pmurias++ | [yap6] initial try at removing some of the boilerplate
20:03 pmurias diakopter: checked my attempt in
20:04 mncharity you have to create something which can gracefully move around a p6-ish design space anyway, so it doesn't matter that you don't have a point target at the moment.
20:06 pmurias the perl6 spec isn't likely to change much now
20:08 mncharity http://www.perl.com/pub/a/2001/04/02/wall.html grep RFC 141
20:08 lambdabot Title: perl.com: Apocalypse 1: The Ugly, the Bad, and the Good
20:09 diakopter ooo neat
20:09 mncharity http://dev.perl.org/perl6/doc/design/apo/A01.​html#RFC_141:_This_Is_The_Last_Major_Revision
20:09 lambdabot Title: Apocalypse 1: The Ugly, the Bad, and the Good - perl6, http://tinyurl.com/5h4mfl
20:14 diakopter pmurias: looks good to me.. thanks!
20:14 pmurias diakopter: it would be slightly more efficient if reverse @order would be used used inplace of @order, assuming the grammar is structured from the topmost rule downwards
20:15 diakopter nah; the order doesn't matter..., although it might if the parser generator functions were memoized
20:15 mncharity re elf... if there were a 'dedicate N person weeks to build X, and "they will come"' story, that could be nice.  but a 'well, we've built F, and they didn't come.  M+e weeks will get G, and they might come then, or perhaps M+2e and H, or maybe..." story doesn't lend itself to project planning and resource management.
20:16 * diakopter can't believe the first attempt at implementing packrat_TR-2007-002.pdf is actually sorta working
20:16 diakopter the current grammar creates 541 parser objects
20:18 pmurias mncharity: i'm not a typical perl coder, so i can't really help you with finding out what motivates others
20:19 diakopter now, if only ++ returned something (somehow)... I got the copy constructor to persist a reference to the original, but I gave up at 4 a.m. or something
20:20 [particle]1 mncharity: nobody knows about what you're doing, because there's 125 people in the room, and most are just lurking
20:20 [particle]1 use email, blog, share with the world!
20:20 [particle]1 you need to let people know what you're doing, and why it matters to them
20:21 vixey what is happening with elf now?
20:22 pugs_svnbot r20774 | jnthn++ | [spectest] Couple more tests for attribute composition.
20:23 mncharity [particle]1: hmm, interesting thought... a prerequisite seems a "Why Perl 6 matters" piece, which I've never seen one of (audreyt's paper really wasn't it), and has been on the infinite todo list for years... maybe now's the time to do it?
20:25 pmurias diakopter: should you really be using $obj++ or ++$obj, they seem to be implying side effects
20:25 mncharity vixey: re "what is happening with elf now?", well, whatever I do next?  possibilities are 'translate parser from ruby to p6' (or wait for TimToady's parser, as it's not pressing until there's a second backend), or
20:26 mncharity get the elf on CommonLisp backend bootstrap working, or add more-than-positional-arguments to the p5 backend, or
20:27 mncharity or drop stuff from Snn into the preludes, or further patch std.rb so you can actually do that an have it parse, or
20:27 mncharity there's a TODO file...
20:28 [particle]1 mncharity: it may be time, but not for me to write :)
20:28 mncharity or pursue the rx_on_re translation/creation of an p6 rx engine,
20:28 mncharity http://svn.pugscode.org/pugs/misc/elf/TODO
20:28 mncharity has some of these
20:30 mncharity re 'not for me to write', :)  but, it would at least be something which actually affects other people, which it's not entirely clear elf does.
20:32 [particle]1 indeed
20:33 diakopter pmurias: now that I look at it, I guess I removed all the -- and ++ from the grammar.
20:34 mncharity vixey: if by happening you mean what works, there's a p6 parser (faster than pugs, and at least a while back, faster and at least in some ways more complete than rakudos), a p6 compiler written in p6 (only one existent, unless you count rakudo's grammar actions as a compiler), fastest not-really-p6 implementation (ie, when it works, faster than pugs/kp6/rakudo).  that said,
20:34 diakopter in fact, I barely remember what I was *going* to use them for.
20:35 mncharity various "that's not quite right/enough"s.  written to make p6 _compiler writing_ possible.  not really to itself be a "let's be a random user writing using random p6 features".
20:38 mncharity so... p6 compiler writing is possible... you can write 100+ class p6 programs and run them... there could be people pouring in prelude code right now (modulo having to be aware of current implementation limitations and weaknesses, and sometimes needing those pushed back)... but, there aren't.
20:40 mncharity more explicitly, both pugs and rakudo have a broader and more correct implementation of p6 that elf at the moment.  that wasn't the elf objective.  setting people up to be able to address it, while working comfortably in p6, was.
20:41 rakudo_svn r28282 | jonathan++ | [rakudo] S12-role/attributes.t is now fudged.
20:43 mncharity at some point it will become possible to run an elf on rakudo.  perhaps even before most of ext/ works.  though some things like temp(), which you really want when writing a compiler, don't seem high on the rakudo todo list.
20:44 mncharity rakudo: our $x=3; temp $x =4; say $x;
20:44 p6eval rakudo r28281 OUTPUT[Could not find non-existent sub temp␤current instr.: '_block11' pc 77 (EVAL_10:31)␤
20:45 IllvilJa joined #perl6
20:48 mncharity hmm,  "Why Perl 6 matters"... the ideas it has, and "why not just take those ideas to python/ruby/scala/javascript/(other?)".
20:53 * diakopter watches evalglot in #parrot
20:53 pmurias implementing them in those languages would be difficult too
20:54 mncharity pmurias: which in which?
20:55 Auzon APL and Tcl and BF and lolcode?
20:56 mncharity scala, yes, rather fundamentally.  the others... it would be mostly non-core performance which bites you, and they all have active jit projects which blur that.  besides, all but javascript have "if its a good idea, and you need better-than-native performance, do a plugin" stories.
20:58 mncharity p5 should go on the list too.  don't know of an active p5 jit project, but p5 community would be willing to modify impl to do p6ish stuff fast.
20:59 rakudo_svn r28284 | pmichaud++ | [rakudo]:
20:59 rakudo_svn r28284 | pmichaud++ | * Refactor Range a bit.
21:00 mncharity ruby, and perhaps js, aren't as well set up as python to do language extentions, eg, to add type information gracefully.
21:01 pmurias mncharity: implementing perl6 ideas in python/ruby/scal/javascript would be hard too
21:01 mncharity yes, but they have more active communities.
21:01 mncharity than p6
21:03 mncharity the usual response I get when describing 'random neat p6 feature' is 'ok, neat.  but why not do that in X, rather than p6'.  where X is rb/js/... hmm, usually not py.
21:04 mncharity so a "Why Perl 6 matters" has to address those questions.
21:08 pmurias by 'random neat p6 feature' you mean a syntactic, vm or semantic feature?
21:08 mncharity spinclad: if you were interesting in a CL/p6 hybrid task, create a  class prim { sub array_create() is cl {'...cl code...'}; ... }  and  class Array { has $prim; method new { ...$prim = prim::array_create(...)...  }... all of S29...}     wouldn't have to run, but just assembling it all would be a help.  feel free to make the method sigs all spec, even where they don't quite run yet.  I can then massage elf and them to work.
21:08 mncharity same for Hash.
21:10 mncharity pmurias: syntactic or semantic, yes.  p6, the langauge, doesn't have vm features.
21:11 mncharity though p6 would of course be a nice language to _implement_ vm's in.
21:12 mncharity and "real compile-time and aggressive compiler story, rather than merely jit", is one 'neat feature' vs rb/py/js.
21:13 diakopter pmurias: I can't get it to work with any more than 'program'
21:14 pmurias hm
21:17 pmurias diakopter: i converted usev6 withought problems
21:17 pmurias diakopter: what errors do you get
21:17 pugs_svnbot r20775 | pmurias++ | [yap6]
21:17 pugs_svnbot r20775 | pmurias++ | removed debugging leftover
21:18 pugs_svnbot r20775 | pmurias++ | usev6 converted
21:18 pmurias mncharity: before i forget a simple way of parsing use v5; would be to use indentation as a way of determining where p5 code ends
21:19 diakopter I converted stmtList
21:20 mncharity re vm, parrot seems somewhat a no-op on "Why Perl 6 matters".  If parrot runs well, then it can run other languages, so it's not an argument against 'add p6 feature X to language Y'.  And even if it runs not so well, everyone is targeting multiple vm's, so that would not be an argument that Perl 6 doesn't matter.
21:20 pmurias you can ci the code and i'll try to fix it
21:21 Jedai joined #perl6
21:22 pmurias i should be getting some sleep now& i'll backlog as always
21:22 mncharity hmm.  I suspect making p5 _easier_ to use in elf is very much the wrong direction.  it
21:22 mncharity oh
21:23 diakopter pmichaud: it's b/c stmtList is self-referential
21:23 diakopter oops
21:23 diakopter pmurias:
21:24 mncharity anyway, it would only encourage bootstrap compromising things like tidy() (which still needs to be turned into mostly p6;).  nice for end users, of which we don't have one yet, but not nice for compiler development.
21:25 pmichaud diakopter: ...?
21:25 mncharity pmichaud: that was a misaddress I believe
21:25 diakopter pmichaud: I meant to say pmurias:
21:26 pmichaud oh, okay.
21:29 mncharity the two objectives of on_SBCL are () speed - no so much that we need it now, though it would be neat to be able to run the the full t/ test suite in < 1 minute (once parsing is converted to p6), and () help keep the bootstrap honest.
21:29 mncharity but perhaps I've just overlooked some need for 'use p5;'?  let me know...
21:30 mncharity err, "not so much that we need it now...", but that it might attract developers,...
21:33 Chillance joined #perl6
21:40 mncharity anyone: Here's an opportunity to get to know p6 better.  Go through the Snn, especially S29, pulling out all the bits of code into a single elfish/prelude/Prelude.pm file.  Snarf the class hierarchy from elf_f_src/Prelude.pm, and check it against the more-likely-to-be-correct rakudo tree.  rakudo: say Foo.isa(Bar).  ...
21:40 mncharity Ie, start writing the spec p6 prelude.
21:41 mncharity Don't worry about the method bodies and such.  just collecting the sigs would be valuable.
21:44 mncharity could probably do the same thing for operators... though I'm not quite sure what it would look like...  multi sub infix:<-> is equiv(&infix:<+>) ($a,$b) {yada} ?
21:45 mncharity proto?
21:47 pugs_svnbot r20776 | diakopter++ | [yap6] reverting pmurias' change; it worked 97%
21:48 spinclad re netropolis 70-lisp-and-perl, that's http://xkcd.com/224/, unattributed (and rescanned??)...  # xkcd++
21:48 lambdabot Title: xkcd - A webcomic of romance, sarcasm, math, and language - By Randall Munroe
21:50 spinclad mncharity: re CL/p6 Array implementation: interesting idea. will think about it more later tonight when i've more time.
21:50 mncharity netropolis-- #unattributed
21:50 mncharity :)
21:51 Auzon xkcd++ # generally awesome
21:51 mncharity indeed
21:52 Auzon actually, it's linked from xkcd directly.
21:52 spinclad re preludes, it would be worth (my/our) while to scavenge previous preludes (pugs, kp6, (rakudo not preluding in p6 yet)), maybe work on a single common prelude fudgoided to the several targets.
21:53 spinclad anything to promote common progress...
21:54 * spinclad afk, bbi4h & ~~
21:54 mncharity at least having a single set of signatures would be neat.
21:54 mncharity just as STD.pm is useful as a reference, even if it can't be used directly yet.
21:56 mncharity rakudo: class A{}; multi infix:<+>(A $x,A $y){3}; my $a = A.new;  say $a + $a;
21:56 p6eval rakudo r28284 OUTPUT[Statement not terminated properly at line 1, near ":<+>(A $x,"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
21:56 mncharity pugs: rakudo: class A{}; multi infix:<+>(A $x,A $y){3}; my $a = A.new;  say $a + $a;
21:56 p6eval OUTPUT[3␤]
21:57 mncharity pugs: thatwasodd: say 3;
21:57 Auzon Woah, I didn't know that Rakudo could do that yet
21:57 p6eval OUTPUT[3␤]
21:57 mncharity can't.  evalbot artifact.
21:57 mncharity oh, of course.  foo:  is a label.
21:58 mncharity not artifact.
22:02 pugs_svnbot r20777 | diakopter++ | [yap6] fixes/breakages
22:18 Limbic_Region joined #perl6
22:29 mncharity rakudo: sub infix:<+>{say $?ROUTINE}; infix:<+>(2,3);
22:29 p6eval rakudo r28284 OUTPUT[Statement not terminated properly at line 1, near ":<+>{say $"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
22:29 mncharity pugs: sub infix:<+>{say $?ROUTINE}; infix:<+>(2,3);
22:29 p6eval OUTPUT[*** Undeclared variable: ("$?ROUTINE",MkPad (padToList [("$_",PELexical {pe_type = (mkType "Scalar"), pe_proto = <Scalar:0xb68d15f8>, pe_flags = MkEntryFlags {ef_isContext = True}, pe_store = <ref:0xb6611164>}),("@_",PELexical {pe_type = (mkType "Array"), pe_proto = <Array:0xb68d2068>,
22:29 p6eval ..pe_flags = MkEntryFlags {ef_isContext = False}, pe_st...
22:30 mncharity pugs: sub infix:<+>{3}; say &infix:<+>;
22:30 p6eval OUTPUT[<SubRoutine(&infix:+)>␤]
22:31 mncharity pugs: sub circumfix:<( )>{3}; say &circumfix:<( )>;
22:31 p6eval OUTPUT[<SubRoutine(&circumfix:( ))>␤]
22:32 mncharity pugs: sub circumfix:<( )>{3}; say &circumfix:<( )>.perl;
22:32 p6eval OUTPUT[\sub :(@_) "$_" := "Scalar" #<Scalar:0xb66534d4>␤          "@_" := "Array" #<Array:0xb66537c0>␤          "&?ROUTINE" := "Sub" #<Sub:0xb66022b0>␤          "&?BLOCK" := "Sub" #<Sub:0xb66022b0> {"$_" := "Scalar" #<Scalar:0xb6653538>␤                                                "@_" :=
22:32 p6eval .."Array" #<Array:0xb665357c>␤                          ...
22:32 Tene Hey, anyone have access to install Bot::BasicBot on feather?
22:37 [particle]1 i may, but i haven't logged on there since.......
22:44 Juerd Tene: Installed
22:45 Tene Hey, Juerd, you cool with me running an evalbot on feather1?
22:45 if joined #perl6
22:45 Tene Juerd: Can you get Config::File, too?
22:45 Juerd Tene: Actually, I would prefer if you could run it on the dedicated eval virtual machine.
22:46 Tene Juerd: where's that?
22:46 Juerd Tene: It's feather3
22:46 Juerd Tene: Hold on, I'm making you an account
22:46 [particle]1 ah, feather3
22:46 [particle]1 juerd++
22:46 Tene sweet
22:46 [particle]1 another SLAVE
22:47 Juerd Tene: Your username is tene, your password is changeme (change it :)), you have sudo access. Have fun!
22:47 * Juerd watches everyone in #perl6 rushing to abuse the root access ;)
22:48 Juerd Tene: Please make things reboot proof
22:48 Tene What's the standard way to install perl modules on debian?
22:49 Juerd Tene: cpan Foo::Bar
22:49 Juerd ;)
22:50 Juerd Tene: If the module is in the Debian repository, you're better off installing it with apt-get install libfoo-bar-perl
22:50 Tene Ouch.  Okay.
22:50 Juerd But if it's not, there's little reason to build debian packages on a box like feather3.
22:50 Tene Juerd: what's a good interval for rebuilding parrot on that system?  Alternately, is there already a parrot build on taht system?
22:51 Juerd Tene: A good interval: eh, every 15 minutes, if there's a new revision. Something like that?
22:51 Juerd No, there's no parrot on feather3 yet.
22:51 Juerd (Besides that, I think it's a good idea to build a local copy, so you control all parameters)
22:51 Tene Okay.
22:52 Juerd Consider using ulimits, chroot, and nice
23:04 pbuetow joined #perl6
23:07 [particle]1 tene: you know your way around debian apt-get?
23:08 Tene Mostly.
23:08 [particle]1 ok, probably better than me, then :)
23:19 mncharity pugs: sub ☺ {3}; say ☺();
23:19 p6eval OUTPUT[*** ␤    Unexpected "\9786"␤    expecting "=", subroutine parameters, trait or block␤    at /tmp/YFcdJ4Mgh6 line 1, column 5␤]
23:19 mncharity rakudo: sub ☺ {3}; say ☺();
23:19 p6eval rakudo r28285 OUTPUT[Statement not terminated properly at line 1, near "\x{e2}\x{98}\x{ba} {3}; s"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
23:19 rakudo_svn r28286 | jonathan++ | [rakudo] Implement role-private attributes. These, declared as 'my $!spleen', are not visible outside of the role (unless you use 'trusts' (which isn't implemented yet)).
23:20 yahooooo2 joined #perl6
23:21 Juerd mncharity: ☺ is not alpha
23:21 Juerd Maybe prefix:<☺> () would work.
23:22 [particle]1 unicode is turned off in rakudo atm, unless declared via command-line switch
23:22 [particle]1 parrot's utf8 io is sloooooow
23:22 Juerd Why?
23:23 [particle]1 i think it's the lookahead required
23:23 Juerd How do you define lookahead?
23:23 [particle]1 i mean variable width chars
23:24 [particle]1 glyphs, whatever
23:24 Juerd Until you actually *do* something with the string (which isn't very relevant for I/O), you can computer the length pretty fast: http://www.daemonology.net/blog/2​008-06-05-faster-utf8-strlen.html
23:24 lambdabot Title: Even faster UTF-8 character counting, http://tinyurl.com/4w9cbw
23:24 [particle]1 ok, maybe it's the downcase op that's causing the slowness
23:25 Juerd And you need encoding and decoding. Just copy whatever perl5 did, or what python does, etcetera - this has been done in C a million different ways :)
23:25 [particle]1 there's a thread or two, maybe an rt ticket in the parrot queue related to this
23:25 [particle]1 yep
23:25 [particle]1 atm we're using icu
23:25 Juerd What's the downcase op?
23:25 [particle]1 we need to roll our own though for folks for those without icu
23:25 [particle]1 translating upper to lower case for icu chars
23:25 Juerd PHP 6 is going to use ICU. The PHP folks are very (overly) concerned about performance these days; I don't think they'd pick ICU if it wasn't fast
23:26 [particle]1 it's a lack of pge optimizations causing the slowness
23:26 [particle]1 or how pge currently deals with utf8, anyway
23:27 Juerd Hm. I don't understand why PGE should have to deal with utf8
23:27 Juerd IIRC parrot used some simpler internal representation for strings
23:27 [particle]1 it makes the parser very slow if the text is utf8
23:27 [particle]1 no
23:27 Juerd One that supposedly would be faster
23:27 [particle]1 parrot string impl is still a prototype
23:28 Juerd Aha
23:54 mncharity Juerd: thanks :)
23:55 FurnaceBoy joined #perl6

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

Perl 6 | Reference Documentation | Rakudo | Niecza | Specs