Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-01-09

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:00 lunatic what is the best way to familiarise with perl6 now ? Documentation says pugs but it seems that perl6 on parrot is in a good shape ? and what are exactly KP6, NPQ... ?
00:02 Botje I was kinda hoping to use pugs to test out the OO capabilities but ...
00:23 alester joined #perl6
00:29 Limbic_Region joined #perl6
00:48 bwisti_ joined #perl6
00:58 alester joined #perl6
01:15 cnhackTNT joined #perl6
01:27 lyokato_ joined #perl6
01:34 ispy_ joined #perl6
02:20 ispy_ Hey guys, if I build the parrot/languages/perl6 directory with make can I use perl6.pbc via a shebang line?
02:21 TimToady dunno, maybe ask on #parrot?
02:22 TimToady [particle] is off to dinner, and he's the main parrot dude on #perl6
02:22 ispy_ Ahh thanks dude... I was just messing with parrot for the first time...
02:24 TimToady (that would be #parrot on irc.perl.org, not on freenode)
02:29 ispy_ I can't even seem to build pugs today...
02:29 ispy_ What else could go wrong :)
02:32 TimToady rumor has it that pugs only builds with ghc 6.6.1, I think, not ghc 6.8
02:34 TimToady as for what else could go wrong today, asteroids are unlikely till after midnight
02:35 TimToady but then depending on where you are, they're more likely till noon...
02:48 jjore joined #perl6
02:56 bwisti_ and if you're in antarctica they're just as likely all day long?
03:01 * araujo remembers he has in his TODO to check this pugs ghc6.8 incompatibility issue
03:17 meppuru joined #perl6
03:30 Psyche^ joined #perl6
03:34 TimToady actually, yes, but that doesn't mean the risk stays the same; asteroids are most likely at the autumnal equinox, and least likely at the vernal equinox
03:34 TimToady (because of the tilt of the earth with respect to the direction of motion around the sun)
03:37 drbean_ joined #perl6
03:50 Limbic_Region joined #perl6
04:17 mncharity avar: ping?
04:53 drbean joined #perl6
05:14 araujo joined #perl6
05:49 [particle1 joined #perl6
05:49 [particle1 left #perl6
05:54 mncharity @tell fglock re kp6 optimization, are there notes/understanding of where the time is going, on what bits need to be optimized?
05:54 lambdabot Consider it noted.
06:08 kst joined #perl6
06:28 Khisanth joined #perl6
06:33 fridim_ joined #perl6
06:38 pugs_svn r19386 | rhr++ | [Unicode.pm] reordering, nfd, and nfkd
06:53 bsb left #perl6
07:31 chacha_chaudhry joined #perl6
07:44 njbartlett_ joined #perl6
07:54 Aankhen`` joined #perl6
08:05 iblechbot joined #perl6
08:17 fglock joined #perl6
08:20 devogon joined #perl6
08:20 fglock mncharity: re optimization, the compiler is good enough for now, but our current Perl 5 MOP has too much overhead
08:20 lambdabot fglock: You have 5 new messages. '/msg lambdabot @messages' to read them.
08:26 polettix joined #perl6
08:27 fglock mncharity: re ruby, I think it's too late for using ruby as a compiler helper
08:28 fglock but a ruby backend would be a nice experiment
08:31 fglock bbl &
08:31 fglock left #perl6
08:35 franck___ joined #perl6
09:21 jisom joined #perl6
09:33 pcbuetow joined #perl6
09:34 ruoso mncharity, re sacrifice correctness to bootstrap: actually that is not really a good idea... This is one of the major problems of KP6, as MP6 sacrificed some correctness, now the KP6 internals have a mixture of KP6 and MP6 objects which are not compatible among themselve
09:34 ruoso s
09:34 ruoso the process of trying to bootstrap KP6, besides the performance issue, goes through making the internals self-consistent
09:36 ruoso I mean... MP6 already played his role on the bootstrap, but after MP6 we need a compiler that if not full-featured, at least must be 100% correct
09:36 ruoso so we can bootstrap it into something that can evolve towards a complete and correct Perl 6
09:49 njbartlett_ joined #perl6
09:55 IllvilJa joined #perl6
09:58 asprillia joined #perl6
10:03 ebassi joined #perl6
10:07 franck____ joined #perl6
10:12 masak joined #perl6
10:16 Alias_ joined #perl6
10:26 masak joined #perl6
10:35 jferrero joined #perl6
10:47 fglock_ joined #perl6
10:51 pugs_svn r19387 | ruoso++ | [yap6] include/yap6_stack.h : documenting the YAP6__STACK__Stack methods
10:52 njbartlett_ joined #perl6
11:17 ruoso joined #perl6
11:26 franck___ joined #perl6
11:50 cognominal_ joined #perl6
12:12 devogon joined #perl6
12:29 drbean joined #perl6
12:30 thoughtpolice joined #perl6
12:39 masak joined #perl6
12:45 pmurias joined #perl6
12:55 pmurias mncharity: the current object system kp6's perl5 backend uses dosn't use p5 oo at all, turning method calls into $object->{_dispatcher}($object,'method',@args)
12:55 wolverian hm, no moose backend?
12:56 pmurias wolverian: not yet
12:56 pugs_svn r19388 | ruoso++ | [yap6] Completed the documentation of the YAP6__STACK__Stack type and all of its methods.
12:58 pmurias wolverian: i suppose something layered on top of Class::MOP would be better than Moose
12:59 wolverian yeah.
13:00 ruoso pmurias, I think the only p5 mop implmenation that can actually implement p6 semantics is nothingmuch's MO
13:00 overlast joined #perl6
13:01 * ruoso lunch &
13:04 avar What sort of method resolution does p6 use? C3?
13:07 nitro25 joined #perl6
13:08 nitro25 left #perl6
13:08 pmurias avar: think so
13:26 iblechbot joined #perl6
13:26 njbartlett_ joined #perl6
13:27 cmarcelo joined #perl6
13:50 pugs_svn r19389 | pmurias++ | [kp6-perlv6] a simplistic implemantation of positional parameters
13:59 moritz_ what is kp6-perlv6? a perl5 backend specific MOP?
14:01 pmurias mncharity: a perl5 backend attempting to map to perl5 closely
14:01 pmurias s/mncharity/moritz/
14:02 rdice joined #perl6
14:04 moritz_ pmurias: ok
14:04 moritz_ thanks
14:14 meppuru joined #perl6
14:36 TJCRI joined #perl6
14:40 jhorwitz joined #perl6
14:45 kanru joined #perl6
14:49 Jedai joined #perl6
14:49 jferrero joined #perl6
14:52 ruoso avar, Perl 6 doesn't specify any method resolutoin...
14:52 ruoso because Perl 6 may have several MOPs coexisting
14:53 pugs_svn r19390 | fglock++ | [kp6-grammar] factored out <exp>, in order to allow multiple implementations
14:55 njbartlett_ joined #perl6
14:58 pmurias ruoso: i guess he meant the default one
14:59 ruoso pmurias, hmmm... let me check, but I don't remember that being specced anywhere
15:00 ruoso pmurias, really... I couldn't find any reference
15:12 pugs_svn r19391 | fglock++ | [kp6-grammar] updated constructors from "::X()" to "X.new()"
15:13 [particle] default is c3
15:24 avar ruoso: So effectively the result of $obj.$foo is undefined if $obj is part of a class higherarchy with more than two $foo methods?
15:26 pmurias avar: maybe unspeced, but it will surely be speced later on
15:28 ruoso the result of $obj.$foo depends on how $obj.HOW implements
15:29 ruoso avar, the metaclass thing is there exacly to provide a way for alternatives
15:29 ruoso so, yes, $obj.$foo is undefined if $obj is part of a class hierarchy with more than two $foo...
15:29 ruoso it will be disptached very late,
15:30 ruoso depending on the metaclass
15:30 ruoso but yes, the default is c3, which means, if you use the classes that only use the default metaclass, it is c3
15:30 kolibrie pmurias: I thought that is discussed in S12 in 'Multi dispatch' and in 'Roles'
15:32 pmurias where
15:32 pmurias ?
15:36 kolibrie pmurias: "crony" composition
15:37 pugs_svn r19392 | fglock++ | [kp6] more constructor syntax updates
15:47 ruoso kolibrie, multi is not the same as method overriding
15:51 pmurias nor is role composition multi inheritance
15:56 pugs_svn r19393 | fglock++ | [kp6] more cleanups
15:58 rindolf joined #perl6
16:02 pugs_svn r19394 | fglock++ | [kp6-Perl6] cleanup workarounds
16:03 alc joined #perl6
16:08 ispy_ joined #perl6
16:11 Aankhen`` joined #perl6
16:21 barney joined #perl6
16:29 pugs_svn r19395 | fglock++ | [kp6] forbid the old constructor form; redo bootstrap
16:45 matisse joined #perl6
16:53 matisse_enzer joined #perl6
16:53 matisse_enzer left #perl6
16:54 matisse_enzer joined #perl6
16:54 Psyche^ joined #perl6
16:57 matisse_enzer Hello folks. I recently set up a buildbot server to test building Parrot (http://buildbot.eigenstate.net:8040/) and am wondering if there is an existing perl6 buildbot master, or interest in establishing one?
16:57 moritz_ matisse_enzer: cool, which OS are you working on?
16:58 moritz_ matisse_enzer: there is #parrot for on irc.perl.org for more parrot related discussion
16:58 matisse_enzer linux 2.6.22 on x86_64 - http://buildbot.eigenstate.net:8040/Parrot-Builder
16:58 moritz_ and I know that on feather.perl6.nl pugs is smoked hourly or daily
16:58 fridim_ joined #perl6
16:59 matisse_enzer Thanks - so #parrot @ irc.perl.org is the apprpriate place?
16:59 moritz_ btw if you run "make smoke" instead of "make test" then the test results will be uploaded automatically
17:00 moritz_ matisse_enzer: yes, there the main parrot development happens
17:00 matisse_enzer Oh! I thought that was just an alias for 'make test' - i will change that.
17:00 moritz_ and if you want to be extra-cool you can also "make languages; make languages-smoke"
17:00 moritz_ ;)
17:01 moritz_ that builds the different compilers in the parrot repo (and tests them, obviously)
17:01 matisse_enzer changed to 'make smoke'
17:01 matisse_enzer what do those other targets do?
17:01 matisse_enzer (I am quite ignornat about parrot - was mainly testing buildbot)
17:02 moritz_ "make languages" builds the compilers in languages/*/
17:02 moritz_ and "make smoke-languages" runs their test suites
17:02 matisse_enzer so I would have builder do:
17:02 matisse_enzer make
17:02 matisse_enzer make smoke
17:03 barney make help
17:03 matisse_enzer make languages
17:03 rindolf joined #perl6
17:03 matisse_enzer make languages-smoke
17:03 matisse_enzer ?
17:03 moritz_ right
17:03 clkao win 46
17:03 [particle] actually, make smoke should make parrot automatically
17:03 moritz_ and sometimes you need a make realclean (or distclean) before running Configure.pl
17:03 [particle] so make smoke ; make languages-smoke # should build parrot and languages
17:04 [particle] you should *always* realclean a smoker
17:04 moritz_ when somebody checks in a very nastily incompable change
17:04 matisse_enzer I actuyally start with a totall fresh checkout each time
17:04 moritz_ that's even better ;)
17:04 barney or "make svnclobber && svn up" in order to be really clean
17:04 matisse_enzer and I got at least one failure during 'make' so I'll leave that step in - a failure during 'make' but the tests passed!
17:04 [particle] svn co && perl Configure.pl && make smoke & make languages-smoke ? great
17:05 matisse_enzer basically yes
17:05 matisse_enzer buildbot has a 'clobber' option
17:05 [particle] svnclobber++
17:06 matisse_enzer f1.addStep(source.SVN,
17:06 matisse_enzer svnurl=source_code_svn_url,
17:06 matisse_enzer mode="clobber")
17:06 [particle] the results should appear at http://smoke.parrotcode.org/smoke/ iirc
17:06 lambdabot Title: Parrot Smoke Reports
17:06 [particle] yep
17:07 moritz_ [particle]: where do the lanuage-smokes go?
17:07 matisse_enzer So now I have:
17:07 matisse_enzer f1 = factory.BuildFactory()
17:07 matisse_enzer f1.addStep(source.SVN,
17:07 matisse_enzer svnurl=source_code_svn_url,
17:07 matisse_enzer mode="clobber")
17:07 matisse_enzer f1.addStep(shell.ShellCommand, command=['perl', 'Configure.pl'])
17:07 matisse_enzer f1.addStep(shell.ShellCommand, command=['make'])
17:07 matisse_enzer f1.addStep(shell.ShellCommand, command=['make', 'smoke'])
17:07 matisse_enzer f1.addStep(shell.ShellCommand, command=['make', 'languages'])
17:07 matisse_enzer f1.addStep(shell.ShellCommand, command=['make', 'languages-smoke'])
17:07 [particle] moritz_: same place
17:07 moritz_ [particle]: ok
17:08 moritz_ matisse_enzer: looks fine
17:08 matisse_enzer and my svn url is:
17:08 matisse_enzer source_code_svn_url='https://svn.perl.org/parrot/trunk'
17:08 moritz_ aye
17:08 matisse_enzer OK - commit a change and see what happens :-)
17:09 [particle] matisse_enzer: is it easy for you to set up an additional smoker for another parrot branch?
17:09 matisse_enzer I think so - have not done it yet but there are specific docs in buildbot for building different branches.
17:10 pugs_svn r19396 | fglock++ | [kp6] code, docs cleanup
17:10 matisse_enzer particle: what branch are you suggesting?
17:11 [particle] pdd17pmc
17:11 [particle] it's under active development, and it'd be a big help to see if we've broken anything (including languages)
17:12 matisse_enzer particle; so is the url for that branch: https://svn.perl.org/parrot/branches/pdd17pmc
17:12 lambdabot Title: Revision 24703: /branches/pdd17pmc
17:12 matisse_enzer ?
17:12 [particle] i don't know if the current smoke infrastructure will handle different branches, so it'll  be a good test
17:12 [particle] yes, that's the url
17:14 matisse_enzer OK - I'll see about adding a build slave for that branch, maybe today, maybe this weekend. It will show up as a additional column in the waterfall status page at: http://buildbot.eigenstate.net:8040/ and hopefully report to the smoke system.
17:16 matisse_enzer particle: hmm, I see a commit you made yesterday (r24691) broke the build :-)
17:16 matisse_enzer or maybe not
17:16 matisse_enzer maybe my builder just screwed up
17:17 [particle] that shouldn't break the build imo
17:17 matisse_enzer t/stm/runtime timed out. my builder only waits 1200 seconds for output before killing a process
17:17 [particle] ah, ok
17:17 [particle] there are known occasional hangs on t/stm now
17:19 jferrero joined #perl6
17:19 matisse_enzer I gotta go for now, but thanks very much for the help. I will see about adding a build slavce for that branch soon. And i guess I should mention it on #parrot at irc.perl.org
17:19 matisse_enzer when I'm done?
17:20 [particle] yes, that'd be wonderful
17:20 [particle] matisse_enzer++
17:20 matisse_enzer bye bye
17:20 moritz_ matisse_enzer++ indeed
17:20 matisse_enzer left #perl6
17:23 pugs_svn r19397 | pmurias++ | [kp6-perl5v6] compile time support for objects (MetaClass not default due to runtime lacking)
17:37 jjore joined #perl6
17:43 chris2 joined #perl6
18:00 pugs_svn r19398 | ruoso++ | [yap6] having a clearer vision on the ROADMAP. Starting to document the Stack__Node type.
18:27 Limbic_Region joined #perl6
18:29 pmurias fglock: would Perl5Direct be a better name the Perl5V6?
18:31 ispy_ [particle]: Is there a way to invoke parrot and nqp via a shebang line?
18:32 ispy_ [particle]: unless I did something wrong, I wrote a quick sh script that executes perl6.pbc via parrot upon execution but it didn't work as expected.
18:34 Auzon joined #perl6
18:34 [particle] ispy: no good way to use shebang yet portably
18:34 ispy_ [particle]: OK, just wanted to make sure I wasn't crazy :)  Thanks.
18:35 [particle] parrot doesn't search directories fro .pbc  files yet
18:35 [particle] so you'd have to have something like "#!../../parrot perl6.pbc"
18:35 ispy_ but if I put /path/to/parrot languages/perl6/perl6.pbc it should work right?
18:36 ispy_ right that's what I did, but either A my perl6 code pukes or B it wasn't ment to be executed like this.
18:36 [particle] /path/to/parrot /path/to/parrot/languages/perl6/perl6.pbc
18:36 ispy_ correct... yes.
18:36 [particle] that *may* work, not sure
18:36 ispy_ It doesn't.
18:36 [particle] i suggest you just build perl6 executable
18:36 [particle] cd languages/perl6 && make xmas
18:36 ispy_ ahhh...
18:37 ispy_ Now that's a good idea I wasn't aware of.
18:37 ispy_ I was told you were the man to ask :)
18:37 [particle] seems you were told correctly :)
18:37 ispy_ haha... thanks dude.  Much appreciated.
18:37 drrho joined #perl6
18:51 pugs_svn r19399 | ruoso++ | [yap6] starting to define how the YAP6 Stage 1 language should look like. NOTES_YAP6S1.txt
18:52 ruoso fglock, take a look at http://www.apple.com/trailers/universal/firstdescent/large.html
18:52 lambdabot Title: Apple - Trailers - First Descent - Large
18:52 ruoso oops
18:52 ruoso wrong past
18:52 ruoso wrong paste
18:52 ruoso http://svn.pugscode.org/pugs/v6/yap6/NOTES_YAP6S1.txt
18:52 ruoso that one
18:52 [particle] hee
18:52 Auzon hah
18:55 ruoso pmurias, take a look at the above url... I'm defining the stage 1 language that will be used to bootstrap the runtimes
18:55 ruoso s/runtimes/builtin types/
18:56 pmurias looking
18:57 thoughtp1lice joined #perl6
18:59 [particle] ruoso: how will you do the parsing?
18:59 [particle] for an example of a custom parser (rather than flex/bison) see http://svn.perl.org/parrot/trunk/compilers/pirc
18:59 lambdabot Title: Revision 24705: /trunk/compilers/pirc
19:00 [particle] it should be pretty easy to adapt to something that can parse a perl6 subset
19:16 fglock [particle]: we are using the kp6 compiler
19:18 jisom joined #perl6
19:20 [particle] ah, right. duh.
19:29 mncharity what is the current speed difference between kp6 and pugs?  order 1x, 10x, 100x?
19:30 qmole joined #perl6
19:30 PerlJam I don't think it has mattered to anyone enough to profile.
19:30 PerlJam (Personally, I don't think such comparisons are relevant)
19:30 mncharity order of magnitude impression?
19:31 moritz_ and do you count the compilation phase of kp6 as well?
19:32 * [particle] guesses 100x
19:32 mncharity re relevant, I know how fast a particular ruby backend is with respect to pugs.  if I knew how fast kp6 was wrt pugs, I could tell whether adding a ruby backend to kp6 would be 1x:uninteresting 10x:very helpful 100x: halleluya
19:33 [particle] kp6 doesn't run on pugs
19:33 mncharity ohhh, I've been unclear
19:33 * moritz_ tries to benchmark a bit
19:34 mncharity speed of kp6 running "arbitrary" p6 code, vs pugs running the same code.
19:34 mncharity hmm, I think the compilation excluded number is the more interesting one here
19:34 riffraff joined #perl6
19:36 mncharity moritz_: thanks.  sorry, I just assumed there would be an order of magnitude feel for where kp6 was at the moment.
19:37 moritz_ mncharity: I just tried it with t/01-sanity/03-equal.t
19:37 moritz_ that's 0m0.337s on pugs
19:37 moritz_ and 0m0.921s on kp6
19:37 moritz_ but it's a short script, so I'm mostly measuring startup and compile times
19:38 moritz_ I know no number crunching script that runs both on kp6 and pugs
19:38 [particle] hanoi.pl?
19:38 [particle] ack() ?
19:38 alester stop that!
19:39 [particle] ack! andy! alester! petdance!
19:39 * alester 's IRC client emits smoke.
19:39 mncharity thanks for the numbers.  rather than a number crunching script
19:39 mncharity it's the kp6 p6 files themselves which are most interesting
19:39 moritz_ time ./script/kp6 ~/pugs/examples/algorithms/hanoi.pl
19:39 moritz_ not implemented at compiled/perl5-kp6-mp6/lib/KindaPerl6/Runtime/Perl5/GLOBAL.pm line 529.
19:40 mncharity as that's what will indicate how much a new backend might buy for the kp6 development effort.
19:40 [particle] hrmm, i wonder what's missing in kp6
19:41 mncharity [particle]: missing?  for myself at least, I'm just thinking a faster version of the p5 backend, rather than anything more complete.
19:41 [particle] i mean missing in order to run hanoi.pl
19:41 [particle] maybe $*ARGS
19:42 [particle] maybe assignment?
19:42 [particle] could be //
19:42 mncharity faster either by simplified (less spec conformant) runtime, perhaps alternate regex engine, perhaps ruby instead of p5.
19:42 mncharity ah, ok
19:47 mncharity b asically addressing fglock's optimization objective.  even if focus shifts to grammar instead, extra speed, as long as it's not inconveniently buggy, should make development/testing easier.
19:47 ruoso [particle], kp6 would really need to bootstrap to start evolving more coherently
19:47 ruoso but the boostrapped kp6 is way too slow in the p5
19:47 ruoso backend,
19:48 ruoso there are features missing, of course, but some incorrectness in the deep core of kp6 due to it's non-bootstrapped nature is the biggest show stopper
19:48 ruoso (besides backend, of course)
19:48 [particle] right, that's the big speed complaint, bootstrapped kp6
19:49 ruoso yeah... bootstrapped kp6 takes 20 seconds to compile "say 'Hello Wold!'"
19:49 ruoso at least it used to take
19:49 ruoso when I first bootstrapped it
19:49 [particle] that's why i figured 100x slower than pugs
19:49 mncharity ruoso: re "boostrapped kp6 is way too slow", is there a non-bootstrapped kp6 which is faster?
19:49 ruoso mncharity, the default is the non-bootsrapped
19:50 ruoso [particle], that was when I gave up on the p5 backend
19:50 * mncharity discovers he lacks a clue
19:50 mncharity non-bootsrapped kp6?
19:50 ruoso and started to figure out the alternatives
19:50 pmurias mncharity: kp6 is not bootstraped by default
19:50 ruoso mncharity, non-bootstrapped means using MP6 runtime in its core
19:50 mncharity kp6 is written in p6, no?  what is it... ah, ok.
19:51 mncharity I thought mp6 was gone now.  ok, let's see...
19:51 ruoso [particle], I tried to figure out how to take a small piece of parrot to focus on the Perl 6 needs, but I failed miserably to understand the parrot's internals
19:51 ruoso that was when I decided to start yap6
19:51 ruoso as a Perl 6 runtime in C from the bottom-up
19:52 ruoso mncharity, unfortunally that's a step that was not taken yet. And that's the main reason I've been working in yap6
19:53 mncharity and kp6 doesn't run on pugs (anymore?)?
19:53 pmurias it never did
19:53 ruoso mncharity, it never did
19:53 ruoso it was always a p5-based implementatoin
19:54 mncharity ok, guess I misremembered that.
19:54 PerlJam ruoso: do you promise a perl6 compiler by christmas?  :)
19:54 ruoso PerlJam, heheh... although I don't promise, I am very optimistic
19:54 ruoso :)
19:54 rdice joined #perl6
19:54 ruoso the latest refactoring I made in yap6 and the advances I'm having in the runtime correctness are making be very happy
19:55 pmurias mncharity: a faster version of the perl5 backend exists
19:55 ruoso pmurias, perl5rx?
19:55 pmurias perl5v6
19:55 pmurias the name is really stupid ;)
19:55 [particle] i think kp6 has more backends than pugs now, certainly more "working" ones
19:55 moritz_ who complete is it?
19:56 ruoso pmurias, what is it?
19:56 ruoso does it uses the old v6-alpha?
19:56 pmurias no
19:56 mncharity if kp6 on mp6 is fast, but kp6 on kp6 runtimes is slow... is there a mp6 backend for kp6?  is that perl5v6?
19:56 pmurias it runs only the first ~16 tests
19:56 pmurias it has no oo
19:57 pmurias mncharity: kp6 on mp6 is slow because of the slow grammars in mp6
19:57 pmurias mncharity: perl5v6 is closer to the runtime
19:57 * ruoso still didn't understand what is perl5v6 :)
19:57 pmurias if you compare  script/kp6 -Cperl5v6 t/kp6/01-tap.t
19:58 pmurias with script/kp6 -Cperl5 t/kp6/01-tap.t
19:58 pmurias you'll get the diffrence
19:58 mncharity err, rephrase.  kp6 on kp6 runtimes is much slower than kp6 on mp6 runtime.  so why isn't there an mp6 backend for kp6, which should thus be _not_ much slower?
19:58 ruoso mncharity, why wouldn't it be slower?
19:59 mncharity oh, right
19:59 pmurias mncharity: mp6 runtime as such is to limited
20:00 * mncharity struggles to think clearly.
20:00 Daveman joined #perl6
20:00 ruoso pmurias, you know, after the last week... I'm know quite sure about the fact that the OO model is the heart of Perl 6
20:00 mncharity since the kp6 grammar, compiler, and emitter, is running in both the kp6/mp6 and the kp6/kp6 case, that isn't the source of the performance difference.  the difference must lie in the runtimes, no?
20:01 ruoso pmurias, trying to do it without complying to the OO model from the scratch will only make things harder in the bootstrap phase
20:01 ruoso mncharity, right... mp6 runtime is fast, but can't implement Perl 6 semantics...
20:02 Psyche^ joined #perl6
20:02 ruoso mncharity, kp6 is slower because it tries to implement it on top of the Perl 5 runtime
20:02 pmurias ruoso: pluging the same oo kp6 uses is possible, and is the next logical step
20:02 mncharity ruoso: re oo at the heart of p6, that's my impression too.  my fuzzy recollection is audreyt disagreed long ago, so i remain uncertain.
20:02 pmurias * pluging in
20:03 ruoso pmurias, the concept test is: can you have a Perl 6 object receiving a Perl 5 object as a parameter?
20:03 ruoso if you can't, than it's not correct ;)
20:03 ruoso that's what the metamodel is all about
20:04 japhb Speaking of Audrey, whatever happened to her?
20:04 pmurias ruoso: it should work transparently
20:04 mncharity so if the mp6 runtime was a kp6 backend, we would have a fast bootstrapped kp6, with a somewhat inflexible runtime?  but still a runtime good enough to run kp6, yes?
20:04 ruoso mncharity, that would be mp6 with kp6 grammar
20:04 ruoso not kp6
20:05 lunatic what is the best way to familiarise with perl6 now ? Documentation says pugs but it seems that perl6 on parrot is in a good shape ? and what are exactly KP6, NPQ... ?
20:05 mncharity i don't follow
20:05 lunatic oupss
20:05 pmurias mncharity: have you looked at the compiled output of mp6 and kp6?
20:05 * lunatic should be more carefull with its keyboard
20:05 mncharity kp6 yes, mp6 no
20:06 pmurias look then (with perltidy to save your sanity ;) and it should become clear
20:06 meppuru joined #perl6
20:07 moritz_ lunatic: pugs is the most complete implementation, with the slowest deveolpment (because of lack of haskell coders)
20:07 moritz_ and lack of audreyt :/
20:07 japhb moritz_: so what happened to audreyt?
20:07 moritz_ lunatic: if you want to get some feeling for the langauge, you can look into the test cases in the pugs repo, and skim over the synopsis
20:08 lunatic thanks a lot for this recommendations
20:08 moritz_ japhb: some illness, and know she has to live a life with less stress
20:09 japhb moritz_: So no hacking?  That sucks ...
20:09 * ruoso home &
20:10 moritz_ japhb: yes, sadly
20:10 mncharity re "that would be mp6 with kp6 grammar""not kp6", why wouldn't it be "mp6 with a kp6 grammar, parser, compiler, and emitter"?  when kp6 is run on mp6, all those are being run, no?
20:10 moritz_ she last appeared in my irc logs on 2007-07-15
20:11 mncharity ok, maybe not the emitter
20:11 japhb moritz_: :-(
20:12 pmurias mncharity: the kp6 grammar == the kp6 parser
20:12 Psyche^_ joined #perl6
20:13 mncharity basically, if mp6 can run the kp6 implementation code fast, because mp6 has a runtime model which takes liberties, why doesn't kp6 have an optional similar runtime which takes liberties.  Then it could optionally run fast, mp6 could be chucked, and the speed/correctness tradeoff of the liberties could be tuned more flexibly?
20:14 marmic joined #perl6
20:16 mncharity what am I missing?
20:16 pmurias mncharity: your underestimating the liberties mp6 takes
20:17 pmurias mp6 for example has no assignment
20:17 pmurias perl5v6 is meant to be something similiar
20:19 drbean joined #perl6
20:19 mncharity so the argument is "yes, kp6 could run fast on a mp6-liberties-like backend.  but things like lack of assignment are making kp6 development so painful, that our next step is to remove those restrictions by writing a brand new backend"?
20:21 pmurias there is only a limited amount of progress we could make with an mp6 backend
20:21 mncharity so that is the "need to optimize" (so p5 backend, with assignment, becomes usable), vs 'focus on grammar' (get by with existing mp6 runtime, without assignment) choice which fglock mentioned.  yes?
20:22 pmurias searching the log
20:23 mncharity ok.  the objective is a fast non-mp6 backend for kp6.  with current approaches being optimize the p5 backend, do a C backend, and... perl5v6?
20:23 mncharity yes?
20:24 pmurias optimizing the p5 backend is not possible
20:24 pmurias but yes
20:25 mncharity and the objective of those backends is speed and removing things like no assignment, in order to get beyond the 'limited amount of progress' restriction.
20:25 pmurias yes
20:26 mncharity so the approach taken by perl5v6 towards this is...?
20:26 pmurias once kp6 compiles itself it's possible to add new features to the grammar engine
20:27 pmurias a rewrite of the p5 backend with speed in mind
20:27 pmurias which means using the equivalent p5 features
20:27 mncharity so a "architectural optimization" of the p5 backend?
20:28 pmurias yes
20:29 TJCRI joined #perl6
20:29 mncharity how is that going?  any gotchas?  why is that not the focus of effort?
20:30 pmurias mncharity: it has a stupid name
20:30 mncharity lol
20:30 pmurias i spend little quality time on it, but it seems to go smoothly
20:31 pmurias a feature per ~5-15 minutes ;)
20:32 mncharity ruoso: just a strawman question, why yap rather than perl5v6?  -Ofun?
20:32 pmurias mncharity: something won't be ever possible with perl5v6
20:32 mncharity kp6 on perl5v6 not expected to be enough faster?
20:33 mncharity oh, like what?
20:33 pmurias massive paralleism
20:33 pmurias better than p5 performance
20:34 mncharity so we're thinking long term, rather than bootstrap there? (re parallelism)
20:34 pmurias yes
20:35 mncharity ie, p6 will be the best language to write magical capabilities in.  so why write them now, unable to really use p6, rather focusing on getting us able to use p6?
20:35 pmurias you can have anything you can do in perl5 with somethings slower and a few more possible
20:35 mncharity sounds good
20:35 mncharity any idea how long it will take to become operational?
20:36 mncharity same question for perl5v6?
20:36 avar From where I'm standing bootstrapping is more important than optimizing since having stuff bootstrapped makes optimizing much easier, but then again I'm not contributing much these days:)
20:36 mncharity developer rather than calendar time
20:36 mncharity avar: I've been meaning to ask you about the status of the kp6 lisp backend
20:36 pmurias mncharity: 5 full time weekends?
20:37 mncharity for perl5v6 or yap?
20:37 pmurias perl5v6
20:38 avar mncharity: I stopped working on it around the time Aankhen`` couldn't be bothered to anymore, it was a lot of work re-implementing all the p5 .pm stuff in CL. It would be easier if the compiler was more bootstrapped with more stuff in p6 .pm
20:38 mncharity so 10 developer days gets us to using kp6 bootstrapped at kp6 on mp6 speed?
20:38 avar Some of the stuff has been like Array.pm but some big parts not, like Pad.pm, Scope.pm, MOP.pm
20:39 pmurias mncharity: something like it
20:41 mncharity avar: hmm, ok.  so the objective was to mirror the p5 backend's approach, rather than say being a lisp version of perl5v6, just transliterating scopes, etc, to CL?
20:42 avar That was what Aankhen`` was doing. But once I started doing object-y stuff having them work differently was a pita :)
20:43 avar it's doable, just not very smooth
20:45 mncharity any thoughts on what it would take to do a perl5v6 in CL?  a downside is need to implement stuff p5 provides.  an upside is wizzy compiler -> fast.
20:46 avar I don't understand what perl5v6 in CL would entail
20:48 mncharity everywhere p6 and CL overlap, even if the CL version doesn't have exactly the correct semantics, just use the CL.  so p6 objects are CL objects, p6 lexical scoping is just CL lexical scoping, etc.
20:49 avar Oh CL is easy that way
20:50 avar We could use CLOS for all the objecty stuff for instance but the p5 object system was too limited:)
20:51 mncharity with the same objective as perl5v6 - get bootstrapped-kp6 usably fast and then work towards correctness, working in p6.
20:52 avar ya
20:52 mncharity any idea what would be involved to get from here to there?  did all the "p5 provides it for free, but we need to implement it" stuff (Array, Hash, etc) get done already?
20:54 avar for perl5v6?
20:55 mncharity for a modified version of the kp6 lisp backend, one which takes the perl5v6 (just use CL directly) approach
20:58 mncharity ie are Array.lisp, etc, actually working?  complete enough to be a kp6 backend?  are there any "didn't get to it" parts?  other than those like Scope which might go away by being direct to CL?
20:58 avar Oh that was basically what we were doing, it was just lots of code that needed to be written and I got bogged down doing it:)
20:58 Psyche^ joined #perl6
20:58 avar yeah the stuff that's there basically works
20:59 pasteling "avar" at 208.78.101.240 pasted "Hash.lisp" (87 lines, 3.7K) at http://sial.org/pbot/29725
20:59 avar that's the hash implementation for instance
21:00 mncharity so the big remaining things which are needed to become a full kp6 backend are...?  emitting scope and oo?
21:01 avar yeah
21:01 avar scope, symbol table-ish stuff, oo, completing subroutine signatures..
21:01 avar mncharity: are you interested in hacking it?
21:02 mncharity could be.  one of the above anyway.  I'm, as always, trying to understand the space well enough to find a path of minimal resistance.  ;)
21:03 mncharity any feel for vaguely how many developer hours might be needed to complete?
21:04 mncharity s/hours/weeks/
21:04 avar I might be able to do it in a month with my usual being distracted by butterflies every 10 minutes:)
21:04 mncharity lol
21:04 avar Including understanding how this all works again and so on
21:04 mncharity great image
21:05 mncharity oky... let's see...
21:07 mncharity how does kp6 handle the regex engine?  would something need to be built on top of CL-PCRE, or does kp6 handle everything above a p5 compatible regex library?
21:07 avar kp6 implements its own regex engine so that would work as soon as we had objects
21:08 meppuru joined #perl6
21:08 mncharity kp6 doesn't even assume an underlying pcre?!?
21:08 pmurias no
21:08 avar the perl5rx backend does but the normal one does not
21:09 mncharity what is the relationship between the p5 and per5rx backends?
21:09 moritz_ you use one xor the other
21:10 moritz_ p5 emits code that matches a string
21:10 mncharity otherwise identical but for rx handling?
21:10 moritz_ p5rx emits regexes with code blocks that matches a string
21:10 moritz_ aye
21:11 mncharity how much faster is perl5rx?
21:11 avar s/regex/rule/
21:11 pmurias mncharity: loads
21:11 [particle] mncharity: do you have tuits to write up descriptions of the various kp6 components based on your recent conversations?
21:11 avar what does tuits?
21:11 avar mean
21:11 mncharity umm... ok, so why isn't perl5rx the default p5 backend?
21:11 moritz_ time to do something
21:12 [particle] avar: "around to it" === "a round tuit"
21:12 mncharity avar: get-tuits.  usually come in a-round form.
21:12 mncharity :)
21:12 avar mncharity: it isn't?
21:12 avar ah no, isn't
21:14 mncharity [particle]: sort of.  at least there's a mission-specific paragraph in here somewhere.  I'm just not sure what it would say yet.
21:15 avar t/kp6/grammar/08-constructor-inside-rule.........error in Block at compiled/perl5-kp6-mp6/lib/KindaPerl6/Grammar/Sub.pm line 753, <> line 1.
21:15 avar t/kp6/grammar/09-Val__Int........................error in Block at compiled/perl5-kp6-mp6/lib/KindaPerl6/Grammar/Sub.pm line 753, <> line 1.
21:15 avar you guys know about this?
21:16 mncharity so if the perl5rx backend is loads faster than the perl5 backend, and is otherwise identical, why isn't kp6 using it?  not enough faster to make bootstrapped-kp6 usable, so why bother?  buggier?  ??
21:17 moritz_ mncharity: we do use it for bootstrapping
21:17 avar seems to be very buggy atm but wasn't earlier
21:18 mncharity so, when working, it helps.  but not as much as a perl5v6 would.  and not enough to permit moving off of mp6?
21:18 avar this was all working last time I tried it. I don't know what happened
21:19 pasteling "avar" at 208.78.101.240 pasted "cl-clisp make test output" (377 lines, 27.9K) at http://sial.org/pbot/29726
21:20 mncharity all the kp6 tests were passing?
21:20 moritz_ with CL? no
21:21 avar no with perl5 and perl5rx
21:21 * moritz_ checks
21:21 mncharity ah, ok
21:23 avar class Method {
21:23 avar method emit_lisp ($interpreter, $indent) {
21:23 avar return '(kp6-error ' ~ $interpreter ~ ' \'kp6-not-implemented :feature "methods")';
21:23 avar }
21:23 avar }
21:23 avar class Method {
21:23 avar method emit_lisp ($interpreter, $indent) {
21:23 avar return '(kp6-error ' ~ $interpreter ~ ' \'kp6-not-implemented :feature "methods")';
21:23 avar }
21:23 avar }
21:23 avar argh
21:23 avar class Method {
21:23 avar method emit_perl5 {
21:23 gaal joined #perl6
21:23 avar '::DISPATCH( $::Code, \'new\', { '
21:23 moritz_ there are some errors while running the test suite
21:23 avar class Proto {
21:23 avar method emit_lisp ($interpreter, $indent) {
21:23 avar return '(kp6-error ' ~ $interpreter ~ ' \'kp6-not-implemented :feature "proto-objects")';
21:23 avar }
21:23 avar }
21:23 BinGOs for godsake find a pastebot.
21:23 avar class Proto {
21:23 avar method emit_perl5 {
21:23 avar return '$::'~$.name;
21:23 avar }
21:23 avar }
21:23 ludan joined #perl6
21:23 mncharity avar:  ok, I get the idea
21:24 BinGOs PLEAASE
21:24 mncharity :)
21:24 moritz_ three tests cause parse or comile failures
21:24 avar so this is where I stopped last time, to get methods I had to get proto objects, and to use proto objects you have to get all the mop stuff right
21:25 mncharity so if methods could just be CL methods, and objects just CL objects, that need would go away, yes?
21:26 avar It's like that already but you also have to implement the whole MOP in some way
21:26 pmurias mncharity: only regex are faster in perl5rx (faster in fact then under mp6)
21:26 avar Or reach feature parity..
21:26 pmurias but the rest is still horribly slow
21:26 TJCRI joined #perl6
21:29 mncharity hmm... so the reason it wasn't necessary to do the mop stuff in ruby is its oo is close enough to p6 that one could just fudge equivalence, but CL is different enough to require effort... ?
21:29 avar how did ruby come into this?
21:30 mncharity yeah, so for completeness, I'll throw out the additional option of a ruby backend, similar to the CL backend, but using the cruft from redsix.
21:30 mncharity I was puzzled why the mop would be needed
21:32 pmurias mncharity: kp6 has a mop, adding it on later would be more work
21:33 mncharity so the kp6 CL backend needs its own mop because...?
21:34 pmurias mncharity: the kp6 one is perl5 specific (written in perl5)
21:34 mncharity ah, ok.  so not really kp6, but kp6's p5 backend
21:35 avar because everything that implements perl6 needs a MOP
21:35 avar that's where the cl one fails
21:35 avar look at make_class() in MOP.pm
21:36 mncharity stevan used the CL MOP in part for inspiration.  my fuzzy recollection is even wrote a CL version of some long-ago variant.  any chance it could just be snarfed?
21:37 mncharity or the p5 version transliterated?
21:38 mncharity ok, those were suboptimal questions.  obviously maybe, though seems unlikely, ask stevan.  and sure, see previous didnt get to writing mop.
21:38 mncharity let's see...
21:39 mncharity my brain starts to resemble tapioca pudding...
21:39 avar ???
21:40 mncharity goo-y and unable to hold shapes for more than a moment?
21:40 pmurias sleep&
21:41 mncharity yeah, maybe declare it an interesting conversation, and come back to it later.
21:42 mncharity 2+ hrs
21:44 mncharity I'm still unclear on whether it would be easier to push on perl5v6, or on lisp.  (or ruby:)   perhaps depends on how hard the mop would be to implement?  and on whether perl5v6 would use the p5 backend's, or have to do its own.
21:45 mncharity cl seems higher risk, but potentially higher payoff (performance wise)
21:46 mncharity s/risk/effort+risk/
21:48 rff joined #perl6
21:48 * moritz_ still thinks that PIR is a good option for a backend because it implements a MOP very, very close to Perl 6
21:48 avar yeah but parrot is slow and pir is a PITA:)
21:48 moritz_ such a backend migh require some AST transformations before emitting, though
21:49 mncharity @tell pmurias re 10 developer days to make perl5v6 a full kp6 backend, do you think that parallelizes?  could 5 people do it in a weekend sprint?
21:49 lambdabot Consider it noted.
21:49 moritz_ avar: is it slow even when you save the MOP?
21:49 stevan_ hey mncharity :)
21:49 mncharity hi stevan_ :)
21:50 mncharity stevan_: you wouldn't happen to have a CL version of the p6 mop lying around, would you? :)
21:52 pasteling "stevan" at 71.234.68.135 pasted "This is about all I have" (119 lines, 3.8K) at http://sial.org/pbot/29727
21:53 stevan_ mncharity: just a proof of concept really,.. not complete
21:54 stevan_ the Perl6::ObjectSpace metamodel code had some pseudo-LISP stuff in it
21:54 stevan_ http://svn.openfoundry.org/pugs/perl5/Perl6-ObjectSpace
21:54 lambdabot Title: Revision 16464: /perl5/Perl6-ObjectSpace
21:54 avar looks exciting:)
21:54 stevan_ http://svn.openfoundry.org/pugs/perl5/Perl6-ObjectSpace/lib/Perl6/MetaModel/Bootstrap.pm
21:54 lambdabot http://tinyurl.com/3d4yrj
21:55 * mncharity captures notes, code, to svn
21:58 mncharity stevan_: thanks stevan.  how goes?
21:58 stevan_ mncharity: no problemo... good,... and you?
21:59 stevan_ mncharity: did you get a job yet? or still looking
22:02 mncharity no, and... at the risk of sounding like Bill Gates... "it depends what you mean by _looking_".  :)  but I am turning down offers with less definitiveness that previously.  I was thinking this month, but olpc needed some testing stuff, and it was sad that another xmas went by w/o p6, so...  maybe late Jan. ;)
22:02 stevan_ :)
22:09 mncharity (for context, years ago Gates' response to M$ supporting standards, or some flavor of standards, was "it depends what you mean by _standards_", in a situation where it was entirely clear it the only uncertainty was their competitive impact on MS - standards which support MS customer lock-in, vs standards which weaken it)
22:10 mncharity s/customer/society/ ? :)
22:10 mncharity s//world civilization/ ?
22:11 mncharity some of the tricks MS and Intel have been pulling on OLPC...  never mind.
22:12 * Auzon grumbles
22:13 zamolxes joined #perl6
22:18 bwisti joined #perl6
22:19 pugs_svn r19400 | putter++ | Created file, with #perl6 notes, about MOP resouces for the Common Lisp kp6 backend.
22:19 mncharity ooo, "putter", blast from the past.
22:20 mncharity stevan_: If you ever get up to Boston, we should do a p6 lunch.  My fuzzy recollection is there are several #perl6 folk in the area.
22:26 polettix joined #perl6
22:36 rdice joined #perl6
22:40 mncharity http://www.blu.org/
22:40 lambdabot Title: BLU Home
22:48 TJCRI joined #perl6
22:51 jferrero joined #perl6
22:54 arxc_ joined #perl6
22:55 mncharity wrong channel
23:16 jjore-w joined #perl6
23:22 Tene Hmm... I should see if there are any Perl 6 hackers near any places I ever teach at.
23:26 Limbic_Region where do you teach at?
23:26 lambdabot Limbic_Region: You have 1 new message. '/msg lambdabot @messages' to read it.
23:26 Limbic_Region @messages
23:26 lambdabot mncharity said 1d 18h 27m 11s ago: The CL manual. The ANSI C standard. Um, it's more like _most_ languages have more of a reference manual than p6. Than p5 even.
23:28 Tene Limbic_Region: Columbia, MA this week. Orem, UT next week, NYC the week after that.
23:28 Tene Dunno where after that.
23:30 [particle] tene: you should use dopplr
23:30 mncharity re CL, something like http://www.cs.queensu.ca/software_docs/gnudev/gcl-ansi/ is standards overkill, but something like http://www.cs.cmu.edu/Groups/AI/html/cltl/clm/node1.html could be nice.
23:30 lambdabot Title: ANSI and GNU Common Lisp Document - Table of Contents
23:30 Tene I should.
23:32 mncharity http://www.vmunix.com/~gabor/c/draft.html
23:32 lambdabot Title: ISO/IEC JTC1/SC22/WG14 N794
23:42 mncharity http://www.ecma-international.org/publications/files/ecma-st/ECMA-262.pdf
23:42 lambdabot http://tinyurl.com/dfr5v
23:45 __pao__ joined #perl6
23:45 __pao__ hi all :-)
23:45 Auzon hi
23:45 __pao__ does anyone know if audrey is still active on perl?
23:46 Auzon From what I heard earlier, no
23:46 __pao__ I've been search some sign of internet life but she seems completely desappeared
23:46 Auzon Not for the time being, that is
23:46 __pao__ does anyone know the reason?
23:46 Auzon Let me get the irclog for you
23:46 __pao__ Auzon: thanks... very kind from you
23:47 Auzon http://irclog.perlgeek.de/perl6/2008-01-09#i_175283
23:47 lambdabot Title: IRC log for #perl6, 2008-01-09
23:47 wolverian she released selfvars a while ago
23:47 wolverian not working on pugs right now, afaik
23:47 wolverian I've seen her on magnet #perl last
23:48 mncharity the language references apropos LR's "mncharity - can you point to a language reference manual for another language so I can relate to what you are saying?"
23:48 __pao__ wolverian: thx
23:48 __pao__ Auzon: I'm reading the log...
23:48 mncharity @seen audreyt
23:48 lambdabot audreyt is in #haskell and #ghc. I don't know when audreyt last spoke.
23:48 Auzon It has a lot of interesting ideas, but not much about audrey...
23:49 __pao__ Auzon: it seems a FAQ ;-)
23:49 Auzon indeed.
23:54 cognominal_ joined #perl6

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

Perl 6 | Reference Documentation | Rakudo