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.
efunneko_ FYI: I just uploaded a greasemonkey script to userscripts.org/scripts/show/26714 that will convert .pod files into HTML in Firefox. I find this useful for reading the latest synopses directly from the repository. 05:32
lambdabot Title: Pod2Html &ndash; Userscripts.org
efunneko_ It is far from fancy, but it does the job. (link to synopsis list: svn.perl.org/perl6/doc/trunk/design/syn/) 05:33
lambdabot Title: Revision 14541: /doc/trunk/design/syn
Eevee greasemonkey++ 05:44
Eevee uh..huh. ubuntu hardy seems to be entirely missing libghc6-stm-dev 06:47
Eevee pugs: say @@( (1,2) X (3,4) ) 06:51
exp_evalbot OUTPUT[*** Unknown syntactic construct: Syn "@@{}" [Ann (Pos (MkPos "/tmp/BxDXyXmC4N" 1 9 1 23)) (App (Var "&infix:X") Nothing [Ann Parens (Ann (Pos (MkPos "/tmp/BxDXyXmC4N" 1 10 1 13)) (Syn "," [Val (VInt 1),Val (VInt 2)])),Ann Parens (Ann (Pos (MkPos "/tmp/BxDXyXmC4N" 1 18 1 21)) (Syn "," [Val
..(VInt 3),Val (VInt 4)]))])]␤ at /tmp/BxDXyXmC4N...
Eevee pugs: say @( (1,2) X (3,4) )
exp_evalbot OUTPUT[1 31 42 32 4␤]
Auzon *blink* 06:52
pugs: say 1,2 X 3,4
exp_evalbot OUTPUT[12␤]
Auzon pugs: say (1,2 X 3,4)
exp_evalbot OUTPUT[1 31 42 32 4␤]
Auzon pugs: say ( @((1,2 X 3,4)))
exp_evalbot OUTPUT[1 31 42 32 4␤]
Eevee say binds more tightly than X?
Auzon pugs: say join '', 1,2 X 3,4 06:53
exp_evalbot OUTPUT[12␤]
Auzon pugs: 1,2 X 3,4
exp_evalbot RESULT[((1, 3), (1, 4), (2, 3), (2, 4))]
Auzon Apparently a lot of things do.
pugs: say join '', (1,2) X (3,4)
exp_evalbot OUTPUT[12␤]
Auzon pugs: say join ' ', ((1,2) X (3,4))
exp_evalbot OUTPUT[1 3 1 4 2 3 2 4␤]
Auzon pugs: say (1,2) X (3,4) 06:54
exp_evalbot OUTPUT[12␤]
Auzon pugs: say ((1,2) X (3,4))
exp_evalbot OUTPUT[1 31 42 32 4␤]
Auzon ((1,2) X (3,4))
pugs: ((1,2) X (3,4))
exp_evalbot RESULT[((1, 3), (1, 4), (2, 3), (2, 4))]
Auzon ah...
Eevee checks 06:55
Auzon pugs: say for ((1,2) X (3,4))
exp_evalbot OUTPUT[␤␤␤␤]
Eevee guess pugs is only slightly off.. list infix is the level right above list prefix
Auzon Part of it has to do with the string representation of an array.
Eevee pugs: say for 1,2 X 3,4 06:56
exp_evalbot OUTPUT[␤␤␤␤]
Auzon pugs: for (1,2 X 3,4) {say $_}
exp_evalbot OUTPUT[13␤14␤23␤24␤]
Auzon pugs: for (1,2 X 3,4) {say $_.perl}
exp_evalbot OUTPUT[[1, 3]␤[1, 4]␤[2, 3]␤[2, 4]␤]
Auzon rakudo: 1,2 x 3,4 06:57
exp_evalbot RESULT[Method 'perl' not found for invocant of class 'List'␤current instr.: '_block11' pc 35 (EVAL_11:16)␤called from Sub 'parrot;PCT::HLLCompiler;eval' pc 785 (src/PCT/HLLCompiler.pir:458)␤called from Sub 'parrot;PCT::HLLCompiler;evalfiles' pc 1067 (src/PCT/HLLCompiler.pir:587)␤called from Sub
..'parrot;PCT::HLLCompiler;command_line' pc 1246 (src...
Auzon rakudo: for (1,2 x 3,4) {say}
exp_evalbot OUTPUT[␤␤␤]
Auzon rakudo: for (1,2 x 3,4) {.say}
exp_evalbot OUTPUT[No result object␤current instr.: 'parrot;PCT::Grammar;item' pc 35 (src/PCT/Grammar.pir:61)␤called from Sub 'parrot;Perl6;Grammar;Actions;_block1206' pc 120478 (src/gen_actions.pir:8262)␤called from Sub 'parrot;Perl6;Grammar;Actions;term' pc 119839 (src/gen_actions.pir:8006)␤called from Sub
..'parrot;Perl6::Grammar;term' pc 64839 (src/gen_gr...
Auzon rakudo: for (1,2 x 3,4) {say $_}
exp_evalbot OUTPUT[1␤222␤4␤]
Eevee x
Auzon rakudo: for (1,2 X 3,4) {say $_}
exp_evalbot OUTPUT[13␤14␤23␤24␤]
Auzon Ugh
Eevee hm 06:58
rakudo: for (1,2 X 3,4) -> @foo { say @foo }
exp_evalbot OUTPUT[13␤14␤23␤24␤]
Auzon rakudo: for (1,2 X 3,4) {say $_.WHAT}
exp_evalbot OUTPUT[List␤List␤List␤List␤]
Eevee rakudo: for (1,2 X 3,4) -> @foo { say @foo.WHAT } 06:59
exp_evalbot OUTPUT[List␤List␤List␤List␤]
Eevee okay
hm
this was going somewhere
Auzon Seems weird to store a List in $_, but I think that's just my Perl 5 instincts.
Eevee well
..actually
I think that's wrong
X returns a flat list in list context, and a list of arrays in slice context 07:00
not that I see how the former is very useful, but that's what the spec says.. 07:01
oh right, I was going to throw the X tests in t/spec 07:02
there's nothing special that needs to be done to the tests besides possible rakudo fudging, right? I can't help but hesitate when I find something that needs doing but seems trivial
Auzon Without looking at it in detail, everything seems fine 07:04
Auzon s/in detail// 07:05
I should look at it, but sleep calls. &
pugs_svnbot r20437 | Eevee++ | [t/spec] operators/cross-metaop.t moved to spec/S03 07:34
Eevee is there a (compellingly good) svn gui for gnome? I used tortoisesvn forever and got used to an editable file list, and now I am apt to committing with svn ci -m and forgetting other files in the same dir I've changed 07:35
Tene git-gui is pretty good. no clue about svn. 07:40
pugs_svnbot r20438 | Eevee++ | [t/spec] heavily fudged S03-operators/cross-metaop.t 08:13
Eevee perl6.vim may need an embedded perl 6 interpreter 08:21
masak Eevee: what with mutable grammar, certainly 08:25
Eevee even without 08:26
even parsing something like « looks like it will be.. complicated 08:27
masak yes
Eevee: is there a reasonable way for perl6.vim to hand over control to another process? 08:28
Eevee hm, I
'm not sure
haven't touched vim syntax highlighting much; tends to have already been done for me
masak Eevee: perhaps best to aim for 'mostly right most of the time' 08:34
Eevee would still like to avoid silly hacks (like a fake closing quote in a comment) just to get syntax to be sane though. might have a poke through vimdoc later 08:35
masak Eevee++
Eevee well, if I actually figure it out, sure! 08:36
masak with karma, it's the thought that counts. you'll get another one if you actually figure it out. :)
wolverian (ian hague)++ 12:09
wolverian Juerd, would it be possible to install ncurses-term on feather? it has the terminfo file for gnome-256color. 14:20
Juerd wolverian: done 14:40
wolverian Juerd, thankyou
pugs_svnbot r20439 | clkao++ | correct the mark. 15:10
rindolf Hi all. 15:19
pugs_svnbot r20440 | clkao++ | fix copy mode pad assignment.
rindolf TimToady: here?
pmurias mncharity: what's the next thing on elf's ROADMAP? 18:44
mncharity cpan: install Moose 18:46
:)
upgraded Moose halved the startup time.
Auzon mncharity: Which version of Moose?
stevan_ mncharity: you must have been way behind,... that was several version ago :) 18:47
mncharity Now 0.44
re way behind, always... :)
hmm. regrettably the speedup only affects the cleaned-up x01.pl version. so next step is... maybe some global process optimization stuff. 18:49
so the clean-up version can actually be emitted
pmurias mncharity: i use _nomoose only 18:50
mncharity basically, () only "use Moose" the first time you see a package; () only freeze once, rather than wrapping each package body with a unfreeze & freeze. err, s/freeze/immuntable/ 18:51
re _nm, ah, ok. doesn't yet do defaults, so, eg, has @.a; doesn't work, because it's never initialized as an array. were there any other differences? 18:52
pmurias mncharity: i can do the defaults 18:53
mncharity :) 18:53
re roadmap... good question, let's see... 18:54
possibilities include () continue to debug STD.pm and STD_red to increase % t/ which parses (currently 70%ish). () translate STD_red from ruby to p6 (probably p6 generated by p5). () continue banging on t/. () find a way to make banging on t/ more useful. ()... 18:58
mncharity re more useful, the problem with our file based testing is anything which emits as a p5 syntax error kills the test file. redsix(?) PIL-Run(?) dealt with this by dealing with top level statements incrementally. makes for much more useful test runs. 18:59
pmurias like sh 19:03
?
or only one the emitting stage? 19:04
mncharity hmm. top level is () translate STD_red to avoid the ruby1.9 barrier to entry and be fully bootstrapped. () run t/ to shake down and flesh out core functionality, to help folks use elf to write p6 compilers. () run t/ to provide a clearer picture of what runs, and otherwise attract people. () improve the compiler. () improve the p5 runtime (ie, create a usable multimethods module). () better argument passing abi (named, slurpy,
oh, that's way too long for some 19:05
second half was () improve the compiler. () improve the p5 runtime (ie, create a usable multimethods module). () better argument passing abi (named, slurpy, etc) (using Data::Bind?); forking an elf_f_better, or doing optimization or pragma games, if there is a significant performance hit.
re sh? only one the emitting stage?, the incremental test runs? my fuzzy recollection was it nested evals, or something like that. 19:06
so bungled p5 for a test would just show up as as the test disappearing 19:07
rather than the file not running
() move some primitives from the p5 prelude to PrimitivesP5.pm, so sub calling api can be tweaked more easily. 19:08
() flesh out Prelude and Primitives 19:09
pmurias nested eval = eval around each statement? 19:10
mncharity top level statement. I suspect it would have to be eval { stmt1; eval { stmt2; ... }} or some such. I'm fuzzy on how it worked.
the only reason for nesting is to get lexical vars working. I don't remember having to nest, so maybe the lex var runtime scheme used worked without it? hmm, and those eval {} would perhaps need to be eval q{}. 19:12
pmurias yes 19:13
* re eval q{} yes
eval {} is for catching runtime exceptions
mncharity I guess the key question is "what, if elf already had it, would have resulted in recent people who recently tried it, decide to use it actively?" :) 19:16
phone bbiam
hi 19:18
so... no roadmap. just peering into the fog, wondering which next step would get us furthest. 19:20
pugs_svnbot r20441 | putter++ | [elf] run-tests.result update. 19:23
mncharity pmurias: a run-tests.result of _nm could be interesting. hmm, we might want to generalize that name at some point. nomoose is just the mechanism. the policy is "be faster". eg, depending on the performance hit from adding some particular named argument handling, elf_f and elf_f_faster might make different decisions on whether it's worth the cost. 19:25
and we might see a new elf_f_good which is willing to take any performance hit in pursuit of correctness. 19:26
hmm. one somewhat attractive way forward is to get enough of multimethods working, with good enough performance, that the things added to Prelude can be real spec multis. rather than fudging it. but... performance will be an issue. 19:27
but this may be a candidate for "do the right thing, and tweak hotspots later". 19:28
mncharity I guess a rule of thumb is, do what you find interesting. Odds are, others will too, and thus the prime goal of attracting developers will be addressed. :) 19:29
Have to run, sorry. bbl this evening (probably). 19:30
pmurias elf_faster is a good name 19:48
pugs_svnbot r20442 | lwall++ | [STD5] snapshot of mostly Moosified gimme5 and Cursor5 20:52
diakopter TimToady: s/\!/Bang/g; appears twice in gimme5 21:00
TimToady ah, that was the case I was replicating :) 21:01
mncharity: re parsefails, that's why fudge comments out the code when you use "skip" 21:04
the whole point of fudge is to allow these sorts of tweaks without fragmenting the test suite, which most other approaches do 21:05
pugs_svnbot r20443 | lwall++ | [gimme5] extra Bang noted by diakopter++ 21:07
speckbot r14542 | larry++ | Clarifications to how tied longest tokens are handled under LTM 21:38
Juerd The big memory leak on feather is somewhere in apache2 23:41
Juerd Please, if you can remember any changes made on May 13 or 14, contact me. 23:42