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