Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-06-09

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:09 pugs_svnbot r20729 | diakopter++ | [yap6] works again.  CPS and all.
00:13 p6eval joined #perl6
00:14 p6eval joined #perl6
00:16 p6eval joined #perl6
00:17 bacek joined #perl6
01:08 alanhaggai joined #perl6
01:25 Ched- joined #perl6
01:37 Lorn joined #perl6
03:00 meteorjay joined #perl6
03:02 drbean joined #perl6
03:12 [1]Maghnus joined #perl6
03:26 TimToady joined #perl6
03:26 agentzh joined #perl6
03:26 pugs_svnbot joined #perl6
03:26 mncharity joined #perl6
03:26 bacek joined #perl6
03:26 shachaf joined #perl6
03:26 nothingmuch joined #perl6
03:26 broquaint joined #perl6
03:26 Maghnus joined #perl6
03:26 drbean joined #perl6
03:26 Lorn joined #perl6
03:26 Ched- joined #perl6
03:26 alanhaggai joined #perl6
03:26 p6eval joined #perl6
03:26 araujo joined #perl6
03:26 jisom joined #perl6
03:26 Limbic_Region joined #perl6
03:26 ofer joined #perl6
03:26 cognominal_ joined #perl6
03:26 kst joined #perl6
03:26 kcwu joined #perl6
03:26 jan_ joined #perl6
03:26 Patterner joined #perl6
03:26 pen1 joined #perl6
03:26 simcop2387 joined #perl6
03:26 stevan_ joined #perl6
03:26 rhr joined #perl6
03:26 perlbot joined #perl6
03:26 diakopter joined #perl6
03:26 PerlJam joined #perl6
03:26 gugod joined #perl6
03:26 qmole joined #perl6
03:26 kolibrie joined #perl6
03:26 dalek joined #perl6
03:26 Auzon joined #perl6
03:26 bbkr_ joined #perl6
03:26 viklund` joined #perl6
03:26 cls_bsd_ joined #perl6
03:26 TreyHarris joined #perl6
03:26 Khisanth joined #perl6
03:26 yahooooo joined #perl6
03:26 ingy joined #perl6
03:26 hcchien joined #perl6
03:26 zostay joined #perl6
03:26 xinming_ joined #perl6
03:26 acmoore joined #perl6
03:26 SamB joined #perl6
03:26 Southen joined #perl6
03:26 Arathorn joined #perl6
03:26 mofino joined #perl6
03:26 rakudo_svn joined #perl6
03:26 mj41 joined #perl6
03:26 orafu joined #perl6
03:26 pjcj_ joined #perl6
03:26 BinGOs joined #perl6
03:26 apeiron joined #perl6
03:26 smtms joined #perl6
03:26 ting joined #perl6
03:26 ilogger2 joined #perl6
03:26 Helios- joined #perl6
03:26 Lunchy joined #perl6
03:26 felipe joined #perl6
03:26 tcliou_ joined #perl6
03:26 lambdabot joined #perl6
03:26 r0bby joined #perl6
03:26 erikh joined #perl6
03:26 yath joined #perl6
03:26 c1sung joined #perl6
03:26 fullermd joined #perl6
03:26 lisppaste3 joined #perl6
03:26 avar joined #perl6
03:26 jiing joined #perl6
03:26 wolverian joined #perl6
03:26 moritz_ joined #perl6
03:26 nnunley joined #perl6
03:26 silug joined #perl6
03:26 cookys joined #perl6
03:26 charsbar_ joined #perl6
03:26 allbery_b joined #perl6
03:26 thepler joined #perl6
03:26 audreyt joined #perl6
03:26 xdg joined #perl6
03:26 buu joined #perl6
03:26 gbacon joined #perl6
03:26 Caelum joined #perl6
03:26 osfameron joined #perl6
03:26 clkao joined #perl6
03:26 Juerd joined #perl6
03:26 jjore joined #perl6
03:26 dmq joined #perl6
03:26 Gothmog_ joined #perl6
03:26 Grrrr joined #perl6
03:26 jrockway joined #perl6
03:26 arguile joined #perl6
03:26 Maddingue joined #perl6
03:26 LCamel joined #perl6
03:26 IRSeekBot joined #perl6
03:26 integral joined #perl6
03:26 rafl joined #perl6
03:26 nipotaway joined #perl6
03:26 Tene joined #perl6
03:26 speckbot joined #perl6
03:26 buubot joined #perl6
03:26 obra joined #perl6
03:26 cj joined #perl6
03:26 SubStack joined #perl6
03:26 mtve joined #perl6
03:26 justatheory joined #perl6
04:12 bacek joined #perl6
04:12 pugs_svnbot joined #perl6
04:12 agentzh joined #perl6
04:26 bacek joined #perl6
04:26 pugs_svnbot joined #perl6
04:26 agentzh joined #perl6
04:27 nothingmuch @tell ruoso ping me when you are back online, I have an interesting idea for perl 5 <-> SMOP
04:27 lambdabot Consider it noted.
04:43 bacek joined #perl6
04:43 pugs_svnbot joined #perl6
04:43 agentzh joined #perl6
04:57 bacek joined #perl6
04:57 pugs_svnbot joined #perl6
04:57 agentzh joined #perl6
04:57 nothingm2ch_ joined #perl6
04:59 viklund` joined #perl6
04:59 dalek joined #perl6
05:00 bbkr_ joined #perl6
05:02 Lorn joined #perl6
05:11 Psyche^ joined #perl6
05:24 bacek perl6: my Int $a; say (try{$a='a'}) eq undef;
05:24 p6eval kp6 r20729: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
05:24 p6eval ..pugs: OUTPUT[␤]
05:24 p6eval ..rakudo r28192: OUTPUT[Null PMC access in type()␤current instr.: '_block11' pc 131 (EVAL_11:54)␤
05:24 p6eval ..elf r20729: OUTPUT[Use of uninitialized value in string eq at (eval 14) line 4.␤␤]
05:29 bbkr_ joined #perl6
05:37 alanhaggai joined #perl6
05:38 Lorn joined #perl6
05:38 nothingm2ch_ joined #perl6
05:38 bacek joined #perl6
05:38 pugs_svnbot joined #perl6
05:38 agentzh joined #perl6
05:38 bacek perl6: my Int $foo; say (try{$foo='xyz'}) ~~ undef
05:38 p6eval kp6 r20729: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
05:38 p6eval ..pugs: OUTPUT[␤]
05:38 p6eval ..rakudo r28192: OUTPUT[Method 'ACCEPTS' not found for invocant of class 'Failure'␤current instr.: 'infix:~~' pc 8870 (src/gen_builtins.pir:5963)␤
05:38 p6eval ..elf r20729: OUTPUT[syntax error at (eval 14) line 4, near ") ~"␤ at ./elf_f_faster line 4492␤]
05:38 bacek perl6: my Int $foo; say (try{$foo='xyz'}) ~~ undef
05:38 p6eval kp6 r20729: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
05:38 p6eval ..pugs: OUTPUT[␤]
05:38 p6eval ..rakudo r28192: OUTPUT[Method 'ACCEPTS' not found for invocant of class 'Failure'␤current instr.: 'infix:~~' pc 8870 (src/gen_builtins.pir:5963)␤
05:38 p6eval ..elf r20729: OUTPUT[syntax error at (eval 14) line 4, near ") ~"␤ at ./elf_f_faster line 4492␤]
05:40 TimToady perl6: my Int $foo; say (try{$foo='xyz'}) eq 'xyz'
05:40 p6eval kp6 r20729: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
05:40 p6eval ..pugs: OUTPUT[1␤]
05:40 p6eval ..rakudo r28192: OUTPUT[Null PMC access in type()␤current instr.: '_block11' pc 125 (EVAL_12:54)␤
05:40 p6eval ..elf r20729: OUTPUT[1␤]
05:41 nothingmuch joined #perl6
05:41 bacek TimToady, why '~~ undef' doesn't work in pugs?
05:41 TimToady because the return value of an assignment isn't undef
05:42 moritz_ so elf and pugs don't do type checking
05:42 Auzon pugs: my $foo; say $foo ~~ undef
05:42 p6eval OUTPUT[1␤]
05:42 TimToady correct
05:42 moritz_ and kp6 has the always applicable "no method APPLY" response ;)
05:42 bacek but why '(try{}) ~~ undef' produces undef?
05:42 Auzon pugs: say try {1}
05:42 p6eval OUTPUT[1␤]
05:42 Auzon pugs: say try {}
05:42 p6eval OUTPUT[*** ␤    Unexpected end of input␤    Closing hash curly may not terminate a line;␤    please add a comma or a semicolon to disambiguate␤    at /tmp/bF5Df2hNzU line 2, column 1␤]
05:42 Lorn joined #perl6
05:42 moritz_ bacek: pugs doesn't do type checking, so the try{} won't fail
05:43 bacek moritz_, got it.
05:44 bacek perl6: sub is($q, $e) { say $q ~~ $e}; is(undef, undef)
05:44 p6eval kp6 r20729: OUTPUT[no method 'smartmatch' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
05:44 p6eval ..pugs: OUTPUT[1␤]
05:44 p6eval ..rakudo r28192: OUTPUT[Method 'ACCEPTS' not found for invocant of class 'Failure'␤current instr.: 'infix:~~' pc 8870 (src/gen_builtins.pir:5963)␤
05:44 p6eval ..elf r20729: OUTPUT[syntax error at (eval 14) line 4, near "$q ~"␤ at ./elf_f_faster line 4492␤]
05:50 masak joined #perl6
05:50 bacek perl6: sub is($q, $e) { say $q ~~ $e}; is((try{my Int $a; $a='foo';}), undef)
05:50 p6eval kp6 r20729: OUTPUT[syntax error at position 34, line 1 column 34:␤sub is($q, $e) { say $q ~~ $e}; is((try{my Int $a; $a='foo';}), undef␤                                  ^ HERE␤]
05:50 p6eval ..pugs: OUTPUT[␤]
05:50 p6eval ..rakudo r28192: OUTPUT[Method 'ACCEPTS' not found for invocant of class 'Failure'␤current instr.: 'infix:~~' pc 8870 (src/gen_builtins.pir:5963)␤
05:50 p6eval ..elf r20729: OUTPUT[syntax error at (eval 14) line 4, near "$q ~"␤ at ./elf_f_faster line 4492␤]
05:50 sri_work joined #perl6
05:51 bacek perl6: sub is($q, $e) { say $q ~~ $e}; my Int $a; is((try{$a='foo';}), undef)
05:51 p6eval kp6 r20729: OUTPUT[syntax error at position 45, line 1 column 45:␤sub is($q, $e) { say $q ~~ $e}; my Int $a; is((try{$a='foo';}), undef␤                                             ^ HERE␤]
05:51 p6eval ..pugs: OUTPUT[␤]
05:51 p6eval ..rakudo r28192: OUTPUT[Method 'ACCEPTS' not found for invocant of class 'Failure'␤current instr.: 'infix:~~' pc 8870 (src/gen_builtins.pir:5963)␤
05:51 p6eval ..elf r20729: OUTPUT[syntax error at (eval 14) line 4, near "$q ~"␤ at ./elf_f_faster line 4492␤]
05:54 pugs_svnbot r20730 | diakopter++ | [yap6] fixes for tonight; more tomorrow
05:59 elmex joined #perl6
06:03 meppl joined #perl6
06:10 bacek rakudo: sub is($q, $e, $d) { say $q ~~ $e}; my Int $a; is((try{$a='foo';}), undef, 'foo')
06:10 p6eval rakudo r28192 OUTPUT[Method 'ACCEPTS' not found for invocant of class 'Failure'␤current instr.: 'infix:~~' pc 8870 (src/gen_builtins.pir:5963)␤
06:10 bacek rakudo: multi sub is($q, $e, $d) { say $q ~~ $e}; my Int $a; is((try{$a='foo';}), undef, 'foo')
06:10 p6eval rakudo r28192 OUTPUT[Null PMC access in type()␤current instr.: '_block11' pc 138 (EVAL_13:56)␤
06:10 bacek bah!
06:16 ilogger2 joined #perl6
06:17 barney joined #perl6
06:18 Psyche^ joined #perl6
06:21 polettix joined #perl6
06:44 poletti joined #perl6
07:09 alanhaggai joined #perl6
07:10 iblechbot joined #perl6
07:16 pmurias joined #perl6
07:17 baest joined #perl6
07:31 SCalimlim joined #perl6
07:32 kane_ joined #perl6
07:39 Jedai joined #perl6
07:41 cosimo joined #perl6
07:55 r0bby joined #perl6
08:21 qmole joined #perl6
08:54 r0bby joined #perl6
09:09 ruoso joined #perl6
09:13 sri_work_ joined #perl6
09:31 drbean I think bicycle riders are going to have trouble with the idea that ratcheting means no backtracking.
09:32 drbean See the bicycle explanation at http://www.sheldonbrown.com/gloss_ra-e.html.
09:32 lambdabot Title: Sheldon Brown's Bicycle Glossary Ra-Re
09:33 drbean The perl6 idea of ratcheting however is recognized there.
09:34 drbean Which is probably the idea that will be familiar to drawers of water from wells.
09:35 chris2 joined #perl6
09:39 drbean Hewers of wood and drawers of water: Apparently a biblical term of abuse: http://www.google.com/search?num=100&amp;hl=en&amp;lr=&amp;as_qdr=all&amp;ie=ISO-8859-1&amp;q=%22hewers+of+wood+and+drawers+of+water%22&amp;btnG=Search
09:39 lambdabot Title: "hewers of wood and drawers of water" - Google Search, http://tinyurl.com/69s8mr
10:13 sri_work joined #perl6
10:13 charsbar joined #perl6
10:14 alanhaggai_ joined #perl6
10:17 ludan joined #perl6
10:21 alanhaggai__ joined #perl6
10:47 xinming joined #perl6
11:18 xinming_ joined #perl6
11:34 moritz_ rakudo: class A { has $.a, $.b }; my $x = A.new(:a(3), :b(4)); say $x.perl
11:34 p6eval joined #perl6
11:42 bacek joined #perl6
11:49 pmichaud moritz_: perhaps   has $.a;  has $.b;
11:49 moritz_ pmichaud: yes, that works
11:49 moritz_ has ($.a, $.b) leads to segfaults
11:49 pmichaud (I don't know about that -- haven't dealt with the class code yet
11:49 moritz_ and other very weird behaviour
11:50 pmichaud that would be a good rakudobug ticket, though.
11:51 moritz_ ok, I'll write one
11:54 pmichaud pugs:  say sign(undef);
11:54 p6eval OUTPUT[*** use of uninitialized value␤    at /tmp/29IoGCdZOo line 1, column 5-16␤]
11:55 pmichaud pugs:  say abs(undef);
11:55 p6eval OUTPUT[0␤]
11:55 pmichaud pugs:  say sin(undef);
11:55 p6eval OUTPUT[0␤]
11:55 pmichaud ummmmm......
11:57 awwaiid joined #perl6
11:57 pmichaud t/spec/S29-num/sign.t   has
11:57 pmichaud dies_ok { sign(undef) }, 'sign on undefined value fails';
11:58 pmichaud ...why?
11:58 moritz_ that's weird
11:58 moritz_ IMHO it should return 0 + optional warning
11:58 bacek rakudo: my $a=[]; say $a.elems
11:58 p6eval rakudo r28197 OUTPUT[0␤]
11:58 moritz_ rakudo: say undef ~~ Num
11:58 p6eval rakudo r28197 OUTPUT[0␤]
12:02 bacek rakudo: my $a=[]; say $a.sort;
12:02 p6eval rakudo r28197 OUTPUT[␤]
12:02 moritz_ pmichaud: ticket sent
12:03 pmichaud moritz_: many thanks
12:03 moritz_ pmichaud: you're welcome. I'm happy to help in any way that doesn't involve learning PIR ;-)
12:04 moritz_ test suite, testing infrastructure and spamming rakudobug with tickets seem a good way ;)
12:04 bacek moritz_, PIR is nice language :)
12:05 moritz_ bacek: for an assembly language, yes
12:07 bacek moritz_, indeed. My first computer had 16K of memory. And I program directly in octet codes :)
12:08 masak let's see, LTM concerns only the tokenizing step of parsing, right?
12:09 moritz_ masak: I don't think that Perl 6 rules have a clear definition of what the tokenizing is
12:10 moritz_ masak: the grammar engine has to figure that out for itself
12:10 masak hm
12:10 masak so what you're saying is that the model imposed on p6 grammars does not necessarily decompose into a step called 'tokenizing'?
12:11 masak couldn't all the limits between rule matches be said to delimit tokens?
12:12 moritz_ don't think that's efficient
12:12 masak I don't mean from an implemenation viewpoint
12:12 moritz_ I think that some form of closures and backtracking control *do* stop LTM
12:12 iblechbot joined #perl6
12:12 masak I'm just trying to argue that there's tokenizing in there somewhere
12:12 masak is there LTM code committed somewhere that one can look at?
12:13 moritz_ I think that gimme5 + Curso5.pm do a bit LTM
12:13 Lorn joined #perl6
12:13 kolibrie it is possible to modify the grammar mid-parse, so tokenizing must be tied pretty closely to the rest of the compilation
12:14 masak yes, I see that
12:14 masak and it fits in with the rest of Perl, in a way
12:14 moritz_ kolibrie: actually "mid-parse" is quite well defined
12:15 masak but in some situations it might still be useful to talk about tokenizing as if it was a step in the process
12:15 moritz_ the parsers parses a BEGIN block or use; statement
12:15 moritz_ then executes it
12:15 moritz_ then resumes parsing
12:15 masak moritz_: still, that means that you cannot tokenize everything and then do the other steps
12:16 masak or, if you do, you might have to throw a lot away
12:16 moritz_ masak: right. The tokenizer needs to be iterator-like
12:36 masak is there LTM code committed somewhere that one can look at?
12:36 moritz_ lol
12:37 masak no?
12:38 moritz_ if gimme5+cursor5 isn't readable, then not
12:38 moritz_ at least not in perl 6 land
12:39 masak gimme5+cursor5?
12:39 gbacon joined #perl6
12:39 wknight8111 joined #perl6
12:39 kolibrie masak: pugs/src/perl6
12:39 kolibrie those are TimToady's experimentations
12:39 masak oki
12:41 cmarcelo joined #perl6
12:51 wknight8111 joined #perl6
12:54 acmoore joined #perl6
12:55 masak well, taking a look at Cursor5, I see that it's well written but very high-density
12:55 masak maybe I would follow better if I understood the problem domain better
12:55 Ched- left #perl6
12:55 masak I saw a couple of unrelated idioms in there that I liked, though
12:56 moritz_ I wish I could tell you more, but my own understanding doesn't go far beyond my article
12:57 moritz_ anyway, gotta run &
12:57 pmurias masak: the approach i use with Cursor5 is to view the output of small snippets fed into gimme5
12:57 masak ok
12:57 masak do these two work together?
13:00 masak ah, I see now
13:00 masak the latter generates the former
13:00 pmurias no
13:00 masak ok :)
13:00 pmurias what do you mean by those two?
13:00 masak Cursor5 and gimme5
13:01 bacek rakudo: multi sub foo($a){say $a}; foo(undef)
13:01 p6eval rakudo r28197 OUTPUT[␤]
13:01 pmurias Cursor5 is used by the code which is generated from gimme5
13:01 masak ah, ok
13:01 pmurias gimme5 is broken in the svn HEAD
13:01 bacek rakudo: multi sub foo($a){say $a}; multi sub foo($a,$b) {say "2"}; foo(undef)
13:01 p6eval rakudo r28197 OUTPUT[␤]
13:01 pmurias gimme5 is a hackish way of translating STD.pm into perl5 code
13:01 bacek rakudo: multi sub foo($a){say $a}; multi sub foo($a,$b) {say "2"}; foo(try{die})
13:01 p6eval rakudo r28197 OUTPUT[Null PMC access in type()␤current instr.: '_block11' pc 59 (EVAL_13:27)␤
13:07 pmurias masak: revision 20656 seemed to work
13:07 masak pmurias: ok, great
13:08 pmurias @tell TimToady add mangle.pl to the repo
13:08 lambdabot Consider it noted.
13:12 alanhaggai joined #perl6
13:15 bacek perl6: (try{die}) ~~ undef
13:15 p6eval kp6 r20730: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
13:15 p6eval ..pugs: RESULT[Bool::True]
13:15 p6eval ..rakudo r28197: OUTPUT[Method 'ACCEPTS' not found for invocant of class 'Failure'␤current instr.: 'infix:~~' pc 8870 (src/gen_builtins.pir:5963)␤
13:15 p6eval ..elf r20730: OUTPUT[syntax error at (eval 14) line 3, near ") ~"␤ at ./elf_f_faster line 4492␤]
13:16 bacek perl6: defined(try{die})
13:16 p6eval kp6 r20730: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
13:16 p6eval ..pugs: RESULT[Bool::False]
13:16 p6eval ..rakudo r28197: RESULT[0]
13:16 p6eval ..elf r20730: RESULT[␤]
13:24 araujo joined #perl6
13:31 alester joined #perl6
13:34 diakopter masak: yes; in yap6 there's really only 1 tokenizer/parser.  well, the tokenizer just split(//)
13:34 masak diakopter: ok
13:35 masak does that mean that it parses $a+$b as one token?
13:35 diakopter no; 5 tokens
13:35 masak ah
13:35 masak I see
13:36 diakopter and in fact, the ast generated by the yapc parser is really a somewhat-hierarchical token stream
13:36 diakopter yap6
13:36 diakopter why do I keep saying yapc
13:36 diakopter probably b/c the pronounciation is too similar in my ind
13:36 diakopter mind
13:37 jhorwitz joined #perl6
13:37 masak diakopter: how far along is yap6?
13:38 diakopter well; I've refactored it around 4 times now :D
13:38 diakopter you could say it's still stuck in constant-refactoring
13:38 masak why is that?
13:39 moritz_ because design is hard ;)
13:39 diakopter and addictive
13:40 masak :)
13:40 diakopter why didn't I know about graphical perl debuggers before this month....
13:41 masak seems to me that Pugs showed that design needn't be up-front to go quite a bit
13:41 hanekomu joined #perl6
13:41 masak diakopter: URL?
13:41 diakopter masak: the Perl Dev Kit/Komodo from ActiveState, as well as EPIC for Eclipse
13:41 masak ok, thanks
13:43 diakopter masak: my belief is that there was *plenty* of design up-front while audreyt was preparing the beginnings of pugs
13:43 masak diakopter: ok
13:43 moritz_ ... and still some refactoring necessary ;)
13:45 cognominal_ joined #perl6
13:46 cognominal_ joined #perl6
13:51 pmichaud there was at least five years of up-front design before pugs got started.
13:51 pmichaud (okay, we'll say four on the conservative side.)
13:52 pmichaud and also a couple of aborted attempts at a perl 6 translator.
13:53 alanhaggai_ joined #perl6
13:53 diakopter things with which to experiment in yap6 today: parse-time swapping of parser objects; parsing unit stoppers "fateing" particular branches; ast structure formulation/display
13:53 masak pmichaud: I had the impression that Pugs just started from nothing, implementing a side-effect-free subset of Perl 6
13:54 masak though that of course doesn't contradict what you said
13:55 ofer joined #perl6
13:55 * diakopter imagines audreyt reading type-theory books/papers and thinking about a Perl 6 compiler design the whole time... and then deciding to learn Haskell by writing pugs.
13:55 masak :)
13:56 masak she already knew a bit of Haskell, through the Darcs project
13:56 diakopter ok; I thought I read somewhere that was one of the motivations.
13:57 * moritz_ too
13:57 Lorn joined #perl6
13:58 masak it probably was, too
13:59 diakopter you know what; I think I'm actually significantly more productive developing on win32/strawberry than on my macbook
14:00 diakopter than on mac os on my macbook
14:06 masak diakopter: why is that, you think?
14:09 diakopter perhaps I like the pointer control/movement in windows better.  I do use the mouse.
14:10 pmurias rats--
14:11 masak pmurias: try doing CAD or vector drawing without them :)
14:11 masak possible, but very frustrating, I'd guess
14:15 rdice joined #perl6
14:16 pmurias masak: i use the rat for browsing the web ;)
14:16 masak also useful
14:16 pmurias but i use ratpoison as my wm
14:20 masak pmurias: I could almost tell from your jargon
14:20 pmurias ;)
14:48 poletti joined #perl6
14:49 Jedai joined #perl6
14:56 sscaffidi joined #perl6
15:18 pugs_svnbot r20731 | lwall++ | [STD5] add mangle.pl
15:23 Lorn joined #perl6
15:37 stevan_ joined #perl6
15:42 TJCRI joined #perl6
15:45 ruoso TimToady, if you have some time, could you please take a look at the 'Foo.HOW.metamethod × Foo.^metamethod' message I posted on p6-language?
15:45 lambdabot ruoso: You have 3 new messages. '/msg lambdabot @messages' to read them.
15:45 ruoso @message
15:45 ruoso oops
15:45 lambdabot Maybe you meant: messages messages?
15:51 ruoso nothingmuch, I'm back online... I couldn't read carefully the article you pointed yet... but I think I kinda understand what it's saying...
15:54 lambdabot joined #perl6
16:12 alanhaggai joined #perl6
16:18 smtms joined #perl6
16:21 armagad joined #perl6
16:22 nothingmuch ruoso: please do
16:22 nothingmuch it's very easy to follow through
16:22 nothingmuch basically it's how to compile your exact frame based setup
16:22 pdcawley joined #perl6
16:22 nothingmuch into exception based stuff
16:24 cosimo joined #perl6
16:30 meppl joined #perl6
16:30 ruoso nothingmuch, ok... I just had a more carefull read...
16:31 ruoso SLIME basically works the same way, but it's much lower-level... for instance... there isn't an exception model yet..
16:31 ruoso my idea is to get the exception model on top of that
16:32 ruoso but the main point of comparision is that nothing stops some code to go through without being part of a series of eval calls...
16:32 ruoso for instance..
16:32 ruoso some frame might go executing without getting back
16:33 ruoso and only returning when need to recurse into the SLIME stack
16:33 nothingmuch ruoso: this is on how to compile SLIME to efficient C code
16:33 nothingmuch slime frames get linearized
16:34 ruoso oh... instead of reinitializing everytime...
16:34 nothingmuch yes
16:34 nothingmuch it does this by using administrative normal form
16:34 justatheory joined #perl6
16:34 nothingmuch and I actually came to the realization that perl 5 code can also be compiled to ANF at least in the abstract
16:34 nothingmuch actually getting it to run is something different though
16:35 nothingmuch either the opcode code has to be refactored
16:35 ruoso ok... and that with llvm allows that to be made in runtime
16:35 nothingmuch to use internal functions for the logic without caring about the stack
16:35 nothingmuch or they need wrappers
16:35 nothingmuch to set up the stack from normal parameters
16:35 nothingmuch and then we can actually get a CPS and from there an ANF form for perl 5
16:35 nothingmuch so continuations are potentially sane there too
16:36 IllvilJa joined #perl6
16:36 nothingmuch so that got me thinking
16:36 nothingmuch maybe I can compile perl 5 optrees to SMOP
16:36 nothingmuch SV *, opcodes etc are just an RI
16:36 ruoso that would need to be implemented at some point anyway
16:37 nothingmuch yes
16:37 nothingmuch but it's probably easier than I initially thought
16:37 nothingmuch at least for a certain subset of perl5's operational semantics
16:37 nothingmuch so basically we use perl 5 to parse perl 5
16:37 nothingmuch it's kinda like PONIE
16:37 nothingmuch but not at the representation layer
16:37 nothingmuch B::Simple is key here
16:38 ruoso well.. in theory... if I get it correctly... we could just replace the runops from p5 to smop
16:38 nothingmuch well, that would work for simple things
16:38 nothingmuch i mean something that can actually give perl 5 continuations too =)
16:40 ruoso we would still initialize the p5 interpreter
16:40 ruoso to have GC working and etc
16:40 ruoso as well as to have current XS code working as well
16:40 ruoso but instead of cooperating the two runloops, we simply reimplement the p5 runloop inside SMOP
16:40 ruoso the good thing is that we just need to reimplement the OP dispatch, not the OP themselves
16:40 ruoso that would be a nice challenge...
16:40 ruoso well.. I might be missing something...
16:41 ruoso but as long as we're off p5 runops stacking (one runops calling another), there's not reason for not having continuation for any p5 code...
16:41 nothingmuch that's pretty much it, yes
16:41 nothingmuch but what I would like to alter the calling convention for p5 ops
16:41 ruoso but once that we're reimplementing the runloop
16:41 nothingmuch instead of using the perl value stack, etc
16:41 ruoso we can override the ops that recurse
16:41 nothingmuch that is retained only for compat
16:41 ruoso to avoid recursing
16:42 nothingmuch anymoose, i need to finish something worky
16:42 ruoso ok... me too..
16:42 ruoso but that's a scary plan
16:42 ruoso that could work
16:42 ruoso ;)
16:42 nothingmuch it's going to require a lot of work before I can actually get something remotely similar
16:42 ruoso we need to toss this idea into #p5p after we mature it a little...
16:43 nothingmuch a lot ;-)
16:43 ruoso :)
16:44 moritz_ the general sentiment against low-level improvements seems to be "it would be *so* cool to have something better than we have now, but it's aint gonna work"
16:47 ruoso the key is making something outside (assuming moritz_ were talking about p5+smop runloop merge)
16:47 moritz_ ruoso: I was, and I think that you're right
16:48 ruoso I now realise that after getting the OO bootstrapped in SMOP, the most important milestone is embedding a full-feature p5
16:49 ruoso and getting a Moose metainstance on top of that immediatly afterwards...
16:49 nothingmuch embedding an unaware perl 5 shouldn't be too tricky
16:49 nothingmuch the thing is calling back to SMOP and then back to perl 5
16:49 ruoso yes... that's the "full-featured" part
16:49 ruoso ;)
16:50 nothingmuch tso the problem with that
16:50 nothingmuch is if you try to take a continuation in SMOP space
16:50 nothingmuch while part of the stack is perl 5
16:51 ruoso which wouldn't be a problem if p5 was completely stackless
16:51 ruoso I mean...
16:51 nothingmuch so yes
16:51 nothingmuch that's exactly what I'm talking about
16:51 nothingmuch making a stackless perl 5 =)
16:52 ruoso that's a interesting project... :)
16:52 ruoso #p5p people think it is not possible in the current interpreter
16:52 nothingmuch in it's own right too
16:52 nothingmuch it isn't
16:52 nothingmuch this is a big change
16:52 nothingmuch it won't be easy
16:52 nothingmuch but i think there is a  lot more we can reuse than people previously suspected
16:53 nothingmuch i realized the optree might actually be good enough for this
16:53 nothingmuch well, B::Simple would
16:53 ruoso ok... maybe we could get the "stackless p5 project" to #p5p even before we think on how that would work with SMOP
16:54 ashleyb joined #perl6
16:54 ruoso although I also realised it should be possible to implement it by delegating everything to p5
16:54 ruoso and allowing p5 to recurse as it wishes
16:54 ruoso as long as it starts another SMOP interpreter instance for each runops call
16:54 ruoso in theory... that should work, as long as p5 works..
16:56 ruoso the good thing is that starting a SMOP interpreter instance is very cheap
17:06 lambdabot joined #perl6
17:10 dduncan joined #perl6
17:11 dduncan left #perl6
17:20 pmurias joined #perl6
17:25 [particle] joined #perl6
17:26 barney joined #perl6
17:33 aindilis joined #perl6
17:47 mofino *CHEER* *CHEER* PERL SIX IS COMING *CHEER* *CHEER*
17:48 TimToady ...when there's good cheer 'mong the guests, he cocks an ear at all the jests, and laughs until he chokes
17:49 SubStack it'll be the best christmas present ever I suspect
17:49 SubStack although I usually get pretty lousy gifts
17:49 smtms SubStack, are you sure this won't be a lousy gift too? :-)
17:50 SubStack it'll probably say "CPAN not included" in small print on the box someplace
17:51 Auzon That would be disappointing.
17:52 pmurias TimToady: got my || is always ratchety bug report?
17:55 * ruoso more and more sees Perl 6 as a different language and project, and more and more accepts that /usr/bin/perl will be pointing to p5 still for a long time... but that is far from a bad thing...
17:56 pmurias SubStack: it hardly reasonable to expect cpan to be included in the default distribution ;)
17:56 diakopter TimToady: how fast/slow is STD5.pm these days; i'm curious
17:57 diakopter perl6: use v6; say 2;
17:57 p6eval kp6 r20731: OUTPUT[2␤]
17:57 p6eval ..pugs: OUTPUT[2␤]
17:57 p6eval ..rakudo r28205: OUTPUT[2␤]
17:57 p6eval ..elf r20731: OUTPUT[2␤]
17:59 diakopter moritz_: how about adding execution times to p6eval's output..? maybe just when it's privmsg?
18:01 diakopter or would they not be meaningful?
18:01 pmichaud I'm guessing not very meaningful
18:01 pmichaud since these tend to be short scripts
18:01 pmichaud one-liners, even.
18:02 ruoso and the environment is not that predictable AFAIK
18:05 diakopter pmichaud: but rakudo would always win :P
18:05 pmichaud oh, I'm not at all sure about that -- at least not until I get a chance to re-do the parser.
18:06 diakopter yap6's parser takes 280x longer with full trace output enabled on a half KB file compared to tracing disabled
18:07 diakopter (and generates a 60MB tracelog file)
18:07 diakopter in case anybody cared :)
18:07 pmichaud and, rakudo tends to be running on unoptimized parrot.
18:08 diakopter I thought it fails to run on optimized parrot?
18:08 pmichaud I think chromatic had it running.  I could try very quickly.
18:09 * diakopter wonders if you could have a rakudo-specific optimization setting for parrot
18:09 pmichaud and it may be that rakudo doesn't run under optimized parrot under specific architectures.
18:09 pmichaud (given that optimized parrot has difficulty under specific architectures.)
18:23 rdice joined #perl6
18:23 TimToady pmurias: yes, got that--eventually we'll have to solve token backtrack for non-ratchet, but it'll be easier once we have lazy lists, so that we don't have to generate all possible token matches on every token
18:24 TimToady diakopter: don't know how fast except once when I turn off all logging, and it was doing roughly 2000 chars/sec
18:24 TimToady but nothing is really optimized for speed except the LTM itself
18:25 TimToady and a lot of the overhead is from assuming non-ratchet where ratchet would have only one possibility
18:26 TimToady commuting & # back in about 2 hr
18:45 meppl joined #perl6
19:01 pmichaud rakudo spectest_regression on optimized parrot: 3m37  (1 failure)   unoptimized:  4m21 (0 failures)
19:01 jisom joined #perl6
19:03 jan_ joined #perl6
19:09 sri_work joined #perl6
19:13 dr_cherry joined #perl6
19:44 pmurias moritz_: how do you run elf under debian?
19:44 Auzon pmurias:  I compiled Ruby 1.9 from source
19:45 pmurias no luck with apt?
19:45 Auzon evalbot
19:45 Auzon evalbot is running debian stable
19:45 spinclad lenny has ruby-1.9
19:45 spinclad right
19:46 Auzon I think there was an issue in the past with Debian's ruby-1.9 being not recent enough since 1.9 was the development branch for a long time
19:46 Auzon Still isn't the stable one
19:48 diakopter <- lightbulb circuit closes
19:51 yahooooo2 joined #perl6
19:55 moritz_ pmurias: which distribution?
20:03 sri_work joined #perl6
20:03 pmurias moritz_: stable upgraded to lenny
20:04 moritz_ pmurias: aptitude install ruby1.9
20:04 moritz_ pmurias: it's a separate package in lenny
20:04 pmurias is apt-get install any different?
20:04 moritz_ not rreally
20:04 pmurias moritz_: should i remove ruby 1.8?
20:05 pmurias i get a no readline error
20:05 moritz_ ruby1.9-readline or something
20:05 moritz_ libruby...
20:05 moritz_ pmurias: ruby1.8 and 1.9 can coexist - don't know if you need 1.8 for anything
20:06 pmurias i guess i don't
20:09 Jedai joined #perl6
20:21 vixey joined #perl6
20:34 chris2 joined #perl6
20:41 pugs_svnbot r20732 | pmurias++ | [Cursor5] replaced a 2 with DEBUG::lexer
20:53 pugs_svnbot r20733 | lwall++ | [STD5] switch debugging output to ::deb function
21:05 armagad joined #perl6
21:17 dr_cherry left #perl6
21:35 sscaffidi joined #perl6
21:48 bacek joined #perl6
21:58 xinming_ joined #perl6
22:01 poletti joined #perl6
22:09 Limbic_Region joined #perl6
22:40 stevan_ joined #perl6
22:46 Auzon rakudo: class Foo {multi bar() {say "hi"}}; Foo.new.bar;
22:46 p6eval rakudo r28205 No output (you need to produce output to STDOUT)
22:46 Auzon rakudo: class Foo {multi method bar() {say "hi"}}; Foo.new.bar;
22:46 p6eval rakudo r28205 No output (you need to produce output to STDOUT)
22:46 Auzon rakudo: class Foo {multi method bar() {say "hi"}}; say Foo.new.bar;
22:46 p6eval rakudo r28205 No output (you need to produce output to STDOUT)
22:47 Auzon rakudo: class Foo {method bar {say "hi"}}; say Foo.new.bar;
22:47 p6eval rakudo r28205 No output (you need to produce output to STDOUT)
22:47 Auzon pugs: class Foo {method bar {say "hi"}}; Foo.new.bar;
22:47 p6eval OUTPUT[hi␤]
22:47 Auzon pugs: class Foo {multi bar {say "hi"}}; Foo.new.bar;
22:47 p6eval OUTPUT[hi␤]
22:47 Auzon pugs: class Foo {multi method bar {say "hi"}}; Foo.new.bar;
22:47 p6eval OUTPUT[hi␤]
22:47 Auzon pugs: class Foo {multi sub bar {say "hi"}}; Foo.new.bar;
22:47 p6eval OUTPUT[hi␤]
22:48 pugs_svnbot r20734 | diakopter++ | [yap6] lots of fixes/improvements
22:59 * ruoso trying hard to stress the fact that there's no way to avoid side effects in a method call...
23:00 ruoso even if that method call is part of a subset definition...
23:01 Limbic_Region ruoso - did you see my reply to your PerlMonk's post?
23:01 ruoso which one?
23:01 Limbic_Region pregnancy weeks
23:02 ruoso Limbic_Region, :) thansk
23:29 cjfields joined #perl6
23:33 aindilis joined #perl6
23:41 yahooooo joined #perl6
23:50 chris2_ joined #perl6
23:52 Lorn_ joined #perl6
23:57 Lorn_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo