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.
TimToady I believe when pugs implemented that the right side of = wasn't an implicit closure 00:03
in other words, pugs is wrong there
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:04
(1..5).map({Foo.new(count => $_)}) works just fine, but it's uglier
00:07 yahooooo2 left, yahooooo joined 00:08 eternaleye_ joined
Auzon rakudo: try {my @o = (1..5); @o>>++;}; say "lives ok" 00:11
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:12 rian left 00:16 IllvilJa left, yahooooo left 00:17 yahooooo joined
speckbot r14550 | larry++ | fixed "samebase" illogic pointed out by moritz++ 00:36
00:52 sri_work left
speckbot r14551 | larry++ | added <...> et al. as suggested by ruoso++ 00:55
01:05 [particle] left
pugs_svnbot r20765 | lwall++ | [STD] parse (and use) <...> 01:09
01:11 Jedai left
pugs_svnbot r20766 | lwall++ | [STD] s/basechar/ignoreaccent/ 01:21
Auzon We're renaming basechar? 01:22
Err, never mind
I thought you meant samebase. 01:24
TimToady that too
is now sameaccent
.oO(Kato! What have you done to my rheum?)
01:25
Auzon perl6: a|bc|def.perl.say 01:26
perl6: a|bc|def.values.perl.say
p6eval kp6 r20766: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
..pugs: OUTPUT[*** No such subroutine: "&a"␤ at /tmp/ctZsmlQh7U line 1, column 1 - line 2, column 1␤]
..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)␤
..elf r20766: OUTPUT[Undefined subroutine &GLOBAL::a called at (eval 14) line 3.␤ at ./elf_f_faster line 4496␤]
kp6 r20766: OUTPUT[syntax error at position 20, line 1 column 20:␤a|bc|def.values.perl.sa␤ ^ HERE␤]
..pugs: OUTPUT[*** No such subroutine: "&a"␤ at /tmp/wx7y1pyUsZ line 1, column 1 - line 2, column 1␤]
..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)␤
..elf r20766: OUTPUT[Undefined subroutine &GLOBAL::a called at (eval 14) line 3.␤ at ./elf_f_faster line 4496␤]
TimToady precedence
not to mention quotes... 01:27
Auzon pugs: say (1|2|3).perl
p6eval OUTPUT[(1 | 2 | 3)␤]
Auzon pugs: say 1|2|3.perl
p6eval OUTPUT[any(VInt 1,VInt 2,VStr "3")␤]
TimToady that's wrong
Auzon which part? 01:28
TimToady that should parse as (say 1)|2|(3.perl)
er, rather
say (1|2)|(3.perl)
oh, wait, that's what it idi 01:29
*did
see the quotes around "3"
diakopter sees
Auzon Yes.
Which is why I shouldn't mix functional calls and method calls.
Not that it'd help here
pugs: perl(1|2|3) 01:30
p6eval RESULT["(1 | 2 | 3)"]
rhr what is say(1|2) supposed to print?
TimToady lists don't autothread
so it's whatever 1|2 stringifies to as a junction 01:31
Auzon pugs: say ~(1|2)
p6eval OUTPUT[any(VStr "1",VStr "2")␤]
rhr is that just unspecced on purpose?
TimToady that lists don't autothread? that's specced somewhere... 01:32
rhr no, ~(1|2)
TimToady it is not specced how Junction should stringify
rhr ok
TimToady but making it the same as Junction.perl is probably reasonable 01:33
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:34
01:34 r0bby joined, [particle] joined
TimToady I presume you mean really multimethods and not multisubs 01:34
01:35 japhb left
TimToady I've argued that one both ways in my head 01:35
I think current spec says that you determine which class to dispatch to before you do multiple dispatch within that class's multimethods
if I recall... 01:36
but not ifn't I don't recall...
biab & 01:37
Auzon Thanks TimToady++
01:37 Helios- left 01:38 Helios- joined
pugs_svnbot r20767 | Auzon++ | [gsoc_spectest] New tests for parallel dispatch in S12. (21 tests added) 01:42
02:08 elmex left 02:10 cls_bsd_ is now known as cls_bsd 02:12 meteorjay left 02:32 pmichaud_ joined, pmichaud left 02:36 felipe left 02:44 japhb joined 02:50 Limbic_Region left 03:09 pbuetow left 03:23 felipe joined 03:25 Entonian joined 03:39 redicaps joined 04:22 Entonian_ joined
pugs_svnbot r20768 | diakopter++ | [yap6] well, the grammar engine is stabilized/reliable; 04:22
r20768 | diakopter++ | now the grammar needs fixin'
04:22 Entonian left 04:31 alc joined 04:53 iblechbot joined 05:01 [particle] left 05:02 Eevee joined 05:08 Eevee__ left 05:09 iblechbot left 05:33 Eevee_ joined 05:35 Eevee left 05:44 Entonian_ left, Entonian_ joined 05:45 barney joined 05:46 Entonian_ left 05:52 Eevee__ joined 05:53 Eevee_ left 05:57 barney left 06:15 simcop2387 joined 06:21 nipotan is now known as nipotaway, Psyche^ joined 06:30 meppl joined 06:35 Patterner left, Psyche^ is now known as Patterner 06:37 Eevee__ is now known as Eevee 06:49 diakopter left, bbkr_ left, qmole left, kolibrie left, PerlJam left, TimToady left, kcwu left, cls_bsd left, gugod left, perlbot left, silug left 06:51 TimToady joined, silug joined, qmole joined, bbkr_ joined, kcwu joined, cls_bsd joined, kolibrie joined, gugod joined, PerlJam joined, diakopter joined, perlbot joined, irc.freenode.net sets mode: +o TimToady 07:05 pmurias joined 07:13 wknight8111 left 07:15 bacek left 07:18 ting left, ting joined 07:19 ting left 07:22 iblechbot joined 07:35 viklund left, Jedai joined 07:38 viklund joined 07:41 redicaps left 07:51 elmex joined 07:52 felipe left 08:26 fullermd left 08:51 jiing left 09:05 meppl left 09:14 Ched- joined 09:15 Ched- left
rakudo_svn r28257 | jonathan++ | [rakudo] Fill out the implementation of ^.., ..^ and ^..^ operators. 10:24
10:26 vixey joined 10:50 ludan joined 11:06 fullermd joined
rakudo_svn r28258 | jonathan++ | [rakudo] Fix trailing whitespace. 11:14
r28259 | jonathan++ | [rakudo] Add min and max to list. Patch courtesy of Vasily Chekalkin (bacek++). 11:16
11:18 felipe joined 11:36 iblechbot left 11:39 mjk joined 11:52 rindolf joined 11:53 Lorn left 12:09 alc left 12:15 rindolf left 12:24 wknight8111 joined 12:26 bacek joined 12:37 cognominal_ left 12:43 renormalist joined, Jedai left 12:46 Jedai joined 13:03 cmarcelo joined
rakudo_svn r28263 | jonathan++ | [rakudo] A few changes to get us a little further along with role attributes. 13:08
13:13 pbuetow joined 13:19 iblechbot joined
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
13:25 sri_work joined
pugs_svnbot r20769 | jnthn++ | [spectest] A couple of basic tests for role attribute composition. 13:31
rakudo_svn r28265 | jonathan++ | [rakudo] Get accessor and handles methods of roles in the correct namespace, making composition of public attributes work. 13:32
r28266 | jonathan++ | [rakudo] Add passing regression test for some basic role attribute composition to spectest_regression. 13:34
13:41 eternaleye_ left, alc joined 13:51 sscaffidi joined 14:07 chris2 joined, Ara4n left, Ara4n joined 14:12 cognominal_ joined 14:15 alester joined 14:34 jhorwitz joined 14:44 IllvilJa joined 14:46 ruoso left
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
14:52 ruoso joined
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. 14:55
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:11
15:13 renormalist left, stevan_ left 15:19 [particle] joined 15:26 [particle]1 joined 15:32 mjk left 15:36 alc left 15:42 stevan_ joined 15:53 pmurias left 16:04 gbarr joined 16:07 [particle] left 16:29 aindilis left 16:43 mncharity joined 16:44 armagad left
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
16:48 armagad joined
mncharity kolibrie: re exercise Cursor5 engine, you might find svn.pugscode.org/pugs/misc/pX/Commo..._engine/t/ of use, though it's based on a somewhat outdated rx syntax. 16:50
lambdabot Title: Revision 20770: /misc/pX/Common/yet_another_regex_engine/t, tinyurl.com/5ujc2g
16:50 armagad left, eternaleye_ joined 16:53 pmurias joined 16:59 kanru left 17:00 gbarr left 17:04 iblechbot left, nipotaway is now known as nipotan 17:09 alester left
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:12
diakopter pmurias: I strictified yap6 for you 17:17
pugs_svnbot r20771 | diakopter++ | [yap6] added a new memoization/recursion-escape technique.
r20771 | diakopter++ | The diff is very very long.
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:18
17:19 Southen_ joined
diakopter I forgot to say, O(n) parsing, even when the grammar is filled with left recursive rules (both direct and indirect). 17:19
which I *know* will be the case with this grammar.....
commutativity &
17:23 ludan left
pmurias diakopter: comutativity = commuting? 17:26
17:30 Southen left 17:33 r0bby left 17:39 t35t0r joined
t35t0r woo autothreading 17:42
17:44 pbuetow left, pbuetow joined
pmurias diakopter: why don't use overload -- instead of using a source filter? 17:45
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
..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:47 pbuetow left, pbuetow joined 17:48 eternaleye_ left
pmurias s/don't/not/ 17:50
diakopter pmurias: yeah commuting; a pun 17:52
pmurias: how would I use overload for what the source filter is doing 17:53
pmurias looking in the camel more&
mncharity netropolis.org/hash/70-lisp-and-perl :) 17:54
lambdabot Title: Lisp and Perl
mncharity pmurias: re time, neat. :)
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:59 iblechbot joined
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:02
18:02 bnjmn-- left
pmurias diakopter: why do you need all those declarations? 18:02
are there used elsewhere then for creating the subs? 18:06
a rule foo {...} could be replaced by rule foo => sub {...} or rule 'foo' {} which would create the appropriate sub and %N entry 18:08
diakopter pmurias: yeah; I couldn't use ++, so I worked around it with a source filter :D 18:09
the declarations are necessary so the scalars are created before the coderefs are created
pmurias why do you need the scalars?
diakopter because the rules refer to each other
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:11
even if they're assigned coderefs in main
anyway, obviously the grammar could be in a separate file and then the package file generated and then eval'd from it... 18:12
pmurias diakopter: you are doing it to enable sub foo {bar}; sub bar {...} style thing? 18:13
with &foo being declared later in the file then being defined? 18:14
diakopter yes
18:14 Southen joined
diakopter any other ideas on implementing that? 18:14
pmurias use foo() instead of foo 18:15
diakopter do you mean sub foo() {} or sub bar { foo() } 18:16
pmurias sub bar { foo() }
diakopter yeah, I could use that, but that's too many arcs
:P 18:17
18:17 eternaleye joined
diakopter not too many to type, I mean (obviously)... too many to look at 18:17
diakopter wonders if an entire package can be eval'd like that 18:20
and if it would persist.. 18:21
pmurias diakopter: you have a list of sub foo();sub bar();... on top 18:22
* could have
18:23 r0bby joined
diakopter it's not the functions that are the problem, anyway, it's the my $Uppercase = parser { $lowercase->(@_) } that are the problem 18:23
pmurias what to use you the $Uppercase for? 18:24
diakopter Uppercase is what lowercase() returns
it's the generated parser
parser sub { lower... } builds the parsers
pmurias why can use have rule 'lowercase' {} create &lowercase
diakopter based on how they're declared below it
pmurias s/can use/can't you/ 18:25
diakopter I tried that, but would you declare them as "our"?
b/c I couldn't get them to persist
pmurias with sub lowercase(); at the top allowing you to omit parens
all subs are our in p5 18:26
well global
diakopter no, I mean $U and $l
pmurias throw $U and $l away
diakopter they have to be there 18:27
pmurias what for?
18:27 pmichaud_ is now known as pmichaud
pmurias you only use them to generate &l 18:27
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
pmurias it's possible to that withought tem
s/tem/them 18:28
diakopter I'll be impressed.... I mean, if MJD couldn't figure it out... :P
18:28 Southen_ left
diakopter so you'd have sub rule ($&) { eval qq{ sub $_[0] { \$.... what? 18:30
parser {} returns a coderef... what would you call this coderef? 18:32
18:32 t35t0r left
pmurias i wouldn't use eval 18:32
diakopter I suppose parser could stash it in a hash
pmurias is yap6 supposed to work right now?
diakopter waits for pmurias to explain the idea 18:33
pmurias: nope
well, it should work with "use v6;" :)
pmurias yap6: use v6;1; 18:34
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
..failed--compilation aborted at lib/Perl6in5/Compiler/Parser.pm lin...
diakopter yup
moritz_: Auzon: Tie::IxHash ?
Auzon checks 18:35
diakopter you asked whether yap6 works, not "yap6:"
pmurias yes
got back something strange :{...}, so i guess it does
Auzon yap6: 1 18:36
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 =>
..9,line => -1}␤]
pasteling "diakopter" at 209.9.237.164 pasted "sorta broken" (4 lines, 276B) at sial.org/pbot/31292
diakopter heh 18:37
I didn't realize it can stringify a re
obviously the ast part doesn't work yet... also, don't give it anything longer; it ulimit/segfaults 18:38
pmurias i'll do the refactoring then
diakopter wait, just give me 1 rule example
pmurias i intend to do it for 1 rule first
you can revert if you wish 18:39
diakopter ok; cool
18:45 cjfields joined
pmurias execnow {...} is just do {...}? 18:46
diakopter rakudo: 1;;
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)␤
diakopter pmurias: I guess so, yeah... obviously that shouldn't be necessary with your change 18:47
18:48 barney joined, ilogger2 joined
cjfields perl6: say "ABCDEFGH".trans( ('A..CE..G' => ' a..c e..g '); 18:51
p6eval kp6 r20771: OUTPUT[syntax error at position 20, line 1 column 20:␤say "ABCDEFGH".trans( ('A..CE..G' => ' a..c e..g ')␤ ^ HERE␤]
..pugs: OUTPUT[*** ␤ Unexpected end of input␤ expecting ":", identifier or ")"␤ at /tmp/FQw8LW0euz line 2, column 1␤]
..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)␤
..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'␤
..STD_red/std.rb:210:in `_UNIT'␤ ./../STD_red/STD_red_run:108:in `... 18:52
cjfields perl6: "ABCDEFGH".trans( ('A..CE..G' => ' a..c e..g '));
p6eval kp6 r20771: OUTPUT[no method 'trans' in Class 'Str'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
..pugs: RESULT["abcDefgH"]
..rakudo r28278: OUTPUT[too few arguments passed (2) - 3 params expected␤current instr.: '_block11' pc -340016394 ((unknown file):-1)␤
..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␤]
cjfields Don't know if TimToady is around, but how should transliteration handle spaces 18:53
diakopter replace them with time? 18:54
cjfields like "ABCDEFGH".trans( ('A..CE..G' => ' a..c e..g ')), which has two Ranges with spaces
diakopter: :D 18:55
No, I mean if one wanted to transliterate a literal ' '.
diakopter provide the hex? 18:57
cjfields S05 indicates that trans() uses a List of Pairs; each Pair key/val could be an Array, Range, or string
I thought of that, but there is this one: 18:58
perl6: say " <>&".trans( (['<', '>', '&', ] => ["&lt;", "&gt;", "&amp;" ])) 18:59
p6eval kp6 r20771: OUTPUT[no method 'trans' in Class 'Str'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
..pugs: OUTPUT[ &lt;&gt;&amp;␤]
..rakudo r28278: OUTPUT[too few arguments passed (2) - 3 params expected␤current instr.: '_block11' pc -339180784 ((unknown file):-1)␤
..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␤]
cjfields ignoring rakudo for the moment; that's what I'm trying to implement...
perl6: say " <>&".trans( ([' ', '<', '>', '&' ] => ['&nbsp;', '&lt;', '&gt;', '&amp;' ])) 19:00
p6eval kp6 r20771: OUTPUT[no method 'trans' in Class 'Str'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
..pugs: OUTPUT[&nbsp;&lt;&gt;&amp;␤]
..rakudo r28278: OUTPUT[too few arguments passed (2) - 3 params expected␤current instr.: '_block11' pc -340315406 ((unknown file):-1)␤
..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␤]
cjfields I'm assuming the Array form only accepts single characters for the key, while the value can be any length 19:02
pmichaud I think that spaces are significant in the translation keys
cjfields That's what I thought, but the spec test indicate otherwise
pmichaud the spec tests can be wrong.
that's why we're reviewing them. :-)
also, I think it's likely that the test was written before the current version of trans() in S05. 19:03
diakopter sometimes, all three of: the spec, the spectests, and the implementations are wrong...
19:04 rindolf joined
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:06
but I have a p6 grammar that gets through that bit 19:07
Just trying to work out the whitespace bit. I'll see how p5 deals with it for now. 19:08
pmichaud (supposed to be converted to a List) ... where did you see that?
cjfields "The two sides of any pair can be strings interpreted as tr/// would: $str.=trans( 'A..C' => 'a..c', 'XYZ' => 'xyz' );" 19:09
pmichaud but that doesn't say anything about converting the strings into a list.
cjfields Wouldn't 'A..C' be ( 19:10
('A', 'B', 19:11
'C')
cjfields hitting 'Enter' too many times
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:12
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:13
I'm not saying it cannot be doing with a List, only that I don't see it being required by the spec.
s/doing/done/
cjfields okay, I see what you mean 19:14
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
19:18 macae joined
pmichaud coool. 19:19
19:21 macae left
diakopter pmurias: any progress? :) I'm excited to see what you create 19:22
rakudo: (; ;)
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)␤
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:23
diakopter elf: (; ;) 19:24
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␤]
diakopter pugs: (; ;)
p6eval OUTPUT[*** ␤ Unexpected ";"␤ expecting expression or ")"␤ at /tmp/oRDTG6f2Js line 1, column 2␤]
pmichaud heh.
we're all confused.
diakopter yap6: (; ;)
p6eval yap6 r20771 OUTPUT[syntax error (or degenerate/incomplete grammar) at line 0 col 1 near "; ;)"␤Expected: "only".␤] 19:25
diakopter Expected "only" lol
mncharity briefly wonders why p6 implementations are being fed orange smiley faces...
pmichaud because the lemon ones are too tart. 19:26
diakopter kp6: (; ;)
p6eval kp6 r20771: OUTPUT[syntax error at position 0, line 1 column 0:␤(; ;␤^ HERE␤]
mncharity :) 19:27
diakopter yap6: say 4; 19:28
p6eval yap6 r20771 OUTPUT[parse successful␤:{inp => "use v6;\nsay 4;",success => 1,want => "package",name => "/tmp/tKCrKUX1B0",hit => "",ast => [["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","",""],["EOI"]],mut => 0,backed =>
..0,col => 6,fated => 1,pos => 14,line => -1}␤]
diakopter that's quite the ast :P
pmurias diakopter: it turned out the issue is more complex then i think, but i'm steadily moving in the right directions proximity
diakopter I guess now I should tell you I wasted probably 8 hours last week trying to work around it myself... 19:29
well, not wasted. I learned a lot.
mncharity i'm puzzling over the question of when exactly we'll start seeing people writing in p6 again. 19:31
does pugs' ext/ figure in the rakudo project vision anywhere? or is the code too stale, and authors all gone.
moritz_ mncharity: ext/CGI/ nearly works on rakudo 19:32
mncharity: and I plan to get ext/Sudoku/ running as well
mncharity :)
any feel for when those might be possible? 19:33
moritz_ not really 19:35
mncharity :/ ok, tnx
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:39
diakopter pugs: say;;
p6eval OUTPUT[␤]
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:41
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:48
pmurias pX means? 19:49
p(5|6)?
19:49 ron joined
ron pugs: say 'hello';; 19:50
p6eval OUTPUT[hello␤]
diakopter p-56
mncharity re 5|6, yes.
diakopter /usr/bin/perl56
19:50 ron left
pmurias mncharity: do you think a CL backend would beat perl5? 19:51
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:52
re CL faster than p5, yes, no question. and critically, abstractions can compile away, 19:53
moritz_ mncharity: features on demand would bring people back to p6
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...".
diakopter maybe they're/we're waiting for Dlugosz to finish his rigorous spec doc 19:54
mncharity "features on demand"?
pmurias "we write a test, you write the feature"
moritz_ right
mncharity ah... ok. yes, that was very nice. 19:55
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:58
pmurias re intrested in writing p6, you mean the point when people start playing with it or writing (semi-) serious stuff in it
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:59
diakopter why doesn't someone melt these shotgun pellets into a bullet... 20:00
oh yeah; b/c there's no rifle... 20:01
mncharity re meaning of intrested in writing p6, people writing ext/ like things? not sure if that's play or semi-serious.
creating order 10 classes and at least high order 100 lines of code with the indent of doing something? 20:03
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:04
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:05
pugs_svnbot r20773 | pmurias++ | [yap6] initial try at removing some of the boilerplate
pmurias diakopter: checked my attempt in
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 www.perl.com/pub/a/2001/04/02/wall.html grep RFC 141 20:10
lambdabot Title: perl.com: Apocalypse 1: The Ugly, the Bad, and the Good
diakopter ooo neat 20:11
mncharity dev.perl.org/perl6/doc/design/apo/A...r_Revision
lambdabot Title: Apocalypse 1: The Ugly, the Bad, and the Good - perl6, tinyurl.com/5h4mfl
diakopter pmurias: looks good to me.. thanks! 20:16
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
diakopter nah; the order doesn't matter..., although it might if the parser generator functions were memoized 20:17
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.
diakopter can't believe the first attempt at implementing packrat_TR-2007-002.pdf is actually sorta working 20:18
the current grammar creates 541 parser objects
pmurias mncharity: i'm not a typical perl coder, so i can't really help you with finding out what motivates others 20:20
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:21
[particle]1 mncharity: nobody knows about what you're doing, because there's 125 people in the room, and most are just lurking 20:22
use email, blog, share with the world!
you need to let people know what you're doing, and why it matters to them
vixey what is happening with elf now? 20:23
pugs_svnbot r20774 | jnthn++ | [spectest] Couple more tests for attribute composition.
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:27
20:27 rindolf left
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:27
get the elf on CommonLisp backend bootstrap working, or add more-than-positional-arguments to the p5 backend, or 20:28
or drop stuff from Snn into the preludes, or further patch std.rb so you can actually do that an have it parse, or
there's a TODO file... 20:29
[particle]1 mncharity: it may be time, but not for me to write :) 20:30
mncharity or pursue the rx_on_re translation/creation of an p6 rx engine,
svn.pugscode.org/pugs/misc/elf/TODO
has some of these
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:35
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:36
diakopter in fact, I barely remember what I was *going* to use them for.
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:37
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:39
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:42
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:45
rakudo: our $x=3; temp $x =4; say $x; 20:46
p6eval rakudo r28281 OUTPUT[Could not find non-existent sub temp␤current instr.: '_block11' pc 77 (EVAL_10:31)␤
20:47 IllvilJa joined
mncharity hmm, "Why Perl 6 matters"... the ideas it has, and "why not just take those ideas to python/ruby/scala/javascript/(other?)". 20:49
diakopter watches evalglot in #parrot 20:55
pmurias implementing them in those languages would be difficult too
mncharity pmurias: which in which? 20:56
Auzon APL and Tcl and BF and lolcode? 20:57
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
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]: 21:01
r28284 | pmichaud++ | * Refactor Range a bit.
mncharity ruby, and perhaps js, aren't as well set up as python to do language extentions, eg, to add type information gracefully. 21:02
pmurias mncharity: implementing perl6 ideas in python/ruby/scal/javascript would be hard too 21:03
mncharity yes, but they have more active communities.
than p6
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:05
so a "Why Perl 6 matters" has to address those questions. 21:06
pmurias by 'random neat p6 feature' you mean a syntactic, vm or semantic feature? 21:10
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.
same for Hash.
pmurias: syntactic or semantic, yes. p6, the langauge, doesn't have vm features. 21:11
though p6 would of course be a nice language to _implement_ vm's in. 21:13
and "real compile-time and aggressive compiler story, rather than merely jit", is one 'neat feature' vs rb/py/js. 21:14
diakopter pmurias: I can't get it to work with any more than 'program' 21:15
pmurias hm
diakopter: i converted usev6 withought problems 21:18
diakopter: what errors do you get 21:19
pugs_svnbot r20775 | pmurias++ | [yap6]
r20775 | pmurias++ | removed debugging leftover
r20775 | pmurias++ | usev6 converted
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:20
diakopter I converted stmtList 21:21
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.
pmurias you can ci the code and i'll try to fix it
21:23 Jedai joined
pmurias i should be getting some sleep now& i'll backlog as always 21:23
mncharity hmm. I suspect making p5 _easier_ to use in elf is very much the wrong direction. it 21:24
oh
diakopter pmichaud: it's b/c stmtList is self-referential 21:25
oops
pmurias:
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:26
pmichaud diakopter: ...? 21:27
mncharity pmichaud: that was a misaddress I believe
diakopter pmichaud: I meant to say pmurias:
pmichaud oh, okay. 21:28
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:31
but perhaps I've just overlooked some need for 'use p5;'? let me know...
err, "not so much that we need it now...", but that it might attract developers,... 21:32
21:35 Chillance joined
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:42
Ie, start writing the spec p6 prelude.
Don't worry about the method bodies and such. just collecting the sigs would be valuable. 21:43
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:46
proto? 21:47
pugs_svnbot r20776 | diakopter++ | [yap6] reverting pmurias' change; it worked 97% 21:49
spinclad re netropolis 70-lisp-and-perl, that's xkcd.com/224/, unattributed (and rescanned??)... # xkcd++
lambdabot Title: xkcd - A webcomic of romance, sarcasm, math, and language - By Randall Munroe
21:50 Jedai left
spinclad mncharity: re CL/p6 Array implementation: interesting idea. will think about it more later tonight when i've more time. 21:51
mncharity netropolis-- #unattributed
:) 21:52
Auzon xkcd++ # generally awesome
mncharity indeed 21:53
Auzon actually, it's linked from xkcd directly.
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:54
anything to promote common progress... 21:55
spinclad afk, bbi4h & ~~ 21:56
mncharity at least having a single set of signatures would be neat.
just as STD.pm is useful as a reference, even if it can't be used directly yet.
rakudo: class A{}; multi infix:<+>(A $x,A $y){3}; my $a = A.new; say $a + $a; 21:57
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)␤
mncharity pugs: rakudo: class A{}; multi infix:<+>(A $x,A $y){3}; my $a = A.new; say $a + $a; 21:58
p6eval OUTPUT[3␤]
mncharity pugs: thatwasodd: say 3; 21:59
Auzon Woah, I didn't know that Rakudo could do that yet
p6eval OUTPUT[3␤]
mncharity can't. evalbot artifact.
oh, of course. foo: is a label.
not artifact.
pugs_svnbot r20777 | diakopter++ | [yap6] fixes/breakages 22:04
22:19 Limbic_Region joined
mncharity rakudo: sub infix:<+>{say $?ROUTINE}; infix:<+>(2,3); 22:31
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)␤
mncharity pugs: sub infix:<+>{say $?ROUTINE}; infix:<+>(2,3);
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>,
..pe_flags = MkEntryFlags {ef_isContext = False}, pe_st...
mncharity pugs: sub infix:<+>{3}; say &infix:<+>; 22:32
p6eval OUTPUT[<SubRoutine(&infix:+)>␤]
mncharity pugs: sub circumfix:<( )>{3}; say &circumfix:<( )>; 22:33
p6eval OUTPUT[<SubRoutine(&circumfix:( ))>␤]
mncharity pugs: sub circumfix:<( )>{3}; say &circumfix:<( )>.perl;
p6eval OUTPUT[\sub :(@_) "$_" := "Scalar" #<Scalar:0xb66534d4>␤ "@_" := "Array" #<Array:0xb66537c0>␤ "&?ROUTINE" := "Sub" #<Sub:0xb66022b0>␤ "&?BLOCK" := "Sub" #<Sub:0xb66022b0> {"$_" := "Scalar" #<Scalar:0xb6653538>␤ "@_" :=
.."Array" #<Array:0xb665357c>␤ ...
Tene Hey, anyone have access to install Bot::BasicBot on feather? 22:34
[particle]1 i may, but i haven't logged on there since....... 22:39
Juerd Tene: Installed 22:46
Tene Hey, Juerd, you cool with me running an evalbot on feather1?
22:47 if joined
Tene Juerd: Can you get Config::File, too? 22:47
Juerd Tene: Actually, I would prefer if you could run it on the dedicated eval virtual machine.
22:47 if is now known as FurnaceBoy
Tene Juerd: where's that? 22:48
Juerd Tene: It's feather3
Tene: Hold on, I'm making you an account
[particle]1 ah, feather3
juerd++
Tene sweet
[particle]1 another SLAVE
Juerd Tene: Your username is tene, your password is changeme (change it :)), you have sudo access. Have fun! 22:49
Juerd watches everyone in #perl6 rushing to abuse the root access ;)
Tene: Please make things reboot proof 22:50
Tene What's the standard way to install perl modules on debian?
22:51 drbean left
Juerd Tene: cpan Foo::Bar 22:51
;)
Tene: If the module is in the Debian repository, you're better off installing it with apt-get install libfoo-bar-perl
Tene Ouch. Okay.
Juerd But if it's not, there's little reason to build debian packages on a box like feather3. 22:52
Tene Juerd: what's a good interval for rebuilding parrot on that system? Alternately, is there already a parrot build on taht system?
Juerd Tene: A good interval: eh, every 15 minutes, if there's a new revision. Something like that?
No, there's no parrot on feather3 yet. 22:53
(Besides that, I think it's a good idea to build a local copy, so you control all parameters)
Tene Okay.
Juerd Consider using ulimits, chroot, and nice
23:06 pbuetow joined
[particle]1 tene: you know your way around debian apt-get? 23:09
Tene Mostly. 23:10
[particle]1 ok, probably better than me, then :)
mncharity pugs: sub ☺ {3}; say ☺(); 23:21
p6eval OUTPUT[*** ␤ Unexpected "\9786"␤ expecting "=", subroutine parameters, trait or block␤ at /tmp/YFcdJ4Mgh6 line 1, column 5␤]
mncharity rakudo: sub ☺ {3}; say ☺();
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)␤
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:22 yahooooo2 joined
Juerd mncharity: ☺ is not alpha 23:23
Maybe prefix:<☺> () would work.
[particle]1 unicode is turned off in rakudo atm, unless declared via command-line switch
parrot's utf8 io is sloooooow 23:24
Juerd Why?
[particle]1 i think it's the lookahead required 23:25
Juerd How do you define lookahead?
[particle]1 i mean variable width chars
glyphs, whatever
Juerd Until you actually *do* something with the string (which isn't very relevant for I/O), you can computer the length pretty fast: www.daemonology.net/blog/2008-06-05...trlen.html 23:26
23:26 FurnaceBoy left
lambdabot Title: Even faster UTF-8 character counting, tinyurl.com/4w9cbw 23:26
[particle]1 ok, maybe it's the downcase op that's causing the slowness
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:27
[particle]1 there's a thread or two, maybe an rt ticket in the parrot queue related to this
yep
atm we're using icu
Juerd What's the downcase op?
[particle]1 we need to roll our own though for folks for those without icu
translating upper to lower case for icu chars
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
[particle]1 it's a lack of pge optimizations causing the slowness 23:28
or how pge currently deals with utf8, anyway
Juerd Hm. I don't understand why PGE should have to deal with utf8
IIRC parrot used some simpler internal representation for strings 23:29
[particle]1 it makes the parser very slow if the text is utf8
no
Juerd One that supposedly would be faster
[particle]1 parrot string impl is still a prototype
Juerd Aha 23:30
23:50 IllvilJa left
mncharity Juerd: thanks :) 23:56
23:56 FurnaceBoy joined