Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-04-04

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:03 muixirt2 joined #perl6
00:24 Zygo joined #perl6
00:32 Psyche^ joined #perl6
00:39 thoughtpolice joined #perl6
00:48 thoughtpolice joined #perl6
00:54 Schwern joined #perl6
00:59 muixirt2 joined #perl6
01:03 r0bby joined #perl6
01:19 codeguy joined #perl6
01:36 qmole joined #perl6
01:37 codeguy left #perl6
01:57 Zygo joined #perl6
02:06 armagad joined #perl6
02:27 kanru joined #perl6
02:31 alester joined #perl6
02:32 meppl good night
02:41 [particle1 joined #perl6
02:45 REPLeffect joined #perl6
02:50 Lorn__ joined #perl6
03:27 alc joined #perl6
03:29 kanru2 joined #perl6
04:12 wtgee left #perl6
05:08 pugs_svnbot r20216 | putter++ | [STD_red] The error message for parse failure is now prettier.
05:08 pugs_svnbot diff: http://dev.pugscode.org/changeset/20216
05:08 lambdabot Title: Changeset 20216 - Pugs - Trac
05:13 kanru joined #perl6
05:38 Aankhen`` joined #perl6
05:38 r0bby joined #perl6
06:49 Psyche^ joined #perl6
06:59 smtms joined #perl6
07:08 meteorjay joined #perl6
07:37 iblechbot joined #perl6
07:38 pjcj joined #perl6
07:58 elmex joined #perl6
08:03 integral joined #perl6
08:05 wknight8111 joined #perl6
08:28 clintongormley joined #perl6
08:34 rindolf joined #perl6
08:53 pjcj joined #perl6
09:08 meppl joined #perl6
09:11 clintongormley left #perl6
09:41 ruoso joined #perl6
09:52 chris2 joined #perl6
10:07 meppl joined #perl6
10:15 pmurias joined #perl6
10:56 gbarr joined #perl6
11:16 Muixirt joined #perl6
11:48 clintongormley joined #perl6
11:49 clintongormley left #perl6
11:57 iblechbot joined #perl6
12:16 Schwern joined #perl6
12:17 Schwern joined #perl6
12:41 wknight8111 joined #perl6
12:48 xinming_ joined #perl6
12:56 pugs_svnbot r20217 | pmurias++ | [elf_d] added &sleep to prelude prelude
12:56 pugs_svnbot diff: http://dev.pugscode.org/changeset/20217
12:56 lambdabot Title: Changeset 20217 - Pugs - Trac
13:06 kanru joined #perl6
13:12 pmurias s/prelude prelude/prelude/
13:19 mj41_ joined #perl6
13:39 Zygo joined #perl6
13:40 Foke2 joined #perl6
13:41 masak joined #perl6
13:47 Foke2 joined #perl6
13:54 cmarcelo joined #perl6
13:54 iblechbot joined #perl6
13:59 alester joined #perl6
14:03 rdice joined #perl6
14:15 cognominal_ joined #perl6
14:16 lichtkind joined #perl6
15:02 jan_ joined #perl6
15:09 peeps[work] joined #perl6
15:14 davi joined #perl6
15:23 pjcj joined #perl6
15:56 davi [OT]: Perl job offer,  http://gnuherds.org/offers?id=43
15:56 lambdabot Title: GNU Herds - Free Software Association
16:03 mofino pays good
16:03 mofino well, reasonable.
16:06 armagad joined #perl6
16:14 PerlJam joined #perl6
16:21 justatheory joined #perl6
16:24 gbarr joined #perl6
16:28 alc joined #perl6
16:31 rdice joined #perl6
16:46 wtgee joined #perl6
17:00 Lorn_ joined #perl6
17:00 armagad joined #perl6
17:14 Psyche^ joined #perl6
17:16 sscaffidi joined #perl6
17:17 mncharity joined #perl6
17:21 mncharity pmurias: how goes?
17:24 pugs_svnbot r20218 | putter++ | [STD_red] Tweak error message change.
17:24 pugs_svnbot diff: http://dev.pugscode.org/changeset/20218
17:24 lambdabot Title: Changeset 20218 - Pugs - Trac
17:25 barney joined #perl6
17:27 tobeya joined #perl6
17:29 Lorn joined #perl6
17:44 cathya joined #perl6
17:49 Lorn_ joined #perl6
17:52 cookys joined #perl6
17:54 wtgee left #perl6
17:57 kyrbe joined #perl6
17:58 kyrbe left #perl6
18:09 cai joined #perl6
18:27 sh4rm4 joined #perl6
18:50 ruoso joined #perl6
18:58 pugs_svnbot r20219 | putter++ | [elf_c] Some prelude tweaks for elf_d.
18:58 pugs_svnbot r20220 | putter++ | STD_red_run: Bugfix recent changes.  Added experimental --error-message=MSG argument.
18:58 pugs_svnbot diff: http://dev.pugscode.org/changeset/20220
18:58 lambdabot Title: Changeset 20220 - Pugs - Trac
19:00 nirz joined #perl6
19:14 Psyche^ joined #perl6
19:14 pugs_svnbot r20221 | putter++ | [elf_d] Refactoring.  elf_d no longer use()s elf_c files.
19:14 pugs_svnbot diff: http://dev.pugscode.org/changeset/20221
19:14 lambdabot Title: Changeset 20221 - Pugs - Trac
19:15 mncharity TimToady: how goes?
19:17 nirz left #perl6
19:18 mncharity So elf_d now has code for runtime swapping of compiler, parser, and emitter.  Being untested, it must not work.  Reports of not workingness encouraged.
19:21 TimToady still very busy with $dayjob...
19:21 mncharity Some of it certainly has the taste of a KISS violation.  But part of it was needed anyway, and while I'm seeing 10 sec self compiles, not everyone is.  And pruning 10 from a edit-test inner loop is nice too.
19:22 mncharity re $dayjob, ah, ok.  np.  just touching base.
19:32 pmichaud TimToady: did you get my emails, or are they being lost in space somewhere?
19:33 pmichaud (or perhaps the replies are being lost in space)
19:33 TimToady I replied to one a day or two ago...
19:33 pmichaud okay, I'll double-check my spam filters again.  Thanks.
19:33 TimToady it's not stuck on my machine...
19:34 pmichaud I know I was having trouble with an over-aggressive spam filter this past weekend, so perhaps that's it
19:34 pmichaud anyway, thanks.
19:35 mncharity /me wonders how many people-lives (analogous to man-hours) are cost daily dealing with spam. :(
19:37 pmichaud yes, it was trapped in my spam filter at gmail.com
19:38 TimToady I wonder why it thought it was spam...
19:39 pmichaud I'm trying to see if I can find out
19:39 pmichaud it got past pobox.com's filters, but gmail complained
19:39 TimToady it was from Larry Wall, so obviously forged :)
19:40 TimToady or maybe any email mentioning money is automatically considered bogus...
19:40 pmichaud there's another message in my spam filter from "Damian Wall", which I find incredibly frightening
19:40 TimToady or maybe it's a plot by all the Python programmers at Google...
19:41 pmichaud heh.  I think it's a Google plot.
19:42 mncharity rouso: in the  http://www.perlfoundation.org/perl6/index.cgi?smop_s1p_language  fib example, fib is declared as a method, but called as a sub.  are  self.fib(...) calls intended?  (aka, $.fib(...))
19:42 lambdabot Title: SMOP s1p Language / Perl 6
19:48 pmichaud wow, on Apr 2 gmail had a *lot* of false positives -- 13 so far
19:51 TimToady april fools filter got out of hand, maybe
19:53 pmichaud nothing since then -- just on april 2
20:04 pmurias mncharity: re how goes - i'm ok
20:08 pmurias what is the runtime swaping about?
20:11 mncharity re runtime swaping,  ../elf_d EmitSmop.pm -s -e 'method xxx($yyy){3}' #=> big ugly mess of C code.
20:12 pmurias yes
20:12 mncharity EmitSmop.pm simply ends with   $*emitter1 = EmitSmop.new;
20:12 pmurias and what does the internal vs external destintion refer to?
20:13 pmurias * destinction in the README
20:13 mncharity ../elf_d EmitSmop.pm -e 'say 3'  still works, because it's still using  $*emitter0.
20:14 mncharity "internal" -> eval().  "external" ->  the output of  elf -x -e 'p6 code'.
20:14 thoughtpolice joined #perl6
20:15 pmurias mncharity: why not do it the way kp6 does it?
20:15 pmurias with proper plugins
20:15 pmurias ?
20:15 mncharity the distinction between what compiles and runs the inside of a BEGIN{...} during compilation, vs what compiles and emits the rest of it.
20:15 mncharity "proper plugins"?
20:16 mncharity oh, an array of random things following an api which then each get run?
20:16 pmurias right you need a second emitter for eval
20:17 pmurias s/eval/BEGIN blocks
20:17 mncharity well, you already have that one, as part of the runtime of the implementation itself.  you need a second one if you want to emit other cruft. :)
20:18 pmurias yes
20:18 pmurias ;)
20:19 mncharity re 'why not an array of random things following an api which then each get run?', because the current scheme is much simpler.  and even that I'm not sure isn't a "failure to KISS".
20:20 pmurias i think just runtime "patching" the compiler is horrible
20:20 mncharity but feel free to write a pluggins thing.   elf_d -e 'class PluginCompiler is Compiler { }; $*compiler1 = PluginCompiler.new;' ;)
20:21 pmurias it would be more of a custom ElfD.pm
20:21 mncharity right
20:22 mncharity re runtime patching horror, ah, but that's p6.    BEGIN { $?COMPILER = ... };  or something vaguely like that.
20:23 mncharity BEGIN { temp COMPILING::<$?PARSER> := MyGrammar; }
20:23 pmurias mncharity: the PARSER is not the whole compiler
20:24 mncharity BEGIN { temp COMPILING::<$?WHOLE_COMPILER> := ... }
20:24 pmurias mncharity: don't think it's possible
20:25 pmurias what you propose is more like BEGIN { eval slurp(@ARGV[0]) }
20:26 mncharity I don't see why not.  In fact, it would be nice to have lexically scoped compiler replacement.  sub do_some_math($matrix1,$matrix2) { use WizzyCompilerForMatricesButWhichUnderstandsLittleElse; $matrix1 * $matrix2 }
20:26 mncharity pragmas on steroids
20:27 justatheory joined #perl6
20:28 mncharity re 'BEGIN { eval slurp', ah, but all this is optimizing, basically, for you.  for backend compiler writers.  while one will likely be able to do something similar in p6, the runtime swap stuff is just to get the assorted kp6 backends which stalled, unstalled.
20:29 pmurias it could be usefull, but it would need take of many things, tie-ing emitters together
20:29 pmurias mncharity: wouldn't seperate compilation solve it more cleanly?
20:29 _bob_k joined #perl6
20:30 mncharity did you see the current elf/README?  (ie, can I start the explanation where that story leaves off?)
20:31 pmurias mncharity: yes
20:32 mncharity ok, so...
20:33 * pmurias nods
20:35 mncharity /me ponders... slowly...
20:36 mncharity re 'wouldn't seperate compilation solve it more cleanly?', you mean "separate compilation would speed up self compilation, so you wouldn't need this hack", yes?
20:36 pmurias yes
20:37 cathya joined #perl6
20:37 mncharity you would still need a mechanism to have two independent compiler chains usable at the same time, yes?
20:38 pmurias yes
20:39 mncharity so something like the $*compiler0 and $*compiler1 distinction is needed for that.
20:39 mncharity the question then is whether $*emitterN and $*parserN was overkill.
20:41 pmurias dosn't look that usefull
20:43 mncharity $*emitterN was motivated by having near-term projects (smop, kp6-ish p5 emitter), which would need to change the emitter, but likely not the rest of the Compiler.  And that while the emitter class is starting to be fairly clean, modulo IRx1 settling down, the Compiler class is still "ewwwh. icky".  Having $*emitter meant noone needs to mess with Compiler soon,
20:44 mncharity and I can keep changing it.  Also, critically, adding it was, well, not painless, but fairly simple, and less icky than the alternative.
20:44 pmurias re $*parserN $?PARSER should be enough
20:45 mncharity $*parserN went it because having already gone down the path, the marginal cost of doing it again was not a large, and I'd like to start having STD5.pm be an alternate parser in the not too distant future.
20:47 pmurias would seperate compilation solve the speed problem?
20:49 mncharity re '$?PARSER should be enough', for Perl 6 you mean?  for elf... elf doesn't understand '?' twigils.  actually, elf doesn't even understand '*' twigils, but the way the whole program compilation works is currently allowing that to be fudged (prelude defined  our $compiler, and...).  elf also doesn't have grammars.  so $?PARSER is rather a non-option at the moment.
20:50 mncharity as for it being enough for Perl 6, well, that's a discussion for another month.  one nearer Christmas. :)
20:51 pmurias mncharity: what i meant is that only uses the current grammar at the given moment
20:53 pmurias on the other hand i haven't really thought about it much
20:54 mncharity re speed, seperate compilation could speed things up.  though I note, while self compilation takes me 10 sec, simply starting elf_d takes 2 sec.  So... if folks start using separate compilation, it might be worth adding an option to permit a single run to compile to multiple output files.
20:55 mncharity so... I don't know.  I don't get warm fuzzies from the current solution.  But the alternatives all seemed worse.  Perhaps elf_f will rip it all back out.
20:57 pmurias why does startup take so long?
20:57 mncharity lots of Moose.
20:58 mncharity hmm, no, let's see...
20:58 mncharity for self compilation, profiling shows most of the time being Moose stuff.
20:58 mncharity for startup, I don't know.  please feel free to profile. :)
20:59 mncharity elf_a is much faster. :/
20:59 pmurias so if we don't use moose,the problem vanishes?
21:00 mncharity one might do a non-Moose runtime.  moose folks mentioned Class::Attribute.  but...
21:01 mncharity I suspect people very quickly start caring more about test suite passing than about the 3x performance hit.
21:01 mncharity and Moose is the best platform to make that happen on p5.
21:01 mncharity at least for the next month or few.
21:03 barney joined #perl6
21:03 pmurias mncharity: running (a part) of the test suit would be nice
21:04 mncharity a couple of sanity tests pass :)
21:04 mncharity but yes, agreed.
21:04 iblechbot joined #perl6
21:05 mncharity I've been meaning to check how much of t/ can be currently parsed by STD_red.  but I'm afraid it won't be much, do to some things like $x++ not parsing.
21:06 _bob_k left #perl6
21:06 pmurias it would be nice just to have a couple of tests passing to automaticly check if a change didn't brake everything
21:07 mncharity it's getting to be time to resync STD_red with STD.pm.  but... I'm not looking forward to doing it.  and it's not yet 'quite' at the top of the todo list, so... sigh.
21:07 pmurias and it would make it possible to check if a modified compiler can compile itself
21:07 mncharity re regression testing, agreed.  elf is getting featureful enough that self-compilation no longer constitutes a sufficient regression test.
21:09 mncharity I was thinking of a   create_regression_test.pl that has a list of all passing kp6 and pugs t/ tests, which it then... something.
21:09 pmurias a script for doing the self-compilation check could be made
21:09 pmurias mncharity: it sounds sound
21:10 mncharity the assorted readmes, such as elf_d_src/README, have a quick self-comp check.  I though of automating it more, but... doing it by hand reminds me each time that what it's doing really isn't quite adequate.  :)
21:12 pmurias doing it the gcc way should be enough
21:12 mncharity gcc way?
21:12 pmurias testing if the compiler can compile itself, and the result can compile itself
21:13 pmurias running the test suit at each step
21:13 mncharity ah, yes.  that's the missing piece.  the test suite.
21:14 mncharity any interest in porting the kp6 p5 backend to elf?  or otherwise learning about all the assorted Perl6::mumble p5 modules, and trying to blend them into a p5 backend?
21:14 mncharity I'd be happy to spew Prelude code in support of it.
21:16 pmurias re porting kp6 p5 backend: none at all
21:16 pmurias it has horrible speed
21:16 mncharity basically, until we start passing a non-trivial portion of the pugs t/ suite, elf remains mostly a tool for p6 internals hackers.
21:16 mncharity re horrible speed, but elf... oh, I see. :/
21:17 mncharity hmm...
21:17 pmurias shower&
21:18 mncharity as soon as elf_d's IRx1_Analysis goes in, it will be possible to remove the current kludge re function calls, and start doing more principled handling of variables.
21:18 mncharity ok, np
21:18 mncharity and the Moose performance certainly seems fine for starting to get tests passing.
21:19 lisppaste3 joined #perl6
21:19 mncharity so any interest in working on a non-kp6 p5 backend?
21:19 rdice joined #perl6
21:20 mncharity or a ruby backend.  I'd also be happy to help anyone with doing a ruby backend.  or common-lisp.
21:21 mncharity currently hacking a quick emitter for rouso's smop example.
21:22 cosimo joined #perl6
21:23 mncharity bbl&
21:23 cosimo hi all
21:26 cosimo left #perl6
21:26 IllvilJa joined #perl6
21:33 pmurias cookys: hi
21:37 spinclad cosimo_who_left: hi
21:40 pmurias ;)
21:44 Foke2 joined #perl6
22:09 Auzon joined #perl6
22:19 rindolf joined #perl6
22:26 cathya /libexec/ld-elf.so.1: /web/opt/apache22/lib/perl5/site_perl/5.8.8/mach//auto/Apache2/RequestIO/RequestIO.so: Undefined symbol "Perl_Tstack_sp_ptr"
22:26 cathya bloody hell
22:27 cathya it's a freebsd/perl/threading screwup
22:32 wolverian mncharity, re moose perf, would MooseX::Compile help`
22:32 wolverian s/´/?/
22:51 Limbic_Region joined #perl6
23:23 wtgee joined #perl6
23:29 wtgee left #perl6
23:33 spx2_ joined #perl6
23:48 armagad joined #perl6
23:56 mncharity wolverian: re moose perf, the 2 sec startup?  re MooseX::Compile help, could be.  the classes are all already made immutable (#moose++), which was a big payoff, and no modules are loaded.  so the remaining payoff would be avoiding Moose method generation?
23:58 mncharity one might try something like  cp elf_x elf_x.pm; invoke mx::c (not sure how?), and then see if  perl -I. -e 'use elf_x;' -e 'say 3'
23:59 mncharity had a < 2 sec startup.  eh.  are there other potential payoffs from mx::c?

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

Perl 6 | Reference Documentation | Rakudo