Perl 6 - the future is here, just unevenly distributed

IRC log for #perl6, 2008-01-23

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 icwiener_ joined #perl6
00:16 cj which implementation is most complete at this point? :)
00:16 cj is mp6 kp6+1?
00:19 cj oh, looks like kp6 is mp6+1
00:20 mncharity kp6>mp6, yes
00:26 mncharity re "probably means that mp6 is doing some things in Perl 5 that Perl 5 itself would do in C instead", for the 7x, indeed.
00:28 mncharity for why fib-from-mp6 is 100x faster than fib-from-kp6/fake-ruby, but kp6-from-mp6/p5 doesn't seem screamingly fast... perhaps its that the fib on mp6 doesn't use any oo, unlike  kp6-from-mp6.
00:30 TimToady .oO(confused)
00:34 meppl good night
00:35 aindilis` joined #perl6
01:01 tjp joined #perl6
01:03 mncharity re confused, mp6's running of fib is wizzy.  mp6's running of kp6 itself is ok.  kp6/p5's running of kp6 is said to be glacial.  kp6/rb's running of fib is ok.  kp6/p5's running of fib is rather slow.  so the question is, if kp6/rb's fib is merely ok to mp6's fib wizziness, is there any hope for kp6/rb's kp6 being at least ok?  let alone any hope of kp6/rb's kp6 being non-glacial?
01:06 mncharity The hope for kp6/rb's kp6 being at least ok, that is, running no slower than script/kp6 does at present, would have to lie in the mp6 performance on fib being non-representative of its overall performance on kp6.  eg, but its not using any p5 oo.
01:06 cnhackTNT joined #perl6
01:08 mncharity The hope for kp6/rb's kp6 being non-glacial, that is, that a bootstrapped kp6 on a ruby backend is usable, which is the objective of this exercise, lies in the ruby runtime being closer in performance to the mp6 runtime than to the kp6/p5 runtime.
01:13 mncharity After fiddling briefly, it doesn't look like there are any low-hanging (easy and >=10x) optimizations on the calling convention.  While the microbench doesn't confirm we can win, nor did it motivate any interesting optimizations, but at least it leaves winning as a possibility.  given the existence proof of redsix, it still seems plausible.  So I'm just going to putter ahead with the backend, and we'll see how it all falls out.
01:25 jferrero joined #perl6
01:27 dalek joined #perl6
01:35 pugs_svn r19633 | putter++ | [kp6] ruby backend: wrapup fib() microbenchmark exercise.
01:35 pugs_svn r19633 | putter++ | Nice to have some numbers.  Draft calling convention looks at least
01:35 pugs_svn r19633 | putter++ | vaguely plausible.  Results were too uncertain to do a performance
01:35 pugs_svn r19633 | putter++ | projection.  Moved code to a new docs/ruby_backend/Journal.txt.
01:35 pugs_svn r19633 | putter++ | Timing a mp6 fib() implemented as a method, rather than a sub, might
01:35 pugs_svn r19633 | putter++ | be interesting.
01:37 stevan__ joined #perl6
01:41 lyokato_ joined #perl6
01:42 pugs_svn r19634 | lwall++ | Added t/spec/README
01:44 TimToady well, could be a good prototype for a Smalltalk backend in any case.  :)
01:44 mncharity :)
01:46 cnhackTNT joined #perl6
01:52 pasteling "mncharity" at 24.62.4.94 pasted "kp6: perl Makefile.PL: missing compiled/perl5-kp6-mp6/lib/PAST.pm error" (22 lines, 983B) at http://sial.org/pbot/29989
01:54 mncharity bbl(?) &
01:56 mncharity btw, that pasted error was just an fyi.  a "things didn't build cleanly out of the box" bug report.  I suspect PAST.pm needs to be put under revision control, but am unsure.
01:57 TimToady I hope the question mark doesn't indicate you're planning to play Russian Roulette...
01:58 mncharity ^.^  no, just dinner
01:59 pugs_svn r19635 | tjp++ | Fixed typos in docs/Perl6/Overview.pod
02:00 TimToady I hope your survival of dinner has better odds than 5/6
02:09 * Juerd initially read 5/6 as Perl 5 / Perl 6, and tried to figure out what it meant.
02:09 Juerd Then I realised the relevance to the russian roulette reference :)
02:15 TimToady freeway and dinner & # probably less than 5/6 odds on the freeway...
02:20 Schwern joined #perl6
02:28 whooosh joined #perl6
02:50 cnhackTNT joined #perl6
02:53 schemacs joined #perl6
02:53 schemacs left #perl6
03:01 Limbic_Region joined #perl6
03:25 abbyz joined #perl6
03:37 kanru joined #perl6
03:46 jjore joined #perl6
03:53 gbacon joined #perl6
04:00 cnhackTNT joined #perl6
04:04 aindilis joined #perl6
04:16 mncharity TimToady: ah, comprendo.  I was thinking bbl *this evening*. :)
05:17 stevan_ joined #perl6
05:42 alc joined #perl6
05:44 aindilis joined #perl6
05:52 r0bby joined #perl6
06:14 Khisanth joined #perl6
06:31 bsb left #perl6
06:31 f0rth joined #perl6
06:32 Khisanth joined #perl6
06:37 f0rth_ joined #perl6
06:52 Khisanth joined #perl6
07:13 pen1 joined #perl6
07:24 devogon joined #perl6
07:54 BinGOs joined #perl6
08:05 Khisanth joined #perl6
08:23 Khisanth joined #perl6
08:28 cosimo joined #perl6
08:30 chris2 joined #perl6
08:34 Schwern joined #perl6
08:38 meteorjay joined #perl6
08:42 iblechbot joined #perl6
08:46 BinGOs joined #perl6
08:51 mattz joined #perl6
09:00 Khisanth joined #perl6
09:06 braceta joined #perl6
09:26 Khisanth joined #perl6
09:30 pmurias joined #perl6
09:31 pmurias @tell mncharity the rules engine in mp6 is the part which makes kp6 on mp6 run slow
09:31 lambdabot Consider it noted.
09:37 masak joined #perl6
09:42 braceta joined #perl6
09:46 Khisanth joined #perl6
09:59 njbartlett joined #perl6
10:06 ruoso joined #perl6
10:17 Khisanth joined #perl6
10:46 cspencer joined #perl6
11:00 njbartlett joined #perl6
11:08 Khisanth joined #perl6
11:11 meppuru joined #perl6
11:19 macae joined #perl6
11:25 nothingmuch joined #perl6
11:41 shlomif joined #perl6
11:44 njbartlett joined #perl6
11:46 Khisanth joined #perl6
12:01 zamolxes joined #perl6
12:18 Khisanth joined #perl6
12:18 Aankhen`` joined #perl6
12:23 kanru joined #perl6
12:23 * ruoso realises that he needs the bool type very early...
12:27 * ruoso also realises that native bool true and false can also be imortal values
12:27 masak ruoso: immortal? what does that mean in this context?
12:28 masak immutable?
12:28 ruoso nope... means not subject to garbage collection
12:28 masak ah
12:28 ruoso that means that I can count on them being there in the C level without any checking
12:28 masak yes
12:28 masak sounds reasonable
12:34 pugs_svn r19636 | ruoso++ | [smop] test/06_native_bool.c -- starting to declare the native bool type.
12:36 devogon joined #perl6
12:37 Lorn joined #perl6
12:51 pugs_svn r19637 | ruoso++ | [smop] src/native_bool.c -- native bool lowlevel calls implemented.
12:59 pugs_svn r19638 | ruoso++ | [somp] $frame.has_next() implemented.
12:59 jferrero joined #perl6
13:00 cmarcelo joined #perl6
13:05 ruoso lunch &
13:08 meppel-san joined #perl6
13:23 iblechbot joined #perl6
13:34 obra seen fglock
13:34 obra @fglock, ping me when you're around
13:34 moritz_ no lambdabot, no joy!
13:38 mattz joined #perl6
13:38 lisppaste3 joined #perl6
13:46 ebassi joined #perl6
13:47 rindolf joined #perl6
13:50 cosimo left #perl6
14:04 realsri joined #perl6
14:06 realsri joined #perl6
14:09 zf8 joined #perl6
14:10 sri_work joined #perl6
14:21 sri_work joined #perl6
14:28 manfred_ joined #perl6
14:33 [particle] joined #perl6
14:51 [particle1 joined #perl6
14:56 masak joined #perl6
15:06 njbartlett joined #perl6
15:07 TJCRI joined #perl6
15:08 zf8 joined #perl6
15:21 * zf8|away is away: zZzZz...
15:24 devogon joined #perl6
15:28 njbartlett joined #perl6
15:34 njbartlett joined #perl6
15:51 jhorwitz joined #perl6
15:54 blindfish joined #perl6
15:56 iblechbot_ joined #perl6
15:57 Schwern joined #perl6
15:58 ruoso later &
15:58 baest_ joined #perl6
16:08 kanru joined #perl6
16:08 meppel-san joined #perl6
16:13 fglock joined #perl6
16:22 lambdabot joined #perl6
16:40 TimToady fglock: obra was looking for you earlier
16:41 obra fglock: hello!
16:41 lambdabot obra: You have 1 new message. '/msg lambdabot @messages' to read it.
16:41 obra lambdabot, hello! ;)
16:47 ebassi joined #perl6
16:49 rdice joined #perl6
16:53 ispy1 joined #perl6
17:03 fglock obra: sorry, I'm fixing something here
17:04 DarkWolf84 joined #perl6
17:05 obra fglock: no worries
17:05 obra ping when you're free
17:06 alester joined #perl6
17:09 rhr_ how does a p6 pragmatic module process the arglist passed to use? e.g. use nf 'c'; doesn't want to import a sub named c...
17:10 TimToady it's just a Capture, like any other arglist
17:11 icwiener joined #perl6
17:11 TimToady and can be bound to a Signature, or dispatched over multiple signatures
17:11 TimToady we haven't actually specified the export mechanism in detail, only the tag declarations
17:12 TimToady but probably something like "sub EXPORTER (*@_, *%_)" would be typical, give or take
17:13 rhr_ OK, I'll use that for now, thanks
17:13 TimToady so it would just be the standard exporter that interprets 'c' as a name and puts it into COMPILING::
17:20 Jamtech joined #perl6
17:29 [particle] joined #perl6
17:34 * zf8 is back (gone 02:12:18)
17:34 qmole joined #perl6
17:34 falesca joined #perl6
17:38 barney joined #perl6
17:41 macae joined #perl6
17:56 TJCRI joined #perl6
18:08 jjore joined #perl6
18:11 IllvilJa joined #perl6
18:17 pugs_svn r19639 | lwall++ | Clarification suggested by jgottman++
18:27 jjore joined #perl6
18:38 jjore-w joined #perl6
18:52 icwiener joined #perl6
18:58 ruoso joined #perl6
18:59 zf8 left #perl6
19:02 mattz joined #perl6
19:06 jferrero joined #perl6
19:17 mattz joined #perl6
19:25 mattz joined #perl6
19:28 mattz joined #perl6
19:39 pugs_svn r19640 | ruoso++ | [smop] SMOP__SLIME__Frame first implementation almost ready...
19:40 pugs_svn r19641 | ruoso++ | [smop] small fix in SMOP__SLIME__Frame
19:41 mattz joined #perl6
19:44 ruoso anyone wondering how a low-level SMOP implementation looks like can have a shiny example at src/smop_slime_frame.c
20:01 pugs_svn r19642 | lwall++ | [fudge] implement #?DOES
20:01 pugs_svn r19642 | lwall++ | [fudge] : now optional
20:01 wolverian fudge? :o
20:03 [particle1 joined #perl6
20:07 [particle2 joined #perl6
20:10 jjore-w left #perl6
20:12 mncharity joined #perl6
20:18 pugs_svn r19643 | putter++ | [kp6] compiled/perl5-kp6-mp6/lib/PAST.pm: added to svn.
20:18 pugs_svn r19643 | putter++ | perl Makefile.PL complains about it's absence, and make kp6_mp6 creates it.
20:18 pugs_svn r19644 | putter++ | [kp6] compiled/perl5-kp6-mp6/lib/Test.pm: sync - it was out of date.
20:20 pugs_svn r19645 | putter++ | [kp6] Emit/Ruby.pm: first cut at emitting a new calling convention for subs.
20:20 [particle2 alester: TimToady++ recently committed t/spec/README, which has good info on the perl 6 test suite. i suggest a perlbuzz article.
20:21 alester [particle]: Go on.
20:22 [particle] he basically wrote the journal post i've been off-and-on playing with
20:22 [particle] (in that README)
20:22 [particle] you want me to write up a paragraph about it, with a link, and email it to you?
20:23 pugs_svn r19646 | lwall++ | [fudge] Didn't do #?DOES on subs right
20:26 pugs_svn r19647 | lwall++ | [fudge] Clarify meaning of statement in README
20:29 polettix joined #perl6
20:36 pugs_svn r19648 | putter++ | [kp6] docs/ruby_backend.txt: update calling convention and todo.
20:38 pflanze joined #perl6
20:42 pmurias joined #perl6
20:43 ludan joined #perl6
20:49 thoughtpolice joined #perl6
20:55 DarkWolf84 joined #perl6
20:58 riffraff joined #perl6
20:58 pugs_svn r19649 | lwall++ | [fudge] more sub counting tweaks
20:58 pugs_svn r19649 | lwall++ | *.t removed colon from #? lines
21:00 TimToady @tell cosimo you don't have to use colons any more on #?pugs
21:00 lambdabot Consider it noted.
21:00 mncharity would you believe f(a\n  ,b) is a ruby parse error?  ie, comma at beginning of line, rather than end, even inside parens.  sigh.
21:01 pmurias :(
21:04 xinming joined #perl6
21:05 pmurias mncharity: in order to have good kp6-on-ruby performance you might be eventualy forced to write a regex engine which emits ruby directly (instead of using Token)
21:06 mncharity the pragmatics school of language design.  examples: bison can't handle it, so language feature x can't spelled in the obvious way.  we don't have an extra flag bit available, so no object other than nil/false can evaluate as false in an if statement.  sigh.  the shoemaker has a sideline in stained glass, and leaves glass shards all over the floor.
21:09 mncharity re regex, right.  it was thinking perl5rx backend mixin might have to be translated.  rubyrx.  any thoughts?
21:09 mncharity (i'm unfamiliar with Token)
21:12 chris2 joined #perl6
21:17 pmurias mncharity: Token is a implementation agnostic regex engine (it translates perl6 rules to imperative perl6 code)
21:17 pmurias mncharity: so you can use it untill you need the speedup
21:18 mncharity great.  thanks.
21:19 pmurias is it possible to discover what side-effects an execution of a ruby block had?
21:19 pmurias (which variables where modified)
21:21 * mncharity ponders...
21:22 mncharity the short answer is yes
21:23 mncharity a variable,  $x,  is just a container.   s_x = Scalar.new;  s_x._(3);
21:25 mncharity so the Scalar could do logging.  but at present, that _() is a method on containers, so doing something like a mop which permitted say lexically overriding assignment with something that say()ed "hey! there was an assignment!" would require compiler cooperation.
21:25 mncharity what's the objective?
21:25 moritz_ BEGIN blocks, I guess
21:26 mncharity ah, ok
21:28 zamolxes joined #perl6
21:29 pmurias mncharity: i think it is possible to do that with a visitor (so no need to worry about this now)
21:30 mncharity the right thing is perhaps to notice at compile time whether infix:= has been overridden, and emit an actual call to it.  currently the kp6 emitter doesn't seem to pass along a bucket of state, so one might have to do a Visitor to spread around the info.
21:34 pmurias mncharity: not sure ;)
21:38 mncharity bbl
21:39 Schwern joined #perl6
21:49 Lorn 12
21:57 Limbic_Region joined #perl6
21:57 ludan joined #perl6
22:29 njbartlett joined #perl6
22:31 cognominal_ joined #perl6
22:44 meppl good night
22:58 mncharity joined #perl6
23:12 polettix joined #perl6

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

Perl 6 | Reference Documentation | Rakudo