Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2009-11-26

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:04 diakopter so, I have this idea...
00:04 diakopter to use my own parser engine, but then if the parse fails, fall back to STD for the great error messages
00:05 diakopter :)
00:05 diakopter (or to show me where I was wrong in rejecting the input)
00:08 diakopter ok
00:09 diakopter sounds good
00:09 pmurias diakopter: what will you parser engine be?
00:09 pmurias * your
00:09 pmurias i mean grammar
00:10 pmurias diakopter: but checking with STD sounds sensible
00:10 diakopter grammar engine?
00:11 diakopter this compiled-to-a-switch version of jsmeta
00:11 diakopter "hand-compiled" :)
00:11 diakopter I'm merging it in with my past-interpreter
00:12 diakopter so, it should support some subset/variant of nqp-rx
00:12 diakopter frankly, I really don't like all the "special cases" all over STD.pm
00:13 diakopter I realize they are there to prevent backtracking
00:13 pmurias "special cases"?
00:13 diakopter all the rules that are expressed indirectly
00:13 diakopter such as
00:14 diakopter if we're looking for whitespace, <?before \w> <?after \w> ::: { @*MEMOS[$startpos]<ws> = undef; } <.panic: "Whitespace is required between alphanumeric tokens">        # must \s+ between words
00:15 diakopter lots of lookaheads and lookbehinds like that
00:15 diakopter and all the (superb!) error messages for Perl 5 syntax
00:16 diakopter all this checking for failure cases
00:16 pmurias good errors are valuable
00:16 diakopter I suspect that's a truism.
00:17 diakopter and, a belief I've expressed as well.
00:17 diakopter my point is that the failure cases can be checked in the "fallback" (failure case) parser
00:18 pmurias and what will be used as the normal parser? hand-compiled grammar?
00:18 diakopter well, just as hand-compiled as STD.pm itself, yes
00:19 diakopter ... and rakudo's grammar... and nqp-rx's...
00:19 pmurias STD is not hand-compiled
00:19 diakopter it was inspired by God?
00:19 diakopter STD.pm
00:19 diakopter not STD.pmc
00:19 diakopter or STD5.pmc
00:20 diakopter yes, I'm hand-translating from STD.pm
00:20 eternaleye joined #perl6
00:20 pmurias to what?
00:20 diakopter to the api of my own grammar engine
00:21 pmurias that seems like a lot of afford
00:21 diakopter effort?
00:21 pmurias yes
00:21 diakopter what's the alternative?
00:21 eternaleye ENOMASAK :(
00:21 pmurias can you use rakudo's grammar?
00:22 diakopter not directly, no
00:22 pmurias why can't you grab the AST from STD.pmc?
00:22 diakopter it's slow
00:22 diakopter too slow
00:22 diakopter I'm sorry to say
00:23 eternaleye phenny: tell masak that $code from the blog post about Astaire looks like the IDEAL use case for a slurpy array + a slurpy hash (e.g. sub code( *@postionals, *%nameds )
00:23 phenny eternaleye: I'll pass that on when masak is around.
00:23 pmurias diakopter: speed it up then
00:23 diakopter heh
00:23 diakopter I'm trying :)
00:23 diakopter indirectly
00:24 diakopter seriously though, it's too slow even to try to speed it up
00:24 pmurias you can eliminated the startup
00:24 pmurias * eliminate
00:24 pmurias and you won't be feeding it a lot of code at first
00:25 diakopter true.
00:25 diakopter However, I suspect it would need more brainpower/effort to speed it up than I have available
00:25 diakopter and concentration
00:26 diakopter it's easier (for me, I mean) to write my own
00:26 jantore_ joined #perl6
00:27 eternaleye moritz_: END { run( 'kill', $*PID ) } # self destruct mode for phasers
00:27 pmurias if you find it fun it's ok
00:27 diakopter I tried profiling STD.pm
00:27 diakopter NYTprof
00:27 diakopter parsing itself, I think
00:27 diakopter that wasn't fun
00:28 diakopter triggered bugs in the profiler
00:28 diakopter some subroutines ran negative few thousand times
00:28 diakopter decreased my level of confidence in the profiler
00:28 pmurias elf used a hand-compiled STD
00:29 diakopter (for that particular input)
00:29 diakopter right..
00:29 eternaleye diakopter: That's... eye-opening
00:29 pmurias the result was a lot of ugly code that needed hand updating
00:30 diakopter ok, but that's worked out ok for rakudo (at least in the recent year)
00:30 eternaleye I think the devolper might be interested in it as a corner case. A very _narrow_, _sharp_ corner.
00:30 pmurias diakopter: they didn't hand-compile STD to .pir you know...
00:30 justatheory joined #perl6
00:30 diakopter eternaleye: right :)
00:31 pmurias the have a custom perl6 grammar
00:31 diakopter pmurias: yes, I suspect I am aware of that
00:31 diakopter and I'm confused why you thought I might have thought otherwise
00:31 eternaleye diakopter: Until now, they really haven't been mirroring STD. That's what they needed protoregexes for, and why rakudo master still parsefails a lot
00:32 diakopter yes, but it's some subset
00:32 diakopter and it will still parsefail a lot by Rakudo *
00:32 diakopter but that's not the point
00:32 pmurias diakopter: what i understand you're planning to do is to hand-translate a subset of STD to js
00:32 diakopter (to make a grammar that matches STD's behavior exactly)
00:33 diakopter yes, a subset of nqp-rx
00:33 eternaleye Well, for some value of "a lot"
00:33 diakopter so a very small subset
00:33 KatrinaTheLamia joined #perl6
00:33 pmurias why can't you use nqp-rx's grammar?
00:34 diakopter I could, yes
00:34 pmurias (run it on parrot or on your own engine)
00:34 diakopter eventually
00:34 eternaleye diakopter: pmurias has a point - nqp-rx's engine is written in nqp-rx
00:34 diakopter but it needs implemented in the lower level language (js) here first
00:34 pmurias can't you export the AST from parrot?
00:35 eternaleye pmurias: You type faster than I do
00:35 justatheory joined #perl6
00:35 diakopter yes, but it doesn't do me much good without the Actions.pm
00:35 diakopter an ast of the Grammar.pm would be nice, yes
00:36 diakopter but it's quite short anyway
00:36 diakopter compared to STD.pm at least
00:37 pmurias sleep&
00:37 diakopter (and yes, I already have that, actually)
00:37 ihrd joined #perl6
00:37 diakopter but I guess I'm infected with NIH
00:38 diakopter it's quite communicable, you know
00:38 eternaleye diakopter: I'm thinking exporting the AST from parrot, and transform it to javascript. From there, it bootstraps.
00:38 diakopter and there's no vaccine
00:38 diakopter yes, but I still have to implement the conversions from PAST::Regex* to my parser system
00:39 diakopter I mean, I'm averse to using the PAST generated by the PAST::Regex compiler
00:39 diakopter I wasn't at one time
00:39 diakopter but now I'm tilting there
00:40 diakopter sad, I know
00:44 colomon joined #perl6
00:46 pointme joined #perl6
00:46 zaslon joined #perl6
00:46 zaslon lolmasakhazblogged! masak++ 'Upcoming: the 7 wonders of the ancient Perl 6 grammar engine': http://use.perl.org/~masak/journal/39945?from=rss
00:47 eternaleye diakopter: What about PAST::Regex's AST don't you like?
00:48 gfx joined #perl6
00:48 zaslon lolfrettledhazblogged! frettled++ 'The morality of helping': http://howcaniexplainthis.blogspot.com/2009/11/morality-of-helping.html
00:48 diakopter nothing
00:48 zaslon lolmoritzhazblogged! moritz++ 'Set Phasers to Stun!': http://perlgeek.de/blog-en/perl-6/set-phasers-to-stun.html
00:48 diakopter eternaleye: I meant  I'm averse to using the PAST generated by the PAST::Regex compiler
00:48 zaslon lolmasakhazblogged! masak++ 'November 25 2009 -- you guys can be on our team': http://use.perl.org/~masak/journal/39947?from=rss
00:48 diakopter 18:39 < diakopter> I wasn't at one time
00:48 diakopter 18:39 < diakopter> but now I'm tilting there
00:48 diakopter wait what
00:48 diakopter 18:40 < diakopter> sad, I know
00:48 diakopter what happened to zaslon
00:49 eternaleye diakopter: That's what I was asking; what caused the change?
00:50 diakopter b/c it won't be nearly as fast as it could be
00:50 ihrd left #perl6
00:50 diakopter if I executed the PAST (or even PIR!)
00:50 diakopter than if the primitives were implemented in js
00:50 carlin Because of the memory leak there was no memory for zaslon's cron to run so when I restarted it, it played catchup
00:52 jnthn diakopter: I thought the intention of the PAST regex nodes was to then compile them into something that can be efficiently executed on the target platform.
00:52 jnthn diakopter: Note that you'd take them and interpret them directly.
00:52 jnthn *Not
00:53 diakopter yes
00:53 diakopter well
00:54 diakopter wellllllll
00:54 diakopter I suppose ..
00:54 jnthn diakopter: I mean, sure, do what you mind -Ofun. :-) But it doesn't surprise me that PAST::Regex nodes aren't ideal for immediate evaluation. :-)
00:54 jnthn *find
00:55 diakopter that's not what I was saying
00:55 diakopter I was saying the code generated by nqp-rx when compiling the PAST::Regex nodes to PAST/PIR is not ideal for direct interpretation
00:56 jnthn Once you have the PAST::Regex nodes, you can transform them into whatever you like though, no?
00:56 diakopter but *yes*, I still have to write a parser/grammar engine (impl of the PAST::Regex nodes, or a compiler for them, or whatever) in order to execute them
00:56 jnthn s|PAST/PIR|POST/PIR| ?
00:56 diakopter yes
00:56 diakopter yes
00:57 jnthn Well yes, that much is true.
00:57 diakopter so I have to "implement PAST::Regex", which is what I did
00:57 diakopter but then when I did that, I noted that it's easy to hand-write the grammars
00:58 diakopter so basically, what I've ended up with is an nqp-rx mimic/approximation
00:59 Wolfman2000 phenny: tell frew it's near that time for me to let go of my donkeyness
00:59 phenny Wolfman2000: I'll pass that on when frew is around.
01:00 diakopter does GGE::OPTable support inserting new precedences or adding to existing ones?
01:01 alanhaggai joined #perl6
01:03 * jnthn -> sleep, night all
01:09 diakopter on the other hand, if I didn't have to worry about overflowing the js stack while parsing, I could use something like OMeta
01:09 diakopter OMeta/JS
01:10 Exodist joined #perl6
01:10 diakopter I'd have to rig it to support dynamic grammars
01:25 colomon joined #perl6
01:25 agentzh joined #perl6
01:25 alanhaggai joined #perl6
01:43 jaldhar joined #perl6
01:46 drbean joined #perl6
01:55 envi^office joined #perl6
02:10 zloyrusskiy joined #perl6
02:21 eternaleye Hm. I have an idea: plotting the perl6 operators according to precedence (top = tightest, bottom=loosest), with lines connecting each operator to the one they are defined as 'tighter-than' or 'looser-than'
02:21 eternaleye I'll have to look at the plotutils manpage for how best to do that/
02:21 diakopter eternaleye:
02:22 eternaleye s,/,,
02:22 diakopter have you seen http://www.ozonehouse.com/mark/periodic/
02:23 diakopter 10 months outdated...
02:23 eternaleye diakopter: ? (sorry if I lag a bit, my computer seems bogged down by something)
02:23 eternaleye diakopter: Yes
02:23 eternaleye I'm thinking the kind of diagram you do of a directed graph
02:25 orafu joined #perl6
02:27 jaldhar joined #perl6
02:39 [particle] joined #perl6
02:40 user_unknown joined #perl6
02:41 xenoterracide joined #perl6
02:43 awwaiid joined #perl6
02:43 aindilis joined #perl6
03:05 * colomon is wondering how much trouble he would get in if he just went ahead and defined Mu in ng....
03:07 TimToady I won't tell if you won't...
03:09 colomon It's just that I've got a test file which works correctly in ng (I think) except for one usage of Mu...
03:09 colomon Actually, does this even make sense anymore?   sign(Mu)
03:10 colomon rakudo: say sign(Mu)
03:10 p6eval rakudo 7347ec: Could not find non-existent sub Mu␤in Main (file src/gen_setting.pm, line 324)␤
03:11 colomon or maybe it's broken in rakudo master too, and I can just officially skip it and declare victory....
03:14 colomon If I once knew the reason it makes sense to have a special case for "sign" to handle undefined values, I've forgotten it.
03:14 colomon rakudo: my $a;  say sign($a);
03:14 p6eval rakudo 7347ec: Use of uninitialized value␤␤
03:14 colomon rakudo: my $a; say sign($a).notdef
03:14 p6eval rakudo 7347ec: Method 'notdef' not found for invocant of class 'Failure'␤in Main (file src/gen_setting.pm, line 324)␤
03:15 spinclad joined #perl6
03:15 dukeleto joined #perl6
03:15 pugs_svn joined #perl6
03:15 hatseflats joined #perl6
03:15 jiing joined #perl6
03:15 phenny joined #perl6
03:17 sjohnson heh
03:17 colomon p6eval's rakudo isn't up to date.
03:17 sjohnson rakudo:  my $a = 'moose/ted'; my $b = $a ~~ s/ted/goose/;  print "[$a] [$b]"
03:17 p6eval rakudo 7347ec: s/// not implemented, try .subst as workaround at line 2, near "goose/;  p"␤in Main (file <unknown>, line <unknown>)␤
03:18 sjohnson ... hlp plz.  is this possible in p6?
03:18 sjohnson something like what i am aiming for
03:18 sjohnson skipping the $b = $a; steop
03:18 sjohnson step*
03:19 colomon sjohnson: like the error says, you need .subst rather than s///
03:19 colomon rakudo: my $a = 'moose/ted'; say $a.subst("ted", "goose");
03:19 p6eval rakudo 7347ec: moose/goose␤
03:20 sjohnson colomon: do you know if it supports /regex/ ?
03:20 sjohnson the subst thingy?
03:20 colomon pretty sure it does
03:20 sjohnson colomon++ # helpful
03:21 colomon rakudo: my $a = 'moose/ted'; say $a.subst(m/t.*d/, "goose");
03:21 p6eval rakudo 7347ec: moose/goose␤
03:21 sjohnson nice one
03:21 colomon I dunno if captures work properly yet...
03:21 sjohnson that indeed seems to work nicely
03:21 colomon rakudo: my $a = 'moose/ted'; say $a.subst(m/t(.*)d/, "goos$0");
03:22 p6eval rakudo 7347ec: Use of uninitialized value␤moose/goos␤
03:22 PZt joined #perl6
03:22 colomon Yeah, I don't know if there is a way to do that or not.
03:23 colomon ng: say Any.WHAT
03:23 p6eval ng 28273a: Any()␤
03:23 sjohnson rakudo: my $a = 'moose/ted'; say $a.subst(m/t(.*)d/, "goos\$0");
03:23 colomon ng: class Mu { ... }; say Mu.WHAT
03:23 p6eval rakudo 7347ec: moose/goos$0␤
03:23 p6eval ng 28273a: Could not find non-existent sub fail␤current instr.: 'perl6;Mu;_block22' pc 132 (EVAL_1:62)␤
03:24 sjohnson interesting thing to ponder thanks colomon
03:24 colomon ng: class Mu { method defined() { false; }; }; say Mu.WHAT
03:24 p6eval ng 28273a: Mu()␤
03:24 sjohnson maybe TimToady might know the answer    :]
03:24 colomon sjohnson: good luck!
03:37 eternaleye sjohnson: colomon: For captures in .subst, you use a closure.
03:40 pmichaud joined #perl6
03:40 aindilis joined #perl6
03:40 awwaiid joined #perl6
03:40 xenoterracide joined #perl6
03:40 [particle] joined #perl6
03:40 jaldhar joined #perl6
03:40 orafu joined #perl6
03:40 zloyrusskiy joined #perl6
03:40 drbean joined #perl6
03:40 agentzh joined #perl6
03:40 colomon joined #perl6
03:40 zaslon joined #perl6
03:40 KatrinaTheLamia joined #perl6
03:40 mikehh joined #perl6
03:40 huf_ joined #perl6
03:40 astrojp joined #perl6
03:40 compactwater joined #perl6
03:40 gbacon joined #perl6
03:40 quantumEd joined #perl6
03:40 pure1111 joined #perl6
03:40 simcop2387_ joined #perl6
03:40 omega__ joined #perl6
03:40 r0bby_ joined #perl6
03:40 kst joined #perl6
03:40 IllvilJa joined #perl6
03:40 meteorjay joined #perl6
03:40 zamolxes joined #perl6
03:40 ng_feed joined #perl6
03:40 mofino joined #perl6
03:40 perigrin_ joined #perl6
03:40 Patterner joined #perl6
03:40 bloonix joined #perl6
03:40 xomas_ joined #perl6
03:40 tylerni7 joined #perl6
03:40 rgrau joined #perl6
03:40 japhb joined #perl6
03:40 ssm joined #perl6
03:40 xinming joined #perl6
03:40 Khisanth joined #perl6
03:40 synth joined #perl6
03:40 sjn joined #perl6
03:40 d^_^b joined #perl6
03:40 Wolfman2000 joined #perl6
03:40 Woodi joined #perl6
03:40 yahooooo joined #perl6
03:40 estrabd_ joined #perl6
03:40 nothingmuch joined #perl6
03:40 dalek joined #perl6
03:40 avuserow joined #perl6
03:40 charsbar_ joined #perl6
03:40 Lorn joined #perl6
03:40 szabgab joined #perl6
03:40 dj_goku joined #perl6
03:40 zaphar_ps joined #perl6
03:40 s1n joined #perl6
03:40 tarbo2 joined #perl6
03:40 mdxi joined #perl6
03:40 PacoLinux joined #perl6
03:40 kolibrie joined #perl6
03:40 Helios joined #perl6
03:40 hicx174 joined #perl6
03:40 LionMadeOfLions joined #perl6
03:40 stepnem joined #perl6
03:40 zostay joined #perl6
03:40 idemal joined #perl6
03:40 frettled joined #perl6
03:40 carlin joined #perl6
03:40 pnu joined #perl6
03:40 hugme joined #perl6
03:40 cotto_work joined #perl6
03:40 jeremiah joined #perl6
03:40 cotto joined #perl6
03:40 cls_bsd joined #perl6
03:40 elmex joined #perl6
03:40 wolverian joined #perl6
03:40 solarion joined #perl6
03:40 constant joined #perl6
03:40 baest joined #perl6
03:40 leedo joined #perl6
03:40 buu joined #perl6
03:40 lestrrat joined #perl6
03:40 frew joined #perl6
03:40 krakan joined #perl6
03:40 allbery_b joined #perl6
03:40 sri_ joined #perl6
03:40 moritz_ joined #perl6
03:40 athomason joined #perl6
03:40 Juerd joined #perl6
03:40 yath joined #perl6
03:40 mathw joined #perl6
03:40 Maddingue joined #perl6
03:40 Infinoid joined #perl6
03:40 ascent joined #perl6
03:40 lisppaste3 joined #perl6
03:40 Grrrr joined #perl6
03:40 rhr joined #perl6
03:40 IRSeekBot joined #perl6
03:40 araujo joined #perl6
03:40 itz joined #perl6
03:40 astinus joined #perl6
03:40 broquaint joined #perl6
03:40 jsut|work joined #perl6
03:40 mj41 joined #perl6
03:40 silug joined #perl6
03:40 Bucciarati joined #perl6
03:40 dukelet0 joined #perl6
03:40 TimToady joined #perl6
03:40 renormalist joined #perl6
03:40 literal joined #perl6
03:40 nsh joined #perl6
03:40 sunnavy joined #perl6
03:40 yves joined #perl6
03:40 sbp joined #perl6
03:40 shachaf joined #perl6
03:40 akl joined #perl6
03:40 eternaleye rakudo:  my $a = 'moose/ted'; say $a.subst(m/t(.)d/, { 'g' ~ $0 ''~ $0 ~ "se" })
03:41 eternaleye Whoops
03:41 eternaleye rakudo:  my $a = 'moose/ted'; say $a.subst(m/t(.)d/, { 'g' ~ $0 ~ $0 ~ "se" })
03:41 envi^office joined #perl6
03:41 Wolfman2000 eternaleye: I think rakudo hates you or something.
03:41 eternaleye Wolfman2000: Maybe
03:41 eternaleye Although the firs tone had two tems in a row
03:42 p6eval rakudo 7347ec: Confused at line 2, near "''~ $0 ~ \""␤in Main (file <unknown>, line <unknown>)␤
03:42 p6eval rakudo 7347ec: moose/geese␤
03:42 eternaleye *first *one *terms
03:43 sjohnson i might have to stare at that for a while to understand it, eternaleye :)
03:43 sjohnson thanks for helping
03:44 eternaleye It's a closure using the 'if no return(), last line is return value' rule
03:44 eternaleye The return value is the string you get from stitching together [with ~] a 'g', the first capture [twice] and 'se'
03:45 eternaleye It was just chance that geeses was a valid word
03:45 eternaleye *geese
03:45 eternaleye furrfu
04:02 eternaleye jnthn (or any other p6book person): Is there any interest in a patch that adds a make target to generate HTML? If so, http://ix.io/ye has such a patch
04:02 eternaleye Heh, looks like 'ye has a patch'
04:02 eternaleye A colloquial pastebin XD
04:11 eternaleye hugme: add eternaleye to book
04:11 hugme eternaleye: sorry, you don't have permissions to change 'book'
04:11 eternaleye hugme: projects?
04:11 eternaleye hugme: list
04:11 eternaleye hmm.
04:11 eternaleye hugme: add eternaleye to p6book
04:11 hugme eternaleye: sorry, I don't know anything about project 'p6book'
04:12 eternaleye Ah.
04:12 eternaleye So 'book' is right, just locked.
04:14 eternaleye jnthn, moritz_, pmichaud: If one of you could add me to the Perl 6 book project, I'm reading over it and am sufficiently irked by some minor errors that I would like access to fix them ;D
04:15 eternaleye For instance, "You can ask query a hash table for the value..."
04:26 Wolfman2000 hugme: add eternaleye to book
04:26 hugme Wolfman2000: sorry, you don't have permissions to change 'book'
04:26 Wolfman2000 I tried
04:26 eternaleye 'sokay, one of them will be on soon enough
04:28 nbrown joined #perl6
04:32 eternaleye Hm, and the narrowness analysis needs some out-of-the-box'ing. Why not replace A with 'wheat' or 'rice' and B with 'grain'?
04:39 Yonderboy joined #perl6
04:43 astrojp left #perl6
04:46 badanov joined #perl6
04:48 badanov joined #perl6
04:50 eternaleye moritz_, jnthn, pmichaud: Looking at the dependency handler in the book, I am struck bu a desire to creat a make-equivalent in Perl 6, call it Patisserie, and have it use Cakefiles.
04:50 eternaleye *by
04:50 eternaleye Hm...
04:52 Yonderboy left #perl6
04:56 eternaleye rakudo: multi trait_mod:<needs>( &lhs, &rhs ) { &lhs.wrap({ &rhs(); callsame; }; sub cook(0) { say "Making food!"; }; sub eat() needs &cook { say "Eating food!"; }; eat();
04:56 p6eval rakudo 7347ec: Confused at line 2, near "({ &rhs();"␤in Main (file <unknown>, line <unknown>)␤
04:56 badanov left #perl6
04:56 eternaleye Whoops
04:56 eternaleye rakudo: multi trait_mod:<needs>( &lhs, &rhs ) { &lhs.wrap({ &rhs(); callsame; } ) }; sub cook(0) { say "Making food!"; }; sub eat() needs &cook { say "Eating food!"; }; eat();
04:56 p6eval rakudo 7347ec: Malformed routine definition at line 2, near "eat() need"␤in Main (file <unknown>, line <unknown>)␤
04:57 eternaleye Hm
04:57 nbrown joined #perl6
04:59 araujo joined #perl6
05:22 alanhaggai joined #perl6
05:47 kst joined #perl6
05:58 frew_ joined #perl6
06:14 spinclad_ joined #perl6
06:28 TiMBuS joined #perl6
07:02 justatheory joined #perl6
07:07 kaare joined #perl6
07:26 szabgab joined #perl6
07:32 sjohnson eternaleye: backlogging, thanks for the help by the way
07:33 moritz_ hugme: add eternaleye to book
07:33 * hugme hugs eternaleye. Welcome to book!
07:33 moritz_ eternaleye: done. Your corrections will be very welcome
07:35 _eMaX_1 joined #perl6
07:36 Su-Shee joined #perl6
07:36 Su-Shee good morning
07:38 moritz_ oh mornin'
07:39 dalek book: 7552628 | (Alex Elsayed)++ |  (2 files):
07:39 dalek book: Add HTML target for the book.
07:39 dalek book: review: http://github.com/perl6/book/commit/75526282bdcc248171f1878ce34fca6cd4aab8ee
07:41 eternaleye moritz_: Should we establish a syntax to clearly separate comments on the material versus the material itself? That's one of the thing that kept confusing me in reading it - I wasn't able to immediately tell where one ended and the other started.
07:41 moritz_ eternaleye: =for author
07:42 moritz_ that's not used consequently right now
07:42 moritz_ uhm
07:42 eternaleye okay.
07:42 eternaleye Consistently
07:42 moritz_ why does the HTML need a latex preamble? :-)
07:42 eternaleye It doesn't, and I'm looking for why it has it now
07:43 moritz_ the preamble is in bin/book-to-html
07:45 dalek book: fcde9ac | (Alex Elsayed)++ | bin/book-to-html:
07:45 dalek book: Whoops-a-daisy, forgot to remove the latex preamble
07:45 dalek book: review: http://github.com/perl6/book/commit/fcde9ac4007111e39e1e653d639abd288eec4057
07:46 sjohnson is the book allowed to have the same informal humour as the Camel Book?
07:46 eternaleye Yeah, I almost-blindly copied -to-latex, and it seems that involved some tunnel vision XD
07:46 eternaleye Oh, I hope it is
07:46 eternaleye That's half the fun as a reader!
07:47 * moritz_ is not averse to humour, as long as it's mostly culturally neutral
07:47 moritz_ (which the camel humour is)
07:47 eternaleye Well, that and the typo in the edition I read (I forget what chapter, but I think it was 2. Definitely one of the first 3)
07:48 eternaleye For once, my OCD grammar skillz will be useful! On to the book!
07:48 moritz_ hack away!
07:49 mberends joined #perl6
07:52 justatheory joined #perl6
07:58 mberends good morning :) as a fellow long term NIH sufferer, it was comforting to read what diakopter++ wrote about his experience of the affliction. #perl6 does seem to be a kind of safe haven for such people. NIH is infectious for the same reason as gambling addiction: it sometimes works, and then it pays BIG. There is also a treatment, but those in denial about the disorder refuse to take it: strict deadlines.
08:00 moritz_ good morning
08:00 moritz_ I know programming IRC channels where people don't even know what NIH stands for :-)
08:01 mberends recognizing the problem is the first step to dealing with it
08:03 mberends http://en.wikipedia.org/wiki/NIH_(disambiguation) ;-) # pick one
08:06 xomas joined #perl6
08:10 eternaleye Well, that's basics.pod. I'll do another file tomorrow
08:12 eternaleye mberends: Well, one drains time from and occasionally grants money to researchers, while the other drains time from and occasionally grants money to programmers/language designers/etc...
08:13 mberends eternaleye: :-)
08:13 eternaleye ;D
08:13 dalek november: 55d4deb | masak++ | lib/November.pm:
08:13 dalek november: [November] changed operator s/neq/ne/
08:13 dalek november: review: http://github.com/viklund/november/commit/55d4deb2fc627f90ef516d325a032465c51d74d2
08:14 mberends masak approaching!
08:14 dalek book: af85b7a | (Alex Elsayed)++ | src/basics.pod:
08:14 dalek book: Give my commitbit a workout on typos and grammar
08:14 dalek book: review: http://github.com/perl6/book/commit/af85b7ab807a40c813ee6748d70752809d725f9e
08:17 masak joined #perl6
08:17 masak aloha, #perl6!
08:17 phenny masak: 00:23Z <eternaleye> tell masak that $code from the blog post about Astaire looks like the IDEAL use case for a slurpy array + a slurpy hash (e.g. sub code( *@postionals, *%nameds )
08:17 masak eternaleye: yes, but... :)
08:17 eternaleye Oh hai, masak!
08:17 masak eternaleye: you're absolutely right, of course.
08:17 sjohnson o/ masak
08:17 masak eternaleye: but it's not about what _I_ want, but what the end user writes in her code.
08:18 masak sjohnson: \o
08:18 masak diakopter: I think your question about GGE::OPTable is something I've been wondering about too at times.
08:19 masak diakopter: can your question be reworded as 'what happens if I introduce operators B and C, both of which are declared as being looser (or tighter, but both the same) than operator A?'
08:19 masak diakopter: to me. it would seem that B and C get the same precedence, which is not necessarily what anyone wanted.
08:20 eternaleye masak: Well, the way I see it is this: either thet somehow manage to hobble along with manually unpacking @_^H^HI MEAN @positionals, or they can use named parameters
08:20 masak diakopter: this problem is all over the board: GGE, PGE, spec. haven't checked STD.pm.
08:20 masak eternaleye: not sure we're resonating on the same frequency yet... :)
08:21 iblechbot joined #perl6
08:21 eternaleye Alternately, decree that it's always named - after all, everything after the ? is in key-value form, no?
08:22 masak eternaleye: here's the case that kills us right now, and it's very innocent: user declares a normal closure, without any explicit params. page visitor sends request, which happens to contain two arguments. bam, instant death.
08:22 masak eternaleye: somehow, that feels too harsh.
08:22 eternaleye Hm, yeah
08:23 moritz_ .oO( die early, die often )
08:23 eternaleye Maybe make a testing-station that'll look over your work, try to run it, and give a friendly error?
08:24 masak moritz_: hm, that might be it.
08:24 masak moritz_: signature introspection considered smelly, but if we do it once, at declaration-time...
08:24 eternaleye like "Even if a page doesn't _need_ any parameters, someone might try to it some. Pleas put '*%args' in the signature of your subroutine."
08:25 masak eternaleye: actually, the number of required params is known by inspecting the pattern string sent in to the 'get' subroutine.
08:26 eternaleye masak: So then why would you have to introspect the sub to validate the splat? Use that, and if it doesn't fit right, throw up an error page with a suggestion
08:27 eternaleye No code smell!
08:27 masak eternaleye: aye, that'd be the way to go.
08:27 masak eternaleye: but introspection is still necessary.
08:27 mathw Morning
08:27 masak mathw: \o
08:27 eternaleye masak: Named vs positional?
08:27 sjohnson hi matt-w
08:27 masak eternaleye: unless I want to invoke the closure, which I don't.
08:28 eternaleye Ah.
08:28 eternaleye What does Astaire do with the closure?
08:28 masak eternaleye: not sure exactly what I'd have to introspect. if we throw nameds in, it'll be more complicated.
08:28 masak eternaleye: ok, so the closure is what'll be executed if the corresponding pattern matches a URI.
08:29 eternaleye Ah
08:29 masak eternaleye: the pattern may contain asterisks, which is what creates the arguments.
08:31 eternaleye One thing I like about Perl in general is that you spend more time deciding the prettiest way to solve a problem, rather than whether it is solvable or actually building the solution. I have to say that Perl 6 is definitely an improvement, which is super-awesome.
08:31 eternaleye (this discussion is a perfect example)
08:31 masak yes, well APIs matter.
08:32 masak s/well/well,/
08:34 sjohnson yeah for sure
08:35 mberends masak++: The 7 wonders of the ancient PGE and the code review are going to be fascinating.  Looking forward to them already! :-)
08:35 sjohnson perl == right brain programming.  in my opinion.  or synergy of both sides of ye olde brsainz
08:35 eternaleye joined #perl6
08:36 eternaleye Gah, segfaulted
08:38 eternaleye masak: No disagreement about APIs mattering. I'm just glad Perl gives us programmers enough time away from the other stuff to make them good APIs ;D
08:42 pure1111 joined #perl6
08:42 mathw sjohnson: Perl is a glorious dance between the two
08:42 diakopter masak: o hae
08:42 diakopter o
08:42 mathw oh hai?
08:43 diakopter latin ae
08:43 ejs joined #perl6
08:43 eternaleye diakopter: Were you looking for this? \o-æ
08:44 * diakopter stumbles onto _The_Monophthongization_of_Latin_ae_
08:44 mberends diakopter: greetings, fellow NIH sufferer ;)
08:45 meppl joined #perl6
08:45 diakopter mberends: hiya
08:46 mberends sry, afk & # class
08:46 diakopter it comes and goes, depending on my degree of confidence in my own capability/availability, as well as my assessment of the
08:46 diakopter yes
08:48 elmex joined #perl6
08:49 elmex joined #perl6
08:53 eternaleye moritz_: Looking at the pattern matching example in the book, it uses <word> \W <word> to matchg a duplicate word - won't that match any two words? I think the second should be a backref.
08:54 moritz_ it should be $<word>
08:54 eternaleye Oh dear, my eyes must be going.
08:55 eternaleye I'll go sleep now. Oyasuminasai!
08:55 xomas_ joined #perl6
08:56 moritz_ good night
08:57 JimmyZ joined #perl6
09:09 ejs1 joined #perl6
09:15 frettled So much for "eternal", eh?  ;)
09:16 gfx joined #perl6
09:18 moritz_ lasting forever, with interruptions :-)
09:20 diakopter rakudo: ubi
09:20 p6eval rakudo 7347ec: Could not find non-existent sub ubi␤in Main (file src/gen_setting.pm, line 324)␤
09:44 sjohnson frettled: :)
09:47 mberends he's frettling again ;)
09:49 jferrero joined #perl6
09:50 cognominal joined #perl6
09:51 payload joined #perl6
09:51 Su-Shee_ joined #perl6
10:00 frettled :)
10:04 ejs2 joined #perl6
10:05 justatheory joined #perl6
10:07 sjohnson perl!
10:18 frettled *perl*
10:19 cls_bsd _perl_
10:19 sjohnson _-=PERL=-_
10:22 ejs1 joined #perl6
10:26 frettled Tsk, tsk, looks like my blog post crashed the Iron Man planet, haha.
10:27 frettled Perhaps I should apply for inclusion in Planet Perl Six.  ;)
10:27 moritz_ I hate to disillusion you, but they are actually moving servers
10:27 frettled D'oh!
10:27 nsh joined #perl6
10:28 sbp joined #perl6
10:32 payload joined #perl6
10:51 ihrd joined #perl6
11:14 elmex joined #perl6
11:29 ihrd left #perl6
11:41 cotto joined #perl6
11:44 SmokeMachine joined #perl6
11:48 jnthn oh hzi
11:50 moritz_ I did some Perl 6 advertising on perlmonks :-) http://www.perlmonks.org/?node_id=809530
12:00 jnthn moritz_: Nice :-)
12:03 colomon_ joined #perl6
12:05 colomon_ joined #perl6
12:12 envi^home joined #perl6
12:13 jeremiah Shame that there is no pod in Test.pm
12:13 jeremiah I'll add some.
12:13 snearch joined #perl6
12:14 moritz_ maybe it's a feature
12:14 moritz_ Test.pm should use only very basic compiler features
12:14 moritz_ one can argue if pod parsing is basic
12:15 jeremiah But should it break the expectations that there is documentation if you want to use it?
12:15 moritz_ it should be part of the spec
12:15 moritz_ IMHO
12:15 jeremiah Being able to call perldoc on anythin that is *.pm is one of perl's strengths.
12:16 moritz_ jeremiah: ask pmichaud, it's his decision in the end
12:16 moritz_ I'm not strongly opposed
12:17 jeremiah okay, I'll ask him. :)
12:17 jeremiah So in your mind, Test.pm is not designed to be used like Test::More?
12:17 jeremiah Or Test::Simple?
12:17 moritz_ it is
12:17 moritz_ but it's also part of the language specification
12:18 jeremiah But then, why wouldn't it have a synopsis so that people know how to subclass and quickly see the API, etc.
12:18 moritz_ so we need testing spec at some point
12:18 moritz_ jeremiah: because nobody has written it so far
12:18 jeremiah ah :)
12:19 moritz_ I planned to, tried, reached too high, and gave up
12:19 jeremiah So I guess there is nothing that parses pod yet in perl6?
12:19 moritz_ rakudo parses enough of it to ignore it
12:19 jeremiah heh
12:19 moritz_ same for STD.pm i think
12:20 moritz_ but the Perl 6 POD spec is still in flux
12:20 jeremiah okay - that is starting to clear things up for me. :)
12:21 moritz_ so if I had the tuits to attack it right now, I'd just write the spec in Perl 5 POD, as most of the other synopsis are
12:22 jeremiah I would love to give a go, but I am not well versed enough to write the spec, so I think it would just be getting in the way.
12:22 jeremiah I'll lurk and when it becomes more static I'll start podding! :)
12:23 alanhaggai joined #perl6
12:23 moritz_ jeremiah: the spec wouldn't have to do much more than documenting the current state of Rakudo's Test.pm
12:23 jeremiah oh
12:23 moritz_ jeremiah: if you'd start writing that down, I'd review the commits for you
12:23 jeremiah That is kind of what I am reading right now
12:23 jeremiah Might as well give it a try
12:31 colomon_ joined #perl6
12:32 frettled moritz_: Heh, you got a nitpicky comment already
12:32 moritz_ frettled: yes. And a totally inappropriate one, IMHO
12:32 dalek joined #perl6
12:33 jeremiah I agree - that comment was off-putting
12:33 jeremiah moritz_: Excellent post on sorting BTW, thanks.
12:35 moritz_ jeremiah: thanks for the feedback
12:35 moritz_ I considered writing it as a separate meditation
12:41 ruoso joined #perl6
12:43 frettled moritz_: I was about to answer when I realized I'm not a Perl Monk, haha :D
12:43 moritz_ frettled: you can answer anonymously
12:43 frettled Ah
12:43 moritz_ (and I just answered too)
12:44 pmurias joined #perl6
12:45 pmurias ruoso: hi
12:46 pmurias ruoso: have you seen http://github.com/rakudo/rakudo/blob/ng/docs/metamodel.pod?
12:47 colomon_ joined #perl6
12:48 frettled moritz_: I dropped my answer, I realized that I couldn't find a way of putting it without a risk of provoking conflict.
12:48 frettled Your answer was very good, though.
12:51 moritz_ frettled: are you sure you submitted the post? I see no new post in that thread...
12:53 frettled moritz_: I'm sure I didn't submit a post.
12:53 moritz_ s/post/answer/
12:54 frettled With nothing positive to contribute, I thought it was better not to contribute. :)
12:54 moritz_ oh, I misread "dropped"
12:54 moritz_ I thought you dropped it in :-)
13:02 payload joined #perl6
13:12 takadonet joined #perl6
13:12 takadonet morning all
13:12 ruoso pmurias, hi.. yeah... I saw it...
13:26 mariano__ joined #perl6
13:28 pmurias joined #perl6
13:28 mathw oh hai
13:29 jnthn lolitsmathw
13:33 mathw omgitsjnthn!
13:35 iblechbot joined #perl6
13:36 colomon_ joined #perl6
13:36 jnthn mathw: It's not *so* shocking to discover me here, is it? ;-)
13:37 pmurias diakopter: is there a profiler for js?
13:37 colomon_ PerlJam: ping?
13:37 Wolfman2000 *yawn* morning
13:39 rjh joined #perl6
13:41 mathw jnthn: No, to be honest it's not shocking at all, but I'm rather bored and frustrated with work so I'm trying to inject some amusement into my life.
13:41 mathw As you can see, I'm having little success.
13:43 mberends mathw: when will you have that interview 140 miles away?
13:44 mathw mberends: A week today
13:44 mathw They sent me all the stuff about claiming back my travel costs. For some reason I have to fill in the forms in Swiss Francs
13:45 mathw Oh and because I have to get a train before 9.30 to get there in time, it's going to cost nearly a hundred pounds.
13:45 mberends Basingstoke, perhaps? There's a big Swiss insurer there.
13:45 colomon_ phenny: tell PerlJam I propose we do the Perl 6 Advent Calendar as a serious of blog posts linked to by a central blog post.  It's super-low-tech, but it's also super-simple and would allow for comments, which strikes me as pretty important.
13:46 phenny colomon_: I'll pass that on when PerlJam is around.
13:46 mathw mberends: Heh no it's in London
13:46 moritz_ colomon_: you can try the news blogs.perl.org for that :-)
13:46 mberends good, then we'll see each other in London from time to time
13:47 mathw Getting to Basingstoke would be quite a bit cheaper, I believe
13:47 mberends Basingstoke aka Boringstoke
13:47 mberends (used to live there)
13:49 colomon_ moritz_: does it actually work yet?  last I heard there were still kinks to be worked out.
13:50 moritz_ colomon_: should I ask the same about rakudo?
13:51 moritz_ :-)
13:52 mathw mberends: I have no desire to ever visit.
13:54 pmurias mathw: a train tickets costs nearly fifty pounds?
13:54 colomon_ moritz_: but we already have somewhat okay blogging engines.  we do not already have a better Perl 6 compiler than rakudo.
13:54 jnthn pmurias: Yes, really. And the train will probably be late too.
13:54 jnthn pmurias: UK sucks for railways.
13:55 moritz_ colomon_: I haven't found a "somewhat okay blogging engine" yet :(
13:55 mathw pmurias: Actually outbound is £65, because it's before 9.30am
13:55 mathw return is about £23
13:55 moritz_ but maybe our definitions of "somewhat okay" are different :-)
13:55 mathw and then there's a central London travelcard to get from St Pancras to the office
13:55 jnthn When I go to the UK next week, getting from airport => home will likely cost me something on the order of ~£50.
13:55 mathw Can do London for less, but only if you travel out of 'peak time'
13:56 mathw When I went the other week, I did both directions FIRST CLASS for just over £40
13:56 mathw The train pricing system is utterly insane
13:56 jnthn I'd prefer overall sensible pricing to occasional instances of "wow cheap" amongst ridiculously over-priced normal tickets.
13:57 mathw mmm
13:57 mathw Me too
13:57 mathw I can understand why it's cheaper if you buy a ticket that's only valid on the one train, as it helps them with their capacity planning
13:58 mathw But not that they change anything if they know it's going to be busy, because they don't have that flexibility
13:58 payload joined #perl6
13:58 mathw they can't just stick another carriage on the train :(
13:58 sfdsdffsd joined #perl6
13:58 mathw and of course if you're getting connections, that can be dangerous
13:59 mathw I end up spending a lot of time sitting aroun din stations. Good thing St Pancras has free wifi.
13:59 mathw jnthn: I can haz commit 4 lolsql?
14:00 Lorn joined #perl6
14:00 jnthn mathw: sure!
14:00 jnthn hugme: list projects
14:00 hugme jnthn: I know about book, gge, hugme, ilbot, json, november, nqp-rx, perl6-examples, proto, svg-matchdumper, svg-plot, temporal-flux-perl6syn, tufte, web
14:00 jnthn aww!
14:00 mathw and my github name is different, too
14:01 mathw I'm still mattw there
14:01 jnthn mathw: you can haz a commit bit!
14:02 jnthn mathw: be gud kitteh and not brajk bild, kplzthnx.
14:02 pmurias do you think we could drop the re- less mildew?
14:02 jnthn mathw: Add yourself to KITTEHS file too, kplzthnx.
14:02 pugs_svn r29196 | pmurias++ | [mildew-js] use Test works (for our simplified Test.pm)
14:03 * moritz_ should write a tutorial someday about adding projects to hugme
14:03 mathw jnthn: You can haz cheezburger
14:03 moritz_ or FAQ more likely
14:03 jeremiah bad kitteh brokeded build
14:03 pmurias hugme is a give a commit bit to everyone bot?
14:04 pmurias ruoso: do
14:04 moritz_ pmurias: it hands out github commit bits
14:04 pmurias do you think we could drop the re- less mildew?
14:04 colomon_ moritz_: no luck trying to get myself a blogs.perl.org account.
14:05 moritz_ hm
14:05 riffraff joined #perl6
14:05 colomon_ "Can't fork"
14:06 mathw jnthn: I think you forgot the KITTEHS file. I seem to be generating it from scratch.
14:08 ruoso pmurias, I think we could merge back both re-mildew and re-smop (and by merge back I mean rm $x; mv re-$x $x)
14:08 jnthn mathw: I maded one, but den I eated it. Sorry.
14:10 mathw jnthn: I make new 1
14:10 jnthn mathw: plz you can writez me entree 2?
14:11 jnthn mathw: Extolling my virtues and wot a gud kitteh I am?
14:11 jnthn ;-)
14:11 * jnthn noms his lunch, which sadly isn't a cheezburger
14:12 pugs_svn r29197 | pmurias++ | [mildew-js] &not,add passing tests to TESTS-js
14:17 ejs2 joined #perl6
14:18 pugs_svn r29198 | pmurias++ | re-smop and re-mildew is now smop and mildew, removed the old smop and mildew
14:19 pmurias ruoso: did the rename
14:21 colomon joined #perl6
14:21 ruoso pmurias, cool
14:25 kidd` joined #perl6
14:25 moritz_ somehow I found <?before> and <?after> always a bit confusing, because I have to visualize the direction in which the regex engine moves
14:25 Wolfman2000 <?before> and <?after>...backtrack and lookahead on regexes if I remember right.
14:25 moritz_ I'd rather call them <?look-left> and <?look-right>
14:25 Wolfman2000 Slight pain.
14:25 Wolfman2000 moritz_++: I kind of have to agree.
14:26 moritz_ otoh the matching direction inside a look-behind is reversed, so a look-left would look right
14:26 jnthn moritz_: What about matching right to left text? ;-)
14:26 mathw jnthn: I maed u a KITTEHS file. I no rite code yet.
14:26 quantumEd joined #perl6
14:27 moritz_ jnthn: the regex engine ignores text direction, thankfully :-)
14:27 jnthn :-)
14:27 moritz_ unless you explicitly ask for the bidi properties with assertions/char classes
14:27 jnthn mathw: I haz a happy that you committed it, not eated it.
14:29 Wolfman2000 moritz_: You've hosted repos on github before. Do I have to neccessarily include the Project URL when I create it on github?
14:29 jnthn Wolfman2000: No
14:29 Wolfman2000 thank you moritz_
14:30 jnthn ;-)
14:30 moritz_ that was jnthn++ akshually :-)
14:30 Wolfman2000 moritz_: well aware. Just poking fun.
14:31 mathw jnthn: I haz choklat for nom
14:33 jnthn mathw: Iz srsly purfect nom.
14:33 mathw :D
14:35 jeremiah "Honor celing cat of lolsql with menshun in README, kthnxbai."
14:35 jeremiah lulz
14:36 mathw I'm going to have to improve my lolspeak
14:37 Wolfman2000 http://github.com/wolfman2000/Perl-6-Pastebin/ We now have...a new Perl 6 project on github. Hopefully I won't blow this one up too badly.
14:37 * Wolfman2000 will add the remaining files shortly.
14:39 * mathw discovers, in the course of his research, the origins of 'do not want'
14:42 moritz_ do tell
14:43 jnthn iirc, wuz translashun FAIL of epic proporshun.
14:43 Wolfman2000 phenny: tell frew http://github.com/wolfman2000/Perl-6-Pastebin/
14:43 phenny Wolfman2000: I'll pass that on when frew is around.
14:45 jeremiah jnthn: I'm a wee bit scared that your lolcat powers are surpassing your native tongue.
14:46 mathw A Chinese bootleg DVD of Star Wars Episode 3 had English and Chinese subtitles
14:46 mathw Oddly, the English subtitles were a translation (a bad one) of the Chinese ones
14:46 moritz_ .oO( re-import )
14:46 mathw and "DO NOT WANT" was what ended up instead of "NOOOOOOOOOOOOOOOOOOOOOOO"
14:47 mathw The other thing Wikipedia feels is worth mentioning is that 'it seems' got translated to 'good elephant'
14:47 mathw So as jnthn says, translation fail of epic proporshun
14:50 Wolfman2000 ......NO!!! I lost my files!
14:51 beggars joined #perl6
14:52 Wolfman2000 moritz_: What sort of backups are avialable on feather? I may need one.
14:52 colomon mathw: I had no idea...
14:52 moritz_ Wolfman2000: daily, weekly iirc. But for that you have to ask Juerd
14:52 * moritz_ recommends git and public mirroring :-)
14:53 Wolfman2000 moritz_: I just ADDED git
14:53 Wolfman2000 I added a directory, but forgot there were big files in there.
14:53 moritz_ Wolfman2000: that's why i had a smiley at the end
14:53 Wolfman2000 So I checked the docs, and it said to do git reset --hard HEAD
14:53 JimmyZ joined #perl6
14:53 Wolfman2000 Well...it removed the directory instead of removing from git
14:54 Wolfman2000 phenny: tell Juerd I need /feather/jafelds/p6paste/P6Paste/root/* restored please...unless I get a miracle performed.
14:54 moritz_ if you added it to git before, then it's still in the index
14:54 phenny Wolfman2000: I'll pass that on when Juerd is around.
14:54 Wolfman2000 moritz_: I did not
14:54 Wolfman2000 I was adding a few files at a time
14:55 Wolfman2000 Basically, I have to restore an untracked file
14:55 Wolfman2000 or rather, untracked directory
14:57 Wolfman2000 phenny: tell Juerd nevermind...good commands to know: git fsck --lost-found, git read-tree <hash>, git checkout .
14:57 phenny Wolfman2000: I'll pass that on when Juerd is around.
14:59 jnthn .oO( from fsck git to git fsck )
14:59 Wolfman2000 jnthn: thank the #git room for recovering my data.
15:01 pugs_svn r29199 | pmurias++ | [mildew-js] &eval
15:03 pmurias ruoso: mildew-js passes all the tests mildew does (minus the ones for p5 interop), i'm not sure what do work on next
15:04 pmurias i'll do some cleanup/refactoring but i'm not sure if i should focus on updating to the current STD, CPANisation or none-glacial performance
15:08 ejs joined #perl6
15:08 Psyche^ joined #perl6
15:10 masak joined #perl6
15:11 jnthn masak! \o/
15:12 Wolfman2000 masak: http://github.com/wolfman2000/Perl-6-Pastebin  I'm adding to it.
15:12 masak oh hai, jnthn! \o/
15:12 frettled lolitsmasak!
15:12 frettled masak: I sent a mail reporting our missing blogs on Planet Perl Iron Man, just FYI.
15:12 masak Wolfman2000: cool. will have a closer look later.
15:13 masak frettled: missing blogs? oh, good.
15:13 masak frettled++
15:13 Wolfman2000 that also reminds me...did my code work on your smoke tests, or did I end up breaking something?
15:13 masak Wolfman2000: my smoke test smoked out two compile errors so far. :)
15:14 Wolfman2000 ...great: I did break it
15:14 masak hopefully tomorrow it'll compile. :P
15:15 Juerd .
15:15 phenny Juerd: 14:54Z <Wolfman2000> tell Juerd I need /feather/jafelds/p6paste/P6Paste/root/* restored please...unless I get a miracle performed.
15:15 phenny Juerd: 14:57Z <Wolfman2000> tell Juerd nevermind...good commands to know: git fsck --lost-found, git read-tree <hash>, git checkout .
15:15 pmurias re-mildew: say "hi"
15:15 Juerd Wolfman2000: You can just talk to me without the proxy if you like :)
15:15 Wolfman2000 Juerd: wasn't sure if you were here.
15:15 Juerd I'm always here, for some value of here
15:15 frettled Regarding Planet Perl Six, would it be possible to add my blog, but only with the posts that have the tag "Perl 6"?
15:16 Wolfman2000 Juerd: wasn't sure if you were active and awake here.
15:16 Juerd Now that's a little more complicated :)
15:16 frettled Juerd.activate
15:16 masak it usually is. :)
15:18 frettled Did I cause a core dump in Juerd?
15:19 Juerd .
15:19 moritz_ frettled: I think it is
15:20 moritz_ @seen obra_
15:20 lambdabot Unknown command, try @list
15:21 mathw frettled: if your blog engine can produce a feed for just that tag, then yes
15:21 moritz_ lambdabot--
15:21 Wolfman2000 @list
15:21 lambdabot http://code.haskell.org/lambdabot/COMMANDS
15:22 Wolfman2000 ...I can slap something?
15:22 Wolfman2000 @slap
15:22 * lambdabot slaps  with a slab of concrete
15:22 zloyrusskiy joined #perl6
15:22 Wolfman2000 @slap Windows 7
15:22 lambdabot Come on, let's all slap Windows 7
15:22 Wolfman2000 :)
15:22 masak @slap lambdabot
15:22 * lambdabot smacks lambdabot about with a large trout
15:22 masak now there's a sight.
15:23 frettled mathw: hmm.  I'm not sure what Blogger/Blogspot can and cannot do.  Hmm.
15:23 moritz_ http://howcaniexplainthis.blogspot.com/search/label/Perl%206 has an rss feed, but it's unfiltered
15:24 frettled mathw: for the Iron Man planet, the planet itself snarfs based on tags (and/or content)
15:24 moritz_ I guess it's possible
15:24 moritz_ $someone needs to write a mail to the perl.org admins and ask for it
15:25 SimonAW joined #perl6
15:25 SimonAW Hi everybody!
15:26 frettled moritz_: ahahaha.  :)
15:26 mathw SimonAW: oh hai
15:27 Wolfman2000 ...oh great. I'm hearing the pokémon theme on the TV in the family room due to the thanksgiving day parade
15:28 masak frettled: I liked your last blog post.
15:28 frettled masak: thanks!
15:28 SimonAW Blog post? Where?
15:28 jnthn ja mozem mat slovencinu!
15:28 * jnthn back later
15:28 masak SimonAW: http://howcaniexplainthis.blogspot.com/2009/11/morality-of-helping.html
15:29 * masak finds it amusing that both Slovenian and Slovakian have the same word for their language
15:29 * SimonAW is reading...
15:30 * frettled sent an email to the perl.org webmaster.
15:31 SimonAW Uh, "derision". We learned a new word today. :)
15:33 * moritz_ wonders if rindex and index should be unified
15:33 moritz_ and get a :backwards flag or so
15:34 masak moritz_: no, I don't think so.
15:34 Wolfman2000 ...huh? I get a free Wiki with my github?
15:34 moritz_ masak: why not?
15:34 moritz_ Wolfman2000: wiki and bug tracker
15:34 masak moritz_: because you're not solving a burning problem by doing so.
15:34 SimonAW Wolfman2000: And graphs!
15:34 masak moritz_: and you're actually confusing the API for seasoned programmers.
15:35 SimonAW Wolfman2000: And user/project homepages.
15:35 Wolfman2000 SimonAW: alright, I get the point.
15:35 Wolfman2000 github includes a lot for free.
15:35 moritz_ masak: we're doing the same for system/run, exec/runinstead and other unix-inspired functions
15:35 SimonAW Wolfman2000: Ya, unless you want private repos.
15:35 masak moritz_: that is true.
15:35 Wolfman2000 Anyway, feel free to contribute to/steal from the pastebin (looking at you masak).
15:35 masak moritz_: and rindex is quite a strange name.
15:35 Wolfman2000 SimonAW: This pastebin...would work best if everyone had a chance to contribute. I approached this issue wrong in the first place.
15:35 masak Wolfman2000: oh, I feel free. :)
15:36 moritz_ I also find index() quite strange
15:36 moritz_ index-of()?
15:36 masak moritz_: as a sub, yes.
15:37 frew_ joined #perl6
15:37 moritz_ masak: but you're right, it's not a burning problem... moving most builtins to a role is much more burning, IMHO
15:37 moritz_ there are other design smell areas
15:37 moritz_ like %hash{$item}:delete and :exists
15:37 masak moritz_: please elaborate on the moving builtins to a role part.
15:37 moritz_ ok
15:38 moritz_ masak: it's something I suggested last week... currently there are hundreds of methods in Any
15:38 moritz_ like .Str, .sin, .Num, .join, .split etc
15:38 masak nod.
15:38 moritz_ and I don't like that
15:38 masak that is a problem.
15:39 moritz_ because it means that if you write classes on your own, they'll have lots of baggage you're not interested in
15:39 masak oh, true.
15:39 moritz_ so I thought of putting most of these methods into a role, let's call it Base (even though it's a bad name)
15:39 masak .oO( Tenor )
15:39 moritz_ and all builtin types (except Any, Mu, junction, and maybe Failure) implement that role
15:40 moritz_ so "45".sin continues to work
15:40 masak I like it!
15:40 moritz_ and everybod who writes a class or role that wants to behave like a builtin can also implement that role
15:40 masak is it immediate that there should only be one such role?
15:40 moritz_ no
15:41 moritz_ if you don't implement that role, $yourObject.sin() will tell you there's no sin() method
15:41 mberends Wolfman2000: github encourages everyone to contribute by making their own clones of your repository, adding their own stuff, and making it easy for you to merge that back into your version. very democratic :-)
15:41 moritz_ and sin($yourObject) will likely telly you that it can't coerce to Numeric
15:42 moritz_ then I discussed with pmichaud++ if the Any-list methods should live in Any or in Base
15:42 Gorbad joined #perl6
15:42 moritz_ we agreed that it's an open problem, but I don't think we found a good answer
15:43 masak nod.
15:43 moritz_ I think I tended to Base, pmichaud to Any
15:43 masak very good ideas. I will think about them a bit myself.
15:43 frettled moritz_: crikey, that's clever
15:44 ejs joined #perl6
15:44 moritz_ frettled: thanks
15:45 frettled I especially like the bit about making it easy to implement classes or roles that behave like built-ins.
15:45 payload joined #perl6
15:45 frettled That opens up for some really powerful manipulations, and I know that there are some clever people who will find a way to make useful use of that.
15:47 moritz_ well, with the current design it's even easier to implement built-in-like types
15:48 moritz_ but it's hard to implement non-built-in-like types :-)
15:48 frettled heh
15:52 moritz_ anyway, I'm glad that others also perceive the high number of methods in Any as a problem, and don't reject my idea outright :-)
15:53 moritz_ the question is: mail to p6l, and risk endless bikeshed wars and type theory discussion?
15:53 frettled It's been a while, hasn't it?  :D
15:54 masak moritz_: there's usually some nice fallout even from the p6l discussions.
15:54 masak just a lot of FP and math noise.
15:55 am0c joined #perl6
15:55 moritz_ math noise :-)
15:56 masak yeah. I don't wish to single anyone out, but things like "in math, we mean this when we chain XOR ops".
15:56 frew__ joined #perl6
15:57 Wolfman2000 ...how many nicknames do you have frew__?
15:57 moritz_ I know what you mean. I'm just amused, because usually math is considered the area with the least noise
15:57 frettled My $deity, I think I've just run into all that's wrong with perl -MCPAN.  I just wanted to upgrade a bit, and I'm stuck in a twisty little maze of compilation, testing, wait wait wait, oh, hello there, this one depends on that, do you want to?  yes.  compile, test, wait wait wait, lather, rinse repeat.
15:57 masak moritz_: surely not. math has several types of noise. :)
15:58 moritz_ frettled: I know that. Sometimes everything works straight, and sometimes you're in that maze
15:58 frettled I just wish it could tell me about the dependencies first, so that I could consider my options then, rather than having to either answer yes to each one, or yes to all. :)
15:58 moritz_ I've never found out why it's so different
15:58 moritz_ frettled: there's an environment variable to surpress all these questions, but I can't remember which one :/
15:59 frettled My guess is that it doesn't have a way of checking dependencies until it's downloaded the package it tries to install.
15:59 moritz_ maybe with google-fu you can find it
15:59 masak rakudo: class A {}; class B {}; subset C of A & B; say C ~~ A; say C ~~ B
15:59 frettled Suppressing the questions isn't desirable when I want to know whether I will be replacing already installed packages or not.
15:59 p6eval rakudo 7347ec:  ( no output )
15:59 masak locally, that gives 1\n0\n
15:59 moritz_ std: class A {}; class B {}; subset C of A & B; say C ~~ A; say C ~~ B
15:59 p6eval std 29199: ok 00:01 106m␤
15:59 frettled For instance, there's quite a bunch of CPAN modules that change behaviour in a non-compatible manner from minor version to minor version (or patch level to patch level).
15:59 moritz_ masak: everything that declares a new class amesk p6eval time out
16:00 * masak submits rakudobug
16:00 masak moritz_: wonder why.
16:00 frettled The reason I'm whining here, is that I think this needs to be taken into account with $perl6_packaging :)
16:00 masak rakudo: subset C of Str & Int; say C ~~ Str; say C ~~ Int
16:00 zaslon lolmasakhazblogged! masak++ 'Failure()<0xb50bde20>': Failure()<0xb50bd394>
16:00 moritz_ masak: no idea. If you find out, your my hero
16:00 masak zaslon: no, I haven't.
16:00 zaslon Sorry, I don't understand that command
16:00 p6eval rakudo 7347ec:  ( no output )
16:00 frettled masak: what failure?  *read*
16:01 masak frettled: zaslon is lying.
16:01 masak but feel free to read my blog. :)
16:01 frettled masak: damn you, zaslon!  :D
16:01 frettled masak: yeah, I read it yesterday :D
16:01 masak all of it? :)
16:02 kaare joined #perl6
16:03 masak ah! the 'subset' syntax only expects exactly one term.
16:03 masak that explains the strange output from the first one-liner.
16:03 zaslon lolmasakhazblogged! masak++ 'November 25 2009 -- you guys can be on our team': http://use.perl.org/~masak/journal/39947?from=rss
16:03 masak rakudo: subset C of (Str & Int); say C ~~ Str; say C ~~ Int
16:03 frettled masak: I'm a returning reader :D
16:03 p6eval rakudo 7347ec: Confused at line 2, near "of (Str & "␤in Main (file <unknown>, line <unknown>)␤
16:04 masak frettled: cool. :)
16:04 moritz_ rakudo: subset C of Str where Int; say C ~~ Str; say C ~~ Int
16:04 frettled masak: even if the Perl-ish topic doesn't interest me, I always read the snippet of history.
16:04 p6eval rakudo 7347ec:  ( no output )
16:04 masak frettled: that's the idea. :)
16:05 moritz_ masak: subsets are basically a nominal type + constraints, I don't think you can make a symmetric, conjunctive type of two other types
16:06 masak moritz_: no, probably not.
16:07 masak moritz_: wait. it depends. for roles, it shouldn't be a problem.
16:07 masak actually, now I don't see the problem at all.
16:07 masak the nominal part happens to be an and-junction.
16:07 frettled masak: We're back in (on?) the Iron Man planet!
16:08 perigrin joined #perl6
16:08 masak frettled: \o/
16:14 zloyrusskiy joined #perl6
16:15 moritz_ masak: if the nominal part is an and-junction, all non-junction types don't conform to it
16:17 masak how do you figure that?
16:17 masak the junction is just a shorthand for 'both of these' or 'neither of these'.
16:18 masak moritz_: that's how they're used in signatures, for example.
16:19 moritz_ masak: S12:1002
16:19 moritz_ it shows by example that a subset is a *type* plus a constraint
16:19 moritz_ and A&B is not a type. It's a value.
16:20 masak I'm not sure I'm convinced by that.
16:20 masak STD does parse junctions in that place.
16:20 moritz_ I don't need to convince you, it's enough that I'm right :-)
16:20 masak yes, of course.
16:21 masak but I'm not sure you are. :P
16:21 moritz_ :-)
16:21 * moritz_ is pretty sure that jnthn would jump on TimToady's head if he introduced nominal junctional types
16:22 masak uh, post 6.0.0.
16:23 moritz_ everything is fair if you postpone it after 6.0.0 :-)
16:24 masak yeah, we're going to miraculously solve a whole bunch of non-trivial problems after the 6.0.0 release. :)
16:24 masak and by 'we', I mean jnthn.
16:25 masak :P
16:28 moritz_ :-)
16:30 ejs joined #perl6
16:32 mico joined #perl6
16:33 kst joined #perl6
16:34 frettled moritz_: I now have a vivid image of jnthn jumping up and down on a slightly crouched TimToady.  With his hat on.  Thank you.
16:34 Wolfman2000 ...that doesn't sound like a good image
16:35 moritz_ frettled: you're welcome :-)
16:35 frettled I think it might be funny, you just have to imagine jnthn as a cartoon character.
16:36 frettled Just imagine jnthn as Joe Dalton (of the Dalton brothers in Lucky Luke), jumping on a hat, except that the hat is on TimToady's head.
16:36 frettled :D
16:36 frettled TimToady starring as Everett Dalton, of course.
16:37 frettled Sorry, Averell Dalton.
16:37 pmichaud good morning, #perl6, and Happy Thanksgiving
16:37 Wolfman2000 morning
16:37 moritz_ good localtime
16:38 nihiliad joined #perl6
16:38 moritz_ and happy $holiday to you!
16:38 * pmichaud goes to read backscroll (on perl6.de)
16:38 frettled pmichaud: On a different channel, there was some annoyance regarding the US tradition seeping into Norwegian culture, where it doesn't belong, so I suggested that they celebrate the first thursday on or after my birthday instead.
16:38 frettled Happily, the two dates coincide perfectly.
16:39 frettled It's easy to remember, too: RIP JFK + 9 years.  :D
16:39 moritz_ ... supposing you remember RIP
16:39 moritz_ *RIP JFK
16:39 frettled yeah, there's that.
16:39 TimToady JFK...wasn't he the dude that died the same day C.S. Lewis did?
16:39 frettled I can ask people to recall the massacre in Munich instead, perhaps.
16:40 moritz_ the ones at the Olympic Games?
16:40 frettled TimToady: indeed!
16:40 frettled moritz_: yup
16:41 moritz_ due to cultural coinage that's more present to me than JFK's death
16:41 frettled TimToady: I think you may have solved the motive behind JFK's murder: the murderer was obviously distraught learning about C.S. Lewis's death, and had to do something about his inner conflict and frustration.
16:42 mico joined #perl6
16:42 moritz_ pmichaud: backscroll on perl6.de? what did I miss?
16:46 iblechbot joined #perl6
16:49 pmichaud sorry, perlgeek.de
16:55 pmichaud given that I live just a few miles from Dealey Plaza (where JFK was shot...)
17:02 jeremiah So are you saying that were on the Grassy Knoll?
17:03 pmichaud no, I'm not saying that :)
17:03 jeremiah heh
17:03 TimToady but you'll notice he's not denying it either...
17:04 jeremiah aha!
17:04 jeremiah Let's say I was giong to add pod to Test.pm that one can find in Rakudo.
17:04 jeremiah Would there be other sources I might cannibalize?
17:05 jeremiah And by sources I mean sources of documentation.
17:13 jnthn oh hai I@m back
17:14 jnthn Gee, I go studdy $impossible-language, and come back and find I got volunteered to solve hard problems? :-P
17:15 jnthn pmichaud: Happy Thanksgiving!
17:21 cdarroch joined #perl6
17:44 zloyrusskiy joined #perl6
17:50 jan_ joined #perl6
18:02 jeremiah After doing a 'make install' it looks like rakudo creates a binary called perl6 in parrot_install/bin/
18:03 jeremiah Is this the one I should add to my PATH?
18:03 jeremiah Or is it just okay to use the one that ends up in the rakudo dir?
18:03 [particle]1 joined #perl6
18:03 moritz_ you should use the installed one
18:04 jeremiah Thanks moritz_!
18:05 ng_feed rakudo-ng: moritz++
18:05 ng_feed rakudo-ng: [README] small clarification for jeremiah++
18:06 pmurias joined #perl6
18:07 nihiliad joined #perl6
18:07 ruoso joined #perl6
18:08 payload joined #perl6
18:14 cognominal joined #perl6
18:17 pmichaud the two binaries should be identical
18:21 moritz_ then it's not wrong to point to the installed one :-)
18:28 pmichaud correct!
18:30 Wolfman2000 moritz_: ...I think I messed up my git repo now. I can push to it, but I can't pull. Probably have to configure something first.
18:31 jeremiah So I did this:
18:31 jeremiah jeremiah@debian:~/code/perl/rakudo find . -name perl6 -type f -exec ls -l {} \;
18:31 jeremiah and got back this:
18:31 jeremiah -rwxr-xr-x 1 jeremiah jeremiah 5787729 Nov 26 15:15 ./perl6
18:31 jeremiah -rwxr-xr-x 1 jeremiah jeremiah 5787729 Nov 26 18:01 ./parrot_install/bin/perl6
18:32 jeremiah Which leads me to believe that the binaries are the same, the one in . is built first and then copied to parrot_install/bin/
18:33 pmichaud that would be correct
18:33 pmichaud could use "cmp" to find out if they're identical.
18:33 pmichaud cmp perl6 parrot_install/bin/perl6
18:48 eternaleye joined #perl6
18:48 nihiliad joined #perl6
18:57 dukeleto jnthn: i haz forked ur lolsql repo. i can haz commit bit?
18:58 * Wolfman2000 seriously wonders who users lolsql in production code
19:00 dukeleto has anybody written a test harness in perl 6 yet?
19:00 dukeleto i have a test harness in NQP, but that assumes that it is a parrot-based perl 6. we need a test harness in perl 6 that is implementation-agnostic
19:02 jnthn dukeleto: oh hai...u haz a commit bit.
19:02 jnthn dukeleto: be gud kitteh
19:02 dukeleto jnthn: i iz making u a test suite
19:02 jnthn dukeleto: remember to fork is WIN but to knife is DO NOT WANT. Srsly.
19:03 * dukeleto iz guuuud kitteh
19:03 jnthn dukeleto: omg test suite FTW!
19:05 dukeleto jnthn: we needz a test harness in perl 6
19:05 * dukeleto may write one now unless someone stops me
19:06 mikehh joined #perl6
19:12 cognominal jnthn, is that sort of a spoonerism?
19:20 arnsholt cognominal: No, I think it's more a mixing of metaphors I think
19:21 arnsholt A spoonerism is when I say "my knucking fees" when my knees hurt
19:22 arnsholt Heh, and have some extra thinks. I think I brained my damage (which may be a spoonerism as well)
19:22 cognominal yea, I know that, but I could not resist   fork, knife then spoon  :)
19:23 arnsholt Oh, riiiight. I missed that pun ^^
19:24 cognominal i should add smileys when I act silly
19:24 dalek joined #perl6
19:27 ivantis joined #perl6
19:27 ivantis whats this about google wave
19:29 meteorjay joined #perl6
19:31 ivantis left #perl6
19:36 cognominal Apparently,  I am in good company according to the wikipedia "As complements to spoonerism, Douglas Hofstadter used the nonce terms kniferism and forkerism..."
19:38 perigrin heh
19:42 alanhaggai joined #perl6
19:56 kst joined #perl6
19:57 colomon joined #perl6
20:25 meppl joined #perl6
20:26 japhb nqp: sub test_try() {␤try  { say("Hi there."); }␤if 1 { say("Ho there."); }␤}
20:26 p6eval nqp: Unable to parse blockoid, couldn't find final '}' at line 2␤current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1652 (src/Regex/Cursor-builtins.pir:179)␤
20:26 japhb nqp: sub test_try() {␤try  { say("Hi there."); };␤if 1 { say("Ho there."); }␤}
20:26 p6eval nqp:  ( no output )
20:27 japhb Tene, pmichaud: try { } parsing bug above; requires trailing ; after block that should not be necessary.
20:31 mathw There's a conspiracy to stop me buying my train tickets
20:33 TimToady rakudo: say Mu
20:33 p6eval rakudo 7347ec: Could not find non-existent sub Mu␤in Main (file src/gen_setting.pm, line 324)␤
20:34 jeremiah What does Mu du?
20:34 TimToady Mu is the unification of Object and undef
20:34 jeremiah wow, zen like
20:35 jeremiah The sound of one object undeffing.
20:35 TimToady rakudo: say Nil
20:35 p6eval rakudo 7347ec: Nil()␤
20:35 jeremiah So the point is to have a keyword that is more 'nothing' that undef
20:35 jeremiah ?
20:36 TimToady there is no undef
20:36 jeremiah s/that/than/
20:36 TimToady std: undef
20:36 p6eval std 29199: [31m===[0mSORRY![31m===[0m␤Obsolete use of undef as a value; instead, in Perl 6 please use the most appropriate of:␤       Mu (the "most undefined" type object),␤   a more specific undefined type object such as Int,␤       Nil as an empty list,␤    *.notdef as a matcher or method,␤
20:36 p6eval ..Any:U as a type con…
20:36 jeremiah ah okoay.
20:37 TimToady std: Object
20:37 p6eval std 29199: [31m===[0mSORRY![31m===[0m␤Obsolete use of Object; instead, in Perl 6 please use Mu as the "most universal" object type at /tmp/zo4iEnL7kB line 1:␤------> [32mObject[33m⏏[31m<EOL>[0m␤FAILED 00:01 103m␤
20:37 jeremiah ah, so you have an undefined Int, but Mu is an undefined undefined?
20:38 mathw Mu is the type at the base of the tree
20:38 jeremiah okay.
20:39 cognominal Is it what the type theorists call the bottom type?
20:39 TimToady not exactly
20:40 TimToady type theorists don't derive all their types from bottom, but derive bottom from all types (I think)
20:40 cognominal I preach the false to know the truth :)
20:40 TimToady in a sense Mu serves contextually as both top and bototm
20:40 TimToady *bottom
20:41 * cognominal is confused
20:41 mathw bottom doesn't really live in the hierarchy... it's just sort of over there somewhere
20:42 mathw when I was a postgrad I always felt it was just sort of the value that can never be
20:42 TimToady it's a kind of singularity that shouldn't be naked :)
20:42 TimToady so no bare bottoms in Perl 6
20:42 cognominal they say that bottom is a type with no value
20:42 mathw cognominal: mmm but it's not the same as the empty type
20:43 TimToady we have Nil, which is supposed to be the non-existent value, kinda
20:43 TimToady but it's not a type
20:43 jeremiah The type that cannot speak its name.
20:43 TimToady well, not supposed to be, but rakudo still has it that way
20:44 TimToady rakudo: say ()
20:44 p6eval rakudo 7347ec: ␤
20:44 * cognominal read the diffs about Mu, but probably need to read it in context  in the synopses
20:45 TimToady undef has been defined as Object for some time, but having two terms was continually confusing people into using undef in places where it makes no sense to use Object
20:45 iblechbot joined #perl6
20:45 TimToady $x ~~ Object should always be true, for instance
20:46 TimToady which is why all the .t files that had $x ~~ undef now just say $x.notdef
20:47 cognominal TimToady, btw, S02 mentions the class Widget twice without ever saying what it is
20:47 cognominal no mention of it in other synopses too
20:50 mikehh joined #perl6
20:50 nihiliad joined #perl6
20:53 TimToady widgets: http://www.perl.com/2003/07/16/graphics/slide72.jpg
20:59 Khisanth hmm the bot is outputting ascii color codes
20:59 Khisanth err ansi
21:01 TimToady that's what ansi color codes are for: outputting  :)
21:02 TimToady they don't work too well bofore that
21:02 TimToady *before, even
21:02 TimToady today I am *thankful* for ansi color codes.  :)
21:06 hanekomu_ joined #perl6
21:06 TimToady ...even if they are kind of a turkey...
21:07 japhb I don't think I can gobble down too many more of these puns.
21:08 TimToady too stuffed to wattle, are you?
21:10 cognominal TimToady,  I am curious to know if  :=  can be made to bind to a subpart of an object  using types  # my XMLClass @class := $xmlnode
21:11 cognominal not sure what should happen if someone affect ather class attributes to the node in that example
21:12 cognominal I mean I know what should happen but not what will happen.
21:12 TimToady note that "my XMLClass @class" means each element of @class returns an XMLClass
21:13 mikehh joined #perl6
21:13 cognominal yes it happens that the class xml attributes is special in that it can contains many value. Also I am already vieving it as an array but it is really a string...
21:14 jnthn If it does Positional then it can be bound, I guess.
21:14 jnthn Well, in that case does Positional[XMLClass]
21:14 cognominal I guess I am asking too many thing at once... view, binding.
21:15 jnthn (Or if I really wnat to be precise, does Positional[T] where T ~~ XMLClass :-))
21:16 cognominal I think haskell has a concept of view, but I did not understood it.
21:16 kst joined #perl6
21:16 quantumEd there's a couple different interpretations of view
21:19 mariano__ joined #perl6
21:20 eternaleye joined #perl6
21:21 SmokeMachine joined #perl6
21:26 zaslon lolmasakhazblogged! masak++ 'November 26 2009 -- all is fair if you're rewriting Time': http://use.perl.org/~masak/journal/39951?from=rss
21:32 frettled phenny: tell masak Coup d'etat?  masak++ :D
21:33 phenny frettled: I'll pass that on when masak is around.
21:34 dukelet0 joined #perl6
21:49 sjohnson y0
21:52 colomon joined #perl6
21:53 colomon hai
21:55 jeremiah So declaring 'module' at the top of a script is like declaring 'Package' in perl 5?
21:56 moritz_ not quite, but I'm not able to remember the difference :/
21:57 jeremiah heh
21:57 jeremiah Well, then it probably will work for me.
21:57 moritz_ Perl 6 also has a "package" statement
21:58 jeremiah I should look in the perl 6 book I have here somewhere.
21:58 IllvilJa joined #perl6
21:58 moritz_ but so far I've used only classes, roles, grammars and modules
22:00 jnthn It may be that packages really are just namespaces, whereas modules may carry version information and so forth.
22:01 jeremiah ah
22:01 jeremiah The perl 6 book 2nd ed. mendtions modules in the index, but doesn't really describe the keyword much.
22:07 justatheory joined #perl6
22:09 jeremiah BTW, does anyone use a perl6 emacs syntax highlighting mode?
22:09 eternaleye jeremiah: Is that Perl 6 and Parrot Essentials? If so, it's really, _really_ out of date and potentially incorrect
22:09 jeremiah eternaleye: Yup
22:09 eternaleye jeremiah: one sec while I track down the .el for you
22:09 jeremiah There is one?!
22:09 jeremiah w00t
22:10 eternaleye http://svn.pugscode.org/pugs/util/cperl-mode.el
22:10 jeremiah So is it not worthwhile to read the Perl 6 adn Parrot book?
22:10 jaldhar joined #perl6
22:10 jeremiah eternaleye: Schweet! Thanks.
22:11 eternaleye jeremiah: Probably not. But if you go to perl6.org, it has liks to the authoritative spec. And rakudo.org has a link to the text of an in-progress book by several people in this channel.
22:11 jeremiah oh, okay.
22:12 jeremiah I've seen some of the spec, but I like the pace of a book a little more.
22:12 jeremiah I'll check out those links
22:13 jeremiah Wow, there is the perl 6 book on the front page. Cool.
22:13 eternaleye jeremiah: Do you know Perl 5?
22:13 jeremiah Yuppers.
22:14 eternaleye If so, you might like the Perl 5-to-6 tutorial moritz++ did a while back; it's listed under "docs" on perl6.org
22:14 jeremiah okay, I'll look at that.
22:14 eternaleye Series of well-written blog posts
22:14 jnthn jeremiah: You starting to learn Perl 6? :-)
22:14 jeremiah Just saw a great presentation by jnthn this weekend which I really liked too.
22:14 jeremiah oops.
22:14 eternaleye lol
22:14 jeremiah Speak of the lolcat and he shall appear
22:14 jnthn OH HAI
22:14 jnthn :-)
22:15 jeremiah <o/
22:15 eternaleye rakudo: say "Iz in ur evalbot, runnin ur code"
22:15 p6eval rakudo 7347ec: Iz in ur evalbot, runnin ur code␤
22:15 jeremiah Gave you a proper sized head this time.
22:15 jeremiah heh
22:16 sjohnson rakudo: if (-f '/bin/ls') { print "[$_]"; }
22:16 p6eval rakudo 7347ec: Could not find non-existent sub f␤in Main (file src/gen_setting.pm, line 324)␤
22:16 eternaleye jnthn: BTW, in -ng, should the series operator with no RHS be defined as having Nil on the right of an infix, or as a postfix?
22:17 moritz_ std: 1 ...
22:17 p6eval std 29199: [31m===[0mSORRY![31m===[0m␤Bogus statement at /tmp/pwqoAC8KE2 line 1 (EOF):␤------> [32m1 ...[33m⏏[31m<EOL>[0m␤    expecting any of:␤        prefix or term␤   standard stopper␤ term␤   terminator␤       whitespace␤FAILED 00:01 106m␤
22:17 moritz_ I think parse error :-)
22:17 eternaleye rakudo:  if '/bin/ls'.IO.f { say "We haz listing, cap'n!"; }
22:18 p6eval rakudo 7347ec: Method 'IO' not found for invocant of class 'Str'␤in Main (file src/gen_setting.pm, line 324)␤
22:18 pmurias joined #perl6
22:18 sjohnson are the sh-like -f -x -r etc switches present in p6?
22:18 eternaleye Hm. Then it hasn't caught up to the spec there
22:18 sjohnson aka happyswitches
22:18 moritz_ rakudo: say ?( '/bin/ls/ ~~ :f)
22:18 eternaleye sjohnson: See my translation above
22:18 p6eval rakudo 7347ec: say requires an argument at line 2, near " ?( '/bin/"␤in Main (file src/gen_setting.pm, line 2593)␤
22:18 moritz_ rakudo: say ?( '/bin/ls/' ~~ :f)
22:18 p6eval rakudo 7347ec: 0␤
22:21 eternaleye The way moritz_ is doing it is how it was specced for a while, but the underpinnings fit poorly with the overall design. It was changed so the file tests are methods on IO objects, and use can get an IO object from a path string by calling .IO. Also, smartmatch ( ~~, that is) with a colonpair (like :f) on the right calls the method with the name of the key (.f method)
22:21 eternaleye Rakudo is still a step behind the specification, though
22:21 zaslon lolmasakhazblogged! masak++ 'Failure()<0xb50a225c>': Failure()<0xb50a1708>
22:22 moritz_ there aren't enough pmichauds and jnthns to keep up with all these spec changes :(
22:22 astrojp joined #perl6
22:24 zaslon lolmasakhazblogged! masak++ 'November 26 2009 -- all is fair if you're rewriting Time': http://use.perl.org/~masak/journal/39951?from=rss
22:25 eternaleye ng: .say for 1,3,5 ... *;
22:25 p6eval ng 273a35: Confused at line 1, near "for 1,3,5 "␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
22:25 eternaleye rakudo: .say for 1,3,5 ... *;
22:25 p6eval rakudo 7347ec: Sorry, lazy lists and infinite ranges are not yet implemented␤in sub
22:26 eternaleye jnthn: I know you've got lazy lists and operators-in-setting working in NG. What would be required to make a lazy ... operator in NG?
22:27 Tene ng: say (1,3,5 ... *)
22:27 p6eval ng 273a35: Confused at line 1, near "say (1,3,5"␤current instr.: 'perl6;HLL;Grammar;panic' pc 519 (src/stage0/HLL-s0.pir:336)␤
22:27 eternaleye Tene: It doesn't seem to have infix:<...> yet
22:27 Tene eternaleye: last I heard, lazy isn't done right in ng, needs a rework
22:27 jeremiah rakudo: use Test; plan 1; my $x = "test"; ok($x == "test");
22:27 eternaleye ouch
22:27 p6eval rakudo 7347ec:  ( no output )
22:28 Tene I'm waiting on lazy rewrite in ng for lazy gather/take
22:28 jeremiah hmm
22:28 sjohnson thanks guys
22:28 Tene jeremiah: use 'eq' instead
22:28 jeremiah rakudo: use Test; plan 1; my $x = "test"; ok($x eq "test");
22:28 Tene $x eq "test"
22:28 jeremiah Tene: Thanks :)
22:28 p6eval rakudo 7347ec:  ( no output )
22:29 Tene also, is($x, "test")
22:29 eternaleye Timeout, I bet
22:29 jnthn eternaleye: (series) I didn't fully grok the series operator myself yet.
22:29 jeremiah So, in this case, the "is" has nothing to do with class attributes.
22:30 jnthn eternaleye: Also, I think some of the lazy primitives are still kinda in flux.
22:30 eternaleye jnthn: I just need to know whether I can take a list and attach code that will be run when more is needed, and how to do it. The series operator makes perfect sense to me.
22:30 jnthn eternaleye: That sounds like something you'd maybe want to do with gather/take.
22:31 eternaleye jnthn: Quite likely the best way, yes. OTOH, gather/take isn't written yet.
22:31 jnthn eternaleye: That or return something that can serve as an iterator, and will run the code when asked to produce more values.
22:31 jeremiah rakudo: use Test; plan 1; my $x = "test"; is($x, "test", 'works');
22:31 Tene eternaleye: if you can implement it in terms of gather/take, it will magically become lazy later.
22:31 p6eval rakudo 7347ec:  ( no output )
22:32 Tene eternaleye: gather/take works now, but isn't lazy
22:32 eternaleye jnthn: If I were going to implement it in the setting, how could I make it act like an iterator?
22:32 colomon eternaleye: either want to use gather / take or write your own iterator.
22:33 jnthn eternaleye: I'm not sure that interface is defiend sufficiently yet.
22:33 colomon If you look at ng's src/core/Range.pm you get the basic idea -- but that's not going to be the final syntax for iterators (and it doesn't work, either).
22:33 eternaleye colomon: Thanks
22:33 colomon (I wrote it to the spec'd Iterator interface, which ng doesn't support.)
22:33 jnthn eternaleye: I think it's probably just a bit too soon to do that in ng.
22:33 jnthn eternaleye: I know pmichaud++ is thinking about all of that lot though and working on it.
22:34 colomon I've been figuring on taking a shot at ... as soon as Iterators land.
22:34 jnthn Yeah. Until we know exactly what the iterator API looks like though...
22:34 moritz_ colomon: did you attack split already?
22:34 jnthn ...it's kinda hard to do those.
22:35 colomon moritz_: no, just thought about it.  It needs laziness too, of course....
22:35 moritz_ i might give it a shot tonight
22:36 * colomon is chomping at the bit for Iterators, because lazy ranges / series will help a lot with cool numeric programming -- not to mention lots of spectests.
22:37 colomon moritz_: I've got $work and the in-laws over for the holiday, but would certainly like to kibbutz / cheer you on with split.
22:38 * cognominal discovers the term pir::op to include an arbitrary pir opcode in  the abstract syntax tree, that's way cool
22:39 colomon cognominal: oh yeah, it's made it very easy to interface p6 code to pir.
22:43 cognominal that's a feature that is exercising so many things that's my head spins.
22:46 jnthn jeremiah: You can haz a happy; I uploaded the slides.
22:46 jnthn jeremiah: http://www.jnthn.net/articles.shtml
22:46 cognominal jnthn, I am happy too
22:47 jnthn Looks like I gave 15 Perl 6 related talks this year. :-)
22:47 jnthn Spread over 9 different countries.
22:48 jnthn And 2 different continents.
22:48 cognominal 'pir::' $<op>=[\w+] <args>?  # \w+ is a quantified atom so I suppose that the [ ] are optionnal this year
22:48 colomon "Latvia is the 33rd country I have visited so far." -- no wonder Rakudo is taking so long!   ;)
22:48 jeremiah w00t!
22:48 jeremiah Thanks jnthn!
22:48 jnthn No, 10 countries.
22:48 moritz_ cognominal: I'm not sure about the relative precedence of = and +
22:49 moritz_ without the brackets it might get parsed as [$<op>=\w]+
22:49 jnthn colomon: :-P
22:49 jnthn colomon: Well, it keeps me motivated. :-)
22:49 cognominal I see :  S05-regex.pod:3458:     if mm/ $<pairs>=<pair>+ / {
22:50 cognominal so I guess I am right
22:50 colomon jnthn: Heck, I'm probably just jealous.  :)
22:50 moritz_ cognominal: yes
22:51 jeremiah jnthn: You gave a talk titled "Sorry, you're not my type."
22:51 cognominal jnthn is multitasking, he brings a language and users
22:51 jeremiah lulz
22:51 Juerd jnthn++  # Talks
22:54 moritz_ jnthn: is there a chance you could make No applicable candidates found to dispatch to for 'match' error message more awesome?
22:54 moritz_ like, including the type of the arguments
22:54 jnthn jeremiah: That was one of my favorite talk titles. :-)
22:54 jnthn jeremiah: It's actually quite a hardcore talk. It's about type theory, but pre-dates the days when I worked on Perl 6.
22:54 jnthn jeremiah: Well, on a Perl 6 compiler anyway. :-)
22:55 jnthn moritz_: What would you like it to give? The types of the arguments that were pissed?
22:55 jnthn er
22:55 jnthn passed (!)
22:55 moritz_ jnthn: yes
22:55 jnthn moritz_: That sounds quite do-able.
22:55 moritz_ and if you're in a Super-Awesome mode also the types in of the candidates
22:55 jnthn moritz_: MTA would be "Maybe you menat <this candidate>"
22:56 jnthn And it picks the closest likely ones as suggestions.
22:56 jnthn Or we could just show all possibles I guess.
22:56 jnthn Anyway, it seems we've multiple options for awesomization.
22:56 moritz_ most awesome would be for each candidate a marker why it didn't match
22:56 jnthn Ooh.
22:57 moritz_ like saying (wrong arity) or (nominal type mismatch of arg $foo) or so
22:58 jnthn It'd be nice but it'd also mean some dispatcher code re-org.
22:58 jnthn If we're not going to do epic copy-paste anyway.
22:58 moritz_ ouch
22:58 jnthn It's not a big deal.
22:58 moritz_ the .comb function I wrote a few days ago has already regressed
22:58 jnthn It's just not a 5 minute job either.
22:58 jnthn moritz_: oh ouch :-(
22:58 moritz_ ./perl6 -e 'say "foobar".comb(/<[ao]>+/)'
22:58 moritz_ No applicable candidates found to dispatch to for 'match'
22:58 moritz_ current instr.: 'perl6;Any;_block1627' pc 202293 (src/gen/core.pir:11750)
22:59 moritz_ it seems that Str.match regressed
22:59 moritz_ and no wonder I can't get Str.split working eitehr
22:59 cognominal jnthn, an exemple with a C<where> would be nice your "solved in Perl 6"
23:00 colomon We should maybe have a small test file with the basics of these string functions?
23:00 cognominal how do we call that, a clause?
23:00 colomon like I did with range-basic.t
23:00 cognominal indeed
23:01 jnthn cognominal: We sorta do in one example but it turns out there's syntactic sugar that avoids needing to write the where. :)
23:02 moritz_ jnthn: would you like a ticket for awesomization of that error message?
23:05 jnthn moritz_: Feel free to file one, yes.
23:11 moritz_ sent.
23:16 moritz_ RT #70850, for the record
23:27 colomon rakudo: say (1, 2, 3);
23:27 p6eval rakudo 7347ec: 123␤
23:27 colomon rakudo: say (1, 2, 3).Str;
23:27 p6eval rakudo 7347ec: 1 2 3␤
23:27 colomon rakudo: say ~(1, 2, 3)
23:27 p6eval rakudo 7347ec: 1 2 3␤
23:28 colomon Not sure how I managed to make it this far in p6 without learning that.
23:29 moritz_ say() has a slurpy parameter, and stringifies the items separately
23:30 Juerd rakudo: my @foo = 1, 2, 3; say "@foo";
23:30 p6eval rakudo 7347ec: @foo␤
23:30 colomon moritz_: yeah, I figured that out.  but I just figured it out three minutes ago.
23:30 Juerd Oh.
23:30 Juerd rakudo: my @foo = 1, 2, 3; say "{@foo}";
23:30 p6eval rakudo 7347ec: 1 2 3␤
23:30 Juerd So many ways!
23:31 Juerd It's so confuzzy :)
23:31 colomon I was really puzzled by all the range.t tests which were like ~(2..4) eq "2 3 4"  :)
23:31 Juerd ~ is an extended tongue, making a specific sound.
23:33 Juerd http://www.youtube.com/watch?v=QFCSXr6qnv4
23:33 Juerd 5:45
23:34 colomon_ joined #perl6
23:34 bobnet joined #perl6
23:42 colomon rakudo: multi sub postfix:<!>($n) { $n * ($n - 1)! }; multi sub postfix:<!>(0) { 1 }; say 4!;
23:42 p6eval rakudo 7347ec: 24␤
23:42 colomon recursive operators work, rakudo++!
23:44 jnthn ;-)
23:45 jnthn That's kinda beautiful.
23:45 jnthn Even though [*] 1..$n is so much more performant. ;-)
23:45 jnthn Well, should be... :-)
23:47 colomon jnthn: oh yeah, [*] 1..$n is awesome, and will certainly perform better once we have lazy Ranges.
23:47 colomon I was just looking at your solved in perl 6 lecture, and it seemed like the recursive operator thing was one you left out.
23:48 colomon and I'd never seen it done, so I had no idea if it would work.  :)
23:48 moritz_ I don't think laziness will help performance greatly
23:48 moritz_ in this case
23:48 moritz_ it often helps because it safes memory
23:48 moritz_ but if $n is really large, computing the products takes much more time than allocating and deallocating the memory for the 1..$n list
23:49 colomon I suppose.  :)
23:49 * colomon still wants to maximize his laziness.
23:49 jnthn It still gives you a nicer memory profile though, I guess.
23:50 jnthn Recursive gives you a bunch of call frames.
23:50 jnthn So yes, not much speed win, but nicer on memory. :)
23:56 Wolfman2000 rakudo: multi sub postfix<!>($n) { [*] 1..$n;} say 5!;
23:56 p6eval rakudo 7347ec: Malformed routine definition at line 2, near "postfix<!>"␤in Main (file <unknown>, line <unknown>)␤
23:56 Wolfman2000 rakudo: multi sub postfix<!>($n) { [*] 1..$n;}; say 5!;
23:56 p6eval rakudo 7347ec: Malformed routine definition at line 2, near "postfix<!>"␤in Main (file <unknown>, line <unknown>)␤
23:57 Wolfman2000 ...where'd I copy it wrong?
23:57 Wolfman2000 rakudo: multi sub postfix:<!>($n) { [*] 1..$n;}; say 5!;
23:57 colomon need a colon after postfix
23:57 p6eval rakudo 7347ec: 120␤
23:57 Wolfman2000 rakudo: multi sub postfix:<!>(Int $n) { [*] 1..$n;}; say 50!;
23:57 p6eval rakudo 7347ec: 3.04140932017134e+64␤
23:57 Wolfman2000 that was fast
23:57 colomon but not accurate.  :(
23:58 jnthn ENOBIGINT
23:58 colomon (I mean, it's the right answer in floating point, but loses a lot of digits of accuracy from bigint.)

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

Perl 6 | Reference Documentation | Rakudo