»ö« | 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 Mu␤in 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 value␤moose/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 fail␤current 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 ubi␤in 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] &not,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 2␤current 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 Mu␤in 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===[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,␤
..Any:U as a type con…
jeremiah ah okoay.
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␤
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 f␤in 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===[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␤
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 implemented␤in 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.)