Perl 6 - the future is here, just unevenly distributed

IRC log for #phasers, 2011-01-25

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

All times shown according to UTC.

Time Nick Message
01:50 dukeleto left #phasers
01:50 dukeleto joined #phasers
10:20 cognominal joined #phasers
10:54 dukeleto left #phasers
10:54 dukeleto joined #phasers
14:23 cognominal left #phasers
14:23 cognominal joined #phasers
14:27 cognominal left #phasers
14:31 cognominal joined #phasers
14:52 dukeleto left #phasers
14:53 dukeleto joined #phasers
14:54 dukeleto left #phasers
14:54 dukeleto joined #phasers
17:53 masak joined #phasers
17:54 pmichaud joined #phasers
17:54 pmichaud My pre-report:
17:54 pmichaud * Worked on planning nqp migrations with jnthn++
17:54 pmichaud * Working on draft roadmaps for nqp, rakudo, and R*
17:55 pmichaud * Plan to do R* release later tonight
17:55 pmichaud * I'm thinking of moving R* releases to be every three months instead of monthly.... any comments?
17:55 pmichaud (we can of course do more often if we have a reason to do one early)
17:57 tadzik moving from "every month" to "when we have something interesting" may not be a bad idea, some people look at the changelog and say "...is that is?". Maybe it will get more marketingy to release when there's something to show off
17:57 pmichaud I'm also thinking of removing the comments we have about Rakudo not being production ready or "1.0" release.  I'm not going to add comments that say it is production ready -- I just think we're at a point where we don't have to be quite so explicit about being not ready
17:57 [Coke] +1 from me on that.
17:57 pmichaud tadzik: I absolutely want to continue with timed releases.  Going to "when we have something ready" leads back to the p5 release schedule abomination
17:58 masak +1 on every three months
17:58 jnthn +1 on every three months with the caveat that if 6model changes are merged sooner than that, it's probably notable enough for a release.
17:58 tadzik pmichaud: right
17:59 pmichaud jnthn: I somewhat think that three months is going to be about the right time scale for merging 6model
17:59 pmichaud I'm not sure we'll be done (back to the current level of rakudo) in two
17:59 colomon +1 on every three
17:59 * jnthn accepts that as a challenge :P
17:59 pmichaud but yes, if 6 model is ready two months from now, I'm absolutely okay with releasing then
18:00 pmichaud I'm wanting to adopt a stance of "we deliver every three months no matter what, and more often when conditions warrant"
18:00 masak +1 on challenging jnthn to do the 6model merge in three months :P
18:00 jnthn masak: :P
18:01 PerlJam +1 on both removing the comments and quarterly releases.
18:01 pmichaud [Coke]: your +1 was in reference to the removal of comments?   (just confirming)
18:02 colomon +1 on challenging jnthn :)
18:02 diakopter joined #phasers
18:03 pmichaud afk, lunch and errands.  bbi90, I hope.
18:03 jnthn Challenge accepted. :P
18:03 * diakopter might miss #phasers; nothing to report really
18:03 pmichaud oh, and another item
18:03 pmichaud * I think I finally helped diakopter++ to unblock :)
18:03 PerlJam So, "normal" releases are Jan, Apr, Jul, Oct ? or some other months?
18:03 jnthn (unblocking diakopter) yay! pmichaud++, diakopter++
18:04 pmichaud Jan, Apr, Jul, Oct -- same as the parrot supported releases
18:08 [Coke] pmichaud: yes. also +1 on moving to a 3 month schedule for *.
18:08 [Coke] pmichaud: you might want to lag those a month to kick the tires?
18:09 [Coke] no strong feelings on that, though.
18:10 PerlJam What Coke said (both things)
18:14 masak has that kind of tire-kicking been needed in the past?
18:15 PerlJam I can remember a few times when there has been parrot damage to rakudo that required some hasty tire-kicking.
18:16 PerlJam Giving a month lag might allow for a more reasoned appraoch.
18:16 masak I thought that was what the two-day lag between Parrot and Rakudo (compiler) releases was for.
18:16 masak my question is really: has anything *more* than those two days ever been needed?
18:17 PerlJam I don't think so.
18:18 PerlJam (thus the second part of Coke's comment: no strong feelings  :)
18:19 [Coke] just figured it was a good question to raise.
18:20 PerlJam One could say that because this is for R*, that any parrot weirdness will have already been worked out in Rakudo, so why wait?
18:21 PerlJam But then later on, if there is some problem the rather immediate looming deadline will be added pressure to "do something quick" rather than "do the right thing"  (maybe)
18:22 PerlJam A month long lag gives breathing room -- thinking time.
18:22 [Coke] eh. could always do a point release, just like parrot does when something explodes. forget I said anything. ;)
18:29 [particle] yes, sometimes more than two days was needed
18:30 [particle] and parrot has released bugfixes soon after releases  (2.5.1?) for rakudo
18:31 moritz_ huh, is it #phasers time already?
18:31 PerlJam #phasers has been phasing in for a a while now
18:33 colomon it isn't time for another 27 minutes, but it's been very active anyway.
18:52 masak we just can't contain ourselves!
18:53 moritz_ my #phasers is NonContained
18:54 masak ah, the IRC dialect of Perl 6, where '#' is a sigil :)
18:54 diakopter ahhh... comments as variables
18:55 moritz_ anyway, #phasers prereport:
18:56 moritz_ helped sECuRE debugging the IPv6 patch, and applied the corrected version
18:56 moritz_ * implemented --ll-backtrace option that forces PIR level backtraces (good for debugging Null PMC accesses)
18:57 moritz_ * now have a toddler at home, so time slots are unpredictable. Well worth it :-)
18:57 moritz_ EOR
18:57 masak my prereport:
18:57 masak * did a bunch of pp6c blogging. stalled on two-pre-p4 posts due to $work being too interesting.
18:58 masak EOR
18:58 masak s/-/ /
18:58 colomon $work being too interesting is a very good problem to have.
18:59 Util my prereport: Parrot work only. EOR.
18:59 jnthn Clearly I should get a job where masak works.
18:59 diakopter heh
18:59 moritz_ :-)
19:00 colomon my on time report: Pretty much nothing done since last time, except for try to better understand masak's p2.  EOR.
19:00 masak o/
19:01 moritz_ \o
19:01 jnthn o/
19:01 colomon o/
19:01 Util o/
19:01 PerlJam my report: kibitzing on #parrot and #perl6.  nothing much else Perl 6 related
19:01 PerlJam :-)
19:02 jnthn my report...
19:02 jnthn Worked on nqp-rx/nom this week...
19:02 jnthn * Did initial refactors for natively typed attributes in P6opaque
19:02 jnthn * Also got down to 2 allocations per object, not 4 like Parrot Objects
19:02 jnthn * Got grammars switched over to use 6model. Took a while - was tricky.
19:02 jnthn * Added an optimization to only add return exception handler when return is used
19:02 jnthn * Made attribute get/set by name a bunch more efficient
19:02 jnthn * Located and fixed a silly bug in the method cache builder
19:02 jnthn Over the next week will...
19:02 jnthn * Purge the old Cursor code left over from the grammars migration
19:02 jnthn * Get natively typed attributes working
19:02 jnthn * Switched object body allocation to use fixed size allocator; slight performance win
19:02 jnthn * Add a simple roles implementation to nqp-rx/nom
19:02 jnthn * If I get time, support for mix-ins
19:02 jnthn Blockers
19:02 jnthn * Branes, time, beer.
19:02 jnthn EOR
19:03 diakopter branes are affected by  1/time/beer
19:03 moritz_ jnthn also blug
19:05 jnthn oh, yes. :)
19:05 jnthn I tyr to do that at least once a week. :)
19:05 jnthn *try
19:06 moritz_ anybody else wants to report?
19:08 moritz_ anyway, I've read yesterday's discussion about nqp plans
19:09 moritz_ I liked it
19:09 jnthn :)
19:09 * jnthn is looking forward to pmichaud++'s roadmap/blog posts. :)
19:09 jnthn And lots of hacking. :)
19:10 moritz_ (short summary: nqp will give up the no-runtime-required paradigm, and will act as the primary abstraction layer for VMs for rakudo)
19:10 moritz_ and probably a name change, or maybe not :-)
19:12 jnthn That's a decent way to sum it up, though of course all HLLs built with nqp also get the benefits. :)
19:14 moritz_ sure
19:16 PerlJam what will nqp's runtime look like?
19:16 PerlJam (the required one)
19:17 PerlJam or will it be more like a role where certain routines are required of whatever runtime you happen to  use with nqp?
19:18 jnthn PerlJam: Exactly what each VM needs to allow it to do the needed stuff will vary.
19:18 jnthn PerlJam: Generally, it'll incorporate the 6model core, a basic implementation of classes and roles built on that, plus multi-dispatch support. Then I guess some built-in types.
19:18 pmichaud we'll likely come up with a standard API for nqp
19:19 pmichaud standard built-in types and methods
19:19 pmichaud nqp's claim will be that it's a very minimal Perl 6
19:19 jnthn I suspect it'll be a process of negotiation between what nqpclr/nqpjvm offer and what nqp-rx provides today.
19:19 PerlJam it keeps moving closer and closer to Perl 6 over time :)
19:19 pmichaud PerlJam: yes, I know; I can even conceive it might disappear entirely
19:20 * jnthn thinks it's important to factor in optimizability when deciding what goes into NQP or doesn't
19:22 PerlJam jnthn: It's really odd, but your description of the runtime sounds just like SMOP
19:23 jnthn PerlJam: Doesn't sound odd to me. :)
19:24 PerlJam It's just convergent evolution, eh?
19:24 jnthn PerlJam: SMOP was one of many influences on 6model.
19:25 jnthn Standing on the shoulders of giants and all that. :)
19:27 mberends joined #phasers
19:29 moritz_ smop just never had a regex engine
19:31 PerlJam right.
19:31 PerlJam That's why NQP and SMOP alwasy occupied separate universes to me.
19:31 tylercurtis joined #phasers
19:31 PerlJam (until now I guess ;)
19:38 jnthn pmichaud: Do you have any thoughts on how we can make iterators cheaper in Rakudo?
19:46 masak jnthn: by switching back to a more problematic iterator model? :P
19:47 jnthn masak: IMHO, the *model* we have now is great.
19:48 jnthn I suspect we just need to find ways to cheat at times. :)
19:49 PerlJam jnthn: Why do iterators need to be cheaper exactly?  And are these iterators going to be reused often?
19:50 masak PerlJam: "fun" comparison in Rakudo: a for loop against an identical while loop. try it, and you won't be asking. :P
19:52 jnthn PerlJam: What masak said. Also, compare for 1..10000 { } vs my $a; for 1..10000 { $a += $_ }
19:53 colomon jnthn: what's the point of that last comparison?
19:54 jnthn colomon: That the cost of the iteration dominates the cost of what is done inside the loop body if what's done is relatively small.
19:54 colomon jnthn: I don't actually get that result with this example.
19:54 jnthn Oh?
19:55 colomon I got 2s for the first, 3.4s for the second
19:55 colomon 1.5s for a while loop
19:55 pmichaud the real way to see the cost is to compare a while versus a for
19:55 pmichaud because the while doesn't use iterators
19:55 jnthn Oh, sorry, that wasn't the benchmark.pl case I thought it was...
19:55 jnthn pmichaud: Yes, true.
19:56 pmichaud the cost of iterators at the moment is in the allocating of the iterator objects
19:56 pmichaud that can absolutely be optimized a lot
19:56 colomon I get 1.5s for my $i = 0; while ($i < 10000) { $i++ }
19:56 colomon and 2.1s for for 1..10000 { }
19:56 pmichaud but I don't want to optimize until the spec is a lot better fleshed out
19:56 jnthn colomon: Startup time subtracted?
19:56 colomon nope
19:57 colomon so make it .9s versus 1.5s
19:57 colomon maybe should bump it to 100000 to get a cleaner comparison
19:57 pmichaud at some point what you end up measuring is the cost of GC, too.
19:58 jnthn pmichaud: (cost is in allocating iterator objects) you mean a reduction by allocating less of them, or one from making the allocation cheaper?
19:58 pmichaud allocating less
19:58 jnthn OK, that's the answer I was hoping for. :)
19:58 jnthn (Not that the cost of allocating one *won't* get cheaper - it should.)
19:59 pmichaud right now rakudo's implementation is (by necessity) a "get something working quickly" implementation, out of necessity of the time constraints we were under when it was implemented
19:59 pmichaud even so, there are a lot of corner cases that haven't been well fleshed out
19:59 pmichaud and the API is still squishy
20:00 jnthn *nod*
20:00 colomon with 100,000 iterations, it's 9.5s for while and 16.7s for for.  Clear advantage to while, but it's not a crazy advantage.
20:00 pmichaud so, given that we're only 2x slower than an equivalent while at the moment, I'm in favor of solidying the spec (with an eye towards optimizability) rather than figuring out how to optimize what we already have.
20:01 pmichaud *solidifying
20:02 jnthn OK.
20:02 * jnthn somehow had the difference down as more extreme than that.
20:02 pmichaud if only someone had a grant to work on such thi.... oh, wait, that's me.
20:02 jnthn :)
20:03 pmichaud given other things going on I'm not likely to get on it this week (other tasks more important), but I'll bump it up a bit in my priority setting
20:04 pmichaud as far as nqp goes, I'd say we don't want a lazy list model behind its for loops
20:04 pmichaud that resolves a lot of difficulty, I think.
20:04 moritz_ agreed
20:04 jnthn +1
20:05 jnthn Exactly how that model does look is still up for grabs though, I guess.
20:05 pmichaud I'd lean towards something more traditional -- a lightweight iterator
20:05 jnthn (We could say "how it works on Parrot" though, and I got put something like that into nqpclr etc)
20:05 jnthn *can
20:05 pmichaud just something that indexes through an array or hash
20:05 jnthn *nod*
20:06 pmichaud I wouldn't make arrays or lists lazy in nqp either
20:06 pmichaud keep em eager and efficient (fsvo "efficient")
20:06 jnthn No, I wasn't planning on that :)
20:06 jnthn wasn't planning on lazy, that is. Was planning on efficient. :P
20:06 PerlJam sounds like the usual time/space trade-off to me
20:06 moritz_ right, I'd expect arrays in nqp to be more RPA like than p6-array like
20:06 pmichaud well, there are different definitions of "efficient", some of which apply better to lazy lists
20:07 jnthn .oO( I don't know where in the iteration I am, but I know how fast I'm iterating...oh wait, that's the other trade-off principle... )
20:08 jnthn Anyway, I think this unblocks me a bit
20:08 jnthn I'll tidy up array iteration in nqpclr/nqpjvm some and make hash iteration work.
20:09 pmichaud afk, errands
20:16 * jnthn senses the meeting phasing out
20:44 masak left #phasers
22:07 tylercurtis left #phasers
22:25 mberends left #phasers
23:25 dukeleto left #phasers
23:25 dukeleto joined #phasers

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