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