Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-04-05

Perl 6 | Reference Documentation | Rakudo

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

All times shown according to UTC.

Time Nick Message
00:01 mncharity hmm, I said eh, but once we start regularly running the test suite, that 2 sec may start to be a bottleneck, given STD_red parse caching.
00:02 mncharity bbl &
00:19 mytoulonnaise joined #perl6
00:26 rofl_ joined #perl6
00:41 pugs_svnbot r20222 | lwall++ | [STD] was missing private method call using !
00:41 pugs_svnbot diff: http://dev.pugscode.org/changeset/20222
00:41 lambdabot Title: Changeset 20222 - Pugs - Trac
00:53 muixirt2 joined #perl6
01:03 Auzon joined #perl6
01:42 meppl good night
01:53 mncharity g'night meppl :)
01:53 pugs_svnbot r20223 | putter++ | [elf_c] Forked a stable copy of STD_red (r20220).  elf_c is now slushy.
01:53 pugs_svnbot diff: http://dev.pugscode.org/changeset/20223
01:53 lambdabot Title: Changeset 20223 - Pugs - Trac
01:54 Auzon What do you mean by slushy?
01:54 mncharity slushy is in between active and frozen.  /me looks for good definition...
01:55 Auzon so maintained?
01:55 justatheory joined #perl6
01:56 mncharity bbiam
01:59 mncharity back,
02:02 mncharity re maintained, yes.  depends what you mean.  with it's own copy of STD_red, it's only external dependencies are on perl and ruby.  biggest risk there is ruby 1.9 over future releases.  so relatively bitrot resistant.  however,
02:02 mncharity s/ruby 1.9/ruby 1.9 drift/
02:03 mncharity as it freezes, it is increasingly considered feature complete.  bug complete too.  the later both to focus development on HEAD, and so that people can depend on behavior not changing.
02:04 mncharity old elfs can be thought of as old svn revs, but more convenient because you can keep running them, and they've been tweaked to avoid rotting.
02:05 mncharity answered?
02:05 [particle] joined #perl6
02:05 Auzon Very well, thanks :)
02:06 Auzon Have you done any benchmarking to see how much slower things get when adding another elf? If I remember correctly, that was a large problem with KP6.
02:08 mncharity not really.  mainly just watching the self-compile time.
02:09 Auzon aren't you compiling each new version with the immediately previous version?
02:09 mncharity elf_b, the first bootstrapped elf, was significantly slower than elf_a.  10 sec vs 2? sec.  and slower to start (2 sec vs noise).  since then its been stable.
02:10 mncharity re compiling, no.  generally, things start off with a version being compilable by itself and its predecessor.  but elf_c for
02:10 mncharity instance became solely self-compiling.  it could no longer be compiled by elf_b.
02:11 mncharity basically the tradeoff is between the additional hassle of being only self-compiling, vs the hassle of updating the predecessor sufficiently to keep compiling the new version.
02:12 Auzon oh, I see. So elf_c rolled in more changes than I expected
02:13 Auzon I just expected you to implement elf_{n} in elf_{n-1}, and anything past that point would go to elf_{n+1}
02:15 Auzon I must be going. It was nice to talk :)
02:15 mncharity one could, and end up with a chain.  but it's not clear that buys you very much.  if the environment breaks something, or a latent bug gets introduced but not noticed, you're not much better off if you have a chain than when you have a series of "releases".  atleast while
02:15 ruoso joined #perl6
02:15 mncharity the executable form is still so easily directly edited.
02:15 Auzon Makes sense :)
02:15 SamB what is this -- the demoscene?
02:15 mncharity re talk, indeed :)
02:15 SamB editing executables directly!
02:16 mncharity its just p5, and "looks almost like hand written" as well.
02:16 SamB oh
02:16 SamB sorry, you kept using the word "elf"
02:16 SamB that confused me ;-)
02:17 Auzon elf is the name of the interpreter/compiler/thing
02:17 mncharity ooohhhhh.   drat.  didn't think of that.  bzzzt.  unfortunate name collission
02:17 SamB hahahaha
02:17 Auzon At least you didn't pick gnome :P
02:17 mncharity think green hat, pointy ears, working with Santa
02:17 mncharity lol
02:17 SamB gnome would have been less confusing though
02:18 mncharity LOL :) # re gnome
02:18 SamB since GNOME has little to do with compilers
02:18 mncharity ah well.  elf is all about making itself obsolete by allowing people to write _real_ p6 compilers.
02:19 mncharity name just has to survive some months.
02:21 mncharity anyone know state-of-the-art on p5 multiple dispatch?  a quick microbench sugggests  a simple method-call plus dispatch to sub in hash indexed by ref of first (well, second) argument wouldn't be significantly more expensive than a double method call.
02:24 stevan_ joined #perl6
02:25 mncharity (the double method call being what you pay in a single dispatch workaround "visitor" kludge)
02:25 mncharity hi stevan_ :)
02:26 stevan_ heya mncharity
02:26 mncharity and since we have control over the compiler, we can punt the arity check.  go directy to method_foo_called_with_one_​extra_dispatching_argument
02:27 mncharity stevan_: Moose have anything multiple-dispatchy I can use? :)
02:28 mncharity getting rather tired of fighting single dispatch, and watching it distort and complicate things.
02:29 mncharity as long as the cost is only ~3x or 4x that of a method call
02:29 lisppaste3 joined #perl6
02:29 mncharity oh, objective is multimethods rather than multisubs.
02:30 stevan_ nope, Moose doesnt even ry to go there
02:30 stevan_ even LISP cant do it fast :P
02:30 mncharity so have time for the original method call, the final sub call, a couple of refs and other ops.  maybe squeze in another sub call.
02:30 mncharity lol
02:31 stevan_ there is Data::Bind
02:31 mncharity different definition of fast though :P
02:31 mncharity hmm, Data::Bind...
02:34 mncharity Since having control of the compiler let's one play games one can't with a pure p5 module... hmm, maybe scavange Moose reflection stuff, so can easily say collect the set of named-for-easy-spotting multimethod subs from the inheritance tree, with the type constraints encoded in name perhaps, and then assemble the actual dispatchers from those.
02:38 mncharity re Data::Bind, interesting, but no.  let's see..
02:39 aindilis joined #perl6
02:40 mncharity re LISP fast, but one of several advantages of perl of CL is never hearing "yes X would be nicely expressive and save you work, but we don't know how to compile it efficiently so you can't have it". :)
02:40 mncharity s/of/over/
02:40 mncharity sort of like haskell in that respect
02:43 mncharity re Moose and MMD, just having double dispatch, invocant and the first argument after that, would allow people to get away from single-dispatch visitor workarounds.  hmm, as long as the inheritance tree is flatish.
02:44 mncharity though dameon(sp?) had a "use a regex to do type recognition" hack for some mmd module.  wonder what that costs...
02:44 stevan_ mncharity: nothingmuch is working on something to do basic type based dispatching
02:45 mncharity ah, released?
02:45 stevan_ so loc(DateTime $x) will dispatch to loc_datetime($x)
02:45 mncharity oh, hmm.
02:45 stevan_ no, he is currently fighting the eurorail customer service nightmare I think
02:45 mncharity eep
02:45 stevan_ next week I think
02:45 stevan_ cause we need it for $work stuff
02:45 stevan_ it will be intentionally simplistic though
02:47 mncharity I'm thinking more   multi method m(Int $i){3}  aka  multi method m ($self : $i ;;) {3}  which could be compiled to   sub m { my $self=shift;  if(ref($_[0]) eq 'Int'){3} else {die} }.   well, "could be", wouldn't want to.
02:48 mncharity multi method m (Int $n;; $none, $of, $this, $affects, $dispatch) { $hash_from_somewhere{ref($_[1]}->(@_) }
02:49 mncharity multi method m (Int $n;; $none, $of, $this, $affects, $dispatch) { goto $hash_from_somewhere{ref($_[1]}; }
02:49 mncharity err, ok, that was a bizarre mix of p6 and p5
02:49 mncharity multi method m (Int $n;; $none, $of, $this, $affects, $dispatch) {...}  compiled to   sub m { goto $hash_from_somewhere{ref($_[1]}; }
02:52 mncharity class X { multi method m (Int $n;; $whatever) { 3 } multi method m (Num $n){4} };  X.new.m(3);  ->   {package X; sub m { goto $my_hash{ref($_[1]}; }}
02:53 mncharity minor matter of collecting the info, and code generating(?) that sub.
02:53 mncharity :/
02:53 mncharity but performance should be < 2 method calls.
02:53 mncharity or ~= 2 method calls anyway.
02:58 mncharity stevan_: any nice Moose infrastructure to ask "gimme a list of all the method names available for class X, directly or through inheritance"?
02:59 stevan_ Class->meta->compute_all_applicable_methods
02:59 stevan_ returns an array of hashes with CODE ref, class name (i think) and method name
02:59 stevan_ Class::MOP::Class has the docs
03:00 mncharity woot :)
03:00 mncharity many thanks
03:01 elmex_ joined #perl6
03:03 stevan_ joined #perl6
03:09 mncharity http://search.cpan.org/~stevan/Cla​ss-MOP-0.54/lib/Class/MOP/Class.pm
03:09 lambdabot Title: Class::MOP::Class - Class Meta Object - search.cpan.org, http://tinyurl.com/587e4q
03:09 pugs_svnbot r20224 | putter++ | [STD_red] "multi method ..." now parses.  And <paramater>'s Match now includes quantchar.
03:09 pugs_svnbot r20224 | putter++ | [elf_d] That info is available in the IR.
03:09 pugs_svnbot diff: http://dev.pugscode.org/changeset/20224
03:09 lambdabot Title: Changeset 20224 - Pugs - Trac
03:14 PerlJam joined #perl6
03:14 diakopter joined #perl6
03:14 cycom joined #perl6
03:14 hcchien joined #perl6
03:14 Khisanth joined #perl6
03:14 awwaiid joined #perl6
03:14 ilogger2 joined #perl6
03:14 zev joined #perl6
03:14 yves joined #perl6
03:14 Yappo_ joined #perl6
03:23 alc joined #perl6
03:23 clkao joined #perl6
03:23 sunnavy joined #perl6
03:23 jql joined #perl6
03:23 obra joined #perl6
03:23 ingy joined #perl6
03:23 Maddingue joined #perl6
03:23 Gothmog_ joined #perl6
03:23 gbacon joined #perl6
03:23 baest joined #perl6
03:23 wolverian joined #perl6
03:23 felipe joined #perl6
03:23 pjcj joined #perl6
03:23 integral joined #perl6
03:23 BinGOs joined #perl6
03:32 stevan_ joined #perl6
03:47 cmarcelo joined #perl6
03:51 cmarcelo left #perl6
03:56 silug joined #perl6
04:13 Zygo joined #perl6
04:14 alester joined #perl6
04:45 mncharity thanks for the help stevan_.
04:45 mncharity good night all &
04:45 pugs_svnbot r20225 | putter++ | [elf_d] A crude start at multi methods.  Dispatches on two parameters: the invocant, and the bare non-inherited typename of the first other parameter.
04:45 pugs_svnbot r20225 | putter++ | 'class A {multi method f(SCALAR $x){say "hi"~$x}; multi method f(ARRAY $a){say "ay"};}; my $a = A.new; $a.f(3); $a.f([]);' works.  Likely little else.
04:45 pugs_svnbot diff: http://dev.pugscode.org/changeset/20225
04:45 lambdabot Title: Changeset 20225 - Pugs - Trac
05:35 spinclad mncharity: re 'bare non-inherited typename of the first other parameter':  that sounds good, especially if you treat the hash as a cache as you meet new types and ask them various 'does' questions
06:03 silug joined #perl6
07:33 barney joined #perl6
07:48 Aankhen`` joined #perl6
08:39 iblechbot joined #perl6
08:54 jan_ joined #perl6
09:17 rofl_ joined #perl6
09:18 Psyche^ joined #perl6
09:22 agentzh joined #perl6
09:35 gugod_ joined #perl6
09:41 kane_ joined #perl6
09:54 chris2 joined #perl6
10:07 barney joined #perl6
10:23 Schwern joined #perl6
10:34 elmex joined #perl6
10:45 rindolf joined #perl6
10:59 pugs_svnbot r20226 | cosimo++ | [t/spec] var/type.t moved to S02 spec test. Hackaton!
10:59 pugs_svnbot diff: http://dev.pugscode.org/changeset/20226
10:59 lambdabot Title: Changeset 20226 - Pugs - Trac
11:14 spx2 joined #perl6
11:24 alc joined #perl6
11:27 clintongormley joined #perl6
11:28 clintongormley left #perl6
11:33 Foke2 joined #perl6
11:36 clintongormley joined #perl6
11:54 meppl joined #perl6
12:32 clintongormley left #perl6
12:32 pugs_svnbot r20227 | cosimo++ | [t/spec] Fudgified var type test
12:32 pugs_svnbot diff: http://dev.pugscode.org/changeset/20227
12:32 lambdabot Title: Changeset 20227 - Pugs - Trac
12:32 chris2 joined #perl6
12:32 Patterner joined #perl6
12:32 jan_ joined #perl6
12:32 clkao joined #perl6
12:32 sunnavy joined #perl6
12:32 jql joined #perl6
12:32 obra joined #perl6
12:32 ingy joined #perl6
12:32 Maddingue joined #perl6
12:32 Gothmog_ joined #perl6
12:32 baest joined #perl6
12:32 wolverian joined #perl6
12:32 felipe joined #perl6
12:32 pjcj joined #perl6
12:32 integral joined #perl6
12:32 BinGOs joined #perl6
12:37 cosimo joined #perl6
12:37 pugs_svnbot r20228 | cosimo++ | [t/spec] Moved var/autoref.t to spec S02/
12:37 pugs_svnbot diff: http://dev.pugscode.org/changeset/20228
12:37 lambdabot Title: Changeset 20228 - Pugs - Trac
12:42 cosimo joined #perl6
12:42 chris2 joined #perl6
12:42 Patterner joined #perl6
12:42 jan_ joined #perl6
12:42 clkao joined #perl6
12:42 sunnavy joined #perl6
12:42 jql joined #perl6
12:42 obra joined #perl6
12:42 ingy joined #perl6
12:42 Maddingue joined #perl6
12:42 Gothmog_ joined #perl6
12:42 baest joined #perl6
12:42 wolverian joined #perl6
12:42 felipe joined #perl6
12:42 pjcj joined #perl6
12:42 integral joined #perl6
12:42 BinGOs joined #perl6
12:43 pugs_svnbot r20229 | cosimo++ | [t/spec] Fixed pod markup
12:43 pugs_svnbot diff: http://dev.pugscode.org/changeset/20229
12:43 lambdabot Title: Changeset 20229 - Pugs - Trac
12:45 pugs_svnbot r20230 | cosimo++ | [t/spec] autovivification test script moved to spec/S09
12:45 pugs_svnbot diff: http://dev.pugscode.org/changeset/20230
12:45 lambdabot Title: Changeset 20230 - Pugs - Trac
12:53 cosimo joined #perl6
12:53 chris2 joined #perl6
12:53 Patterner joined #perl6
12:53 jan_ joined #perl6
12:53 clkao joined #perl6
12:53 sunnavy joined #perl6
12:53 jql joined #perl6
12:53 obra joined #perl6
12:53 ingy joined #perl6
12:53 Maddingue joined #perl6
12:53 Gothmog_ joined #perl6
12:53 baest joined #perl6
12:53 wolverian joined #perl6
12:53 felipe joined #perl6
12:53 pjcj joined #perl6
12:53 integral joined #perl6
12:53 BinGOs joined #perl6
12:58 cosimo joined #perl6
12:58 chris2 joined #perl6
12:58 Patterner joined #perl6
12:58 jan_ joined #perl6
12:58 clkao joined #perl6
12:58 sunnavy joined #perl6
12:58 jql joined #perl6
12:58 obra joined #perl6
12:58 ingy joined #perl6
12:58 Maddingue joined #perl6
12:58 Gothmog_ joined #perl6
12:58 baest joined #perl6
12:58 wolverian joined #perl6
12:58 felipe joined #perl6
12:58 pjcj joined #perl6
12:58 integral joined #perl6
12:58 BinGOs joined #perl6
12:59 cosimo joined #perl6
12:59 Patterner joined #perl6
12:59 jan_ joined #perl6
12:59 pjcj joined #perl6
12:59 felipe joined #perl6
12:59 wolverian joined #perl6
12:59 baest joined #perl6
12:59 Gothmog_ joined #perl6
12:59 Maddingue joined #perl6
12:59 ingy joined #perl6
12:59 obra joined #perl6
12:59 jql joined #perl6
12:59 sunnavy joined #perl6
12:59 clkao joined #perl6
13:00 nirz joined #perl6
13:03 clkao joined #perl6
13:03 sunnavy joined #perl6
13:03 jql joined #perl6
13:03 obra joined #perl6
13:03 ingy joined #perl6
13:03 Maddingue joined #perl6
13:03 Gothmog_ joined #perl6
13:03 baest joined #perl6
13:03 wolverian joined #perl6
13:03 felipe joined #perl6
13:03 pjcj joined #perl6
13:03 jan_ joined #perl6
13:03 Patterner joined #perl6
13:03 cosimo joined #perl6
13:03 chris2 joined #perl6
13:03 integral joined #perl6
13:03 BinGOs joined #perl6
13:05 funktio joined #perl6
13:05 pugs_svnbot r20231 | cosimo++ | Now 'my Type $foo' is actually implemented
13:05 pugs_svnbot diff: http://dev.pugscode.org/changeset/20231
13:05 lambdabot Title: Changeset 20231 - Pugs - Trac
13:06 funktio joined #perl6
13:06 clkao joined #perl6
13:06 sunnavy joined #perl6
13:06 jql joined #perl6
13:06 obra joined #perl6
13:06 ingy joined #perl6
13:06 Maddingue joined #perl6
13:06 Gothmog_ joined #perl6
13:06 baest joined #perl6
13:06 wolverian joined #perl6
13:06 felipe joined #perl6
13:06 pjcj joined #perl6
13:06 jan_ joined #perl6
13:06 Patterner joined #perl6
13:06 cosimo joined #perl6
13:06 chris2 joined #perl6
13:06 integral joined #perl6
13:06 BinGOs joined #perl6
13:24 pugs_svnbot r20232 | cosimo++ | [t/spec] Added correct fudge directives according to current rakudo implementation status
13:24 pugs_svnbot diff: http://dev.pugscode.org/changeset/20232
13:24 lambdabot Title: Changeset 20232 - Pugs - Trac
13:30 pugs_svnbot r20233 | cosimo++ | [t] Fudgified test
13:30 pugs_svnbot r20234 | cosimo++ | [t/spec] Refactored control_flow/try.t tests under S04
13:30 pugs_svnbot diff: http://dev.pugscode.org/changeset/20234
13:30 lambdabot Title: Changeset 20234 - Pugs - Trac
13:33 pugs_svnbot r20235 | cosimo++ | [t/spec] Fudgified try.t spec test
13:33 pugs_svnbot diff: http://dev.pugscode.org/changeset/20235
13:33 lambdabot Title: Changeset 20235 - Pugs - Trac
14:14 FurnaceBoy joined #perl6
14:14 rindolf joined #perl6
14:28 Alias_ joined #perl6
14:34 barney joined #perl6
14:53 cai joined #perl6
14:54 Alias_ joined #perl6
14:57 Jedai joined #perl6
15:00 pugs_svnbot r20236 | cosimo++ | [t/spec] Refactored some literal/unicode tests under S02/S29
15:00 pugs_svnbot diff: http://dev.pugscode.org/changeset/20236
15:00 lambdabot Title: Changeset 20236 - Pugs - Trac
15:12 pugs_svnbot r20237 | cosimo++ | [t/spec] Moved string tests under S29-str
15:12 pugs_svnbot diff: http://dev.pugscode.org/changeset/20237
15:12 lambdabot Title: Changeset 20237 - Pugs - Trac
15:18 pugs_svnbot r20238 | cosimo++ | [t/spec] Infinity tests moved to S02-builtin-types
15:18 pugs_svnbot diff: http://dev.pugscode.org/changeset/20238
15:18 lambdabot Title: Changeset 20238 - Pugs - Trac
15:21 pugs_svnbot r20239 | cosimo++ | [t/spec] Moved not/true tests under operators. Not sure about this. Should it be 'S03-precedence' ?
15:21 pugs_svnbot diff: http://dev.pugscode.org/changeset/20239
15:21 lambdabot Title: Changeset 20239 - Pugs - Trac
15:30 pmurias joined #perl6
15:34 Limbic_Region joined #perl6
15:41 wknight8111 joined #perl6
15:55 chacha_chaudhry joined #perl6
15:55 sh4rm4 joined #perl6
15:55 chacha_chaudhry left #perl6
16:04 wtgee joined #perl6
16:09 wtgee left #perl6
16:18 alc joined #perl6
16:38 alester joined #perl6
16:45 b_jonas joined #perl6
17:03 FurnaceBoy joined #perl6
18:05 nirz joined #perl6
19:00 Schwern joined #perl6
19:00 Schwern joined #perl6
19:08 Alias_ joined #perl6
19:30 eternaleye joined #perl6
19:40 Alias__ joined #perl6
19:41 Psyche^ joined #perl6
20:04 lisppaste3 joined #perl6
20:38 FurnaceBoy joined #perl6
20:49 ToniEisner joined #perl6
21:10 justatheory joined #perl6
21:37 ToniEisner left #perl6
21:39 cathya joined #perl6
21:44 justatheory joined #perl6
22:04 Muixirt joined #perl6
22:39 s3ir joined #perl6
23:54 Limbic_Region joined #perl6

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

Perl 6 | Reference Documentation | Rakudo