|
»ö« | perl6.org/ | nopaste: paste.lisp.org/new/perl6 | evalbot usage: 'perl6: say 3;' or rakudo: / pugs: / std: , or /msg p6eval perl6: ... | irclog: irc.pugscode.org/ | UTF-8 is our friend! Set by moderator on 24 November 2009. |
|||
| diakopter | so, I have this idea... | 00:04 | |
| to use my own parser engine, but then if the parse fails, fall back to STD for the great error messages | |||
| :) | 00:05 | ||
| (or to show me where I was wrong in rejecting the input) | |||
| ok | 00:08 | ||
| sounds good | 00:09 | ||
| pmurias | diakopter: what will you parser engine be? | ||
| * your | |||
| i mean grammar | |||
| diakopter: but checking with STD sounds sensible | 00:10 | ||
| diakopter | grammar engine? | ||
| this compiled-to-a-switch version of jsmeta | 00:11 | ||
| "hand-compiled" :) | |||
| I'm merging it in with my past-interpreter | |||
| so, it should support some subset/variant of nqp-rx | 00:12 | ||
| frankly, I really don't like all the "special cases" all over STD.pm | |||
| I realize they are there to prevent backtracking | 00:13 | ||
| pmurias | "special cases"? | ||
| diakopter | all the rules that are expressed indirectly | ||
| such as | |||
| 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:14 | ||
| lots of lookaheads and lookbehinds like that | 00:15 | ||
| and all the (superb!) error messages for Perl 5 syntax | |||
| all this checking for failure cases | 00:16 | ||
| pmurias | good errors are valuable | ||
| diakopter | I suspect that's a truism. | ||
| and, a belief I've expressed as well. | 00:17 | ||
| my point is that the failure cases can be checked in the "fallback" (failure case) parser | |||
| 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 | ||
| ... and rakudo's grammar... and nqp-rx's... | 00:19 | ||
| pmurias | STD is not hand-compiled | ||
| diakopter | it was inspired by God? | ||
| STD.pm | |||
| not STD.pmc | |||
| or STD5.pmc | |||
| yes, I'm hand-translating from STD.pm | 00:20 | ||
|
00:20
eternaleye joined
|
|||
| pmurias | to what? | 00:20 | |
| diakopter | to the api of my own grammar engine | ||
| pmurias | that seems like a lot of afford | 00:21 | |
| diakopter | effort? | ||
| pmurias | yes | ||
| diakopter | what's the alternative? | ||
| eternaleye | ENOMASAK :( | ||
| pmurias | can you use rakudo's grammar? | ||
| diakopter | not directly, no | 00:22 | |
| pmurias | why can't you grab the AST from STD.pmc? | ||
| diakopter | it's slow | ||
| too slow | |||
| I'm sorry to say | |||
| 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. | ||
| pmurias | diakopter: speed it up then | ||
| diakopter | heh | ||
| I'm trying :) | |||
| indirectly | |||
| seriously though, it's too slow even to try to speed it up | 00:24 | ||
| pmurias | you can eliminated the startup | ||
| * eliminate | |||
| and you won't be feeding it a lot of code at first | |||
| diakopter | true. | 00:25 | |
| However, I suspect it would need more brainpower/effort to speed it up than I have available | |||
| and concentration | |||
| it's easier (for me, I mean) to write my own | 00:26 | ||
|
00:26
jantore_ joined
|
|||
| eternaleye | moritz_: END { run( 'kill', $*PID ) } # self destruct mode for phasers | 00:27 | |
| pmurias | if you find it fun it's ok | ||
| diakopter | I tried profiling STD.pm | ||
| NYTprof | |||
| parsing itself, I think | |||
| that wasn't fun | |||
| triggered bugs in the profiler | 00:28 | ||
| some subroutines ran negative few thousand times | |||
| decreased my level of confidence in the profiler | |||
| pmurias | elf used a hand-compiled STD | ||
| diakopter | (for that particular input) | 00:29 | |
| right.. | |||
| eternaleye | diakopter: That's... eye-opening | ||
| pmurias | the result was a lot of ugly code that needed hand updating | ||
| 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. | ||
| pmurias | diakopter: they didn't hand-compile STD to .pir you know... | ||
|
00:30
justatheory joined
|
|||
| diakopter | eternaleye: right :) | 00:30 | |
| pmurias | the have a custom perl6 grammar | 00:31 | |
| diakopter | pmurias: yes, I suspect I am aware of that | ||
| and I'm confused why you thought I might have thought otherwise | |||
| 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 | ||
| diakopter | yes, but it's some subset | 00:32 | |
| and it will still parsefail a lot by Rakudo * | |||
| but that's not the point | |||
| pmurias | diakopter: what i understand you're planning to do is to hand-translate a subset of STD to js | ||
| diakopter | (to make a grammar that matches STD's behavior exactly) | ||
| yes, a subset of nqp-rx | 00:33 | ||
| eternaleye | Well, for some value of "a lot" | ||
| diakopter | so a very small subset | ||
|
00:33
KatrinaTheLamia joined
|
|||
| pmurias | why can't you use nqp-rx's grammar? | 00:33 | |
| diakopter | I could, yes | 00:34 | |
| pmurias | (run it on parrot or on your own engine) | ||
| diakopter | eventually | ||
| eternaleye | diakopter: pmurias has a point - nqp-rx's engine is written in nqp-rx | ||
| diakopter | but it needs implemented in the lower level language (js) here first | ||
| pmurias | can't you export the AST from parrot? | ||
| eternaleye | pmurias: You type faster than I do | 00:35 | |
|
00:35
justatheory joined
|
|||
| diakopter | yes, but it doesn't do me much good without the Actions.pm | 00:35 | |
| an ast of the Grammar.pm would be nice, yes | |||
| but it's quite short anyway | 00:36 | ||
| compared to STD.pm at least | |||
| pmurias | sleep& | 00:37 | |
| diakopter | (and yes, I already have that, actually) | ||
|
00:37
ihrd joined
|
|||
| diakopter | but I guess I'm infected with NIH | 00:37 | |
| 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. | ||
| diakopter | and there's no vaccine | ||
| yes, but I still have to implement the conversions from PAST::Regex* to my parser system | |||
| I mean, I'm averse to using the PAST generated by the PAST::Regex compiler | 00:39 | ||
| I wasn't at one time | |||
| but now I'm tilting there | |||
| sad, I know | 00:40 | ||
|
00:44
colomon joined
00:46
pointme joined,
zaslon joined
|
|||
| zaslon | lolmasakhazblogged! masak++ 'Upcoming: the 7 wonders of the ancient Perl 6 grammar engine': use.perl.org/~masak/journal/39945?from=rss | 00:46 | |
| eternaleye | diakopter: What about PAST::Regex's AST don't you like? | 00:47 | |
|
00:48
gfx joined
|
|||
| zaslon | lolfrettledhazblogged! frettled++ 'The morality of helping': howcaniexplainthis.blogspot.com/200...lping.html | 00:48 | |
| diakopter | nothing | ||
| zaslon | lolmoritzhazblogged! moritz++ 'Set Phasers to Stun!': perlgeek.de/blog-en/perl-6/set-phas...-stun.html | ||
| diakopter | eternaleye: I meant I'm averse to using the PAST generated by the PAST::Regex compiler | ||
| zaslon | lolmasakhazblogged! masak++ 'November 25 2009 -- you guys can be on our team': use.perl.org/~masak/journal/39947?from=rss | ||
| diakopter | 18:39 < diakopter> I wasn't at one time | ||
| 18:39 < diakopter> but now I'm tilting there | |||
| wait what | |||
| 18:40 < diakopter> sad, I know | |||
| what happened to zaslon | |||
| eternaleye | diakopter: That's what I was asking; what caused the change? | 00:49 | |
| diakopter | b/c it won't be nearly as fast as it could be | 00:50 | |
|
00:50
ihrd left
|
|||
| diakopter | if I executed the PAST (or even PIR!) | 00:50 | |
| than if the primitives were implemented in js | |||
| carlin | Because of the memory leak there was no memory for zaslon's cron to run so when I restarted it, it played catchup | ||
| 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 | |
| diakopter: Note that you'd take them and interpret them directly. | |||
| *Not | |||
| diakopter | yes | 00:53 | |
| well | |||
| wellllllll | 00:54 | ||
| I suppose .. | |||
| 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. :-) | ||
| *find | |||
| diakopter | that's not what I was saying | 00:55 | |
| I was saying the code generated by nqp-rx when compiling the PAST::Regex nodes to PAST/PIR is not ideal for direct interpretation | |||
| 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 | ||
| jnthn | s|PAST/PIR|POST/PIR| ? | ||
| diakopter | yes | ||
| jnthn | Well yes, that much is true. | 00:57 | |
| diakopter | so I have to "implement PAST::Regex", which is what I did | ||
| but then when I did that, I noted that it's easy to hand-write the grammars | |||
| so basically, what I've ended up with is an nqp-rx mimic/approximation | 00:58 | ||
| 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. | ||
| diakopter | does GGE::OPTable support inserting new precedences or adding to existing ones? | 01:00 | |
|
01:01
alanhaggai joined
|
|||
| jnthn -> sleep, night all | 01:03 | ||
| 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 | |
| OMeta/JS | |||
|
01:10
Exodist joined
|
|||
| diakopter | I'd have to rig it to support dynamic grammars | 01:10 | |
|
01:25
colomon joined,
agentzh joined,
alanhaggai joined
01:43
jaldhar joined
01:46
drbean joined
01:55
envi^office joined
02:10
zloyrusskiy joined
|
|||
| 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 | |
| I'll have to look at the plotutils manpage for how best to do that/ | |||
| diakopter | eternaleye: | ||
| eternaleye | s,/,, | 02:22 | |
| diakopter | have you seen www.ozonehouse.com/mark/periodic/ | ||
| 10 months outdated... | 02:23 | ||
| eternaleye | diakopter: ? (sorry if I lag a bit, my computer seems bogged down by something) | ||
| diakopter: Yes | |||
| I'm thinking the kind of diagram you do of a directed graph | |||
|
02:25
orafu joined
02:27
jaldhar joined
02:39
[particle] joined
02:40
user_unknown joined
02:41
xenoterracide joined
02:43
awwaiid joined,
aindilis joined
|
|||
| colomon is wondering how much trouble he would get in if he just went ahead and defined Mu in ng.... | 03:05 | ||
| TimToady | I won't tell if you won't... | 03:07 | |
| 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 | |
| Actually, does this even make sense anymore? sign(Mu) | |||
| rakudo: say sign(Mu) | 03:10 | ||
| p6eval | rakudo 7347ec: Could not find non-existent sub Muin Main (file src/gen_setting.pm, line 324) | ||
| colomon | or maybe it's broken in rakudo master too, and I can just officially skip it and declare victory.... | 03:11 | |
| 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 | ||
| rakudo: my $a; say sign($a); | |||
| p6eval | rakudo 7347ec: Use of uninitialized value | ||
| colomon | rakudo: my $a; say sign($a).notdef | ||
| 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,
dukeleto joined,
pugs_svn joined,
hatseflats joined,
jiing joined,
phenny joined
|
|||
| sjohnson | heh | 03:17 | |
| colomon | p6eval's rakudo isn't up to date. | ||
| sjohnson | rakudo: my $a = 'moose/ted'; my $b = $a ~~ s/ted/goose/; print "[$a] [$b]" | ||
| p6eval | rakudo 7347ec: s/// not implemented, try .subst as workaround at line 2, near "goose/; p"in Main (file <unknown>, line <unknown>) | ||
| sjohnson | ... hlp plz. is this possible in p6? | 03:18 | |
| something like what i am aiming for | |||
| skipping the $b = $a; steop | |||
| step* | |||
| colomon | sjohnson: like the error says, you need .subst rather than s/// | 03:19 | |
| rakudo: my $a = 'moose/ted'; say $a.subst("ted", "goose"); | |||
| p6eval | rakudo 7347ec: moose/goose | ||
| sjohnson | colomon: do you know if it supports /regex/ ? | 03:20 | |
| the subst thingy? | |||
| colomon | pretty sure it does | ||
| sjohnson | colomon++ # helpful | ||
| colomon | rakudo: my $a = 'moose/ted'; say $a.subst(m/t.*d/, "goose"); | 03:21 | |
| p6eval | rakudo 7347ec: moose/goose | ||
| sjohnson | nice one | ||
| colomon | I dunno if captures work properly yet... | ||
| sjohnson | that indeed seems to work nicely | ||
| colomon | rakudo: my $a = 'moose/ted'; say $a.subst(m/t(.*)d/, "goos$0"); | ||
| p6eval | rakudo 7347ec: Use of uninitialized valuemoose/goos | 03:22 | |
|
03:22
PZt joined
|
|||
| colomon | Yeah, I don't know if there is a way to do that or not. | 03:22 | |
| ng: say Any.WHAT | 03:23 | ||
| p6eval | ng 28273a: Any() | ||
| sjohnson | rakudo: my $a = 'moose/ted'; say $a.subst(m/t(.*)d/, "goos\\$0"); | ||
| colomon | ng: class Mu { ... }; say Mu.WHAT | ||
| p6eval | rakudo 7347ec: moose/goos$0 | ||
| ng 28273a: Could not find non-existent sub failcurrent instr.: 'perl6;Mu;_block22' pc 132 (EVAL_1:62) | |||
| sjohnson | interesting thing to ponder thanks colomon | 03:24 | |
| colomon | ng: class Mu { method defined() { false; }; }; say Mu.WHAT | ||
| p6eval | ng 28273a: Mu() | ||
| sjohnson | maybe TimToady might know the answer :] | ||
| colomon | sjohnson: good luck! | ||
| eternaleye | sjohnson: colomon: For captures in .subst, you use a closure. | 03:37 | |
|
03:40
pmichaud joined,
aindilis joined,
awwaiid joined,
xenoterracide joined,
[particle] joined,
jaldhar joined,
orafu joined,
zloyrusskiy joined,
drbean joined,
agentzh joined,
colomon joined,
zaslon joined,
KatrinaTheLamia joined,
mikehh joined,
huf_ joined,
astrojp joined,
compactwater joined,
gbacon joined,
quantumEd joined,
pure1111 joined,
simcop2387_ joined,
omega__ joined,
r0bby_ joined,
kst joined,
IllvilJa joined,
meteorjay joined,
zamolxes joined,
ng_feed joined,
mofino joined,
perigrin_ joined,
Patterner joined,
bloonix joined,
xomas_ joined,
tylerni7 joined,
rgrau joined,
japhb joined,
ssm joined,
xinming joined,
Khisanth joined,
synth joined,
sjn joined,
d^_^b joined,
Wolfman2000 joined,
Woodi joined,
yahooooo joined,
estrabd_ joined,
nothingmuch joined,
dalek joined,
avuserow joined,
charsbar_ joined,
Lorn joined,
szabgab joined,
dj_goku joined,
zaphar_ps joined,
s1n joined,
tarbo2 joined,
mdxi joined,
PacoLinux joined,
kolibrie joined,
Helios joined,
hicx174 joined,
LionMadeOfLions joined,
stepnem joined,
zostay joined,
idemal joined,
frettled joined,
carlin joined,
pnu joined,
hugme joined,
cotto_work joined,
jeremiah joined,
cotto joined,
cls_bsd joined,
elmex joined,
wolverian joined,
solarion joined,
constant joined,
baest joined,
leedo joined,
buu joined,
lestrrat joined,
frew joined,
krakan joined,
allbery_b joined,
sri_ joined,
moritz_ joined,
athomason joined,
Juerd joined,
yath joined,
mathw joined,
Maddingue joined,
Infinoid joined,
ascent joined,
lisppaste3 joined,
Grrrr joined,
rhr joined,
IRSeekBot joined,
araujo joined,
itz joined,
astinus joined,
broquaint joined,
jsut|work joined,
mj41 joined,
silug joined,
Bucciarati joined,
dukelet0 joined,
TimToady joined,
renormalist joined,
literal joined,
nsh joined,
sunnavy joined,
yves joined,
sbp joined,
shachaf joined,
akl joined
|
|||
| eternaleye | rakudo: my $a = 'moose/ted'; say $a.subst(m/t(.)d/, { 'g' ~ $0 ''~ $0 ~ "se" }) | 03:40 | |
| Whoops | 03:41 | ||
| rakudo: my $a = 'moose/ted'; say $a.subst(m/t(.)d/, { 'g' ~ $0 ~ $0 ~ "se" }) | |||
|
03:41
envi^office joined
|
|||
| Wolfman2000 | eternaleye: I think rakudo hates you or something. | 03:41 | |
| eternaleye | Wolfman2000: Maybe | ||
| Although the firs tone had two tems in a row | |||
| p6eval | rakudo 7347ec: Confused at line 2, near "''~ $0 ~ \\""in Main (file <unknown>, line <unknown>) | 03:42 | |
| rakudo 7347ec: moose/geese | |||
| eternaleye | *first *one *terms | ||
| sjohnson | i might have to stare at that for a while to understand it, eternaleye :) | 03:43 | |
| thanks for helping | |||
| eternaleye | It's a closure using the 'if no return(), last line is return value' rule | 03:44 | |
| The return value is the string you get from stitching together [with ~] a 'g', the first capture [twice] and 'se' | |||
| It was just chance that geeses was a valid word | 03:45 | ||
| *geese | |||
| furrfu | |||
| jnthn (or any other p6book person): Is there any interest in a patch that adds a make target to generate HTML? If so, ix.io/ye has such a patch | 04:02 | ||
| Heh, looks like 'ye has a patch' | |||
| A colloquial pastebin XD | |||
| hugme: add eternaleye to book | 04:11 | ||
| hugme | eternaleye: sorry, you don't have permissions to change 'book' | ||
| eternaleye | hugme: projects? | ||
| hugme: list | |||
| hmm. | |||
| hugme: add eternaleye to p6book | |||
| hugme | eternaleye: sorry, I don't know anything about project 'p6book' | ||
| eternaleye | Ah. | 04:12 | |
| So 'book' is right, just locked. | |||
| 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:14 | ||
| For instance, "You can ask query a hash table for the value..." | 04:15 | ||
| Wolfman2000 | hugme: add eternaleye to book | 04:26 | |
| hugme | Wolfman2000: sorry, you don't have permissions to change 'book' | ||
| Wolfman2000 | I tried | ||
| eternaleye | 'sokay, one of them will be on soon enough | ||
|
04:28
nbrown joined
|
|||
| 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:32 | |
|
04:39
Yonderboy joined
04:43
astrojp left
04:46
badanov joined
04:48
badanov joined
|
|||
| 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 | |
| *by | |||
| Hm... | |||
|
04:52
Yonderboy left
|
|||
| 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
|
|||
| eternaleye | Whoops | 04:56 | |
| 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(); | |||
| p6eval | rakudo 7347ec: Malformed routine definition at line 2, near "eat() need"in Main (file <unknown>, line <unknown>) | ||
| eternaleye | Hm | 04:57 | |
|
04:57
nbrown joined
04:59
araujo joined
05:22
alanhaggai joined
05:47
kst joined
05:58
frew_ joined
06:14
spinclad_ joined
06:28
TiMBuS joined
07:02
justatheory joined
07:07
kaare joined
07:26
szabgab joined
|
|||
| sjohnson | eternaleye: backlogging, thanks for the help by the way | 07:32 | |
| moritz_ | hugme: add eternaleye to book | 07:33 | |
| hugme hugs eternaleye. Welcome to book! | |||
| moritz_ | eternaleye: done. Your corrections will be very welcome | ||
|
07:35
_eMaX_1 joined
07:36
Su-Shee joined
|
|||
| Su-Shee | good morning | 07:36 | |
| moritz_ | oh mornin' | 07:38 | |
| dalek | ok: 7552628 | (Alex Elsayed)++ | (2 files): Add HTML target for the book. |
07:39 | |
| 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 | ||
| that's not used consequently right now | 07:42 | ||
| uhm | |||
| eternaleye | okay. | ||
| Consistently | |||
| moritz_ | why does the HTML need a latex preamble? :-) | ||
| eternaleye | It doesn't, and I'm looking for why it has it now | ||
| moritz_ | the preamble is in bin/book-to-html | 07:43 | |
| dalek | ok: fcde9ac | (Alex Elsayed)++ | bin/book-to-html: Whoops-a-daisy, forgot to remove the latex preamble |
07:45 | |
| 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 | ||
| Oh, I hope it is | |||
| That's half the fun as a reader! | |||
| moritz_ is not averse to humour, as long as it's mostly culturally neutral | 07:47 | ||
| (which the camel humour is) | |||
| 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) | ||
| For once, my OCD grammar skillz will be useful! On to the book! | 07:48 | ||
| moritz_ | hack away! | ||
|
07:49
mberends joined
07:52
justatheory joined
|
|||
| 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. | 07:58 | |
| moritz_ | good morning | 08:00 | |
| I know programming IRC channels where people don't even know what NIH stands for :-) | |||
| mberends | recognizing the problem is the first step to dealing with it | 08:01 | |
| en.wikipedia.org/wiki/NIH_(disambiguation) ;-) # pick one | 08:03 | ||
|
08:06
xomas joined
|
|||
| eternaleye | Well, that's basics.pod. I'll do another file tomorrow | 08:10 | |
| 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:12 | ||
| mberends | eternaleye: :-) | 08:13 | |
| eternaleye | ;D | ||
| dalek | vember: 55d4deb | masak++ | lib/November.pm: [November] changed operator s/neq/ne/ |
||
| mberends | masak approaching! | 08:14 | |
| dalek | ok: af85b7a | (Alex Elsayed)++ | src/basics.pod: Give my commitbit a workout on typos and grammar |
||
|
08:17
masak joined
|
|||
| 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 ) | ||
| masak | eternaleye: yes, but... :) | ||
| eternaleye | Oh hai, masak! | ||
| masak | eternaleye: you're absolutely right, of course. | ||
| sjohnson | o/ masak | ||
| masak | eternaleye: but it's not about what _I_ want, but what the end user writes in her code. | ||
| sjohnson: \\o | 08:18 | ||
| diakopter: I think your question about GGE::OPTable is something I've been wondering about too at times. | |||
| 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 | ||
| diakopter: to me. it would seem that B and C get the same precedence, which is not necessarily what anyone wanted. | |||
| 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. | ||
| eternaleye: not sure we're resonating on the same frequency yet... :) | |||
|
08:21
iblechbot joined
|
|||
| eternaleye | Alternately, decree that it's always named - after all, everything after the ? is in key-value form, no? | 08:21 | |
| 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 | |
| eternaleye: somehow, that feels too harsh. | |||
| eternaleye | Hm, yeah | ||
| 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? | ||
| masak | moritz_: hm, that might be it. | 08:24 | |
| moritz_: signature introspection considered smelly, but if we do it once, at declaration-time... | |||
| 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." | ||
| masak | eternaleye: actually, the number of required params is known by inspecting the pattern string sent in to the 'get' subroutine. | 08:25 | |
| 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:26 | |
| No code smell! | 08:27 | ||
| masak | eternaleye: aye, that'd be the way to go. | ||
| eternaleye: but introspection is still necessary. | |||
| mathw | Morning | ||
| masak | mathw: \\o | ||
| eternaleye | masak: Named vs positional? | ||
| sjohnson | hi matt-w | ||
| masak | eternaleye: unless I want to invoke the closure, which I don't. | ||
| eternaleye | Ah. | 08:28 | |
| What does Astaire do with the closure? | |||
| masak | eternaleye: not sure exactly what I'd have to introspect. if we throw nameds in, it'll be more complicated. | ||
| eternaleye: ok, so the closure is what'll be executed if the corresponding pattern matches a URI. | |||
| eternaleye | Ah | 08:29 | |
| masak | eternaleye: the pattern may contain asterisks, which is what creates the arguments. | ||
| 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 | |
| (this discussion is a perfect example) | |||
| masak | yes, well APIs matter. | ||
| s/well/well,/ | 08:32 | ||
| sjohnson | yeah for sure | 08:34 | |
| 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
|
|||
| eternaleye | Gah, segfaulted | 08:36 | |
| 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:38 | ||
|
08:42
pure1111 joined
|
|||
| mathw | sjohnson: Perl is a glorious dance between the two | 08:42 | |
| diakopter | masak: o hae | ||
| o | |||
| mathw | oh hai? | ||
| diakopter | latin ae | 08:43 | |
|
08:43
ejs joined
|
|||
| eternaleye | diakopter: Were you looking for this? \\o-æ | 08:43 | |
| diakopter stumbles onto _The_Monophthongization_of_Latin_ae_ | 08:44 | ||
| mberends | diakopter: greetings, fellow NIH sufferer ;) | ||
|
08:45
meppl joined
|
|||
| diakopter | mberends: hiya | 08:45 | |
| 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 | ||
| yes | |||
|
08:48
elmex joined
08:49
elmex joined
|
|||
| 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:53 | |
| moritz_ | it should be $<word> | 08:54 | |
| eternaleye | Oh dear, my eyes must be going. | ||
| I'll go sleep now. Oyasuminasai! | 08:55 | ||
|
08:55
xomas_ joined
|
|||
| moritz_ | good night | 08:56 | |
|
08:57
JimmyZ joined
09:09
ejs1 joined
|
|||
| frettled | So much for "eternal", eh? ;) | 09:15 | |
|
09:16
gfx joined
|
|||
| moritz_ | lasting forever, with interruptions :-) | 09:18 | |
| diakopter | rakudo: ubi | 09:20 | |
| p6eval | rakudo 7347ec: Could not find non-existent sub ubiin Main (file src/gen_setting.pm, line 324) | ||
| sjohnson | frettled: :) | 09:44 | |
| mberends | he's frettling again ;) | 09:47 | |
|
09:49
jferrero joined
09:50
cognominal joined
09:51
payload joined,
Su-Shee_ joined
|
|||
| frettled | :) | 10:00 | |
|
10:04
ejs2 joined
10:05
justatheory joined
|
|||
| sjohnson | perl! | 10:07 | |
| frettled | *perl* | 10:18 | |
| cls_bsd | _perl_ | 10:19 | |
| sjohnson | _-=PERL=-_ | ||
|
10:22
ejs1 joined
|
|||
| frettled | Tsk, tsk, looks like my blog post crashed the Iron Man planet, haha. | 10:26 | |
| Perhaps I should apply for inclusion in Planet Perl Six. ;) | 10:27 | ||
| moritz_ | I hate to disillusion you, but they are actually moving servers | ||
| frettled | D'oh! | ||
|
10:27
nsh joined
10:28
sbp joined
10:32
payload joined
10:51
ihrd joined
11:14
elmex joined
11:29
ihrd left
11:41
cotto joined
11:44
SmokeMachine joined
|
|||
| jnthn | oh hzi | 11:48 | |
| moritz_ | I did some Perl 6 advertising on perlmonks :-) www.perlmonks.org/?node_id=809530 | 11:50 | |
| jnthn | moritz_: Nice :-) | 12:00 | |
|
12:03
colomon_ joined
12:05
colomon_ joined
12:12
envi^home joined
|
|||
| jeremiah | Shame that there is no pod in Test.pm | 12:13 | |
| I'll add some. | |||
|
12:13
snearch joined
|
|||
| moritz_ | maybe it's a feature | 12:14 | |
| Test.pm should use only very basic compiler features | |||
| one can argue if pod parsing is basic | |||
| 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 | ||
| IMHO | |||
| jeremiah | Being able to call perldoc on anythin that is *.pm is one of perl's strengths. | ||
| moritz_ | jeremiah: ask pmichaud, it's his decision in the end | 12:16 | |
| I'm not strongly opposed | |||
| jeremiah | okay, I'll ask him. :) | 12:17 | |
| So in your mind, Test.pm is not designed to be used like Test::More? | |||
| Or Test::Simple? | |||
| moritz_ | it is | ||
| but it's also part of the language specification | |||
| 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 | ||
| jeremiah: because nobody has written it so far | |||
| jeremiah | ah :) | ||
| 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? | ||
| moritz_ | rakudo parses enough of it to ignore it | ||
| jeremiah | heh | ||
| moritz_ | same for STD.pm i think | ||
| but the Perl 6 POD spec is still in flux | 12:20 | ||
| jeremiah | okay - that is starting to clear things up for me. :) | ||
| 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:21 | |
| 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 | |
| I'll lurk and when it becomes more static I'll start podding! :) | |||
|
12:23
alanhaggai joined
|
|||
| 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 | ||
| moritz_ | jeremiah: if you'd start writing that down, I'd review the commits for you | ||
| jeremiah | That is kind of what I am reading right now | ||
| Might as well give it a try | |||
|
12:31
colomon_ joined
|
|||
| frettled | moritz_: Heh, you got a nitpicky comment already | 12:32 | |
| moritz_ | frettled: yes. And a totally inappropriate one, IMHO | ||
|
12:32
dalek joined
|
|||
| jeremiah | I agree - that comment was off-putting | 12:33 | |
| moritz_: Excellent post on sorting BTW, thanks. | |||
| moritz_ | jeremiah: thanks for the feedback | 12:35 | |
| I considered writing it as a separate meditation | |||
|
12:41
ruoso joined
|
|||
| 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 | ||
| frettled | Ah | ||
| moritz_ | (and I just answered too) | ||
|
12:44
pmurias joined
|
|||
| pmurias | ruoso: hi | 12:45 | |
| ruoso: have you seen github.com/rakudo/rakudo/blob/ng/do...model.pod? | 12:46 | ||
|
12:47
colomon_ joined
|
|||
| 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 | |
| Your answer was very good, though. | |||
| moritz_ | frettled: are you sure you submitted the post? I see no new post in that thread... | 12:51 | |
| frettled | moritz_: I'm sure I didn't submit a post. | 12:53 | |
| moritz_ | s/post/answer/ | ||
| frettled | With nothing positive to contribute, I thought it was better not to contribute. :) | 12:54 | |
| moritz_ | oh, I misread "dropped" | ||
| I thought you dropped it in :-) | |||
|
13:02
payload joined
13:12
takadonet joined
|
|||
| takadonet | morning all | 13:12 | |
| ruoso | pmurias, hi.. yeah... I saw it... | ||
|
13:26
mariano__ joined
13:28
pmurias joined
|
|||
| mathw | oh hai | 13:28 | |
| jnthn | lolitsmathw | 13:29 | |
| mathw | omgitsjnthn! | 13:33 | |
|
13:35
iblechbot joined
13:36
colomon_ joined
|
|||
| jnthn | mathw: It's not *so* shocking to discover me here, is it? ;-) | 13:36 | |
| pmurias | diakopter: is there a profiler for js? | 13:37 | |
| colomon_ | PerlJam: ping? | ||
| Wolfman2000 | *yawn* morning | ||
|
13:39
rjh joined
|
|||
| 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 | |
| As you can see, I'm having little success. | |||
| mberends | mathw: when will you have that interview 140 miles away? | 13:43 | |
| mathw | mberends: A week today | 13:44 | |
| 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 | |||
| 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. | ||
| 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. | ||
| phenny | colomon_: I'll pass that on when PerlJam is around. | 13:46 | |
| mathw | mberends: Heh no it's in London | ||
| moritz_ | colomon_: you can try the news blogs.perl.org for that :-) | ||
| mberends | good, then we'll see each other in London from time to time | ||
| mathw | Getting to Basingstoke would be quite a bit cheaper, I believe | 13:47 | |
| mberends | Basingstoke aka Boringstoke | ||
| (used to live there) | |||
| colomon_ | moritz_: does it actually work yet? last I heard there were still kinks to be worked out. | 13:49 | |
| moritz_ | colomon_: should I ask the same about rakudo? | 13:50 | |
| :-) | 13:51 | ||
| mathw | mberends: I have no desire to ever visit. | 13:52 | |
| 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. | ||
| jnthn | pmurias: Yes, really. And the train will probably be late too. | ||
| pmurias: UK sucks for railways. | |||
| 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 | ||
| return is about £23 | |||
| moritz_ | but maybe our definitions of "somewhat okay" are different :-) | ||
| mathw | and then there's a central London travelcard to get from St Pancras to the office | ||
| jnthn | When I go to the UK next week, getting from airport => home will likely cost me something on the order of ~£50. | ||
| mathw | Can do London for less, but only if you travel out of 'peak time' | ||
| When I went the other week, I did both directions FIRST CLASS for just over £40 | 13:56 | ||
| The train pricing system is utterly insane | |||
| jnthn | I'd prefer overall sensible pricing to occasional instances of "wow cheap" amongst ridiculously over-priced normal tickets. | ||
| mathw | mmm | 13:57 | |
| Me too | |||
| 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 | |||
| But not that they change anything if they know it's going to be busy, because they don't have that flexibility | 13:58 | ||
|
13:58
payload joined
|
|||
| mathw | they can't just stick another carriage on the train :( | 13:58 | |
|
13:58
sfdsdffsd joined
|
|||
| mathw | and of course if you're getting connections, that can be dangerous | 13:58 | |
| I end up spending a lot of time sitting aroun din stations. Good thing St Pancras has free wifi. | 13:59 | ||
| jnthn: I can haz commit 4 lolsql? | |||
|
14:00
Lorn joined
|
|||
| jnthn | mathw: sure! | 14:00 | |
| hugme: list projects | |||
| 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 | ||
| jnthn | aww! | ||
| mathw | and my github name is different, too | ||
| I'm still mattw there | 14:01 | ||
| jnthn | mathw: you can haz a commit bit! | ||
| mathw: be gud kitteh and not brajk bild, kplzthnx. | 14:02 | ||
| pmurias | do you think we could drop the re- less mildew? | ||
| jnthn | mathw: Add yourself to KITTEHS file too, kplzthnx. | ||
| pugs_svn | r29196 | pmurias++ | [mildew-js] use Test works (for our simplified Test.pm) | ||
| moritz_ should write a tutorial someday about adding projects to hugme | 14:03 | ||
| mathw | jnthn: You can haz cheezburger | ||
| moritz_ | or FAQ more likely | ||
| jeremiah | bad kitteh brokeded build | ||
| pmurias | hugme is a give a commit bit to everyone bot? | ||
| ruoso: do | 14:04 | ||
| moritz_ | pmurias: it hands out github commit bits | ||
| pmurias | do you think we could drop the re- less mildew? | ||
| colomon_ | moritz_: no luck trying to get myself a blogs.perl.org account. | ||
| moritz_ | hm | 14:05 | |
|
14:05
riffraff joined
|
|||
| colomon_ | "Can't fork" | 14:05 | |
| mathw | jnthn: I think you forgot the KITTEHS file. I seem to be generating it from scratch. | 14:06 | |
| 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. | ||
| mathw | jnthn: I make new 1 | 14:10 | |
| jnthn | mathw: plz you can writez me entree 2? | ||
| mathw: Extolling my virtues and wot a gud kitteh I am? | 14:11 | ||
| ;-) | |||
| jnthn noms his lunch, which sadly isn't a cheezburger | |||
| pugs_svn | r29197 | pmurias++ | [mildew-js] ¬,add passing tests to TESTS-js | 14:12 | |
|
14:17
ejs2 joined
|
|||
| pugs_svn | r29198 | pmurias++ | re-smop and re-mildew is now smop and mildew, removed the old smop and mildew | 14:18 | |
| pmurias | ruoso: did the rename | 14:19 | |
|
14:21
colomon joined
|
|||
| ruoso | pmurias, cool | 14:21 | |
|
14:25
kidd` joined
|
|||
| 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. | ||
| moritz_ | I'd rather call them <?look-left> and <?look-right> | ||
| Wolfman2000 | Slight pain. | ||
| moritz_++: I kind of have to agree. | |||
| 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? ;-) | ||
| mathw | jnthn: I maed u a KITTEHS file. I no rite code yet. | ||
|
14:26
quantumEd joined
|
|||
| moritz_ | jnthn: the regex engine ignores text direction, thankfully :-) | 14:27 | |
| jnthn | :-) | ||
| moritz_ | unless you explicitly ask for the bidi properties with assertions/char classes | ||
| jnthn | mathw: I haz a happy that you committed it, not eated it. | ||
| 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 | ||
| Wolfman2000 | thank you moritz_ | ||
| jnthn | ;-) | 14:30 | |
| moritz_ | that was jnthn++ akshually :-) | ||
| Wolfman2000 | moritz_: well aware. Just poking fun. | ||
| mathw | jnthn: I haz choklat for nom | 14:31 | |
| jnthn | mathw: Iz srsly purfect nom. | 14:33 | |
| mathw | :D | ||
| jeremiah | "Honor celing cat of lolsql with menshun in README, kthnxbai." | 14:35 | |
| lulz | |||
| mathw | I'm going to have to improve my lolspeak | 14:36 | |
| Wolfman2000 | 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. | |||
| mathw discovers, in the course of his research, the origins of 'do not want' | 14:39 | ||
| moritz_ | do tell | 14:42 | |
| jnthn | iirc, wuz translashun FAIL of epic proporshun. | 14:43 | |
| Wolfman2000 | phenny: tell frew github.com/wolfman2000/Perl-6-Pastebin/ | ||
| phenny | Wolfman2000: I'll pass that on when frew is around. | ||
| jeremiah | jnthn: I'm a wee bit scared that your lolcat powers are surpassing your native tongue. | 14:45 | |
| mathw | A Chinese bootleg DVD of Star Wars Episode 3 had English and Chinese subtitles | 14:46 | |
| Oddly, the English subtitles were a translation (a bad one) of the Chinese ones | |||
| moritz_ | .oO( re-import ) |
||
| mathw | and "DO NOT WANT" was what ended up instead of "NOOOOOOOOOOOOOOOOOOOOOOO" | ||
| The other thing Wikipedia feels is worth mentioning is that 'it seems' got translated to 'good elephant' | 14:47 | ||
| So as jnthn says, translation fail of epic proporshun | |||
| Wolfman2000 | ......NO!!! I lost my files! | 14:50 | |
|
14:51
beggars joined
|
|||
| Wolfman2000 | moritz_: What sort of backups are avialable on feather? I may need one. | 14:52 | |
| colomon | mathw: I had no idea... | ||
| moritz_ | Wolfman2000: daily, weekly iirc. But for that you have to ask Juerd | ||
| moritz_ recommends git and public mirroring :-) | |||
| Wolfman2000 | moritz_: I just ADDED git | 14:53 | |
| I added a directory, but forgot there were big files in there. | |||
| moritz_ | Wolfman2000: that's why i had a smiley at the end | ||
| Wolfman2000 | So I checked the docs, and it said to do git reset --hard HEAD | ||
|
14:53
JimmyZ joined
|
|||
| Wolfman2000 | Well...it removed the directory instead of removing from git | 14:53 | |
| 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 | ||
| phenny | Wolfman2000: I'll pass that on when Juerd is around. | ||
| Wolfman2000 | moritz_: I did not | ||
| I was adding a few files at a time | |||
| Basically, I have to restore an untracked file | 14:55 | ||
| or rather, untracked directory | |||
| 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. | ||
| jnthn | .oO( from fsck git to git fsck ) |
14:59 | |
| Wolfman2000 | jnthn: thank the #git room for recovering my data. | ||
| pugs_svn | r29199 | pmurias++ | [mildew-js] &eval | 15:01 | |
| 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:03 | |
| 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:04 | ||
|
15:08
ejs joined,
Psyche^ joined
15:10
masak joined
|
|||
| jnthn | masak! \\o/ | 15:11 | |
| Wolfman2000 | masak: github.com/wolfman2000/Perl-6-Pastebin I'm adding to it. | 15:12 | |
| masak | oh hai, jnthn! \\o/ | ||
| frettled | lolitsmasak! | ||
| masak: I sent a mail reporting our missing blogs on Planet Perl Iron Man, just FYI. | |||
| masak | Wolfman2000: cool. will have a closer look later. | ||
| frettled: missing blogs? oh, good. | 15:13 | ||
| frettled++ | |||
| Wolfman2000 | that also reminds me...did my code work on your smoke tests, or did I end up breaking something? | ||
| masak | Wolfman2000: my smoke test smoked out two compile errors so far. :) | ||
| Wolfman2000 | ...great: I did break it | 15:14 | |
| masak | hopefully tomorrow it'll compile. :P | ||
| 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. | ||
| Juerd: 14:57Z <Wolfman2000> tell Juerd nevermind...good commands to know: git fsck --lost-found, git read-tree <hash>, git checkout . | |||
| pmurias | re-mildew: say "hi" | ||
| Juerd | Wolfman2000: You can just talk to me without the proxy if you like :) | ||
| Wolfman2000 | Juerd: wasn't sure if you were here. | ||
| Juerd | I'm always here, for some value of here | ||
| frettled | Regarding Planet Perl Six, would it be possible to add my blog, but only with the posts that have the tag "Perl 6"? | ||
| Wolfman2000 | Juerd: wasn't sure if you were active and awake here. | 15:16 | |
| Juerd | Now that's a little more complicated :) | ||
| frettled | Juerd.activate | ||
| masak | it usually is. :) | ||
| frettled | Did I cause a core dump in Juerd? | 15:18 | |
| Juerd | . | 15:19 | |
| moritz_ | frettled: I think it is | ||
| @seen obra_ | 15:20 | ||
| lambdabot | Unknown command, try @list | ||
| mathw | frettled: if your blog engine can produce a feed for just that tag, then yes | 15:21 | |
| moritz_ | lambdabot-- | ||
| Wolfman2000 | @list | ||
| lambdabot | code.haskell.org/lambdabot/COMMANDS | ||
| Wolfman2000 | ...I can slap something? | 15:22 | |
| @slap | |||
| lambdabot slaps with a slab of concrete | |||
|
15:22
zloyrusskiy joined
|
|||
| Wolfman2000 | @slap Windows 7 | 15:22 | |
| lambdabot | Come on, let's all slap Windows 7 | ||
| Wolfman2000 | :) | ||
| masak | @slap lambdabot | ||
| lambdabot smacks lambdabot about with a large trout | |||
| masak | now there's a sight. | ||
| frettled | mathw: hmm. I'm not sure what Blogger/Blogspot can and cannot do. Hmm. | 15:23 | |
| moritz_ | howcaniexplainthis.blogspot.com/sea...l/Perl%206 has an rss feed, but it's unfiltered | ||
| 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 | ||
| $someone needs to write a mail to the perl.org admins and ask for it | |||
|
15:25
SimonAW joined
|
|||
| SimonAW | Hi everybody! | 15:25 | |
| frettled | moritz_: ahahaha. :) | 15:26 | |
| mathw | SimonAW: oh hai | ||
| Wolfman2000 | ...oh great. I'm hearing the pokémon theme on the TV in the family room due to the thanksgiving day parade | 15:27 | |
| masak | frettled: I liked your last blog post. | 15:28 | |
| frettled | masak: thanks! | ||
| SimonAW | Blog post? Where? | ||
| jnthn | ja mozem mat slovencinu! | ||
| jnthn back later | |||
| masak | SimonAW: howcaniexplainthis.blogspot.com/200...lping.html | ||
| masak finds it amusing that both Slovenian and Slovakian have the same word for their language | 15:29 | ||
| SimonAW is reading... | |||
| frettled sent an email to the perl.org webmaster. | 15:30 | ||
| SimonAW | Uh, "derision". We learned a new word today. :) | 15:31 | |
| moritz_ wonders if rindex and index should be unified | 15:33 | ||
| and get a :backwards flag or so | |||
| masak | moritz_: no, I don't think so. | 15:34 | |
| Wolfman2000 | ...huh? I get a free Wiki with my github? | ||
| moritz_ | masak: why not? | ||
| Wolfman2000: wiki and bug tracker | |||
| masak | moritz_: because you're not solving a burning problem by doing so. | ||
| SimonAW | Wolfman2000: And graphs! | ||
| masak | moritz_: and you're actually confusing the API for seasoned programmers. | ||
| SimonAW | Wolfman2000: And user/project homepages. | 15:35 | |
| Wolfman2000 | SimonAW: alright, I get the point. | ||
| github includes a lot for free. | |||
| moritz_ | masak: we're doing the same for system/run, exec/runinstead and other unix-inspired functions | ||
| SimonAW | Wolfman2000: Ya, unless you want private repos. | ||
| masak | moritz_: that is true. | ||
| Wolfman2000 | Anyway, feel free to contribute to/steal from the pastebin (looking at you masak). | ||
| masak | moritz_: and rindex is quite a strange name. | ||
| Wolfman2000 | SimonAW: This pastebin...would work best if everyone had a chance to contribute. I approached this issue wrong in the first place. | ||
| masak | Wolfman2000: oh, I feel free. :) | ||
| moritz_ | I also find index() quite strange | 15:36 | |
| index-of()? | |||
| masak | moritz_: as a sub, yes. | ||
|
15:37
frew_ joined
|
|||
| 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 | |
| there are other design smell areas | |||
| like %hash{$item}:delete and :exists | |||
| masak | moritz_: please elaborate on the moving builtins to a role part. | ||
| moritz_ | ok | ||
| masak: it's something I suggested last week... currently there are hundreds of methods in Any | 15:38 | ||
| like .Str, .sin, .Num, .join, .split etc | |||
| masak | nod. | ||
| moritz_ | and I don't like that | ||
| masak | that is a problem. | ||
| 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. | ||
| 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) | ||
| masak | .oO( Tenor ) |
||
| moritz_ | and all builtin types (except Any, Mu, junction, and maybe Failure) implement that role | ||
| so "45".sin continues to work | 15:40 | ||
| masak | I like it! | ||
| moritz_ | and everybod who writes a class or role that wants to behave like a builtin can also implement that role | ||
| masak | is it immediate that there should only be one such role? | ||
| moritz_ | no | ||
| 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 :-) | ||
| moritz_ | and sin($yourObject) will likely telly you that it can't coerce to Numeric | ||
| then I discussed with pmichaud++ if the Any-list methods should live in Any or in Base | 15:42 | ||
|
15:42
Gorbad joined
|
|||
| moritz_ | we agreed that it's an open problem, but I don't think we found a good answer | 15:42 | |
| masak | nod. | 15:43 | |
| moritz_ | I think I tended to Base, pmichaud to Any | ||
| masak | very good ideas. I will think about them a bit myself. | ||
| frettled | moritz_: crikey, that's clever | ||
|
15:44
ejs joined
|
|||
| moritz_ | frettled: thanks | 15:44 | |
| frettled | I especially like the bit about making it easy to implement classes or roles that behave like built-ins. | 15:45 | |
|
15:45
payload joined
|
|||
| 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:45 | |
| moritz_ | well, with the current design it's even easier to implement built-in-like types | 15:47 | |
| but it's hard to implement non-built-in-like types :-) | 15:48 | ||
| frettled | heh | ||
| 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:52 | |
| 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 | ||
| masak | moritz_: there's usually some nice fallout even from the p6l discussions. | 15:54 | |
| just a lot of FP and math noise. | |||
|
15:55
am0c joined
|
|||
| moritz_ | math noise :-) | 15:55 | |
| 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 | |
|
15:56
frew__ joined
|
|||
| 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 | ||
| 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. | ||
| masak | moritz_: surely not. math has several types of noise. :) | ||
| 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. :) | ||
| moritz_ | I've never found out why it's so different | ||
| frettled: there's an environment variable to surpress all these questions, but I can't remember which one :/ | |||
| 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 | ||
| masak | rakudo: class A {}; class B {}; subset C of A & B; say C ~~ A; say C ~~ B | ||
| frettled | Suppressing the questions isn't desirable when I want to know whether I will be replacing already installed packages or not. | ||
| p6eval | rakudo 7347ec: ( no output ) | ||
| masak | locally, that gives 1\\n0\\n | ||
| moritz_ | std: class A {}; class B {}; subset C of A & B; say C ~~ A; say C ~~ B | ||
| p6eval | std 29199: ok 00:01 106m | ||
| 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). | ||
| moritz_ | masak: everything that declares a new class amesk p6eval time out | ||
| masak submits rakudobug | 16:00 | ||
| moritz_: wonder why. | |||
| frettled | The reason I'm whining here, is that I think this needs to be taken into account with $perl6_packaging :) | ||
| masak | rakudo: subset C of Str & Int; say C ~~ Str; say C ~~ Int | ||
| zaslon | lolmasakhazblogged! masak++ 'Failure()<0xb50bde20>': Failure()<0xb50bd394> | ||
| moritz_ | masak: no idea. If you find out, your my hero | ||
| masak | zaslon: no, I haven't. | ||
| zaslon | Sorry, I don't understand that command | ||
| p6eval | rakudo 7347ec: ( no output ) | ||
| frettled | masak: what failure? *read* | ||
| masak | frettled: zaslon is lying. | 16:01 | |
| but feel free to read my blog. :) | |||
| frettled | masak: damn you, zaslon! :D | ||
| masak: yeah, I read it yesterday :D | |||
| masak | all of it? :) | ||
|
16:02
kaare joined
|
|||
| masak | ah! the 'subset' syntax only expects exactly one term. | 16:03 | |
| that explains the strange output from the first one-liner. | |||
| zaslon | lolmasakhazblogged! masak++ 'November 25 2009 -- you guys can be on our team': use.perl.org/~masak/journal/39947?from=rss | ||
| masak | rakudo: subset C of (Str & Int); say C ~~ Str; say C ~~ Int | ||
| frettled | masak: I'm a returning reader :D | ||
| p6eval | rakudo 7347ec: Confused at line 2, near "of (Str & "in Main (file <unknown>, line <unknown>) | ||
| masak | frettled: cool. :) | 16:04 | |
| moritz_ | rakudo: subset C of Str where Int; say C ~~ Str; say C ~~ Int | ||
| frettled | masak: even if the Perl-ish topic doesn't interest me, I always read the snippet of history. | ||
| p6eval | rakudo 7347ec: ( no output ) | ||
| masak | frettled: that's the idea. :) | ||
| 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:05 | |
| masak | moritz_: no, probably not. | 16:06 | |
| moritz_: wait. it depends. for roles, it shouldn't be a problem. | 16:07 | ||
| actually, now I don't see the problem at all. | |||
| the nominal part happens to be an and-junction. | |||
| frettled | masak: We're back in (on?) the Iron Man planet! | ||
|
16:08
perigrin joined
|
|||
| masak | frettled: \\o/ | 16:08 | |
|
16:14
zloyrusskiy joined
|
|||
| moritz_ | masak: if the nominal part is an and-junction, all non-junction types don't conform to it | 16:15 | |
| masak | how do you figure that? | 16:17 | |
| the junction is just a shorthand for 'both of these' or 'neither of these'. | |||
| moritz_: that's how they're used in signatures, for example. | 16:18 | ||
| moritz_ | masak: S12:1002 | 16:19 | |
| it shows by example that a subset is a *type* plus a constraint | |||
| and A&B is not a type. It's a value. | |||
| masak | I'm not sure I'm convinced by that. | 16:20 | |
| STD does parse junctions in that place. | |||
| moritz_ | I don't need to convince you, it's enough that I'm right :-) | ||
| masak | yes, of course. | ||
| but I'm not sure you are. :P | 16:21 | ||
| moritz_ | :-) | ||
| moritz_ is pretty sure that jnthn would jump on TimToady's head if he introduced nominal junctional types | |||
| masak | uh, post 6.0.0. | 16:22 | |
| moritz_ | everything is fair if you postpone it after 6.0.0 :-) | 16:23 | |
| masak | yeah, we're going to miraculously solve a whole bunch of non-trivial problems after the 6.0.0 release. :) | 16:24 | |
| and by 'we', I mean jnthn. | |||
| :P | 16:25 | ||
| moritz_ | :-) | 16:28 | |
|
16:30
ejs joined
16:32
mico joined
16:33
kst joined
|
|||
| 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 | ||
| moritz_ | frettled: you're welcome :-) | 16:35 | |
| frettled | I think it might be funny, you just have to imagine jnthn as a cartoon character. | ||
| 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 | ||
| :D | |||
| TimToady starring as Everett Dalton, of course. | |||
| Sorry, Averell Dalton. | 16:37 | ||
| pmichaud | good morning, #perl6, and Happy Thanksgiving | ||
| Wolfman2000 | morning | ||
| moritz_ | good localtime | ||
|
16:38
nihiliad joined
|
|||
| moritz_ | and happy $holiday to you! | 16:38 | |
| pmichaud goes to read backscroll (on perl6.de) | |||
| 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. | ||
| Happily, the two dates coincide perfectly. | |||
| It's easy to remember, too: RIP JFK + 9 years. :D | 16:39 | ||
| moritz_ | ... supposing you remember RIP | ||
| *RIP JFK | |||
| frettled | yeah, there's that. | ||
| TimToady | JFK...wasn't he the dude that died the same day C.S. Lewis did? | ||
| frettled | I can ask people to recall the massacre in Munich instead, perhaps. | ||
| moritz_ | the ones at the Olympic Games? | 16:40 | |
| frettled | TimToady: indeed! | ||
| moritz_: yup | |||
| 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
|
|||
| moritz_ | pmichaud: backscroll on perl6.de? what did I miss? | 16:42 | |
|
16:46
iblechbot joined
|
|||
| pmichaud | sorry, perlgeek.de | 16:49 | |
| given that I live just a few miles from Dealey Plaza (where JFK was shot...) | 16:55 | ||
| jeremiah | So are you saying that were on the Grassy Knoll? | 17:02 | |
| pmichaud | no, I'm not saying that :) | 17:03 | |
| jeremiah | heh | ||
| TimToady | but you'll notice he's not denying it either... | ||
| jeremiah | aha! | 17:04 | |
| Let's say I was giong to add pod to Test.pm that one can find in Rakudo. | |||
| Would there be other sources I might cannibalize? | |||
| And by sources I mean sources of documentation. | 17:05 | ||
| jnthn | oh hai I@m back | 17:13 | |
| Gee, I go studdy $impossible-language, and come back and find I got volunteered to solve hard problems? :-P | 17:14 | ||
| pmichaud: Happy Thanksgiving! | 17:15 | ||
|
17:21
cdarroch joined
17:44
zloyrusskiy joined
17:50
jan_ joined
|
|||
| jeremiah | After doing a 'make install' it looks like rakudo creates a binary called perl6 in parrot_install/bin/ | 18:02 | |
| Is this the one I should add to my PATH? | 18:03 | ||
| Or is it just okay to use the one that ends up in the rakudo dir? | |||
|
18:03
[particle]1 joined
|
|||
| moritz_ | you should use the installed one | 18:03 | |
| jeremiah | Thanks moritz_! | 18:04 | |
| ng_feed | rakudo-ng: moritz++ | 18:05 | |
| rakudo-ng: [README] small clarification for jeremiah++ | |||
|
18:06
pmurias joined
18:07
nihiliad joined,
ruoso joined
18:08
payload joined
18:14
cognominal joined
|
|||
| pmichaud | the two binaries should be identical | 18:17 | |
| moritz_ | then it's not wrong to point to the installed one :-) | 18:21 | |
| pmichaud | correct! | 18:28 | |
| 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:30 | |
| jeremiah | So I did this: | 18:31 | |
| jeremiah@debian:~/code/perl/rakudo find . -name perl6 -type f -exec ls -l {} \\; | |||
| and got back this: | |||
| -rwxr-xr-x 1 jeremiah jeremiah 5787729 Nov 26 15:15 ./perl6 | |||
| -rwxr-xr-x 1 jeremiah jeremiah 5787729 Nov 26 18:01 ./parrot_install/bin/perl6 | |||
| 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:32 | ||
| pmichaud | that would be correct | 18:33 | |
| could use "cmp" to find out if they're identical. | |||
| cmp perl6 parrot_install/bin/perl6 | |||
|
18:48
eternaleye joined,
nihiliad joined
|
|||
| dukeleto | jnthn: i haz forked ur lolsql repo. i can haz commit bit? | 18:57 | |
| Wolfman2000 seriously wonders who users lolsql in production code | 18:58 | ||
| dukeleto | has anybody written a test harness in perl 6 yet? | 19:00 | |
| 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 | |||
| jnthn | dukeleto: oh hai...u haz a commit bit. | 19:02 | |
| dukeleto: be gud kitteh | |||
| dukeleto | jnthn: i iz making u a test suite | ||
| jnthn | dukeleto: remember to fork is WIN but to knife is DO NOT WANT. Srsly. | ||
| dukeleto iz guuuud kitteh | 19:03 | ||
| jnthn | dukeleto: omg test suite FTW! | ||
| 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
|
|||
| cognominal | jnthn, is that sort of a spoonerism? | 19:12 | |
| arnsholt | cognominal: No, I think it's more a mixing of metaphors I think | 19:20 | |
| A spoonerism is when I say "my knucking fees" when my knees hurt | 19:21 | ||
| 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 :) | ||
| arnsholt | Oh, riiiight. I missed that pun ^^ | 19:23 | |
| cognominal | i should add smileys when I act silly | 19:24 | |
|
19:24
dalek joined
19:27
ivantis joined
|
|||
| ivantis | whats this about google wave | 19:27 | |
|
19:29
meteorjay joined
19:31
ivantis left
|
|||
| 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:36 | |
| perigrin | heh | 19:38 | |
|
19:42
alanhaggai joined
19:56
kst joined
19:57
colomon joined
20:25
meppl joined
|
|||
| 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 2current instr.: 'parrot;Regex;Cursor;FAILGOAL' pc 1652 (src/Regex/Cursor-builtins.pir:179) | ||
| japhb | nqp: sub test_try() {try { say("Hi there."); };if 1 { say("Ho there."); }} | ||
| p6eval | nqp: ( no output ) | ||
| japhb | Tene, pmichaud: try { } parsing bug above; requires trailing ; after block that should not be necessary. | 20:27 | |
| mathw | There's a conspiracy to stop me buying my train tickets | 20:31 | |
| TimToady | rakudo: say Mu | 20:33 | |
| p6eval | rakudo 7347ec: Could not find non-existent sub Muin Main (file src/gen_setting.pm, line 324) | ||
| jeremiah | What does Mu du? | 20:34 | |
| TimToady | Mu is the unification of Object and undef | ||
| jeremiah | wow, zen like | ||
| The sound of one object undeffing. | 20:35 | ||
| TimToady | rakudo: say Nil | ||
| p6eval | rakudo 7347ec: Nil() | ||
| jeremiah | So the point is to have a keyword that is more 'nothing' that undef | ||
| ? | |||
| TimToady | there is no undef | 20:36 | |
| jeremiah | s/that/than/ | ||
| TimToady | std: undef | ||
| p6eval | std 29199: [31m===[0mSORRY![31m===[0mObsolete 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, | ||
| ..Any:U as a type con… | |||
| jeremiah | ah okoay. | ||
| TimToady | std: Object | 20:37 | |
| p6eval | std 29199: [31m===[0mSORRY![31m===[0mObsolete 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>[0mFAILED 00:01 103m | ||
| jeremiah | ah, so you have an undefined Int, but Mu is an undefined undefined? | ||
| mathw | Mu is the type at the base of the tree | 20:38 | |
| jeremiah | okay. | ||
| cognominal | Is it what the type theorists call the bottom type? | 20:39 | |
| TimToady | not exactly | ||
| 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 :) | ||
| TimToady | in a sense Mu serves contextually as both top and bototm | ||
| *bottom | |||
| cognominal is confused | 20:41 | ||
| mathw | bottom doesn't really live in the hierarchy... it's just sort of over there somewhere | ||
| 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 :) | ||
| so no bare bottoms in Perl 6 | |||
| cognominal | they say that bottom is a type with no value | ||
| mathw | cognominal: mmm but it's not the same as the empty type | ||
| TimToady | we have Nil, which is supposed to be the non-existent value, kinda | 20:43 | |
| but it's not a type | |||
| jeremiah | The type that cannot speak its name. | ||
| TimToady | well, not supposed to be, but rakudo still has it that way | ||
| rakudo: say () | 20:44 | ||
| p6eval | rakudo 7347ec:  | ||
| cognominal read the diffs about Mu, but probably need to read it in context in the synopses | |||
| 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 | |
|
20:45
iblechbot joined
|
|||
| TimToady | $x ~~ Object should always be true, for instance | 20:45 | |
| which is why all the .t files that had $x ~~ undef now just say $x.notdef | 20:46 | ||
| cognominal | TimToady, btw, S02 mentions the class Widget twice without ever saying what it is | 20:47 | |
| no mention of it in other synopses too | |||
|
20:50
mikehh joined,
nihiliad joined
|
|||
| TimToady | widgets: www.perl.com/2003/07/16/graphics/slide72.jpg | 20:53 | |
| Khisanth | hmm the bot is outputting ascii color codes | 20:59 | |
| err ansi | |||
| TimToady | that's what ansi color codes are for: outputting :) | 21:01 | |
| they don't work too well bofore that | 21:02 | ||
| *before, even | |||
| today I am *thankful* for ansi color codes. :) | |||
|
21:06
hanekomu_ joined
|
|||
| TimToady | ...even if they are kind of a turkey... | 21:06 | |
| japhb | I don't think I can gobble down too many more of these puns. | 21:07 | |
| TimToady | too stuffed to wattle, are you? | 21:08 | |
| 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:10 | |
| not sure what should happen if someone affect ather class attributes to the node in that example | 21:11 | ||
| 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
|
|||
| 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:13 | |
| jnthn | If it does Positional then it can be bound, I guess. | 21:14 | |
| Well, in that case does Positional[XMLClass] | |||
| cognominal | I guess I am asking too many thing at once... view, binding. | ||
| jnthn | (Or if I really wnat to be precise, does Positional[T] where T ~~ XMLClass :-)) | 21:15 | |
| cognominal | I think haskell has a concept of view, but I did not understood it. | 21:16 | |
|
21:16
kst joined
|
|||
| quantumEd | there's a couple different interpretations of view | 21:16 | |
|
21:19
mariano__ joined
21:20
eternaleye joined
21:21
SmokeMachine joined
|
|||
| zaslon | lolmasakhazblogged! masak++ 'November 26 2009 -- all is fair if you're rewriting Time': use.perl.org/~masak/journal/39951?from=rss | 21:26 | |
| frettled | phenny: tell masak Coup d'etat? masak++ :D | 21:32 | |
| phenny | frettled: I'll pass that on when masak is around. | 21:33 | |
|
21:34
dukelet0 joined
|
|||
| sjohnson | y0 | 21:49 | |
|
21:52
colomon joined
|
|||
| colomon | hai | 21:53 | |
| jeremiah | So declaring 'module' at the top of a script is like declaring 'Package' in perl 5? | 21:55 | |
| moritz_ | not quite, but I'm not able to remember the difference :/ | 21:56 | |
| jeremiah | heh | 21:57 | |
| Well, then it probably will work for me. | |||
| moritz_ | Perl 6 also has a "package" statement | ||
| jeremiah | I should look in the perl 6 book I have here somewhere. | 21:58 | |
|
21:58
IllvilJa joined
|
|||
| moritz_ | but so far I've used only classes, roles, grammars and modules | 21:58 | |
| jnthn | It may be that packages really are just namespaces, whereas modules may carry version information and so forth. | 22:00 | |
| jeremiah | ah | 22:01 | |
| The perl 6 book 2nd ed. mendtions modules in the index, but doesn't really describe the keyword much. | |||
|
22:07
justatheory joined
|
|||
| 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 | ||
| jeremiah | eternaleye: Yup | ||
| eternaleye | jeremiah: one sec while I track down the .el for you | ||
| jeremiah | There is one?! | ||
| w00t | |||
| eternaleye | 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
|
|||
| jeremiah | eternaleye: Schweet! Thanks. | 22:10 | |
| 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. | ||
| I've seen some of the spec, but I like the pace of a book a little more. | 22:12 | ||
| I'll check out those links | |||
| Wow, there is the perl 6 book on the front page. Cool. | 22:13 | ||
| eternaleye | jeremiah: Do you know Perl 5? | ||
| jeremiah | Yuppers. | ||
| 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. | ||
| eternaleye | Series of well-written blog posts | ||
| jnthn | jeremiah: You starting to learn Perl 6? :-) | ||
| jeremiah | Just saw a great presentation by jnthn this weekend which I really liked too. | ||
| oops. | |||
| eternaleye | lol | ||
| jeremiah | Speak of the lolcat and he shall appear | ||
| jnthn | OH HAI | ||
| :-) | |||
| jeremiah | <o/ | 22:15 | |
| eternaleye | rakudo: say "Iz in ur evalbot, runnin ur code" | ||
| p6eval | rakudo 7347ec: Iz in ur evalbot, runnin ur code | ||
| jeremiah | Gave you a proper sized head this time. | ||
| heh | |||
| sjohnson | rakudo: if (-f '/bin/ls') { print "[$_]"; } | 22:16 | |
| p6eval | rakudo 7347ec: Could not find non-existent sub fin Main (file src/gen_setting.pm, line 324) | ||
| 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? | ||
| moritz_ | std: 1 ... | 22:17 | |
| p6eval | std 29199: [31m===[0mSORRY![31m===[0mBogus statement at /tmp/pwqoAC8KE2 line 1 (EOF):------> [32m1 ...[33m⏏[31m<EOL>[0m expecting any of: prefix or term standard stopper term terminator whitespaceFAILED 00:01 106m | ||
| moritz_ | I think parse error :-) | ||
| eternaleye | rakudo: if '/bin/ls'.IO.f { say "We haz listing, cap'n!"; } | ||
| p6eval | rakudo 7347ec: Method 'IO' not found for invocant of class 'Str'in Main (file src/gen_setting.pm, line 324) | 22:18 | |
|
22:18
pmurias joined
|
|||
| 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 | ||
| sjohnson | aka happyswitches | ||
| moritz_ | rakudo: say ?( '/bin/ls/ ~~ :f) | ||
| eternaleye | sjohnson: See my translation above | ||
| p6eval | rakudo 7347ec: say requires an argument at line 2, near " ?( '/bin/"in Main (file src/gen_setting.pm, line 2593) | ||
| moritz_ | rakudo: say ?( '/bin/ls/' ~~ :f) | ||
| p6eval | rakudo 7347ec: 0 | ||
| 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 | |
| Rakudo is still a step behind the specification, though | |||
| zaslon | lolmasakhazblogged! masak++ 'Failure()<0xb50a225c>': Failure()<0xb50a1708> | ||
| moritz_ | there aren't enough pmichauds and jnthns to keep up with all these spec changes :( | 22:22 | |
|
22:22
astrojp joined
|
|||
| zaslon | lolmasakhazblogged! masak++ 'November 26 2009 -- all is fair if you're rewriting Time': use.perl.org/~masak/journal/39951?from=rss | 22:24 | |
| 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) | ||
| eternaleye | rakudo: .say for 1,3,5 ... *; | ||
| p6eval | rakudo 7347ec: Sorry, lazy lists and infinite ranges are not yet implementedin sub | ||
| 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:26 | |
| 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) | ||
| eternaleye | Tene: It doesn't seem to have infix:<...> yet | ||
| Tene | eternaleye: last I heard, lazy isn't done right in ng, needs a rework | ||
| jeremiah | rakudo: use Test; plan 1; my $x = "test"; ok($x == "test"); | ||
| eternaleye | ouch | ||
| p6eval | rakudo 7347ec: ( no output ) | ||
| Tene | I'm waiting on lazy rewrite in ng for lazy gather/take | 22:28 | |
| jeremiah | hmm | ||
| sjohnson | thanks guys | ||
| Tene | jeremiah: use 'eq' instead | ||
| jeremiah | rakudo: use Test; plan 1; my $x = "test"; ok($x eq "test"); | ||
| Tene | $x eq "test" | ||
| jeremiah | Tene: Thanks :) | ||
| p6eval | rakudo 7347ec: ( no output ) | ||
| Tene | also, is($x, "test") | 22:29 | |
| eternaleye | Timeout, I bet | ||
| jnthn | eternaleye: (series) I didn't fully grok the series operator myself yet. | ||
| jeremiah | So, in this case, the "is" has nothing to do with class attributes. | ||
| 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. | ||
| jnthn | eternaleye: That sounds like something you'd maybe want to do with gather/take. | ||
| 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. | ||
| jeremiah | rakudo: use Test; plan 1; my $x = "test"; is($x, "test", 'works'); | ||
| Tene | eternaleye: if you can implement it in terms of gather/take, it will magically become lazy later. | ||
| p6eval | rakudo 7347ec: ( no output ) | ||
| 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? | ||
| colomon | eternaleye: either want to use gather / take or write your own iterator. | ||
| 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). | ||
| eternaleye | colomon: Thanks | ||
| colomon | (I wrote it to the spec'd Iterator interface, which ng doesn't support.) | ||
| jnthn | eternaleye: I think it's probably just a bit too soon to do that in ng. | ||
| eternaleye: I know pmichaud++ is thinking about all of that lot though and working on it. | |||
| 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... | ||
| moritz_ | colomon: did you attack split already? | ||
| jnthn | ...it's kinda hard to do those. | ||
| colomon | moritz_: no, just thought about it. It needs laziness too, of course.... | 22:35 | |
| moritz_ | i might give it a shot tonight | ||
| 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:36 | ||
| 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:37 | ||
| cognominal discovers the term pir::op to include an arbitrary pir opcode in the abstract syntax tree, that's way cool | 22:38 | ||
| colomon | cognominal: oh yeah, it's made it very easy to interface p6 code to pir. | 22:39 | |
| cognominal | that's a feature that is exercising so many things that's my head spins. | 22:43 | |
| jnthn | jeremiah: You can haz a happy; I uploaded the slides. | 22:46 | |
| jeremiah: www.jnthn.net/articles.shtml | |||
| cognominal | jnthn, I am happy too | ||
| jnthn | Looks like I gave 15 Perl 6 related talks this year. :-) | 22:47 | |
| Spread over 9 different countries. | |||
| 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 | ||
| colomon | "Latvia is the 33rd country I have visited so far." -- no wonder Rakudo is taking so long! ;) | ||
| jeremiah | w00t! | ||
| Thanks jnthn! | |||
| jnthn | No, 10 countries. | ||
| moritz_ | cognominal: I'm not sure about the relative precedence of = and + | ||
| without the brackets it might get parsed as [$<op>=\\w]+ | 22:49 | ||
| jnthn | colomon: :-P | ||
| colomon: Well, it keeps me motivated. :-) | |||
| cognominal | I see : S05-regex.pod:3458: if mm/ $<pairs>=<pair>+ / { | ||
| so I guess I am right | 22:50 | ||
| colomon | jnthn: Heck, I'm probably just jealous. :) | ||
| moritz_ | cognominal: yes | ||
| 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 | ||
| jeremiah | lulz | ||
| Juerd | jnthn++ # Talks | ||
| moritz_ | jnthn: is there a chance you could make No applicable candidates found to dispatch to for 'match' error message more awesome? | 22:54 | |
| like, including the type of the arguments | |||
| jnthn | jeremiah: That was one of my favorite talk titles. :-) | ||
| jeremiah: It's actually quite a hardcore talk. It's about type theory, but pre-dates the days when I worked on Perl 6. | |||
| jeremiah: Well, on a Perl 6 compiler anyway. :-) | |||
| moritz_: What would you like it to give? The types of the arguments that were pissed? | 22:55 | ||
| er | |||
| passed (!) | |||
| moritz_ | jnthn: yes | ||
| jnthn | moritz_: That sounds quite do-able. | ||
| moritz_ | and if you're in a Super-Awesome mode also the types in of the candidates | ||
| jnthn | moritz_: MTA would be "Maybe you menat <this candidate>" | ||
| And it picks the closest likely ones as suggestions. | 22:56 | ||
| Or we could just show all possibles I guess. | |||
| Anyway, it seems we've multiple options for awesomization. | |||
| moritz_ | most awesome would be for each candidate a marker why it didn't match | ||
| jnthn | Ooh. | ||
| moritz_ | like saying (wrong arity) or (nominal type mismatch of arg $foo) or so | 22:57 | |
| jnthn | It'd be nice but it'd also mean some dispatcher code re-org. | 22:58 | |
| If we're not going to do epic copy-paste anyway. | |||
| moritz_ | ouch | ||
| jnthn | It's not a big deal. | ||
| moritz_ | the .comb function I wrote a few days ago has already regressed | ||
| jnthn | It's just not a 5 minute job either. | ||
| moritz_: oh ouch :-( | |||
| moritz_ | ./perl6 -e 'say "foobar".comb(/<[ao]>+/)' | ||
| No applicable candidates found to dispatch to for 'match' | |||
| current instr.: 'perl6;Any;_block1627' pc 202293 (src/gen/core.pir:11750) | |||
| it seems that Str.match regressed | 22:59 | ||
| and no wonder I can't get Str.split working eitehr | |||
| cognominal | jnthn, an exemple with a C<where> would be nice your "solved in Perl 6" | ||
| 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? | ||
| colomon | like I did with range-basic.t | ||
| cognominal | indeed | ||
| jnthn | cognominal: We sorta do in one example but it turns out there's syntactic sugar that avoids needing to write the where. :) | 23:01 | |
| moritz_ | jnthn: would you like a ticket for awesomization of that error message? | 23:02 | |
| jnthn | moritz_: Feel free to file one, yes. | 23:05 | |
| moritz_ | sent. | 23:11 | |
| RT #70850, for the record | 23:16 | ||
| colomon | rakudo: say (1, 2, 3); | 23:27 | |
| p6eval | rakudo 7347ec: 123 | ||
| colomon | rakudo: say (1, 2, 3).Str; | ||
| p6eval | rakudo 7347ec: 1 2 3 | ||
| colomon | rakudo: say ~(1, 2, 3) | ||
| p6eval | rakudo 7347ec: 1 2 3 | ||
| colomon | Not sure how I managed to make it this far in p6 without learning that. | 23:28 | |
| moritz_ | say() has a slurpy parameter, and stringifies the items separately | 23:29 | |
| Juerd | rakudo: my @foo = 1, 2, 3; say "@foo"; | 23:30 | |
| p6eval | rakudo 7347ec: @foo | ||
| colomon | moritz_: yeah, I figured that out. but I just figured it out three minutes ago. | ||
| Juerd | Oh. | ||
| rakudo: my @foo = 1, 2, 3; say "{@foo}"; | |||
| p6eval | rakudo 7347ec: 1 2 3 | ||
| Juerd | So many ways! | ||
| 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" :) | ||
| Juerd | ~ is an extended tongue, making a specific sound. | ||
| www.youtube.com/watch?v=QFCSXr6qnv4 | 23:33 | ||
| 5:45 | |||
|
23:34
colomon_ joined,
bobnet joined
|
|||
| colomon | rakudo: multi sub postfix:<!>($n) { $n * ($n - 1)! }; multi sub postfix:<!>(0) { 1 }; say 4!; | 23:42 | |
| p6eval | rakudo 7347ec: 24 | ||
| colomon | recursive operators work, rakudo++! | ||
| jnthn | ;-) | 23:44 | |
| That's kinda beautiful. | 23:45 | ||
| Even though [*] 1..$n is so much more performant. ;-) | |||
| Well, should be... :-) | |||
| colomon | jnthn: oh yeah, [*] 1..$n is awesome, and will certainly perform better once we have lazy Ranges. | 23:47 | |
| I was just looking at your solved in perl 6 lecture, and it seemed like the recursive operator thing was one you left out. | |||
| 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 | ||
| in this case | |||
| it often helps because it safes memory | |||
| but if $n is really large, computing the products takes much more time than allocating and deallocating the memory for the 1..$n list | |||
| colomon | I suppose. :) | 23:49 | |
| colomon still wants to maximize his laziness. | |||
| jnthn | It still gives you a nicer memory profile though, I guess. | ||
| Recursive gives you a bunch of call frames. | 23:50 | ||
| So yes, not much speed win, but nicer on memory. :) | |||
| 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>) | ||
| Wolfman2000 | rakudo: multi sub postfix<!>($n) { [*] 1..$n;}; say 5!; | ||
| p6eval | rakudo 7347ec: Malformed routine definition at line 2, near "postfix<!>"in Main (file <unknown>, line <unknown>) | ||
| Wolfman2000 | ...where'd I copy it wrong? | 23:57 | |
| rakudo: multi sub postfix:<!>($n) { [*] 1..$n;}; say 5!; | |||
| colomon | need a colon after postfix | ||
| p6eval | rakudo 7347ec: 120 | ||
| Wolfman2000 | rakudo: multi sub postfix:<!>(Int $n) { [*] 1..$n;}; say 50!; | ||
| p6eval | rakudo 7347ec: 3.04140932017134e+64 | ||
| Wolfman2000 | that was fast | ||
| colomon | but not accurate. :( | ||
| 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.) | ||