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.
00:01 justatheory left 00:03 bacek_ joined
diakopter yap6 is no longer a mere lexer/tokenizer that also syntax checks. Now it's a lexer/parser/scanner that syntax checks. 00:21
pugs_svnbot r21003 | diakopter++ | [yap6]
r21003 | diakopter++ | * yap6 now generates (and outputs only) the match tree
diakopter evalbot control svnup 00:22
diakopter taps his fingers 00:23
pugs_svnbot r21004 | diakopter++ | [yap6] braino.. 00:27
00:28 FurnaceBoy joined
diakopter yap6: say $a; 00:30
p6eval yap6 r21004 OUTPUT[tree: {program => [{func_call => ["say"," ",{expr => {sVari => ["\$",{id => "a"}]}}]},";"]}␤]
pugs_svnbot r21005 | diakopter++ | [yap6] cleanup of both()
Auzon diakopter: I'd kinda like to make it possible for evalbot to control that.
diakopter evalbot control svnup parrot 00:32
evalbot control svnup pugscode
evalbot control rebuild parrot
dolmen perl6: my $a = 1..5; $a.perl.say; say $a.shift; $a.perl.say; 00:34
p6eval kp6 r21005: OUTPUT[syntax error at position 10, line 1 column 10:␤my $a = 1..5; $a.perl.say; say $a.shift; $a.perl.say␤ ^ HERE␤]
..pugs: OUTPUT[[1, 2, 3, 4, 5]␤1␤[2, 3, 4, 5]␤]
..rakudo r28692: OUTPUT[1..5␤1␤2..5␤]
..elf r21005: OUTPUT[Can't call method "shift" without a package or object reference at (eval 117) line 5.␤ at ./elf_f line 3854␤"1E0"␤]
00:36 sscaffidi joined
dolmen perl6: my $a = 1..1; $a.perl.say; $a.shift.say; $a.perl.say; 00:36
p6eval kp6 r21005: OUTPUT[syntax error at position 10, line 1 column 10:␤my $a = 1..1; $a.perl.say; $a.shift.say; $a.perl.say␤ ^ HERE␤]
..pugs: OUTPUT[[1,]␤1␤[]␤]
..rakudo r28692: OUTPUT[1..1␤1␤2..1␤]
..elf r21005: OUTPUT[Can't call method "shift" without a package or object reference at (eval 115) line 5.␤ at ./elf_f line 3854␤"1E0"␤]
dolmen perl6: my $a = 1..1; $a.perl.say; $a.shift.say; $a.perl.say; $a.perl.say; 00:37
p6eval kp6 r21005: OUTPUT[syntax error at position 10, line 1 column 10:␤my $a = 1..1; $a.perl.say; $a.shift.say; $a.perl.say; $a.perl.say␤ ^ HERE␤]
..pugs: OUTPUT[[1,]␤1␤[]␤[]␤]
..rakudo r28692: OUTPUT[1..1␤1␤2..1␤2..1␤]
..elf r21005: OUTPUT[Can't call method "shift" without a package or object reference at (eval 115) line 5.␤ at ./elf_f line 3854␤"1E0"␤]
diakopter what did rakudo do with [1..1].shift ?
dolmen [1..1] is not (1..1) 00:38
rakudo: (1..1).WHAT.say
p6eval rakudo r28692 OUTPUT[Range␤]
dolmen rakudo: [1..1].WHAT.say
p6eval rakudo r28692 OUTPUT[Array␤]
diakopter rakudo: my $a = 1..1; $a.shift; say $a.perl 00:40
p6eval rakudo r28692 OUTPUT[2..1␤]
diakopter I don't understand that 00:41
dolmen what is the process to submit test cases por Perl6? 00:42
bacek_ diakopter: bug in range.
diakopter dolmen: you get a commit bit, and add 'em
bacek_ (is was about [2..1]
dolmen not a bug
diakopter dolmen: do you already have subversion commit access to pugs (where the tests are)? 00:43
dolmen not yet
diakopter msg me your email address and desired username and I'll add you
00:50 sscaffidi left 00:55 Chillance left 00:57 hercynium_ joined, hercynium_ is now known as hercynium
pugs_svnbot r21006 | lwall++ | [STD] revisions to endstmt memoization 01:01
r21006 | lwall++ | faststopper is now gone
r21006 | lwall++ | statement parsing is a bit simpler
r21006 | lwall++ | various other buglets fixed
01:06 BinGOs left, BinGOs joined 01:10 pbuetow left 01:11 BinGOs left 01:19 hercynium left, justatheory joined, hercynium joined 01:21 a-jing joined, a-jing left, Jedai left
dolmen can I create spec/S29-range/ ? 01:24
01:24 justatheory left
dolmen is a new commiter on Pugs... 01:24
diakopter commit first; ask questions later 01:25
Auzon: you around to elaborate/specify?
01:27 Limbic_Region left, p6eval left, iblechbot left, Khisanth left, GeJ left 01:28 ingy joined, Limbic_Region joined, p6eval joined, iblechbot joined, Khisanth joined, GeJ joined, simcop2387 joined, cookys joined, Southen joined, agentzh joined, mj41 joined, kolibrie joined, fullermd joined, qmole_ joined, pmichaud joined, charsbar joined, irc.freenode.net sets mode: +o ingy
diakopter <sigh> netsplits. 01:28
01:28 qmole_ left, kolibrie left, GeJ left, p6eval left, Limbic_Region left, fullermd left, agentzh left, pmichaud left, ingy left, Southen left, Khisanth left, mj41 left, cookys left, simcop2387 left, iblechbot left, charsbar left 01:29 ingy joined, Limbic_Region joined, p6eval joined, iblechbot joined, Khisanth joined, GeJ joined, simcop2387 joined, cookys joined, Southen joined, agentzh joined, mj41 joined, kolibrie joined, fullermd joined, qmole_ joined, pmichaud joined, charsbar joined, irc.freenode.net sets mode: +o ingy 01:30 FurnaceBoy left, japhb left, audreyt_ left, meteorja1 left, wilx left 01:31 FurnaceBoy joined, japhb joined, audreyt_ joined, meteorja1 joined, wilx joined, ruoso joined, spinclad joined, TreyHarris joined, Kattana joined, nipotan joined 01:32 TreyHarris left, Kattana left, wilx left, japhb left, spinclad left, FurnaceBoy left, meteorja1 left, audreyt_ left, ruoso left, nipotan left 01:33 FurnaceBoy joined, japhb joined, audreyt_ joined, meteorja1 joined, wilx joined, ruoso joined, spinclad joined, TreyHarris joined, Kattana joined, nipotan joined 01:35 LowBass left 01:36 [particle] left, [particle] joined, rhr joined, Auzon joined, jrockway joined, smtms joined, yahooooo2 joined, SamB joined, lumi joined 01:38 lumi left, rhr left, [particle] left, yahooooo2 left, SamB left, Auzon left, smtms left, jrockway left, qmole_ left, kolibrie left, GeJ left, p6eval left, Limbic_Region left, fullermd left, agentzh left, pmichaud left, ingy left, Southen left, Khisanth left, mj41 left, cookys left, simcop2387 left, iblechbot left, charsbar left, TreyHarris left, Kattana left, wilx left, japhb left, spinclad left, FurnaceBoy left, meteorja1 left, audreyt_ left, ruoso left, nipotan left, IRSeekBot left, eternaleye left, dolmen left, cognominal_ left, ispy_ left, jhorwitz left, bacek left, xinming left, alanhaggai left, bacek_ left, wknight8111 left, stevan_ left, hercynium left, kanru left, jjore left, elmex left, Patterner left, jfredett left, araujo left, vixey left 01:39 ingy joined, lumi joined, SamB joined, yahooooo2 joined, smtms joined, jrockway joined, Auzon joined, rhr joined, [particle] joined, nipotan joined, Kattana joined, TreyHarris joined, spinclad joined, ruoso joined, wilx joined, meteorja1 joined, audreyt_ joined, japhb joined, FurnaceBoy joined, charsbar joined, pmichaud joined, qmole_ joined, fullermd joined, kolibrie joined, mj41 joined, agentzh joined, Southen joined, cookys joined, simcop2387 joined, GeJ joined, Khisanth joined, iblechbot joined, p6eval joined, Limbic_Region joined, hercynium joined, bacek_ joined, dolmen joined, wknight8111 joined, jfredett joined, cognominal_ joined, ispy_ joined, araujo joined, kanru joined, jjore joined, alanhaggai joined, jhorwitz joined, stevan_ joined, irc.freenode.net sets mode: +o ingy, bacek joined, elmex joined, vixey joined, xinming joined, IRSeekBot joined, eternaleye joined, Patterner joined, baest_ joined, gbacon joined, avar joined, clkao joined, DietCoke joined, s1n joined, Grrrr joined, pjcj joined, bsb joined, drbean joined, Tene joined, moritz_ joined, cj joined, broquain1 joined, arguile joined, Maddingue joined, allbery_b joined, rakudo_svn joined, awwaiid joined, osfameron joined, PerlJam joined, pasteling joined, silug joined, SubStack joined, gugod joined, cls_bsd joined, diakopter joined, wolverian joined, lambdabot joined, buubot joined, TimToady joined, yves joined, ilbot2 joined, rafl joined, mtve joined, kane_ joined, pengrate joined, nothingmuch joined, obra joined, Gothmog_ joined, funktio joined, jan__ joined, fridim joined, hcchien joined, irc.freenode.net sets mode: +o TimToady, revdiablo joined, Ara4n joined, felipe joined, dmq joined, perlbot joined, pugs_svnbot joined, dalek joined, Caelum joined, jiing joined, Juerd joined, buu joined, nnunley joined, lisppaste3 joined, yath joined, zostay joined 01:40 [particle] left, rhr left, lumi left, yahooooo2 left, Auzon left, smtms left, SamB left, jrockway left, Limbic_Region left, p6eval left, Southen left, agentzh left, kolibrie left, qmole_ left, GeJ left, pmichaud left, Khisanth left, fullermd left, simcop2387 left, cookys left, ingy left, iblechbot left, mj41 left, charsbar left, Kattana left, FurnaceBoy left, japhb left, spinclad left, TreyHarris left, wilx left, audreyt_ left, meteorja1 left, nipotan left, ruoso left, Grrrr left, bsb left, pjcj left, eternaleye left, s1n left, drbean left, gbacon left, IRSeekBot left, wolverian left, diakopter left, jhorwitz left, dolmen left, TimToady left, ispy_ left, cognominal_ left, buubot left, lambdabot left, cls_bsd left, bacek left, yves left, ilbot2 left, rafl left, rakudo_svn left, xinming left, arguile left, broquain1 left, PerlJam left, allbery_b left, awwaiid left, SubStack left, osfameron left, gugod left, pasteling left, silug left, Maddingue left, pengrate left, kane_ left, Tene left, mtve left, moritz_ left, alanhaggai left, cj left, bacek_ left, hcchien left, buu left, zostay left, nothingmuch left, fridim left, perlbot left, wknight8111 left, stevan_ left, avar left, funktio left, Ara4n left, Gothmog_ left, DietCoke left, Patterner left, jjore left, hercynium left, nnunley left, yath left, revdiablo left, Juerd left, lisppaste3 left, felipe left, clkao left, obra left, elmex left, kanru left, jan__ left, baest_ left, dmq left, dalek left, pugs_svnbot left, Caelum left, jfredett left, araujo left, vixey left, jiing left 01:41 ingy joined, lumi joined, SamB joined, yahooooo2 joined, smtms joined, jrockway joined, Auzon joined, rhr joined, [particle] joined, nipotan joined, Kattana joined, TreyHarris joined, spinclad joined, ruoso joined, wilx joined, meteorja1 joined, audreyt_ joined, japhb joined, FurnaceBoy joined, charsbar joined, pmichaud joined, qmole_ joined, fullermd joined, kolibrie joined, mj41 joined, agentzh joined, Southen joined, cookys joined, simcop2387 joined, GeJ joined, Khisanth joined, iblechbot joined, p6eval joined, Limbic_Region joined, hercynium joined, bacek_ joined, dolmen joined, wknight8111 joined, jfredett joined, cognominal_ joined, ispy_ joined, araujo joined, kanru joined, jjore joined, alanhaggai joined, jhorwitz joined, stevan_ joined, irc.freenode.net sets mode: +o ingy, bacek joined, elmex joined, vixey joined, xinming joined, IRSeekBot joined, eternaleye joined, Patterner joined, baest_ joined, gbacon joined, avar joined, clkao joined, DietCoke joined, s1n joined, Grrrr joined, pjcj joined, bsb joined, drbean joined, Tene joined, moritz_ joined, cj joined, broquain1 joined, arguile joined, Maddingue joined, allbery_b joined, rakudo_svn joined, awwaiid joined, osfameron joined, PerlJam joined, pasteling joined, silug joined, SubStack joined, gugod joined, cls_bsd joined, diakopter joined, wolverian joined, lambdabot joined, buubot joined, TimToady joined, yves joined, ilbot2 joined, rafl joined, mtve joined, kane_ joined, pengrate joined, nothingmuch joined, obra joined, Gothmog_ joined, funktio joined, jan__ joined, fridim joined, hcchien joined, irc.freenode.net sets mode: +o TimToady, revdiablo joined, Ara4n joined, felipe joined, dmq joined, perlbot joined, pugs_svnbot joined, dalek joined, Caelum joined, jiing joined, zostay joined, yath joined, lisppaste3 joined, nnunley joined, buu joined, Juerd joined, rakudo_svn left, arguile left, xinming left, PerlJam left, allbery_b left, broquain1 left, awwaiid left, SubStack left, osfameron left, gugod left, pasteling left, silug left, Maddingue left, xinming joined, broquain1 joined, gugod joined, SubStack joined, silug joined, pasteling joined, PerlJam joined, osfameron joined, awwaiid joined, rakudo_svn joined, allbery_b joined, Maddingue joined, arguile joined
dolmen how can test a new test with rakudo? 01:42
I don't want to run the full spectest
bacek_ dolmen: create t/localtest.data and run make localtest 01:43
format for file is same as t/spectest_regression.data
01:43 bsb left, pjcj left, Grrrr left, s1n left, eternaleye left, drbean left, gbacon left, IRSeekBot left
Auzon diakopter: ping 01:44
01:44 IRSeekBot joined, eternaleye joined, gbacon joined, drbean joined, bsb joined, pjcj joined, Grrrr joined, s1n joined
diakopter Auzon: gnop 01:44
Auzon What did you want me to elaborate on? 01:45
diakopter about dolmen's question about spec/S29-range
Auzon Sure, it fits well 01:47
diakopter there were so many netsplits; who knows who got which messages
Auzon I thought you were asking about evalbot or something 01:48
01:54 diakopter left, jhorwitz left, ispy_ left, dolmen left, wolverian left, TimToady left, cognominal_ left, buubot left, lambdabot left, cls_bsd left 01:55 TimToady joined, dolmen joined, cognominal_ joined, ispy_ joined, jhorwitz joined, buubot joined, lambdabot joined, wolverian joined, diakopter joined, cls_bsd joined, irc.freenode.net sets mode: +o TimToady 01:58 japhb left 02:01 Limbic_Region left 02:02 BinGOs joined 02:11 alanhaggai left 02:13 alanhaggai joined
pugs_svnbot r21007 | dolmen++ | First commit. 02:16
r21007 | dolmen++ | A few simple Range tests.
02:16 kanru left 02:17 dolmen left
diakopter dolmen: also, add yourself to AUTHORS 02:21
02:23 Pzt joined 02:26 hercynium left 02:30 japhb joined
Auzon whois moritz_ 02:33
moritz_: I was thinking for evalbot that we could combine all the exec_whatever subs, and just pass them the command to execute. We can also get rid of the filtering code so that it just trims by length (which I think I have just under one message). 02:35
02:36 r0bby joined 02:37 jfredett left 02:38 [particle] left 02:52 ispy_ left 03:01 alanhaggai left 03:11 jhorwitz left 03:19 [particle] joined, elmex left, Alias_ joined
buu Auzon: Sounds complicated. 03:20
Auzon buu: the evalbot stuff? It'll have to be careful where we decide to do things, but it'll reduce the amount of things needed for a new implementation down to one line or so. 03:21
pugs_svnbot r21008 | audreyt++ | * INSTALL: Document the "cabal install Pugs -fOptimize" flag.
r21008 | audreyt++ | As of Pugs-6.2.13.4, "pugs -e1" time is much shorter than
r21008 | audreyt++ | before (<0.3s user time), thanks to a new Prelude compilation
r21008 | audreyt++ | technique using Data.Binary instead of Data.Yaml.Syck.
buu Auzon: You should look at mine =] 03:22
Auzon buu: Where is it?
buu buubot: hi
buubot buu: leave me the fuck alone
buu =[
Auzon That'd be a lot simpler to implement :P
buu eval: 2+2 03:23
Oh
buubot: eval: 2+2
buubot buu: 4
Auzon I've seen your bot used occasionally... but p6eval is more complicated due to the need to support multiple Perl 6 implementations
buu How do you access each perl6 implementation? 03:24
Auzon rakudo: say "hi"
p6eval rakudo r28692 OUTPUT[hi␤]
buu I mean programatically.
Auzon p6eval: help 03:25
p6eval Auzon: Usage: <(nqp|perl6|pugs|pixie|elf|rakudo|yap6|kp6): $perl6_program>
bacek_ pixie?
Auzon bacek: Elf variant based on STD
buu: code is separated into two parts, the main bot and the executer. The Executer handles the forking and such. The main bot has a dispatch table and a bunch of if statements for each implementation 03:27
buu Auzon: The only real limitation is that bb only talks to thinks that can be embedded in perl.
pugs_svnbot r21009 | lwall++ | [LazyMap] looping bug in iter()
r21009 | lwall++ | [Cursor5] stop * match when it matches null string
03:28 FurnaceBoy left 03:34 jfredett joined 03:37 alanhaggai joined 03:46 jfredett left 03:51 jfredett joined 03:54 kane_ left 03:58 wknight8111 left 04:01 kane_ joined 04:13 nipotan is now known as nipotaway 04:16 japhb left, Grrrr left, s1n left, pjcj left, bsb left, eternaleye left, drbean left, gbacon left, IRSeekBot left, japhb joined, IRSeekBot joined, eternaleye joined, gbacon joined, drbean joined, bsb joined, pjcj joined, Grrrr joined, s1n joined
Auzon perl6: say Rat ~~ Num 04:33
p6eval kp6 r21009: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
..pugs: OUTPUT[1␤]
..rakudo r28692: OUTPUT[0␤]
..elf r21009: OUTPUT[Can't call method "Str" on an undefined value at ./elf_f line 649.␤ at ./elf_f line 3854␤]
Auzon pugs: 1.1.WHAT 04:35
p6eval RESULT[::Rat]
Auzon pugs: say 1.1 ~~ Num
p6eval OUTPUT[1␤]
Auzon rakudo: sub returntype as Str {'foo'}; say returntype; 04:44
p6eval rakudo r28692 OUTPUT[Statement not terminated properly at line 1, near "{'foo'}; s"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
Auzon rakudo: sub returntype of Str {'foo'}; say returntype;
p6eval rakudo r28692 OUTPUT[foo␤]
Auzon rakudo: Str sub returntype {'foo'}; say returntype;
p6eval rakudo r28692 OUTPUT[Statement not terminated properly at line 1, near "sub return"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
Auzon rakudo: my Str sub returntype {'foo'}; say returntype;
p6eval rakudo r28692 OUTPUT[Null PMC access in type()␤current instr.: 'parrot;Perl6;Grammar;Actions;scoped' pc 110447 (src/gen_actions.pir:6647)␤
Auzon rakudo: sub returntype (--> Str) {'foo'}; say returntype; 04:45
p6eval rakudo r28692 OUTPUT[Statement not terminated properly at line 1, near "(--> Str) "␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤
04:47 Pzt left 04:56 alanhaggai left 05:02 alester joined 05:06 japhb left
pugs_svnbot r21010 | Auzon++ | [gsoc_spectest] S02: Added some parameter type and return type tests (added 12 tests) 05:06
Auzon This may not be 100%, but it's a good start. self.sleep;
05:07 Psyche^ joined 05:22 Patterner left, Psyche^ is now known as Patterner 05:33 japhb joined 05:56 jfredett left 05:57 jfredett joined 06:01 jfredett left 06:02 jfredett joined 06:05 jwest- joined 06:11 alester left 06:12 justatheory joined 06:14 Alias_ left 06:17 justatheory left 06:19 smtms left 06:23 smtms joined 06:30 jwest- left 06:36 lambdabot left 06:41 osfameron left 06:43 jfredett left, jfredett joined
pugs_svnbot r21011 | moritz++ | [spec] added Ovid++'s type check regressioin test 07:12
07:21 sri_work joined
pugs_svnbot r21012 | moritz++ | fixed intendation and curlies in type.t 07:21
07:28 Jedai joined
pugs_svnbot r21013 | moritz++ | [spec] types.t: more fudging, and rewrote some tests in terms of dies_ok 07:30
07:45 meppl joined
pugs_svnbot r21014 | moritz++ | [spec] started to fudge pair.t - still a long way to go 08:00
r21015 | moritz++ | [spec] started to fudge lists.t 08:09
moritz_ fudging is a bit frustrating if rakudo dies unspecifically with "Method 'lvalue' not found for invocant of class 'PAST::Stmts'" or "null PMC access in type()" or some such 08:11
bacek_ moritz_: -G? 08:12
even adding new empty lines can help... 08:13
moritz_ bacek_: -G doesn't help for incorrectly generated PAST (and -G isn't well supported in the testing tool chain) 08:14
the frustrating thing is that these errors don't map to location in the file 08:15
pugs_svnbot r21016 | moritz++ | [spec] some more fudging of lists.t
bacek_ moritz_: ho! nice bug. 08:18
moritz_ bacek_: which one? #56330 ? 08:20
bacek_ Method 'lvalue' not found for invocant of class 'PAST::Stmts'
moritz_ ah, this one
bacek_ rakudo: my $a=24;my $b=2; ($b,$a) = $(a,$b) 08:21
p6eval rakudo r28692 OUTPUT[Method 'lvalue' not found for invocant of class 'PAST::Stmts'␤current instr.: 'parrot;PAST::Compiler;as_post' pc 2787 (src/PAST/Compiler.pir:718)␤
moritz_ it never gets around to actually evaluating the RHS 08:22
if it would, It would complain about sub a() not being found 08:23
bacek_ rakudo: my $a=24;my $b=2; ($b,$a) = ($a,$b)
p6eval rakudo r28692 OUTPUT[Method 'lvalue' not found for invocant of class 'PAST::Stmts'␤current instr.: 'parrot;PAST::Compiler;as_post' pc 2787 (src/PAST/Compiler.pir:718)␤
bacek_ rakudo: my $a;my $b; my @l=(1..2); ($b,$a) = @l; 08:24
p6eval rakudo r28692 OUTPUT[Method 'lvalue' not found for invocant of class 'PAST::Stmts'␤current instr.: 'parrot;PAST::Compiler;as_post' pc 2787 (src/PAST/Compiler.pir:718)␤
bacek_ LHS :)
08:26 jfredett left, jfredett joined, pmurias joined
pmurias pixie: say "hello world" 08:27
p6eval OUTPUT[Can't locate STD5.pm in @INC (@INC contains: ../../src/perl6 /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 pixie line 4.␤BEGIN failed--compilation aborted at pix...
moritz_ pmurias: chroot not yet updated, it'll take some time :( 08:29
08:30 jfredett left, jfredett joined 08:31 jfredett left, p6eval left, GeJ left, kolibrie left, qmole_ left, fullermd left, Southen left, pmichaud left, agentzh left, Khisanth left, simcop2387 left, cookys left, ingy left, iblechbot left, mj41 left, charsbar left 08:32 ingy joined, mj41_ joined, p6eval joined, iblechbot joined, Khisanth joined, GeJ joined, simcop2387 joined, cookys joined, Southen joined, agentzh joined, mj41 joined, kolibrie joined, fullermd joined, qmole_ joined, pmichaud joined, charsbar joined, irc.freenode.net sets mode: +o ingy 08:36 elmex joined, Southen_ joined 08:39 Southen left 08:40 jfredett joined 08:43 a-jing joined, a-jing left 08:46 audreyt_ is now known as audrey, audrey is now known as audreyt 08:49 mj41 left 08:57 bacek_ left 09:04 kanru joined 09:06 sri_work_ joined
moritz_ anybody had any success building pugs on debian etch? 09:10
s/etc/lenny/
09:14 sri_work left 09:27 masak joined 09:30 pmurias left 09:35 jfredett is now known as joebot 09:36 joebot is now known as \bot, \bot left, jfredett joined 09:37 jfredett is now known as \bot, xinming_ joined
moritz_ notices with pleasure that ghc6's memory usage seems a bit lower than before 09:39
09:39 xinming left 09:40 \bot left, jfredett joined 09:45 Coleoid_ joined, Coleoid_ is now known as Coleoid 09:46 meppl left
moritz_ where does 'cabal install Pugs' place the pugs binary? 09:55
10:01 chris2 joined
masak and where does it place the source tree? 10:10
moritz_ seems to be all in ~/.cabal/$somewhere 10:11
masak hm, yes 10:17
but I don't find pugs there
what's pugs-DrIFT?
moritz_ ~/.cabal/bin/pugs for me
masak yes, but that's just the binary 10:18
what if I want to change something and rebuild?
moritz_ dunno 10:19
masak being able to do that would be a boon
moritz_ diakopter: would you be fine with removing the ||| hack from evalbot and instead use two separate targets?
10:24 Alias_ joined 10:29 Alias_ left 10:32 LCamel joined
pugs_svnbot r21017 | moritz++ | [evalbot] assemble all needed data for different executers in a large hash. 10:34
r21017 | moritz++ | Planned steps:
r21017 | moritz++ | 0) move to appropriate package
r21017 | moritz++ | 1) use this data in a single executer sub
r21017 | moritz++ | 2) use it also to assemble output for 'perl6:' evaluation
r21017 | moritz++ | 3) get rid of the exec_$stuff subs
r21017 | moritz++ | 4) clean up sub said()
moritz_ what svn revision does 6.2.13.1 correspond to? 10:38
audreyt it's all HEAD as there has been no src/ checkins 10:41
once I've got the new Cabal procedure sorted out (still working with the Cabal team) I'll check it in. 10:42
but no promises as of when :)
moritz_ audreyt: sounds great. When you do, could you please notify me? Then I'll update pugs on evalbot's server 10:46
audreyt ok.
can you point the binary to it for now? 10:47
moritz_ what do you mean? 10:48
audreyt i.e. use the ~/.cabal/bin/pugs for evalbot's pugs: 10:49
moritz_ (I'm currenlty working on a copy of the chroot in which evalbot runs, and I'm updating that to Debian Lenny + cabal-installed pugs. In this new chroot (not yet in "production) I'll use the ~/.cabal/bin/pugs) 10:50
audreyt thanks!
moritz_ I don't plan to do touch the pugs in the current chroot because it's too painful, and it'll shortly be substituted anyway
audreyt k 10:51
bbiab...
10:54 Alias_ joined 10:55 revdiablo left, revdiablo joined 11:01 ruoso left 11:04 ruoso joined 11:16 sri_work_ left 11:31 cosimo joined 11:54 a-jing joined, a-jing left
pugs_svnbot r21018 | moritz++ | [evalbot] continued refactoring. Be impressed if this works. 11:59
11:59 p6eval left, p6eval joined
moritz_ rakudo: say "hi" 11:59
11:59 p6eval left 12:00 chris2 left, p6eval joined
moritz_ rakudo: say "hi" 12:01
12:01 p6eval left, p6eval joined, p6eval left
pugs_svnbot r21019 | moritz++ | [evalbot] fixed first stupid thinko - more to follow 12:01
12:02 p6eval joined
moritz_ rakudo: say "hi" 12:02
p6eval rakudo 28692: No output (you need to produce output to STDOUT)
12:02 p6eval left
pugs_svnbot r21020 | moritz++ | [evalbot] also commit changes to the module ... :/ 12:04
12:05 p6eval joined
moritz_ rakudo: say "hi" 12:05
p6eval rakudo 28692: No output (you need to produce output to STDOUT)
12:06 p6eval left
pugs_svnbot r21021 | moritz++ | [evalbot] confused variables 12:06
12:06 p6eval joined
moritz_ sometimes I wish I had a test suite 12:06
rakudo: say "hi"
p6eval rakudo 28692: OUTPUT[hi␤]
moritz_ pugs: say "hi"
p6eval pugs: OUTPUT[sh: /home/evalenv/.cabal/bin/pugs: No such file or directory␤]
moritz_ kp6: say("hi") 12:07
12:07 p6eval left, p6eval joined
bacek Generating precompiled Prelude, Math::Basic... pugs: Internal error: 12:07
Invalid grammatical category: "Bool"
Debian/lenny... 12:08
moritz_ bacek: try the 'cabal update; cabal install Pugs -fOptimize' approach described in INSTALL
elf: say "hi"
bacek moritz_, thanks 12:09
12:09 p6eval left, cmarcelo joined, p6eval joined
bacek cabal: command not found 12:09
moritz_ bacek: "described in INSTALL" ;)
nqp: say("hi")
p6eval nqp: OUTPUT[hi␤]
bacek yeah... But what about compiling from sources? :) 12:10
pugs_svnbot r21022 | moritz++ | [evalbot] more confusion 12:11
moritz_ bacek: cabal does compile from source
12:11 p6eval left, p6eval joined
moritz_ rakudo: say "hi" 12:12
p6eval rakudo 28692: OUTPUT[hi␤]
moritz_ rakudo: "hi"
p6eval rakudo 28692: RESULT["hi"]
moritz_ rakudo: 1/0
p6eval rakudo 28692: OUTPUT[Divide by zero␤current instr.: 'infix:/' pc 11355 (src/gen_builtins.pir:7547)␤]
moritz_ ok, filtering works
nqp: say(1/0)
p6eval nqp: OUTPUT[float division by zero␤current instr.: '_block11' pc 6 (EVAL_4:6)␤]
12:12 Jedai left
moritz_ same here 12:12
elf: say "hi"
12:12 p6eval left 12:13 p6eval joined 12:16 p6eval left
pugs_svnbot r21023 | moritz++ | [evalbot] it helps to use correct sub names 12:16
moritz_ elf: say "hi"
12:16 p6eval joined
moritz_ elf: say "hi" 12:16
p6eval elf 21023: OUTPUT[hi␤]
12:17 p6eval left 12:20 p6eval joined
moritz_ pugs: say "Hi" 12:21
p6eval OUTPUT[./pugs: error while loading shared libraries: libperl.so.5.8: cannot open shared object file: No such file or directory␤]
12:21 p6eval left 12:22 p6eval joined
moritz_ rakudo: say "hi from new chroot" 12:22
p6eval rakudo 28687: OUTPUT[hi from new chroot␤] 12:23
moritz_ elf: say "hi"
p6eval elf 21023: OUTPUT[Can't locate autobox.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./elf_f line 7.␤BEGIN failed--compilation aborted at ./elf_f
..li...
moritz_ elf: say "hi" 12:24
p6eval elf 21023: OUTPUT[Can't locate Class/Multimethods.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./elf_f line 10.␤BEGIN failed--compilation aborted
..a...
moritz_ elf: say "hi" 12:25
p6eval elf 21023: OUTPUT[/usr/bin/env: ruby: No such file or directory␤Parse failed.␤ at ./elf_f line 3824␤]
moritz_ elf: say "hi"
p6eval elf 21023: OUTPUT[/home/evalenv/pugs/misc/STD_red/prelude.rb:462:in `require': no such file to load -- readline (LoadError)␤ from /home/evalenv/pugs/misc/STD_red/prelude.rb:462:in `<top (required)>'␤ from /home/evalenv/pugs/misc/STD_red/std.rb:10:in `require'␤ from
../home/evalenv/pugs/misc/STD_red/...
diakopter moritz_: no, not really, b/c I need to be able to add grammars very easily 12:26
12:26 FurnaceBoy joined
moritz_ diakopter: ok, I'll see what I can do 12:26
diakopter there can't be a special case for yap6 in the command line builder?
moritz_ elf: say "hi"
p6eval elf 21023: OUTPUT[hi␤]
moritz_ yap6: say "hi" 12:27
12:27 p6eval left
diakopter hee 12:27
12:27 p6eval joined
diakopter I still don't know why things like that crash evalbot 12:27
moritz_ Not a HASH reference at evalbot.pl line 103.
that was my fault
diakopter oh
moritz_ diakopter: I don't know why evalbot crashes sometimes. Only this case is clear to me ; 12:28
pugs_svnbot r21024 | moritz++ | [evalbot] hopefully yap6 works again
12:29 p6eval left
diakopter waits 3 minutes 12:29
12:29 p6eval joined
moritz_ yap6: say "hi" 12:29
12:29 p6eval left, p6eval joined
diakopter well, it still hasn't learned " 12:29
12:30 p6eval left
moritz_ I should actually svn up in the right chroot 12:30
12:30 p6eval joined
moritz_ yap6: say 1 12:30
12:30 p6eval left, p6eval joined 12:32 p6eval left
pugs_svnbot r21025 | moritz++ | [evalbot] import Scalar::Util into the right namspace 12:32
12:32 p6eval joined
moritz_ yap6: say 1 12:32
p6eval yap6: OUTPUT[tree: {program => [{func_call => ["say"," ",{expr => {bareInt => 1}}]}]}␤] 12:33
moritz_ YaY
diakopter \o/
moritz_: note the actual match tree
moritz_ diakopter: I did notice it. Cool.
yap6: say 1 ||| 1 12:34
p6eval yap6: OUTPUT[Can't locate Perl6in5/Grammar/say.pm in @INC (@INC contains: ../lib lib /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at (eval 1) line 1.␤BEGIN failed--compilat...
moritz_ what should I do to enable that?
pixie: say "hi"
diakopter oh; yippee; Perl 5.10
p6eval pixie: OUTPUT[Can't locate STD5.pm in @INC (@INC contains: ../../src/perl6 /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at pixie line 4.␤BEGIN failed--compilation aborted at...
diakopter yap6: ltm||| food
p6eval yap6: OUTPUT[syntax error at line 1 col 1 near " food"␤Expected: "unknown".␤[]]
diakopter yap6: ltm|||food 12:35
p6eval yap6: OUTPUT[Odd number of elements in anonymous hash at lib/Perl6in5/Compiler/Parser.pm line 98.␤tree: {program => undef}␤]
diakopter heh
that grammar is broken
Grammar/ltm.pm
yap6: ltm |||food 12:36
p6eval yap6: OUTPUT[Odd number of elements in anonymous hash at lib/Perl6in5/Compiler/Parser.pm line 98.␤tree: {program => undef}␤]
diakopter yap6: ltm |||foodie
p6eval yap6: OUTPUT[Odd number of elements in anonymous hash at lib/Perl6in5/Compiler/Parser.pm line 98.␤tree: {program => undef}␤]
diakopter yap6: ltm |||foodies
p6eval yap6: OUTPUT[Odd number of elements in anonymous hash at lib/Perl6in5/Compiler/Parser.pm line 98.␤tree: {program => undef}␤]
12:36 pbuetow joined
moritz_ installs YAML::XS for gimme5 12:36
pixie: say "hi" 12:37
p6eval pixie: OUTPUT[Can't create pixie.log: Permission denied at ../../src/perl6/Cursor5.pm line 59.␤BEGIN failed--compilation aborted at ../../src/perl6/Cursor5.pm line 62.␤Compilation failed in require at ../../src/perl6/STD5.pm line 28.␤BEGIN failed--compilation aborted at ../../src/perl6/STD5.pm...
diakopter yay; with 5.10 I can use lots of neat new re features
how convenient
;)
moritz_ pugs: say "hi" 12:38
p6eval pugs: OUTPUT[hi␤]
diakopter wow; fast
moritz_ ok, evalbot status summary: everything but pixie: and perl6: works again
diakopter audreyt++
moritz_++
moritz_ pugs will be updated via 'cabal install' as soon as audreyt++ pushes the new version
moritz_ will ask pmurias if can add a --nolog option, I don't want to allow write access for evalbot 12:39
perl6: should be a smop
12:41 FurnaceBoy left
diakopter moritz_: oh, I thought you meant implementing Perl 6 for a minute there. 12:42
moritz_ lol
well, if you believe ruoso++ it is a smop ;) 12:43
pugs_svnbot r21026 | moritz++ | [evalbot] re-added perl6: target
moritz_ evalbot control restart
12:43 p6eval left, p6eval joined
moritz_ perl6: say "hi again" 12:44
p6eval elf: RESULT[{}␤]
diakopter yap6: today I work on your opep (operator precedence expression parser) 12:45
12:45 p6eval left
pugs_svnbot r21027 | moritz++ | [evalbot] fixed previous commit 12:45
12:46 p6eval joined
moritz_ diakopter: sorry, just killed p6eval the second you said that ;) 12:46
perl6: say "hi"
p6eval elf 21027: RESULT[{}␤]kp6 21027: RESULT[DISPATCH: calling on invalid object:$VAR1 = 'perl';␤␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 128␤ main::DISPATCH('perl') called at - line 11␤]pugs: RESULT[undef]rakudo 28687: RESULT[Null PMC access in find_method()␤current
..instr.: '_block11' pc 38 (EVAL_13:18)␤]
diakopter wow 12:47
moritz_ or in other words, I screwed up
12:48 cmarcelo left 12:49 p6eval left, p6eval joined
moritz_ elf: say 1 12:49
p6eval elf 21027: OUTPUT[1␤]
moritz_ perl6: say 1
p6eval elf 21027: RESULT[{}␤]
..kp6 21027: RESULT[DISPATCH: calling on invalid object:$VAR1 = 'perl';␤␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 128␤ main::DISPATCH('perl') called at - line 11␤]
..pugs: RESULT[undef]
..rakudo 28687: RESULT[Null PMC access in find_method()␤current instr.: '_block11' pc 38 (EVAL_13:18)␤]
12:51 cmarcelo joined
moritz_ it seems to pass an empty (?) string to each implementation 12:51
12:52 p6eval left
pugs_svnbot r21028 | moritz++ | [evalbot] more debugging aids 12:52
12:52 Lunchy joined
moritz_ perl6: say 1; 12:52
12:52 p6eval joined
moritz_ perl6: say 1; 12:52
p6eval elf 21028: RESULT[{}␤] 12:53
..kp6 21028: RESULT[DISPATCH: calling on invalid object:$VAR1 = 'perl';␤␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 128␤ main::DISPATCH('perl') called at - line 11␤]
..pugs: RESULT[undef]
..rakudo 28687: RESULT[Null PMC access in find_method()␤current instr.: '_block11' pc 38 (EVAL_13:18)␤]
12:53 p6eval left
pugs_svnbot r21029 | moritz++ | [evalbot] hopefully passing the right program now 12:54
12:54 p6eval joined
moritz_ perl6: say 1; 12:54
p6eval elf 21029: OUTPUT[1␤]
..kp6 21029: OUTPUT[1␤]
..pugs: OUTPUT[1␤]
..rakudo 28687: OUTPUT[1␤]
moritz_ YaY
12:57 p6eval left, p6eval joined
pugs_svnbot r21030 | moritz++ | [evalbot]: cosmetic changes 12:57
moritz_ ok, enough evilbot changes today, gotta do something productive
drbean /lastlog altgr 12:59
13:09 alester joined 13:10 alester left 13:22 DietCoke left
diakopter now this is just weird 13:28
13:31 pmurias joined
diakopter or perhaps I'll put off the opep and instead create the handler model 13:33
diakopter goes back to reading Engineering a Compiler 13:34
pmurias moritz_: i could change the Cursor5 not to insist on a log
diakopter: hi
diakopter pmurias: yo
moritz_ pmurias: that would be nice
diakopter pmurias: yap6 makes match trees now
pmurias good
diakopter now if only strawberry 5.10 gave the same results as 5.10 on my mac and the 5.10 used by p6eval. 13:36
oddness
svn status on the strawberry one shows nothing modified
oddities ** of
so I read the language spec for reia (reia-lang.org) - it seems to have a very similar smart match as well as capture-ish constructs. 13:38
13:40 zeno__ joined
zeno__ > reverse . show $ foldl1 (*) 13:40
pmurias diakopter: re 5.10 , debian is easy to use so it wouldn't be hard to for you to get the exactlly the same perl 13:41
;)
diakopter but is debian easy to use on a windows machine that doesn't allow vmware
zeno__ odd ubuntu doesnt have a pugs package 13:42
diakopter <sigh> I guess I'll build 5.10 on my linux vps.
oh yeah, I forgot; I can use winscp to make editing easy.
13:44 rdice joined
pmurias diakopter: the match trees aren't really matches 13:48
13:48 jhorwitz joined
pmurias s/matches/Matches 13:49
13:50 TJCRI joined
pmurias moritz_: you could symlink pixie.log to /dev/null 13:51
moritz_ pixie: say "hi" 13:52
p6eval pixie: OUTPUT[Can't locate re/engine/TRE.pm in @INC (@INC contains: ../../src/perl6 /etc/perl /usr/local/lib/perl/5.10.0 /usr/local/share/perl/5.10.0 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ../../src/perl6/Cursor5.pm line 428.␤BEGI...
moritz_ pmurias: ah, different error now (ln -s was a good idea)
diakopter pmurias: :P what else do they need to be matches? 13:53
pmurias .from .to
moritz_ I think they are not the standard perl6 match objects
13:53 zeno__ left, BinGOs left
moritz_ but they're nice and compact for IRC output ;) 13:53
diakopter ok; .from and .to are easy... what else
13:54 zeno__ joined
moritz_ pixie: say 1 13:54
p6eval pixie: OUTPUT[Subroutine from redefined at ElfCore5.pm line 741.␤Subroutine to redefined at ElfCore5.pm line 742.␤mkdir lex: Permission denied at ../../src/perl6/Cursor5.pm line 246␤]
13:54 BinGOs joined
moritz_ oh dammit 13:54
pmurias moritz_: getting rid of lex would be hard
moritz_ I suppose, yes
pmurias diakopter: you have read the Match object section of S05?
13:55 ispy_ joined
moritz_ pmurias: is a writable lex/ subdir somewher enough? 13:55
diakopter yes, at some point. I can hardly claim to remember it.
moritz_ and if yes, where
pmurias moritz_: yes
moritz_ in src/perl6/ ?
pmurias moritz_: in misc/pixie
diakopter pmurias: the Match objects at www.perlcabal.org/syn/S05.html#Match_objects won't be useful for yap6 for a long time.. 13:56
moritz_ pixie: say 1
p6eval pixie: OUTPUT[Subroutine from redefined at ElfCore5.pm line 741.␤Subroutine to redefined at ElfCore5.pm line 742.␤cp: cannot stat `lex/Perl/expect_term': No such file or directory␤] 13:57
moritz_ sh: line 1: 32051 File size limit exceeded/usr/bin/perl pixie --quiet /tmp/0ATKHStvSX >> /tmp/kXvEdKlcHt 2>&1
how much space does it need?
pmurias ~2.0M 13:58
diakopter .from .to .chars .orig .text (their equivalents actually) are all available *while* yap6 is running, so they're there. but the default output doesn't include that info
but my main point is that since yap6 is not written in Perl 6, it doesn't need to use Match object semantics internally. 13:59
and especially since it doesn't use STD.pm to generate its parsers...
the match objects wouldn't be useful to any other implementation.
14:01 p6eval left
pugs_svnbot r21031 | moritz++ | [evalbot] bump up size limit for temp files to 5MB 14:01
14:01 p6eval joined
pugs_svnbot r21032 | moritz++ | forgot semicolon 14:02
diakopter pmurias: also, if yap6 continues to progress, it will follow the steps documented in ROADMAP
moritz_ pixie: say 1
p6eval pixie: OUTPUT[Subroutine from redefined at ElfCore5.pm line 741.␤Subroutine to redefined at ElfCore5.pm line 742.␤cp: cannot stat `lex/Perl/expect_term': No such file or directory␤1␤]
moritz_ pmurias: do I have to clean up old lex/ dir? 14:03
pixie: say 1 14:04
p6eval pixie: OUTPUT[Subroutine from redefined at ElfCore5.pm line 741.␤Subroutine to redefined at ElfCore5.pm line 742.␤cp: cannot stat `lex/Perl/expect_term': No such file or directory␤1␤]
pmurias food& 14:06
14:07 pmurias left, zeno__ left
pugs_svnbot r21033 | diakopter++ | [yap6] document unreadines of Makefile.PL 14:07
r21034 | diakopter++ | [yap6] 14:10
r21034 | diakopter++ | updated README
14:11 ggoebel joined 14:14 iblechbot left 14:20 Jedai joined
diakopter yap6: package Foo; say 3; 14:29
p6eval yap6: OUTPUT[Syntax error in /tmp/VpRDwBWUCu at line 1 col 8 : Input file is Perl 5, not Perl 6!␤]
14:39 edpratomo joined 14:44 drbean left 15:01 zostay left 15:02 zostay joined
moritz_ how should isa_ok been called? isa_ok($obj, Type) or isa_ok($obj, 'Type')? 15:05
15:06 Grrrr left
rakudo_svn r28694 | moritz++ | [rakudo] Test.pm: added three-arg form of isa_ok() 15:08
diakopter anyone seen this? www.chrisseaton.com/katahdin/ 15:09
15:11 ludan joined
pugs_svnbot r21035 | moritz++ | [spec] fixed nested_pairs.t - ready for spectest_regression 15:14
diakopter aha. stealing the precedence generator from Katahdin... 15:17
moritz_ diakopter: yes, I saw it. And he's doing it (the parsing) wrong 15:18
pugs_svnbot r21036 | moritz++ | [spec] fudged array_extending.t
diakopter moritz_: wrong how?
moritz_ diakopter: he's basically doing precedence parsing with backtracking
diakopter and that's wrong? 15:19
moritz_ I read one of his papers from front to back, and he has ridicoulusly high startup times (20s or a minute or so)
diakopter: that's very inefficient
diakopter: that's O(2^n) in the worst case, where you can have polynomial time 15:20
open that paper, search for his discussion on speed
diakopter his thesis is pretty short
moritz_ man, he even JIT'ed the parser to make it faster
15:20 masak left 15:22 jfredett_ joined 15:23 jfredett left
diakopter oh; his alternation does longest-match 15:23
15:23 jfredett_ is now known as jfredett 15:29 Limbic_Region joined 15:31 alanhaggai joined
diakopter moritz_: this is interesting; yap6 does an analogous JIT... parser objects/rules/patterns aren't built until they are used the first time 15:31
moritz_ diakopter: lazynes != JIT 15:32
diakopter I didn't say ==; I said analogous.
moritz_ the big difference is that JIT speeds up every execution, whereas lazyness only speeds up one 15:34
15:34 vixey left, vixey joined
Limbic_Region lazy not necessarily equal to late binding either - but we sometimes use them as synonyms 15:34
diakopter moritz_: I guess I'm not seeing how yap6's parser generators aren't analogous to JIT, since they are both lazy and memoized. 15:36
moritz_ diakopter: you're probably right, it's a very high-level JITting
I always associated JIT with bytecode -> machine code 15:37
Limbic_Region because at the low level, JITing is saying - don't execute this byte code - execute this machine code
moritz_ perhaps that's why I failed to see the connection
diakopter I suppose it could go a step further and generate each parser as a .pmc which is eval-loaded upon first-demand 15:38
moritz_: I don't understand why you call Seaton's approach to parsing "wrong"...? 15:39
moritz_ diakopter: not really wrong, just very inefficient
the last compiler I know of that had different startup times mostly died because of it 15:41
diakopter which was that
moritz_ kp6
the bootstrapped version
diakopter oh; you meant the last Perl 6 compiler
moritz_ I don't know any other compiler with similar startup times ;) 15:42
even EiffelStudio seemed faster to me
diakopter I would include gimme5's run duration in STD5's startup time...
(since it's STD.pm that you care about, on input) 15:43
15:44 alanhaggai left
diakopter moritz_: I don't understand why you say Seaton's approach is worst-case O(2^n), since all the papers on packrat parsing say that it guarantees linear? 15:47
moritz_ diakopter: I just remeber that he wrote in one of his papers that his parser backtracks to get precedence and associativity right (which sounds very time consuming), and that he had huge speed problems. Maybe I made the wrong connection, but to me that seemed to be the obvious explanation 15:49
diakopter his paper says that it has large startup times
which means that it is slow... 15:50
but doesn't say anything about how it slows with bigger input
moritz_ well, n is the number of tokens in an expression, not input size 15:51
big input doesn't necessarily mean longer expressions
diakopter of course, but in general, it does.
it does mean more tokens, I mean. 15:52
wait, what is your point? by "bigger input", of course I meant more tokens....
pugs_svnbot r21037 | moritz++ | [spec] more fudging in S02-builtin_data_types/ - some if it successful
moritz_ diakopter: per expression?
diakopter: I'm pretty sure that it won't do a precedence parse of a whole file without sequence points where it stops 15:53
diakopter oh
now I fully read your definition of n
I haven't seen that definition... 15:54
moritz_ computer scientists don't think in such terms I guess, but it seems to make sense to me 15:55
diakopter I agree; that's an interesting measure 15:56
awwaiid diakopter, yap6 that you're doing is in the pugs svn? what directory? I see pugs/v6/yap6/ but that claims to be SMOP now 15:57
diakopter awwaiid: it's in pugs/misc/yap6
awwaiid thanks
diakopter moritz_: after thinking about it a bit, I think the tokens-per-expression omega should correspond to the graphemes-per-input.. 15:58
(because you can have an input with 1 expression)
moritz_ diakopter: you can, but it's not the typical use case 15:59
diakopter but my point is that that language can have arbitrarily large expressions, and there's nothing in the theory about packrat parsing that indicates that expressions have different parse omegas than series of expressions...? 16:00
moritz_ that would be a wort case. I'm not sure he tried to construct an input string for which his parser took maximal time, to demonstrate that his already-slow software could be even slower ;)
TimToady when you talk about "startup time" up above, I don't know whether you're talking about typical user-process startup time, or the time necessary to get the bot to say something
gimme5 is fair to count in the latter, but not the former
it's just part of the "compilation" of STD to STD5 16:01
which reminds me, I should make a real Makefile for STD5 soonish
moritz_ diakopter: you're 100% right, I just wanted to tell you that a t(n) (t: time, n: characters) curve isn't sufficient to measure if that parser is O(2^n) or not
unless you first try to find an input string that takes maximal time 16:02
diakopter moritz_: (which would be different per-language, so perhaps some languages have a lot less-concave curve) 16:03
(or more-concave)
moritz_ aye 16:04
I think it's hard to write large expressions in postscript
rakudo_svn r28695 | moritz++ | [rakudo] three more test files for spectest_regression
16:06 Limbic_Region left 16:11 Grrrr joined 16:20 iblechbot joined
pugs_svnbot r21038 | diakopter++ | [yap6] * more inlined 'manual' memoization because apparently I can't figure out how to use Memoize.pm, or it doesn't work in these nested closures. 16:26
diakopter moritz_: upon further reflection, I don't think it (yap6 and the STD_hand grammar) is using sequence points. This is due to the nature of the Kleene star, which is inherently right recursive. at one point I did some thinking about how to rewrite star() so it inlined the recursion, but didn't finish. 16:28
moritz_ diakopter: so you never know if an expression is parsed correctly until you reach end of input? 16:29
that would be very bad for handling BEGIN blocks and such
diakopter no; there still is the notion of ->{fated} in a "Match", but I haven't determined how to annotate patterns in the grammar as such 16:30
stealing the 'fate' term from STD5 of course 16:31
or Cursor5
b/c how such a sequence point would be implemented in the packrat parsing paradigm is to make an alternating parser detect when a successful result was 'fated', so just return it, instead of continuing with other options. Obviously such an annotation enabled important/necessary optimization (lack of total wasted effort) opportunities. 16:33
TreyHarris is this right: / ( (\d) { $0 < 256 or fail } ** '.' ) ** 4 / matches an IP address? is that how you'd combine separator and quantifier **? 16:34
moritz_ TreyHarris: no, it's wrong
TreyHarris moritz_: and correct would be?
moritz_ TreyHarris: the inner regex means (0 up to 255) separated by '.' 16:35
TreyHarris (i see how to do it in two rules, i mean in a single one)
moritz_ and then you do that four times
TreyHarris oops... i meant (\d+)
moritz_ (\d+) { $0 < 256 or fail } [ \. (\d+) { $0 < 256 or fail ] ** 3 16:36
TreyHarris and i don't want to capture, so...
but that's P5-ish... are you saying you can't use separator-** for this purpose?
moritz_ of course that's a bit ugly, bbecause the (\d+) { $0 < 256 or fail part is repeated
TreyHarris: you can use it either for delimited or for counted repetition 16:37
TreyHarris moritz_: but not boh.
moritz_ TreyHarris: I don't see how you can use it for both at the same time
TreyHarris both
moritz_ other than '<delimited> & <repeated>' of course
diakopter (){} **4** '.'
moritz_ diakopter: is that valid p6 regex, and dwim? 16:38
diakopter moritz_: no :P I made it up
TreyHarris ** 4&'.'
diakopter TreyHarris: but that seems to indicate that there will be 4 of '.', which of course could be decremented internally.. but still 16:39
TreyHarris /'x' ** 4|'.'/ would match x, x.x, x.x, x.x.x... and also xxxx :)
16:40 meppl joined
[particle] istr a **{...} incantation 16:40
[particle] checks S05
moritz_ sorry, I'll be missing #perl6-soc again today 16:41
I'll write my report now, probably
[particle] ah, rats. gotta prep for a concall & 16:44
diakopter 'x' ** 4 ** '.' makes sense to me, because there's no alternative (sane) interpretation. I mean, if ** is right-associative..
eh, I take that back; I guess there is. 16:45
moritz_ ** would be left associative in regexes I guess 16:47
16:52 cognominal_ left, justatheory joined 16:54 alester joined
diakopter actually that would make it chaining, of sorts. 16:54
moritz_ which seems useful to me 16:55
diakopter yeah, me too. you could have (\d+) { $0 < 255 } ** 4 ** '.' ** 5 ** ',' 16:56
16:57 meppl left
diakopter or (\d+) { $0 < 255 } ** 4 ** '.' ** 0..63 ** ',' 0..63 ip addresses sep by commas 16:58
or [**] (\d+) { $0 < 255 }, 4, '.', 0..63, ',' 16:59
that works b/c the quantifier is an implied 1..* when it's a literal, so the explicit quantifier is a modifier of the literal's op. 17:01
17:04 p6eval left, xinming_ left, elmex left, [particle] left, bacek left, yves left, ilbot2 left, rafl left
moritz_ do we have hyper ops in regexes? 17:04
17:05 p6eval joined, xinming_ joined, elmex joined, [particle] joined, bacek joined, rafl joined, ilbot2 joined, yves joined
diakopter I don't think so... I was again imagining :D 17:05
moritz_ I think that would be very confusing because people tend not to think about precedence levels in regexes
17:06 justatheory left, zostay left, Jedai left, pbuetow left, kanru left, smtms left, s1n left, pjcj left, bsb left, eternaleye left, gbacon left, IRSeekBot left
moritz_ and they would be surprised where the boundaries of single tokens are 17:06
17:06 justatheory joined, zostay joined, Jedai joined, pbuetow joined, kanru joined, smtms joined, eternaleye joined, gbacon joined, bsb joined, pjcj joined, s1n joined
moritz_ s/tokens/precedence levels/ 17:06
17:07 alester left, iblechbot left, ludan left, edpratomo left, TJCRI left, rdice left, cmarcelo left, qmole_ left, kolibrie left, fullermd left, agentzh left, GeJ left, pmichaud left, ingy left, Khisanth left, mj41_ left, cookys left, simcop2387 left, charsbar left, Kattana left, wilx left, spinclad left, TreyHarris left, audreyt left, meteorja1 left, nipotaway left, vixey left, Patterner left, pengrate left, mtve left, moritz_ left, Tene left, cj left, IRSeekBot joined, IRSeekBot left 17:08 audreyt joined, meteorja1 joined, wilx joined, spinclad joined, TreyHarris joined, Kattana joined, nipotaway joined 17:09 IRSeekBot joined 17:12 vixey joined, Patterner joined, Tene joined, moritz_ joined, cj joined, pengrate joined, mtve joined, ingy joined, iblechbot joined, ludan joined, edpratomo joined, TJCRI joined, rdice joined, cmarcelo joined, mj41_ joined, Khisanth joined, GeJ joined, simcop2387 joined, cookys joined, agentzh joined, kolibrie joined, fullermd joined, qmole_ joined, pmichaud joined, charsbar joined, irc.freenode.net sets mode: +o ingy 17:14 ludan left 17:15 qmole_ left, kolibrie left, rdice left, TJCRI left, edpratomo left, fullermd left, agentzh left, GeJ left, pmichaud left, ingy left, Khisanth left, mj41_ left, cookys left, simcop2387 left, cmarcelo left, iblechbot left, charsbar left 17:16 ingy joined, iblechbot joined, edpratomo joined, TJCRI joined, rdice joined, cmarcelo joined, mj41_ joined, Khisanth joined, GeJ joined, simcop2387 joined, cookys joined, agentzh joined, kolibrie joined, fullermd joined, qmole_ joined, pmichaud joined, charsbar joined, irc.freenode.net sets mode: +o ingy, nipotaway is now known as nipotan
TimToady wow, brown.freenode.net seems really flakey of late 17:25
** in regex is right associative too
because the ** rule looks for a quantified atom on its right 17:26
so you have to use brackets to be left associative, which is probably a feature
17:31 ispy_ left
pmichaud pugs: say (1..5).WHAT 17:46
p6eval pugs: OUTPUT[Array␤]
pmichaud pugs: say (1..5).pick
p6eval pugs: OUTPUT[1␤]
pmichaud pugs: say (1..5).pick
p6eval pugs: OUTPUT[4␤]
pmichaud pugs: say (1..5).pick(3) 17:54
p6eval pugs: OUTPUT[345␤]
pmichaud pugs: say (1..5).pick(3)
p6eval pugs: OUTPUT[234␤]
pmichaud pugs: say (1..5).pick(3)
p6eval pugs: OUTPUT[325␤]
pmichaud pugs: say (1..5).pick(7)
p6eval pugs: OUTPUT[53124␤]
moritz_ pugs: say (1..5).pick(*)
p6eval pugs: OUTPUT[12435␤]
pmichaud should pick/grep/cat/keys/kv/pairs/values be methods of the Positional role? 17:55
or should Range and List each provide their own methods for these? 17:56
or is there some relation between Range and List that I'm unaware of?
moritz_ I think that implementing a iterator should be enough for grep and cat, for example
pmichaud moritz: what about (1..5).grep ... ? 17:57
(1..5).grep would imply a 'grep' method on Range objects
TimToady grep only requires an iterator for its input, since it's lazy, I think
pmichaud I'm asking more about dispatch 17:58
how does (1..5).grep get dispatched
moritz_ having a common role for such things (Positional and Iteratable) could solve some trouble
pmichaud or (1..5).pick
TimToady grep is probably one of those methods that is forced to mean the same thing everywhere via Any
pmichaud okay.
that works for me.
TimToady like join
pmichaud thanks. 17:59
moritz_ should I update S29 to add Any multis?
TimToady then the Any implementation really decides which class or role it really uses
17:59 Lorn joined
TimToady moritz_: don't see much harm in it 18:00
(they aren't multis, they're just methods)
(of Any)
single dispatch
no magical syntax right now, just Prelude defining methods in Any that refer to the real class/role 18:01
pmichaud TimToady++ # simple implementations :-) 18:02
I'll update Rakudo to match also. 18:03
pugs_svnbot r21039 | diakopter++ | [yap6] \o/ successfully converted plus()/star() to iterative instead of recursive. speed/memory improvements ensue.
moritz_ somhow still doesn't like the idea - why should the List methods be so special that they are anchored in Any, and many others aren't?
TimToady because they're defined by the language 18:07
[particle] pugs: 1.pick 18:08
p6eval pugs: OUTPUT[*** pick not defined: VInt 1␤ at /tmp/9ESTHIbncN line 1, column 1 - line 2, column 1␤]
TimToady they're as close to "built-ins" as p6 gets
pugs_svnbot r21040 | diakopter++ | [yap6] eliminated unnecessary deep_copy 18:12
spinclad .oO { <ipoctet> ** '.' :n(4) <ipoctet> ** 4 :sep<.> <ipoctet> ** ('.' but 4) } 18:54
spinclad wonders, am i netsplit? 18:55
diakopter if you are, it's w/ me
spinclad just hadn't seen any talk for 40 minutes 18:56
(thought it a bit anomalous)
re **, i think something like the above is needed: i see only one repetition operation, with both a separator and quantifier. 18:58
but it doesn't fit in the regex sublanguage well. 18:59
TimToady we're just all off hacking in another window... 19:00
spinclad if #parrot, i'm still backlagged there 19:01
19:02 avar left
pugs_svnbot r21041 | lwall++ | [perl6] add Makefile 19:03
r21041 | lwall++ | [STD etc.] memoization via lang-specific positional array of memos
r21041 | lwall++ | [STD] the ws_* attributes are now gone
r21041 | lwall++ | [Cursor5] much cleanup of match tree
19:03 avar joined
TimToady (not real memoization, just position-specific data) 19:04
Auzon perl6: package A {our $B = 42;}; say $A::B;
p6eval elf 21041: OUTPUT[42␤]
..kp6 21041: OUTPUT[no method 'APPLY' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤ ]
..pugs: OUTPUT[␤]
..rakudo 28687: OUTPUT["load_bytecode" couldn't find file 'PGE.pbc'␤current instr.: 'parrot;Grammar;onload' pc 8434 (src/gen_builtins.pir:5462)␤]
spinclad (re doesn't fit regex sublang): i take it back, i see :adverbs used in regexes... 19:05
TimToady but in general adverbs are used in regexen to modify what's coming, not what came before 19:06
spinclad (at least free-floating at the start of a bracket-group; what do those attach to?)
yeah
19:06 Alias_ left
spinclad so quite different from the main language 19:07
TimToady except see also s:g:i/.../ for instance
it's in front there too
spinclad i see those as still in the main language, applying to the 's' 19:08
TimToady the adverbs on operators only works that way because there's no other place to look for them.
spinclad could they possibly be made to work the same in regexes?
TimToady don't wanna
spinclad good nuff
(but WHY???) 19:09
TimToady because it's often better if adverbs can come before the thing they modify, just because you read left-to-right 19:10
diakopter ... grammar RTLPerl { ... 19:11
TimToady that's why s///g turned into s:g///
spinclad grammar BiDiPerl
TimToady it's particularly necessary for an adverb like :lang to come before the language it switches to
spinclad well, yes, especially if the modifier modifies prior parsing 19:12
yes
TimToady 1..10:by(2) doesn't have to modify the parse of ..
and it's relatively close by (usually)
spinclad i don't quite see that applying to ** though, it's not modifying its parse either 19:13
so similar to ..
and i'm starting to think of ** as :($left, :$n, :$sep) or some such 19:15
(if i'm not mangling the syntax too grossly)
anyway, made my case, your call 19:16
TimToady you're not the first person to ask for combining sep and counting, actually 19:17
will think about it s'more
spinclad TreyHarris earlier today, even 19:18
diakopter zounds
spinclad and diakopter
and now me
with pitchforks
and torches 19:19
diakopter TimToady: see above for my idea about making the chaining behavior do a composition instead of two applications...
zounds: caching of the heretofore AST results constitutes 96% of the yap6 processing time. hrm :/ 19:22
er, theretofore
(multiplies time by 25) 19:24
TimToady actually, Morris Siegel beat you all to it. :) 19:25
diakopter 25x is enough to warrant adding a 2nd pass (to build the ast) upon reaching an ltm-stopper or end-of-input... 19:27
19:50 mst joined
mst where does pugs svn live now? 19:50
mst wanted to poke at STD5.pm
Auzon svn.pugscode.org/pugs/
[particle] std5 is under src/perl6/ 19:51
mst right.
thanks very much all
19:51 mst left
diakopter oooo (continued from above) ... and during that special-mode second pass, the parsing tree would be fated forward (down into the tree as opposed to in reverse) 19:57
[particle] i'm going to be late for the phone call 20:03
20:04 Jedai left 20:11 cathya joined 20:21 rdice left 20:23 iblechbot left 20:28 lambdabot joined
moritz_ re 20:45
pugs_svnbot r21042 | lwall++ | [Cursor5] didn't propagate memo array correctly 20:57
r21042 | lwall++ | [STD] list and chain operators also want deadwood removed
20:58 wilx left
diakopter moritz_: you're still awake? :) 21:04
moritz_ diakopter: yes 21:05
diakopter: it's 11pm here, and still too warm to sleep 21:06
and know that the football match is over (Germany won btw) I can enjoy life again ;) 21:07
s/know/now/ 21:09
21:14 jhorwitz left 21:22 dduncan joined
gbacon where is the source for svnbot? 21:23
diakopter gbacon: it's under examples/network 21:25
iirc
yes
it's in Perl 6
Auzon actually, I don't think the source is in the repo 21:26
moritz_ some of the svn bots here (rakudo_svn most notably) is in perl5, using SVN::Log and Bot::BasicBot
(and specbot is the same perl 5 based thingy) 21:27
diakopter Auzon: yeah it is... 21:28
examples/network/svnbot.pl
pugs_svnbot
er
Auzon That's not what's running here
diakopter oh. it was a couple of months ago 21:29
moritz_ Auzon: I thnk pugs_svnbot is powered by examples/network/svnbot.pl, and running on feather
(timtowtdi.org hosts only two svn bots atm)
diakopter whew; I'm not crazy
Auzon I only see one running on timtowtdi.org... 21:30
moritz_ sees two. /me wins ;-) 21:31
one is the specbot, don't know what its nick is ;)
21:31 edpratomo left
diakopter perlbot: what do you do 21:32
moritz_ and with scarce 117 nicks in here I'm not too fond on figuring out which one it is ;)
diakopter buubot: how many bots are you
buubot diakopter: Stored how many bots
Auzon I thought it was speckbot, but I don't see it. and a 'ps -A | grep svnbot' only returned one 21:33
moritz_ Auzon: btw if you want to change something in p6eval's env, it's now in /newchroot, not /chroot anymore
Auzon ok
21:33 speckbot joined
diakopter there it is 21:34
moritz_ speckbot, there you go
only the svn bots are in the old chroot
diakopter 's not looking forward to refactoring yap6's parser() again for two-passes
Auzon moritz_: Any objections to me moving the up to date tests in t/packages to t/spec/S10-packages? 21:35
moritz_ I should clean up the rest to avoid confusion
Auzon moritz_: we could commit the svnbot code to the pugs repo if you want
moritz_ Auzon: re moving, do as you want
Auzon: re svnbot code, I wouldn't mind, but perhaps we should change the hardcoded configuration first ;) 21:36
Auzon yeah, I was thinking that we could generalize it
moritz_ shouldn't be too hard
21:39 meppl joined 21:52 Alias_ joined
pugs_svnbot r21043 | moritz++ | [spec] rand.t: unfudged one test, changed fudge message of other 21:58
22:03 barney joined 22:08 Limbic_Region joined 22:14 TJCRI left
Auzon perl6: my $hyphen-name = 5; say $hyphen-name; 22:17
22:17 nowhea__ joined
p6eval elf 21043: OUTPUT[Useless use of subtraction (-) in void context at (eval 123) line 3.␤Undefined subroutine &GLOBAL::prefix__61 called at (eval 123) line 3.␤ at ./elf_f line 3854␤] 22:17
..kp6 21043: 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: "&name"␤ at /tmp/83mHeZFOzx line 1, column 1-20␤]
..rakudo 28687: OUTPUT[get_iter() not implemented in class 'Integer'␤current instr.: 'prefix:=' pc 11123 (src/gen_builtins.pir:7336)␤]
Auzon I'm guessing that only \w is allowed as a variable or package name without being quoted. 22:18
moritz_ yes
but IMHO - is just more readable as a word separator 22:19
22:20 riffraff joined
Auzon I really have no preference, but this means I have to quote the package tests for S10 if I move them 22:20
22:20 riffraff left
moritz_ or use CamelCase 22:20
22:22 Alias_ left
Auzon it does 'use t::packages::FileName' which would translate to 'use t::spec::S10-packages::FileName' which isn't allowed. I'm trying to think of ways around this. 22:23
22:24 barney left
moritz_ hurm 22:24
22:25 dduncan left
Auzon an equivalent to 'use lib' would get around this nicely. 22:25
moritz_ yes
or a t/spec/modules/ or some such
diakopter offline for 9 days& 22:28
Auzon see you, diakopter.
moritz_ have fun, and see you diakopter ;)
rakudo_svn r28698 | bernhard++ | Remove trailing space. 22:36
22:41 hercynium joined, hercynium left, bacek left 22:43 LCamel left, LCamel joined 22:49 dolmen joined 22:53 meppl left, hercynium joined 23:06 Alias_ joined 23:08 cmarcelo left
pugs_svnbot r21044 | dolmen++ | Moving range.t with built-ins datatypes. 23:10
23:15 nowhea__ left
pugs_svnbot r21045 | gbacon++ | Make svnbot.pl run with pugs v6.2.13.5. 23:22
23:28 nowhea__ joined 23:37 vixey left 23:46 nowhea__ left
dolmen rakudo: say (3 == 1..5).perl 23:46
p6eval rakudo 28687: OUTPUT[get_number() not implemented in class 'Range'␤current instr.: 'infix:==' pc 8852 (src/gen_builtins.pir:5763)␤]
dolmen perl5: say (3 == 1..5).perl 23:47
perl6: say (3 == 1..5).perl
p6eval elf 21045: OUTPUT[␤]
..kp6 21045: OUTPUT[syntax error at position 4, line 1 column 4:␤say (3 == 1..5).per␤ ^ HERE␤]
..pugs: OUTPUT[Bool::False␤]
..rakudo 28687: OUTPUT[get_number() not implemented in class 'Range'␤current instr.: 'infix:==' pc 8852 (src/gen_builtins.pir:5763)␤]
pugs_svnbot r21046 | dolmen++ | More ranges tests. 23:52
23:59 bacek joined