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:21 c9s left 00:39 valkyr0 left 00:41 sri_work joined 01:01 REPLeffect left 01:03 agentzh left 01:11 bacek_ joined, bacek left 01:14 bacek_ left, bacek joined 01:18 Jedai left 02:22 simcop2387 left, simcop2387 joined 02:25 mncharity joined 02:26 cjfields joined 02:29 nipotan is now known as nipotaway 02:31 cjfields left, sri_work left, meppl left 02:40 cjfields joined 02:42 kanru left 02:43 agentzh joined 02:46 meppl joined
mncharity pugs: my @a=3,4;my @b=5,6;push @a,@b;say @a; 02:47
p6eval OUTPUT[3456␤]
mncharity pugs: my @a=3,4;my @b=5,6;push @a,@b,7,8;say @a; 02:48
p6eval OUTPUT[345678␤]
mncharity pugs: my @a=3,4;my @b=5,6;@a.push(@b,7,8);say @a; 02:49
pugs: my @a=3,4;my @b=5,6;@a.push(@b,7,8);say @a;
p6eval OUTPUT[345678␤]
mncharity pugs: my @a=3,[4,5];say @a; say @a.list; 02:50
p6eval OUTPUT[34 5␤34 5␤]
02:55 kanru joined
mncharity pugs: my @a=3,4;@a.push([5,6]);say @a; 02:58
p6eval OUTPUT[345 6␤]
mncharity rakudo: my @a=3,4;@a.push([5,6]);say @a; 02:59
p6eval rakudo r28570 OUTPUT[345 6␤]
mncharity rakudo: my @a=3,4;my @b=5,6;push @a,\@b,7,8;say @a; 03:00
pugs: my @a=3,4;my @b=5,6;push @a,\@b,7,8;say @a;
p6eval OUTPUT[345 678␤]
meppl good night 03:01
03:02 meppl left
mncharity :) 03:04
03:04 elmex_ joined
mncharity moritz_++ pmurias++ 03:05
as you saw, elf's treatment of list context, array auto flattening, \ , etc, is non-existent. it would be nifty if someone who actually understands it all wanted to take it on. 03:09
even ok to take something of a performance hit for it.(!) :) 03:10
03:11 cjfields left 03:13 corneliu1_ joined 03:14 corneliu1_ left 03:15 corneliu1_ joined 03:16 a-jing joined, a-jing left 03:17 BinGOs_ joined 03:19 cjfields joined 03:20 elmex left, elmex_ is now known as elmex 03:21 Grrrr left 03:22 BinGOs left 03:25 kanru left 03:26 kanru joined 03:30 tuxdna left
diakopter mncharity: if only I understood it (both elf & list context 03:32
03:32 corneliu1_ left
diakopter ) 03:32
mncharity :) 03:36
pugs_svnbot r20901 | putter++ | [elf] Minor tweaks, of Pair (moved attribute defs out of the big class graph), tidy (enforced p5 code segregation), and (re)set the executable bit on elf_f.
mncharity diakopter: I'd be happy to contribute the elf-understanding part... 03:38
cjfields perl6: role A { has $.answer is rw }; my $i = 100; $i does A(42); say $i; say $i.answer;
p6eval kp6 r20901: OUTPUT[error in Block at compiled/perl5-kp6-mp6/lib/KindaPerl6/Grammar/Sub.pm line 753, <> line 1.␤*** Syntax Error in Block: missing closing curly bracket ␤]
..pugs: OUTPUT[*** Unknown syntactic construct: Syn "does" [Var "$i",App (Var "&A") Nothing [Ann (Pos (MkPos "/tmp/1NCnKGbCxd" 1 55 1 57)) (Val (VInt 42))]]␤ at /tmp/1NCnKGbCxd line 1, column 45-58␤]
..rakudo r28570: OUTPUT[100␤42␤]
..elf r20901: OUTPUT[Unknown rule: package_declarator:role␤It needs to be added to ast_handlers.␤ at ./elf_f line 1918␤]
03:39 pbuetow_ joined
cjfields jonathan++ 03:39
mixins are a-workin'!
mncharity :)
diakopter kicks pugs_svnbot 03:42
pugs_svnbot r20902 | diakopter++ | [yap6] fixed regression/bug in rule(); re-enabled the POC lrule commalist; fixed stmtList so it can eat trailing whitespace (anything can immediately follow a statement-terminating semicolon); combined declare and assign rules as declaration is a special case of assign; refactored the blkPrmbl rule's members so they actually work, now; reorganized the rules in a bit of top-down order; added a panic for things like BEGIN: {} (I
diakopter <sigh> 03:43
I can't win
mncharity svn log :)
like BEGIN: {} (I need a "worry" equiv); added the ^ alternation operator, which doesn't have the correct relative precedence to quite be like STD's ||, but it's close ("first match" as opposed to one's "ltm"); fixed the iff() parser combinator so it actually works; added some premature optimizations such as a qualifying regex hint to keywords()... 03:44
end of day. good night all & 03:45
03:45 mncharity left 03:49 alanhaggai left 03:51 alanhaggai joined, cjfields left 03:52 pbuetow left 03:56 drbean left, drbean_ joined 04:02 alanhaggai_ joined 04:05 Limbic_Region left 04:10 alanhaggai left 04:32 snooper joined 04:45 pbuetow_ left 04:46 wknight8111 left 05:24 alanhaggai_ left 05:34 alester_ joined 05:40 sri_work joined 06:06 alester_ left 06:20 Psyche^ joined 06:32 lambdabot left 06:33 lambdabot joined 06:34 BinGOs_ is now known as BinGOs 06:35 Psyche^ is now known as Psyche 06:36 Patterner left 06:42 DietCoke left 06:53 a-jing joined, a-jing left 07:01 Jedai joined 07:04 iblechbot joined 07:12 Grrrr joined 07:17 sri_work left 07:31 corneliu1_ joined 07:32 corneliu1_ is now known as c9s 07:51 pmurias joined
pmurias pugs: [1;2,3;4] 07:51
p6eval OUTPUT[*** ␤ Unexpected "["␤ expecting program␤ at /tmp/UpCa4zWN2Q line 1, column 1␤]
moritz_ pmurias: I don't think any implementation handles multi-dimensional arrays 07:52
pmurias moritz_: can be fixed ;)
my @a=(1,2,3);my $a = [@a,4,5]; say $a;
pugs: my @a=(1,2,3);my $a = [@a,4,5]; say $a; 07:53
moritz_ that should flatten
p6eval OUTPUT[1 2 3 4 5␤]
moritz_ pugs++
rakudo: my @a=(1,2,3);my $a = [@a,4,5]; say $a;
p6eval rakudo r28570 OUTPUT[1 2 3 4 5␤]
moritz_ rakudo++
elf: my @a=(1,2,3);my $a = [@a,4,5]; say $a;
p6eval OUTPUT[ARRAY(0x8832e28)45␤]
moritz_ elf: my @a=(1,2,3);my $a = [@a,4,5]; say $a.perl;
p6eval OUTPUT[[[1,2,3],4,5]␤]
moritz_ very creative, the first output ;) 07:54
pmurias it's just bits of perl5 sticking out 07:55
moritz_ elf: my $a = (1, 2, 3); say $a.perl 07:59
p6eval OUTPUT[Useless use of a constant in void context at (eval 115) line 3.␤3␤]
moritz_ elf: my $a = [1, 2, 3]; say $a.perl
07:59 simcop2387 left
p6eval OUTPUT[[1,2,3]␤] 08:00
moritz_ elf: my @a = 1, 2, 3; say @a.perl
p6eval OUTPUT[[1,2,3]␤]
moritz_ rakudo: my @a = 1, 2, 3; say @a.perl
p6eval rakudo r28570 OUTPUT[[1, 2, 3]␤]
08:00 simcop2387 joined
pmurias sub foo($a,$b,$c) {say } 08:06
pugs: sub foo($a,$b,$c) {say "$a $b $c"};my @a = 1,2,3;foo(@a); 08:07
p6eval OUTPUT[*** No compatible multi variant found: "&foo"␤ at /tmp/DWO1DkXFBF line 1, column 50-57␤]
pmurias how do i find out if a sub is called in string context? 08:10
moritz_ if want.Str I think 08:11
pugs: sub foo($a,$b,$c) {say "$a $b $c"};my @a = 1,2,3;foo(|@a)
p6eval OUTPUT[1 2 3␤]
pmurias sub listcontext {say want.array};sub foo($a) {};foo(listcontext())
pugs: sub listcontext {say want.array};sub foo($a) {};foo(listcontext()) 08:12
p6eval OUTPUT[*** No such method in class Str: "&array"␤ at /tmp/SuLr36iSvx line 1, column 22-32␤]
moritz_ want.List or want.list or some such
pmurias pugs: sub listcontext {say want};sub foo($a) {};foo(listcontext())
p6eval OUTPUT[Scalar (Any), LValue␤]
moritz_ pugs: sub listcontext {say want};sub foo($a){}; foo(|listcontext)
p6eval OUTPUT[Scalar (Capture)␤]
moritz_ pugs: sub listcontext {say want ~~ List };sub foo($a){}; foo(|listcontext) 08:13
p6eval OUTPUT[␤]
moritz_ pugs: sub listcontext {say want ~~ Capture };sub foo($a){}; foo(|listcontext)
p6eval OUTPUT[␤]
pmurias pugs: sub listcontext {say want ~~ LValue};sub foo($a) {};foo(listcontext()) 08:14
p6eval OUTPUT[*** No such subroutine: "&LValue"␤ at /tmp/jX9jWzY7pQ line 1, column 22-36␤]
pmurias walk&
08:15 bacek left 08:16 pmurias left 08:21 cognominal_ left
pugs_svnbot r20903 | moritz++ | [t/TASKS] document need for more say() and print() tests 08:21
08:29 meppl joined 08:31 Jedai left 08:44 agentzh left 09:03 LCamel_ left 09:04 tcliou left 09:17 pmurias joined
rakudo_svn r28571 | bernhard++ | Remove trailing whitespace. 09:18
09:19 barney joined
pugs_svnbot r20904 | pmurias++ | [sm0p] renamed strip_out_blocks to strip_out_actions 09:21
pmurias perl6: class Foo {has $.foo;has $.bar};my $foo = Foo.new(foo=>54532,bar=>12133);say $foo.foo~":"~$bar.bar 09:22
p6eval kp6 r20903: OUTPUT[no method 'bar' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
..pugs: OUTPUT[*** ␤ Unexpected "."␤ expecting "::"␤ Variable "$bar" requires predeclaration or explicit package name␤ at /tmp/X9Lg6ZJaNQ line 1, column 95␤]
..rakudo r28570: OUTPUT[Scope not found for PAST::Var '$bar'␤current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103)␤
..elf r20903: OUTPUT[Global symbol "$bar" requires explicit package name at (eval 115) line 10.␤ at ./elf_f line 3854␤]
pmurias perl6: class Foo {has $.foo;has $.bar;};my $foo = Foo.new(foo=>54532,bar=>12133);say $foo.foo~":"~$bar.bar
p6eval kp6 r20904: OUTPUT[no method 'bar' in Class 'Undef'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤ 09:23
..pugs: OUTPUT[*** ␤ Unexpected "."␤ expecting "::"␤ Variable "$bar" requires predeclaration or explicit package name␤ at /tmp/p1m25Qq9Sg line 1, column 96␤]
..rakudo r28571: OUTPUT[Scope not found for PAST::Var '$bar'␤current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103)␤
..elf r20904: OUTPUT[Global symbol "$bar" requires explicit package name at (eval 115) line 10.␤ at ./elf_f line 3854␤]
pmurias perl6: class Foo {has $.foo;has $.bar;};my $foo = Foo.new(foo=>54532,bar=>12133);say $foo.foo~":"~$foo.bar
p6eval kp6 r20904: OUTPUT[54532:12133␤]
..pugs: OUTPUT[54532:12133␤]
..rakudo r28571: OUTPUT[54532:12133␤]
..elf r20904: OUTPUT[Odd number of elements in anonymous hash at ./elf_f line 19.␤Odd number of elements in anonymous hash at ./elf_f line 19.␤Use of uninitialized value in concatenation (.) or string at (eval 115) line 10.␤Use of uninitialized value in concatenation (.) or string at (eval 115)
..line ...
pmurias TimToady: STD parses Foo.new(foo=>54532,bar=>12133) wrongly? 09:26
TimToady: STD parses Foo.new(:foo(54532),:bar(12133)) wrongly?
TimToady: the second question is a mistake 09:27
09:39 ting joined 09:44 Jedai joined 09:46 penk joined
moritz_ Juerd: I just updated a unicode related article of mine, and included some results of a discussion we had on this channel: perlgeek.de/en/article/encodings-an...philosophy 09:54
lambdabot Title: article | Character Encodings in Perl
Juerd moritz_: I find the upwards pointing arrows in links confusing. 10:04
moritz_ Juerd: maybe I should find a better symbol for "external links" 10:05
Juerd moritz_: "but many encodings are ASCII-incompatible in the first 127 characters" - you really meant byte values there, I think!
moritz_ Juerd: yes 10:06
Juerd "How to Do it Right: Out-of-band Signalling" I luvs you.
phone, brb
"unless it is specified exactly in which encoding the encoding information is written." --> "unless an exact specific byte sequence is known for each encoding, for example because the it is specified exactly ..." 10:09
You could very well have a set of supported encodings, and reserve a single byte for it, as long as all parties know that 0x03 means UTF-8. 10:10
Although you could call that an encoding too, I guess.
moritz_ I'll re-formulate it a bit differently
Juerd "A possible workaround could have been to specific that the first line of any XML file has to be ASCII encoded, and the rest of the file is in the encoding that is specified in that first line. But it's an ugly workaround" It's not just a workaround, it'll break many a parser.
The document is no longer valid XML in any encoding after that, if the rest is not ASCII compatible. 10:11
moritz_ yes. It would have bot be specced that way in the first place
I should make that clear
10:11 ting left
Juerd "any system that works with text data" --> "Every system ..." 10:14
In general, I think it's a very good article 10:15
moritz_ thank you, and thanks for the suggestions / clarifications
Juerd I've only read from Philosophy downwards. don't have the time to review the rest right now.
moritz_ that's fine
Juerd I see one thing, and that's that you're advocating the use of is_utf8.
I strongly suggest using Devel::Peek instead. 10:16
moritz_ I also suggest that
Juerd People tend to become obsessed with the SvUTF8 flag once they start using is_utf8, and worse: they tend to leave their checks in when code reaches production stage.
moritz_ I'll re-word it to make clear that it's only a debugging aid
Juerd Which then other people read, and get silly ideas from
Whereas Devel::Peek provides you with the same info, but also an ugly bunch of other info, which'll make sure that you remove it after debugging. 10:17
moritz_ aye
brb
Juerd afk
10:25 pmurias left 10:40 zamolxes joined 10:50 edpratomo joined 10:56 Lorn_ left 11:14 DietCoke_ joined 11:21 ruoso joined 11:34 iblechbot left
diakopter pmurias: yap6' lrule() is working as expected, as are (I think) all the rules currently in the grammar 11:36
now that the grammar engine is "stable" (*again*, sort of), i'll work on the Match object generation & action hanging 11:38
like I said yesterday, I don't know how a this() parser combinator would be implemented, since when inside this(), it would have no idea in what rule it was going to end up... 11:39
11:40 Grrrr left
moritz_ thinks of dynamically scoped variables 11:40
ie local()
11:40 Grrrr joined
diakopter moritz_: re: what I said? 11:41
moritz_ diakopter: yes
diakopter: I don't quite understand what a this() parser is, but I think you can use local()ized variables to give it some context of what it is, or which subrule it is in
diakopter but the parsers are generated bottom-up/inside-out 11:42
moritz_ (but I could also be far off iwth my guess)
didn't you start just the other way round? ;-)
diakopter perl would execute this() before the parser combinator in which this() is an argument 11:43
I suppose you could use some caller() magic
11:43 cognominal_ joined
diakopter (once you got inside the actual $p 11:44
)
moritz_ could you defer the execution?
diakopter the main body of each parser combinator is of course executed in the order as stated above; the generated tree of closures is evaluted top-down/left-right, so yeah, if you kept "tree position" and some model of the tree in an outside data structure, each node could know where it was on the parse tree 11:45
s/parse tree/closure tree/ 11:46
depth-first, I should specify, for the closure tree evaluation.
I suppose, using a similar technique, each parser-closure could know where on the in-construction parse-tree it was, too.... 11:48
but anyway, I don't see how '$_[0]' is that much uglier than 'this' 11:49
11:50 Alias_ joined
diakopter especially since you must have the '$_[1]' somewhere in the rule anyway 11:50
lrule
Alias_: still using the irc proxy?
Alias_ nope nope, at YAPC 11:51
oh wait, maybe?
Actually, yes
Will need it for up to 48 hours
By then everyone will be checked out
diakopter oh; ok.
Alias_ There's still a good 50 people here today
between master classes and hackathon 11:52
diakopter wow; lots of learnin' goin' on
11:52 Lorn joined
Alias_ ok, sleeping 11:52
diakopter "sleeping"!
Alias_ Long night
11:53 cognominal_ left
Alias_ But some exciting developments 11:53
That sill add significantly to the CPAN
will
But for now, sekrit
diakopter dubs the operation precedence spectrum "the gamut" 11:57
... and names the spectrum layers after colors
tightest precedence should probably be shortest wavelength... 12:00
12:03 barney left 12:05 meppl left 12:06 cognominal_ joined 12:07 zamolxes left 12:08 rindolf joined 12:18 iblechbot joined 12:31 pmurias joined
pmurias diakopter: why do you support only one parameter to lrule 12:32
?
moritz_ diakopter: shortest wave length being gamma rays? ;-) 12:33
diakopter pmurias: that's a good question 12:38
moritz_: well, I was going to stick to visible light
I suppose lrule could become a generic combinator constructor 12:39
oh! templated rules!
moritz_ diakopter: that's clever - you can always extend your scope to UV and IR if you need more on either side of the spectrum ;)
diakopter moritz_: heh
pmurias diakopter: i have tested the weaken not to work 12:40
diakopter
.oO( could a source filter work by a 'use' stmt in eval("") )
12:41
pmurias: ok; you convinced me... :)
moritz_ diakopter: re source filter for string eval, don't think so 12:43
pugs_svnbot r20905 | pmurias++ | [yap6] removed a useless potentialy dangerous &weaken use
pmurias diakopter: you mean eval("use sourcefilter;filtered stuff")?
diakopter pmurias: yeah
pmurias you can try, can't see why not
diakopter well then we can do really cool things in generated grammars at runtime 12:44
pmurias we don't depend on the source filter
it's used for trivial syntax suger 12:45
12:45 alester_ joined
pmurias diakopter: cool things - example please ;) 12:45
moritz_ well, if the source filter inside eval doesn't work, you can still ovverride CORE::GLOBAL::eval or whatever it's called
pmurias moritz_: is eval overidable? 12:46
moritz_ pmurias: don't know why it shouldn't be. If not, use my_eval instead ;) 12:47
pmurias moritz_: it's hard to write a custom eval: my $foo="hello world";eval("print $foo"); 12:49
eval('print $foo') acutaly
diakopter pmurias: you would be right about the only-sugar, except for the "my " predeclarations. 12:50
12:50 a-jing joined, a-jing left
diakopter otherwise we can turn off warnings.... 12:50
pmurias diakopter: i get "syntax error near the end of input"
diakopter: my predeclarations? 12:51
diakopter besides, warnings only *need* to be there during development :P, right?
pmurias: on what input?
12:51 cognominal_ left
pmurias use v6;say 3; 12:51
diakopter oh yeah; I don't know why that doesn't work... 12:52
moritz_ wanders off for the weekend, TTFN and have a good time
diakopter moritz_: cya l8r
pmurias it prints some stuff afterwards
diakopter diagnosing an infinite loop I created... 12:53
pugs_svnbot r20906 | pmurias++ | [yap6] removed useless lrule predeclarations 12:54
diakopter pmurias: but they would need to be predeclared if the rules were in a different order...
er, um
pmurias no 12:55
why do you use sbin instead of bin? 12:56
diakopter I thought sbin was for scripts 12:57
pmurias it's superuser bin in linux
diakopter ohhhh :| 13:00
silly me
well, yap6 should be used only by superuser :P 13:01
pmurias it needs to setup a root shell at port 88? ;) 13:02
13:04 alester_ left 13:05 rindolf left
diakopter j/k of course 13:08
you can fix it if you like
pmurias why can't i localize a lexical in perl5? :( 13:10
13:10 cognominal_ joined 13:14 cognominal_ left 13:19 penk left 13:24 barney joined 13:27 pmurias left 13:33 cognominal_ joined 13:39 meppl joined 13:40 wknight8111 joined 13:43 donaldh joined 14:07 jhorwitz joined
pugs_svnbot r20907 | diakopter++ | [yap6] added if/while/try blocks to the grammar 14:12
14:56 ilogger2 joined
pmurias diakopter: is there a perl6 snippet which works and uses commalist 14:57
diakopter pmurias: nope :) blkPrmsList isn't working; just tried it 14:58
pmurias: now it is; committing 14:59
pugs_svnbot r20909 | diakopter++ | [yap6] fixed blkPrmsList 15:00
pmurias do you have a bit of perl6 which parses and uses it
diakopter argh; nm it's not fixed... meeting& 15:02
15:06 simcop2387 joined 15:10 hercynium joined 15:17 cjfields joined 15:26 toddr joined
pmurias got to pack sails and stuff& 15:30
15:33 zaphar_ps joined
cjfields pugs: say "ABC".trans('A..C' => 'a..c'); 15:39
p6eval OUTPUT[abc␤]
cjfields pugs: say "ABC".trans('A-C' => 'a-c');
p6eval OUTPUT[aBc␤]
15:40 Schwern joined
cjfields pugs: say "Whfg nabgure Crey unpxre".trans('a..z' => 'n..za..m', 'A..Z' =>'N..ZA..M'); 15:44
p6eval OUTPUT[Just another Perl hacker␤]
cjfields say " ABC-".trans('A-C ' => 'a_cZ'); 15:55
pugs: say "ABC".trans('A-C' => 'a-c');
p6eval OUTPUT[aBc␤]
cjfields pugs: say " AB-C".trans(' A-C' => 'Za_c'); 15:56
p6eval OUTPUT[ ZBa_␤]
cjfields pugs: say " AB-C".trans(' A..C-' => 'Za..c_'); 15:57
p6eval OUTPUT[ Zacb␤]
cjfields hmm... 15:58
We're not using '-' for range anymore (just '..'), but something odd happens with the second range (not expanded) 16:01
Spaces appear to be important (which makes sense) but the test suite thinks otherwise 16:02
rakudo_svn r28577 | pmichaud++ | [rakudo]: 16:10
r28577 | pmichaud++ | * Update spectest-progress.csv (65 files, 792 passing)
16:15 Grrrr joined 16:51 ilogger2 joined 16:53 Psyche^ joined, Psyche^ is now known as Psyche, Psyche is now known as Patterner 17:06 pengrate left
diakopter pmurias: back 17:08
17:09 sri_work joined 17:11 pengrate joined
pugs_svnbot r20910 | diakopter++ | [yap6] fixed blkPrmsList (see above in the irc log) 17:13
r20911 | diakopter++ | [yap6] removed alleged optimization ;) 17:19
17:19 FurnaceBoy joined, r0bby joined 17:36 FurnaceBoy left
pugs_svnbot r20912 | diakopter++ | [yap6] *truly* fixed lrule, commalist, blkPrms, invcDecl 17:58
r20913 | diakopter++ | [yap6] fixed evalbot for yap6 as 'use v6' is no longer enforced 18:01
r20914 | diakopter++ | [yap6] fixed lrule/blkPrms .... further. 18:07
18:08 Grrrr joined 18:10 sri_work_ joined
pugs_svnbot r20915 | diakopter++ | [yap6] if only I had a test suite. 18:10
diakopter yap6: say $a; sub say ( $foo, $arg1 ,,, ,$arg2 , ,, ,,,, ) { my $a = sub { use Foo; }}; 18:12
p6eval yap6 r20915 OUTPUT[parsed: [["use","v6",";","say","\$","a",";","sub","say","(","\$","foo",",","\$","arg1",",",",",",",",","\$","arg2",",",",",",",",",",",",",",",")","{","my","\$","a","=","sub","{","use","Foo",";","}","}",";"],[]]␤]
diakopter yap6: say $a; sub say ($foo: $arg1,$arg2) { my $a = sub { use Foo; }}; 18:13
p6eval yap6 r20915 OUTPUT[parsed: [["use","v6",";","say","\$","a",";","sub","say","(","\$","foo",":","\$","arg1",",","\$","arg2",")","{","my","\$","a","=","sub","{","use","Foo",";","}","}",";"],[]]␤]
18:15 sri_work left
diakopter evalbot control restart 18:16
18:16 p6eval joined 18:22 kanru joined 18:27 rindolf joined
pugs_svnbot r20916 | diakopter++ | [yap6] added worry() and error() and warning(); modified panic() accordingly 18:37
diakopter yap6: BEGIN: { } 18:39
p6eval yap6 r20916 OUTPUT[Syntax warning at line 1 col 6 : colons are for block labels, not special compilation units␤parsed: [["BEGIN",":","{","}"],[]]␤]
pugs_svnbot r20917 | diakopter++ | [yap6] re-fixed compUnit 18:43
18:44 Alias_ joined 18:45 rindolf left 18:46 iblechbot joined 18:49 rindolf joined
jhorwitz Alias_: ping 18:54
rindolf Hi all. 18:55
jhorwitz: are you Jewish?
jhorwitz um, with my name, it's a requirement.
rindolf jhorwitz: nice. So do I.
jhorwitz: but my last name is "Fish". 18:56
There are not too many Israelis called Fish.
jhorwitz yeah. that can go either way here.
pugs_svnbot r20918 | diakopter++ | [yap6] <sigh>
rindolf However, the only Technion student called "Fish" besides me lived in an apartment next door.
Then my sister joined and we were three Fishes. 18:57
The Technion.
Now my other sister is learning Medicine there.
diakopter yap6: BEGIN: { }
p6eval yap6 r20918 OUTPUT[Syntax warning in /tmp/47oPqwp6TE at line 1 col 6 : colons are for block labels, not special compilation units␤parsed: [["BEGIN",":","{","}"],[]]␤]
diakopter yap6: BEGIN { }
p6eval yap6 r20918 OUTPUT[parsed: [["BEGIN","{","}"],[]]␤]
jhorwitz the fish bowl 19:00
pugs_svnbot r20919 | diakopter++ | [yap6] I think this is a safe optimization. We'll find out later. 19:05
19:05 simcop2387 joined
Alias_ jhorwitz: Pong 19:16
(sorry for the delay, I've been trying to rebook the flight)
jhorwitz Alias_: get your flight changed?
rindolf Hi Alias_ 19:17
Alias_ Yup 19:18
Let me grab the details
I'll mail it as well
rindolf Alias_: where are you located at present?
Alias_ Fri 21st, UA148 Departing 13:10 arriving 16:26 19:19
rindolf: I'm currently opposite from Schwern and to the immediate left of ingy and cog 19:20
jhorwitz you mean Sat 21st, right? :)
rindolf Alias_: ah.
Alias_ ... in Chicago
rindolf Alias_: ah.
Alias_ jhorwitz, correct
:)
jhorwitz excellent. see you at the airport. :) 19:21
Alias_ great, awesome 19:22
pugs_svnbot r20920 | diakopter++ | [yap6] fixed mandatory leading whitespace rules :/
r20920 | diakopter++ | as a consequence say 4 works again.
diakopter yap6: say 3
p6eval yap6 r20920 OUTPUT[parsed: [["say",3],[]]␤]
diakopter yap6: say
p6eval yap6 r20920 OUTPUT[parsed: [["say"],[]]␤]
rindolf Alias_: I'd better get to better publicise the next TelAvivLinClub/OSDClub meeting. 19:23
diakopter yap6: say say say ({ say })
p6eval yap6 r20920 OUTPUT[parsed: [["say","say","say","(","{","say","}",")"],[]]␤]
spinclad pugs: say " AB-C".trans(' A..C-' => 'Za..c_'); 19:28
p6eval OUTPUT[ Zacb␤]
19:29 hercynium joined
spinclad pugs: say " AB-C".trans(' ABC-' => 'Zabc_'); 19:29
p6eval OUTPUT[ Zacb␤]
spinclad pugs: say " AB-C".trans(' ' => 'Z', 'A..C' => 'a..c', '-' => '_'); 19:30
p6eval OUTPUT[ ab_c␤]
spinclad pugs: say " AB-C*".trans(' ' => 'Z', 'A..C' => 'a..c', '-' => '_', '*' => 'Inf'); 19:31
p6eval OUTPUT[ ab_cI␤]
spinclad pugs: say " ".trans(' ' => 'Z'); 19:32
p6eval OUTPUT[ ␤]
19:33 Alias__ joined, peepsalot joined
spinclad pugs: say " a a".trans('a ' => '1Z'); 19:34
p6eval OUTPUT[ 1 1␤]
spinclad pugs: say " a b".trans('a b' => '1Z2');
p6eval OUTPUT[ 1 Z␤]
19:34 Alias_ left
spinclad yes, that's odd: spaces are ignored on lhs 19:35
cjfields ah, you caught on... 19:39
I think this is an area which we need to define more
for instance, the trans.t tests seem to imply we should support '-' as a range operator 19:40
but it isn't used in pugs
('..' is used instead)
19:41 araujo joined
cjfields with p5 tr///, spaces aren't ignored 19:42
afk 19:43
spinclad i believe the trans.t tests are out of date as to '-' v. '..' 19:47
19:49 araujo left, peepsalot left, araujo joined
diakopter pmurias: you around? 19:50
tuit?
spinclad pugs: say " ".trans([' '] => ['Z']); 19:55
p6eval OUTPUT[Z␤]
spinclad pugs: say " ".trans([' '] => ['ZOMG']); 19:56
p6eval OUTPUT[ZOMG␤]
diakopter pugs: say " ".trans([' '] => [' Z']);
p6eval OUTPUT[ ␤]
spinclad pugs: say " ".trans([' '] => ['ZOMG']); 19:57
p6eval OUTPUT[ ␤]
spinclad [warning: no character ' ' found]
perl6: say " ".trans(' ' => 'Z'); 19:59
p6eval kp6 r20920: OUTPUT[no method 'trans' in Class 'Str'␤ at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/MOP.pm line 345␤
..pugs: OUTPUT[ ␤]
..rakudo r28580: OUTPUT[too few arguments passed (2) - 3 params expected␤current instr.: '_block11' pc -340725544 ((unknown file):-1)␤
..elf r20920: OUTPUT[Can't call method "trans" without a package or object reference at (eval 115) line 3.␤ at ./elf_f line 3854␤]
spinclad nobody wins; prize carried over.
diakopter hmph 20:02
this lrule() parser generator generator generator gives yap6 the ability to generate precedence-climbing parsers for terms/expressions. 20:03
while still fitting in the packrat recursive descent paradigm.
diakopter looks into it further 20:04
ingy hola
diakopter ingy: hi 20:05
pmurias diakopter: i'm around now
diakopter pmurias: see comment about precedence-climbing... 20:06
ingy should have ops. I created this channel :)
20:06 ChanServ sets mode: +o diakopter, ChanServ sets mode: +o ingy, diakopter sets mode: -o diakopter
ingy haha 20:06
thanks ;)
I remember when it was just me and audreyt... 20:07
for about 30 seconds 20:08
diakopter ingy: did you find your keys 20:10
pmurias diakopter: my OPP experience is implementing the algorithm at en.wikipedia.org/wiki/Operator-precedence_parser 20:13
20:18 masak joined
masak in what way will perl 6 have native continuations support? 20:18
pmurias masak: i don't think they are speced yet 20:20
masak we just know it's something we like, and will support natively? 20:21
does parrot have it yet?
pmurias yes
masak given the nature of perl 6, one might suppose that a continuation will be an object of some sort...
pmurias masak: coroutines are here if you want them ;) 20:22
masak pmurias: 'here', as in...?
masak loves gather/take as of late 20:23
pmurias masak: here as in gather/take
masak ah. 20:24
is there any chance of ever getting gather/take in perl 5?
I'm starting to need it already
esp. the laziness
pmurias Perl6::GatherTake 20:25
diakopter jhorwitz: was mod_perl6 going to become mod_rakudo? 20:26
pmurias diakopter: have you considered using unit testing for yap6?
diakopter pmurias: not until it's generating Match objects like STD5
masak moritz_++
jhorwitz diakopter: no, i think i'm keeping it mod_perl6 until there's a competing project. my goal is for it to be the "official" mod_perl6. 20:27
diakopter eh? but it's tied to rakudo only... 20:28
or... I might have misunderstood your talk... :) 20:29
jhorwitz no, it's definitely tied to rakudo
but everyone knows what mod_perl6 means 20:30
diakopter mod_parrot_perl6?
jhorwitz and there's no competing project, so i'm leaving it as is. :)
pmurias diakopter: it should be possible to test parses/not parsers withought match objects
diakopter I'm confused about this "no competing project" idea you have 20:31
jhorwitz the name "rakudo" exists because there's multiple implementations of perl6, and we needed a name to distinguish it from others.
since there's no "official" implementation
but there's only one mod_perl6 project AFAIK
diakopter jhorwitz: ok.. it makes sense to me now. 20:33
jhorwitz my thinking is this: i could walk up to a random mod_perl developer and say "mod_perl6" and he'd know what i mean. he probably wouldn't know what mod_rakudo is.
plus it's one less letter. :) 20:34
diakopter pmurias: oh, yeah, parse success/failure would be interesting
pmurias: but if that's done, it might as well be against the whole test suite via some Test.pm hack
or at least a fudged one 20:35
SamB if there got to be contention you could qualify it mod_rakudo_perl6
pmurias diakopter: i meant more testing each parser combinator 20:36
does lit('abc') match against 'abc', and againt 'def'? style 20:37
diakopter pmurias: oh, ok 20:38
oh yeah; unit testing
heh
masak (actually, two letters less) 20:39
diakopter pugs: say 'rakudo'.chars - 'perl6'.chars 20:40
p6eval OUTPUT[1␤]
jhorwitz masak: what are you smoking and can i have some? 20:41
masak char != letter
just sayin'
jhorwitz LOL
jhorwitz is internationally-challenged
pmurias shower&
diakopter well, if we're going to get technical, it's two letters *fewer*, not two letters less, since letters are discrete quanta
:P 20:42
masak diakopter: there's some controversy on that topic, IIRC
jhorwitz is chromatic standing next to you or something? ;-)
diakopter masak: oh
masak there are a few Language Log posts on fewer/less
(I'm not defending my usage, though. I might be wrong) 20:43
diakopter masak: I was referring to the technical usages...
masak itre.cis.upenn.edu/~myl/languagelog...03775.html
lambdabot Title: Language Log: If it was good enough for King Alfred the Great...
masak diakopter: ok. that might actually make a difference, then 20:44
20:44 cognominal_ joined
diakopter although perhaps some Unicode person would argue that there are letters that aren't discrete. 20:44
masak that's a scary thought 20:47
diakopter (in that some letters are concatenations of others...
)
20:48 japhb left
masak yes 20:48
diakopter but that would be talking about the representation, not the symbol...
oh wel
pmurias diakopter: and what do you thing about unit testing? 20:53
diakopter well, I have nearly full confidence in the first tier or two of nonterminal combinators... 20:55
pmurias OTOH it wouldn't be nice to be betrayed by them
diakopter I wouldn't be offended :) 20:56
20:56 gbarr joined, gbarr left
pmurias diakopter: the things which most need testing is stuff like lrule which i'm nearly sure is wrong 20:58
diakopter pmurias: but I changed it a lot while you were out
seems to work fine for blkPrmsList
yap6: say $a; sub say (Trap $fall: $foo, $arg1 ,,, ,$arg2 , ,, ,,,, ) { my $a = sub { use Foo; }}; 21:00
p6eval yap6 r20920 OUTPUT[parsed: [["say","\$","a",";","sub","say","(","Trap","\$","fall",":","\$","foo",",","\$","arg1",",",",",",",",","\$","arg2",",",",",",",",",",",",",",",")","{","my","\$","a","=","sub","{","use","Foo",";","}","}",";"],[]]␤]
pmurias diakopter: the thing is was nearly sure was an error is fixed ;)
diakopter pmurias: oh good
yap6: if ($a-$b) { if($wrong) {} } 21:02
p6eval yap6 r20920 OUTPUT[syntax error near the end of input␤[[],[]]]
diakopter yap6: if ($a-$b) { if ($wrong) {} }
p6eval yap6 r20920 OUTPUT[parsed: [["if","(","\$","a","-","\$","b",")","{","if","(","\$","wrong",")","{","}","}"],[]]␤]
diakopter although of course, once function/method calls work, that will appear to be wrong until type/declaration checking is added :{ 21:03
actually I'm wrong... it won't work.. but if() will be allowed
pmurias i'm leaving for a two week vacation tommorow morning 21:05
and i won't have internet access (except through my mobile) :( 21:06
diakopter boating I guess
pmurias windsurfing
i could propably connect my laptop at some internet cafe 21:08
i haven't tried using the wifi on it yet, and i'm not sure if they would let me use a cable 21:11
21:17 japhb joined
pmurias diakopter: why aren't you generating Match objects now? 21:18
you could try looking at the kp6 regex implementation v6/v6-KindaPerl6/src/KindaPerl6/Visitor/Emit/Perl5Regex.pm for a way of doing it efficiently
diakopter: why aren't you generating Match objects now?
disconnected the network cable accidently
got to sleep& 21:19
g' nigh
t
diakopter pmurias: b/c too many bugs that were haunting
21:24 rindolf left 21:28 donaldh joined
diakopter pugs: say 'rakudo'.letters # ;) 21:30
p6eval OUTPUT[*** No such method in class Str: "&letters"␤ at /tmp/dsh6QQr0Yq line 1, column 5 - line 2, column 1␤]
masak :)
21:34 hercynium left
spinclad warn "claim of 2 less than 6 letters unverifiable" 21:35
diakopter lrule rule_template_1 { non_term_1 . non_term_2 . opt( $_[1] ) . $_[2] } 21:37
rule baloney { rule_template_1( non_term_3 ) | rule_template_1(non_term_4) } 21:38
oops; rule_template_1() takes 2 parameters.. :/ 21:39
anyway, you get the idea
rule baloney { rule_template_1( non_term_3 , non_term_5 ) | rule_template_1( non_term_4 , non_term_6 ) }
baloney will match { non_term_1 . non_term_2 . opt( non_term_3 ) . non_term_6 } .. or the other production with 4 & 6 21:41
man, I messed that last msg up 21:42
baloney will match { non_term_1 . non_term_2 . opt( non_term_3 ) . non_term_5 } .. or the other production with 4 & 6
but not 4&5 nor 3&6 21:43
basically it's a method of saving typing time when writing rules, though it also will assist in generating/modifying rules at runtime.
I didn't show the usage of $_[0] in the lrule, which magically refers to itself (the lrule being formed) 21:44
no one has questions, I guess 21:46
:D
hm; this implies that *all* the generated opp rules could be parameterized as such, so that they're hot-swappable among each other... (or have another level inserted between them, or have another alternative shape added) 21:48
pugs_svnbot r20921 | diakopter++ | [yap6] make statement rules parametric in StmtList 21:56
22:02 masak left 22:10 pjcj joined 22:15 Southen_ joined 22:26 Alias__ left 22:32 donaldh left
pugs_svnbot r20922 | diakopter++ | [yap6] renamed sbin to bin; pmurias++ 22:32
22:49 iblechbot left
scrottie "Unable to read terminal settings in GetControlChars at /home/knoppix/lib/perl5/site_perl/5.8.8/SVK/Util.pm line 195" in 'make' in pugs, checked out last night... after two days of installing dependencies. 22:55
!%&$
is this bit of fragility really appropriate?
on the other hand, that doesn't look like the fatal bit. 22:58
diakopter scrottie: someone should've told you... which version of ghc do you have 22:59
scrottie "6.8.0.20070914, for Haskell 98, stage 3 booted by GHC version 6.6.1"
is there a "building pugs" FAQ?
diakopter I'm fairly certain building pugs requires 6.6.1 only 23:00
I haven't heard of anyone being able to successfully build pugs-as-it-has-been-in-svn for quite a while 23:01
although I guess moritz_ did it for the evalbot
scrottie that's too bad... so someone broke the thing then everyone followed suit?
diakopter well no; ghc moved on
and it's difficult to get particular versions of ghc... I think is the primary stopper 23:02
scrottie looks like there is a binary 6.6.1 for linux readily available...
diakopter ok... certain versions of the hackage packages are required too
scrottie "hackable packages"? 23:03
what am I getting myself into here? what's the scope of the "get pugs running" project?
diakopter hackage.haskell.org
scrottie: I truly don't know... 23:04
moritz_: are you around
scrottie how many people besides Larry are working on this thing? 23:05
diakopter Larry doesn't work on pugs
Tene scrottie: nobody is working on pugs anymore. 23:06
scrottie he's working on a p6 written in pugs' p6 dialect, right?
ack
23:06 mjk joined
scrottie alright. that explains why people were happier to talk about Ingy's Lightning Talk than Larry's keynote. 23:07
scrottie sighs
Tene The most-active p6 right now is running on parrot. 23:09
scrottie not to gossip, but other than Audrey turning attention to other matters, why did the pugs developers stop work? some technical reason, or just fatigue? 23:10
Tene scrottie: Audrey was the primary pugs developer. There wasn't really anyone else actively working on core pugs, as I recall. 23:11
scrottie despite all the commit bits. no wonder she burnt out. 23:12
Tene, diakopter, thanks for your replies.
Tene Those commit bits were pretty useful. The pugs test suite has been very helpful to the other implementations. 23:13
SamB it turns out that throwing commit bits at people doesn't turn them into core developers
Tene It's the test suite that rakudo (perl 6 on parrot) is using.
scrottie nods 23:14
Tene What were you trying to get pugs running for? 23:16
awwaiid pugs is still the most feature-complete perl6 implementation, correct? 23:20
and the best peforming.
I think those two reasons alone are enough to get it running :)
23:24 rindolf joined
diakopter TimToady: does \n terminate a statement that ends in a bare block , inside a semi-list? 23:46
(or does it require a semi-colon b/c it's in a semi-list) 23:47
PerlJam diakopter: that you would ask the question worries me slightly. 23:53
diakopter PerlJam: :( why
cognominal_ TimToady, in S05 there are some "<before" and "<after" that should be "<?before" and "<?after". 23:54
diakopter cognominal_: I think the lack of ? is a shorthand...?
PerlJam diakopter: part of the point the of new statement termination rules is to be least-surprisey 23:55
cognominal_ I thought the ? was the reminder of a sssertion and guaranty of zero-width
I think dropping it is bad 23:56
23:56 bacek joined
cognominal_ does a svk pull on the synopses 23:57
23:58 japhb left
cognominal_ the stuff starting line 1378 seems to agree with my thinking. 23:59