|
Post closed tickets in your report. | Note: This channel is for our weekly status meetings (Tuesdays at 19:30 UTC); you probably want #parrot instead. | irclog: irclog.perlgeek.de/ Set by moderator on 20 January 2013. |
|||
|
00:15
bluescreen joined
06:55
cotto joined
10:00
xcombelle joined
11:25
jlaire joined
13:55
benabik joined
14:21
bluescreen joined
14:27
benabik joined
14:49
benabik joined
14:51
benabik_ joined
15:09
bluescreen joined
15:16
rurban joined
15:27
contingencyplan joined
15:35
benabik joined
18:02
kid51 joined
18:16
tadzik joined
18:24
pmichaud joined
18:34
dukeleto joined
18:56
benabik joined
19:11
atrodo joined
19:14
moritz joined
19:18
kid51 joined
19:24
not_gerd joined
|
|||
| Util is pre-reporting | 19:26 | ||
| Done: | |||
| * Discussed Perl [56] futures with stevan and Liz at Perl Oasis. | |||
| Doing: | |||
| * Releasing Parrot 5.1.0 *today*. (First time as Release Manager) | |||
| - Failed to shepherd the release during the lead-up time, so some chaos in #parrot right now | |||
| * Improving Config probes for PCRE and libFFI on Darwin | |||
| Proposing: | |||
| * YAPC hackathon for Perl-NG (Parrot, NQP, Rakudo, Niecza, Moe, and p5-mop) | 19:27 | ||
| .END | |||
| moritz | with YAPC, do you mean YAPC::EU or YAPC::NA? | ||
| Util | YAPC::NA; Thanks, moritz! | 19:29 | |
| Coke | I hacked on sixparrot, doing mostly nonessential removals rather than performance boosting updates. Making sure that nqp/rakudo can run unchanged on the branch. | 19:30 | |
| brought coke/rm_pasm branch back from the dead. Can't merge it to sixparrot as is, because it requires nqp to know that the .pasm includes are now named .pir instead. | 19:31 | ||
| cotto | I'll give it a few minutes for late reports (including mine) | ||
| kid51 will run 'make test' and/or 'make fulltest' on any branch on request; no other report; am mainly involved with P5P these days; organizing NY Perl Hackathon in 12 days | 19:32 | ||
| cotto | done | 19:34 | |
| * lots of discussion about a new direction for Parrot; see reparrot.blogspot.com/2013/02/its-b...et_15.html for detailk | |||
| doing | |||
| * working on resurrecting p5-based ops2c, one of the two users of the obsolote nqp-rx | |||
| * working in the ops2c-necromancy branch | |||
| * Parrot itself is building fine with one test failure | |||
| * haven't tested nqp/Rakudo yet, will do so before thinking about merging | |||
| todo | |||
| * finish ops2c-resurrection | |||
| * look at profiler tests (other use of nqp-rx) | |||
| * get rid of nqp-rx | |||
| * excise any nqp-rx-exclusive code paths from Parrot | |||
| eor | |||
| any other slowpokes? | |||
| not_gerd | me | 19:35 | |
| cotto | fire at will | ||
| not_gerd | * started porting nci_thunk_gen.pir -> pl | ||
| stopped because the subsystem goes away | |||
| * resurrected whiteknight's eval_pmc branch | |||
| * added --target=pbc to NQP/Rakudo (pending review) | 19:36 | ||
| EOR | |||
| cotto | thank you | ||
| pmichaud | I'm present, nothing specific to report, may have to leave w/o warning. | ||
| allison | * I've been removing useless MMD | 19:37 | |
| atrodo | * worked on removing nci from sixparrot, hopefully will push something soon | ||
| moritz | * did some random sixparrot removal, a force push, and trying to keep parrot<->rakudo relations productive | 19:38 | |
| EOR | |||
| cotto | Util: do you have any reservations about the release today? | ||
| I don't believe that the instructions will need any changes since this would normally be a developer release anyway. | 19:39 | ||
| Util | I am just unclear from the last hour of #parrot. | ||
| pmichaud | Util: I'd say cut the release, don't expect any further last-minute updates. | ||
| (just my opinion) | 19:40 | ||
| Coke | Even if we were going to tag a release as supported on something other than the quarterly schedule, it probably wouldn't be this one. | ||
| pmichaud | Coke is correct, I think. | ||
| cotto | I'd really like to see not_gerd's changes, but I agree that it's too late in the cycle. | ||
| so +1 to what pmichaud said | |||
| pmichaud | cotto: those are going to take a lot of planning and coordination, sadly. | ||
| cotto | How about now for planning? | 19:41 | |
| Util | OK, will release today; no merges allowed until after release. | ||
| cotto | Util: great | ||
| So the problem appears to be that not_gerd's changes are backwards-incompatible. Is there a way to make a smooth transition so that nqp and Rakudo can update at will? | 19:43 | ||
| pmichaud | not likely | ||
| at least, not with a single backend vm stream | |||
| Coke | pmichaud: do you have any positive steps we could take? | ||
| or is this improvement going to die on the vine? | 19:44 | ||
| not_gerd | I can refactor the eval_pmc Parrot changes into API additions and Eval PMC removal | ||
| pmichaud | I'm still having to try to digest all of this rapidly | ||
| not_gerd | merge of my NQP/Rakudo branches depends on new API, but not Eval PMC removal | ||
| eg the latter could only go into sixparrot and not master | |||
| allison | not_gerd, so add the new API, but don't remove the old Eval PMC? | ||
| pmichaud | I have difficulty following the nqp/rakudo branch moves because they do a lot of cosmetic code refactor in addition to the core change | 19:45 | |
| allison | i.e. suppport both for a while? | ||
| Coke | not_gerd: note that rakudo/nqp still have to build unchanged on sixparrot. | ||
| pmichaud | and yes, sixparrot is part of the confounding change | ||
| Coke | pmichaud: (cosmetic) well, that I'm sure can be cleaned up. | ||
| pmichaud | Coke: I'm sure it can also; the fact that it's not clean is what is making it hard for me to give snap answers | ||
| not_gerd | add new API now, remove Eval PMC from sixparrot ones the Rakudo/NQP changes land | ||
| ^once | |||
| cotto | s/now/after the release/ | 19:46 | |
| allison | not_gerd: that seams reasonable | ||
| pmichaud | it's also confusing because we have Parrot, Parrot 5.0.0, Parrot 5.1.0, and "sixparrot" | ||
| allison | cotto: not right after the release | ||
| cotto: because it breaks nqp/rakudo | |||
| Coke | sixparrot's goal, in my mind, is an experiment to see what we can rip out without impacting nqp+rakudo and see what, if any gains we get. that's all. If we have to change something in nqp+rakudo, then you can worry about it; before that, it's just a smaller parrot. | ||
| pmichaud | so when someone says "remove Eval PMC" I don't know where the change is coming. | ||
| allison | pmichaud: maybe not at all | 19:47 | |
| cotto | Let's clarify sixparrot. | ||
| allison | it seems entirely safe to add the new APIs, though | ||
| cotto | I see it as something that only Parrot developers need to care about, and that once changes are proven there they'll be merged into master. | 19:48 | |
| with appropriate coordination with Rakudo | |||
| pmichaud | cotto: that doesn't sound to me like Coke's version of sixparrot | ||
| cotto | Coke: how do you see it? | 19:49 | |
| Coke | sounds pretty close to my version, yes. Remove things that rakudo doesn't need/isn't using. If we get something faster, consider merging stuff back. | 19:51 | |
| pmichaud | okay, I'm corrected then :) | ||
| Coke | I've been attempting to avoid doing anything in the branch that breaks nqp or rakudo. | ||
| pmichaud | I think for the time being we want to do anything in nqp/rakudo that breaks the branch, too. | ||
| allison | me too, my requirement for every change is "rakudo must still pass all tests" | ||
| pmichaud | *to avoid | 19:52 | |
| Coke | something like "rm_pasm" can't be part of it yet, because there's no backward compitable/transitional way to .include 'constants.pasm' | ||
| (my proposed workaround there is to have any pasm includes automatically include the pir file instead.) | |||
| at which point it shouldn't impact nqp/rakudo. | 19:53 | ||
| allison | (actually, my requirement has been "rakudo must still pass all tests, in the same time or faster") | ||
| Coke | I think eliminating unused code and removing a maintenance burden is still a win for the branch. | 19:54 | |
| but sure, anything that slows things down defeats the purpose. | |||
| my blind hacking isn't going to speed anything up, just cut off things that nothing complains about. | 19:55 | ||
| allison | that will make it easier to speed things up :) | ||
| Coke | aye. | ||
| pmichaud | Coke: I'm not sure that sixparrot is something that only Parrot devs need to care about... unless you're saying that NQP/Rakudo should go ahead and adopt changes that appear in Parrot master but perhaps break sixparrot...? | 19:56 | |
| Coke | PASM is probably one of the more complicated things I could rip out (there's still IMCC guts that could go along with it); Next big thing for me when I have time is trying to peel out the unused bits of objects. | ||
| pmichaud: sixparrot is going to merge in changes from master, so I don't understand the question. | 19:57 | ||
| pmichaud | sorry, that was meant for cotto. | ||
| okay, works for me. | |||
| allison | Coke: that would be great (lightening objects) | ||
| Coke | if you suddenly start using something before it being deleted lands on master, yes, we have to add it back in to sixparrot. | ||
| pmichaud | I feel like I'm being more confusing than helpful here, perhaps I should go. | ||
| Coke | I want you to understand what's going on. | 19:58 | |
| cotto | +1 | ||
| pmichaud | Yeah, I'm having trouble following what's going on, that's for sure. | ||
| cotto | especially as the community manager on the Rakudo side | ||
| Coke | which is basically that we're trying to make things small, faster, better. | ||
| but it's all experimental at this point. I imagine we're going to regroup in a few weeks to see what's gone, what's left that could be ripped out, where performance is, etc. nothing's going to land on master without more discussion. | 19:59 | ||
| benabik | If Rakudo starts using something, then obviously isn't useful and should stick around. :-) | 20:00 | |
| *it's | |||
| pmichaud | okay, I think I understand that part about sixparrot, then. Basically, from a Rakudo/NQP perspective we ignore the existence of sixparrot for now, then? | ||
| cotto | pmichaud: The onus is on Parrot developers to inform Rakudo when there's a change that needs coordination. Not breaking Rakudo without proper communication is a major goal. | ||
| Coke | it would be great if some rakudo devs occasionally ran against --gen-parrot=sixparrot to keep us honest. | 20:01 | |
| cotto | You should be safe ignoring anything in Parrot that we don't ask you about. | ||
| (in theory) | |||
| Coke | I run it, but it's slow to test /everything/ every time I rip out 3 lines of code. ;) | ||
| moritz | Coke: will try to do it | ||
| cotto | it won't hurt to do so occasionally, like Coke said | 20:02 | |
| pmichaud | I need to reserve a topic slot to discuss API change/backward compatibility issues | 20:03 | |
| cotto | pmichaud: today or in general? | ||
| pmichaud | either. | ||
| it's with respect to the evalpmc changes | |||
| cotto | If you feel like we've been able to effectively communicate the purpose of sixparrot et al, now's a good time to disucss the eval pmc changes. | 20:05 | |
| pmichaud | I'm fine with sixparrot, yes. | ||
| After having a few minutes to think about it, I think there are two forms of backward compatibility that we have to be aware of. | |||
| and the evalpmc changes are bringing the distinction to the foreground | |||
| let's look at backward compatibility from a parrot perspective. Removing the EvalPMC today would be bad, because it would cause existing nqp/rakudo to break. | 20:06 | ||
| Coke | agreed. | ||
| pmichaud | That's one form of backward compability -- Parrot doesn't want to introduce changes that cause existing rakudo code to break. | ||
| however, there's another form, from a Rakudo perspective. | 20:07 | ||
| let's say that we go with the plan that instead of removing evalpmc immediately, we first add the new API to parrot | |||
| this gives Rakudo time to adapt "on its own schedule" | 20:08 | ||
| however, as soon as Rakudo starts using the new API, it becomes incompatible with all of the Parrots that came before that API was available | |||
| currently, Rakudo works with Parrot 4.10 or later. | 20:09 | ||
| as soon as Rakudo switches to the new API (let's say it first appears in 5.2), then Rakudo only works with 5.2 or later. | |||
| Coke | that seems to be the price of progress, no? | 20:10 | |
| cotto | Doesn't Rakudo already support detecting a minimum Parrot version? | ||
| pmichaud | sure | ||
| yes, it's the price of progress, and yes, we detect the minimum Parrot version. | 20:11 | ||
| Coke | are you suggesting that there is a way around that issue, or that we simply need to note it, or that it poses an impasse? | ||
| pmichaud | But every time we bump the minimum Parrot version, we reduce the "newness" of Rakudos that can appear in Linux distros. | ||
| I'm simply saying we need to be aware of it, I think. | |||
| Coke | as discussed on parrot, that's already over a year old. | ||
| pmichaud | for debian testing, yes. | 20:12 | |
| not for debian unstable, or ubuntu. | |||
| Coke | I think we need to make sure that tickets from packagers get priority treatment. | ||
| Util | Could EvalPMC's replacement have a (additional?) API that is compatible with the current EvalPMC API? | ||
| Coke | (for both projects) | ||
| pmichaud | Util: I think that's an example of my first form of compatibility. | 20:13 | |
| In this case, we know that we want Rakudo to move to the new API, it's just that doing so ought to be timed when it will have the least impact to distro packaging | |||
| Util | pmichaud: Right, I am asking if it is actually feasible at all. I am unfamiliar with the replacement. | 20:14 | |
| pmichaud | I think we want to go ahead and eliminate the old API asap. | 20:15 | |
| Util | OK | ||
| pmichaud | If Parrot has one customer (Rakudo/NQP), let's not keep too many APIs around just for the sake of Rakudo/NQP. | ||
| cotto | ok. We need to be strategic with backwards-incompatible changes. What's the best timing strategy? | 20:17 | |
| pmichaud | I don't know, unfortunately. We should probably get with debian packagers to ask that question. | ||
| cotto | allison: ^ | ||
| pmichaud | if we know in advance what versions of rakudo and parrot the debian packagers expect to be using for each of their releases, we can plan our changes accordingly. | 20:18 | |
| I think the other thing I'm trying to get to is a general understanding that Rakudo/NQP is fine with making backwards-incompatible changes, but that we can't always do it as soon as they're available. | 20:19 | ||
| allison | ah, see, I'd go the other way, just tell us which versions to package | 20:20 | |
| pmichaud | allison: that sounds like a push-driven model, though, which leads to some bad lead times | 20:21 | |
| allison | debian packaging always sufferes from bad lead times | ||
| pmichaud | right, I'm trying to ameliorate that somewhat | ||
| allison | it's the nature of the beast, unfortunately | ||
| pmichaud | I think it doesn't have to be | ||
| allison | in my ideal world, Debian packages two releases per year | ||
| so, if I do Parrot 5.0 now | 20:22 | ||
| pmichaud | are the dates of the debian package releases known? | ||
| allison | I'd say as long as Parrot 5.6 and Rakudo 2013-6 are usable together, that's all we need | ||
| debian is on a 2 year release schedule | |||
| but merges from unstable to testing happen on-the-fly | |||
| wheezy is expected very soon now, so it'll be going out the door with 2012-01 | 20:23 | ||
| no way of changing that | |||
| (wheezy is already in freeze) | |||
| Ubuntu could get Parrot 5.0 into the 2013.04 release | 20:24 | ||
| pmichaud | ...yes, but which version of Rakudo? | ||
| allison | it's not "automatic" at this point, since we're past auto-sync, but I can request it and get it approved | ||
| moritz | pmichaud: 2013.02 | ||
| allison | which version of rakudo do you want? | ||
| 2013-01 would be my default | |||
| (same month as 5.0) | 20:25 | ||
|
20:25
benabik joined
|
|||
| pmichaud | allison: why not a later version of rakudo, though? | 20:25 | |
| allison | it's a matter of timing | ||
| moritz | there's no indication that 2013.02 will need a parrot 5.1 or newer | ||
| allison | I'll really have to get it into Ubuntu in the next few weeks | ||
| moritz | and 2013.02 will be out on Thursday | ||
| allison | so 2013-02 is possible | ||
| but, that's probably the last one possible | |||
| moritz | and fi you need to do updates to packaging, you can do it even before the release | 20:26 | |
| pmichaud | allison: this is kind of what disturbs me, that there seems to be an automatic "same month as parrot release" assumption | ||
| moritz | *if | ||
| allison | pmichaud: well, that's what you all told me a few years ago, so I've just stuck with it | ||
| as in, that's the only rakudo release I'm *sure* is compatible | |||
| but, things were a lot faster and looser back then | 20:27 | ||
| so, I'm happy to revise that "rule of thumb" | |||
| pmichaud | allison: that's why we need to know the packagers timings/needs a bit better (more) | 20:28 | |
| Rakudo has been making efforts to remain compatible with the oldest Parrot version possible (because that's what you told us a while ago also :) | |||
| but if packagers are just always going to use the version of Rakudo that came out contemporaneously with Parrot, there's not much point. | |||
| (came out contemporaneously with whatever version of Parrot they've decided to package) | 20:29 | ||
| allison | well, it certainly does make our lives much easier if we don't have to do a simultaneous package release of Rakudo and Parrot | ||
| those get tricky | |||
| If we can upgrade Rakudo packages, get those out | |||
| and then go back and upgrade Parrot packages, it's simpler | |||
| though, right now I'm wondering if Rakudo 2012.10 is compatible with Parrot 5.0 | 20:30 | ||
| because the dependency problem is running the other way :) | |||
| pmichaud | well, there's no question that when you change parrot, you have to rebuild the rakudo package to match | 20:31 | |
| parrot doesn't offer us bytecode compatibility. | |||
| allison | pmichaud: at the end of the day, the important thing is just to establish a target version for Rakudo and Parrot that are compatible | ||
| pmichaud | allison: yes, and since | ||
| 20:25 <allison> it's a matter of timing | |||
| that's why we really want to know which versions of each the packagers will want to use (and when to have them ready), rather than us just say "oh, here's the one you should be using" | 20:32 | ||
| allison | yes, and the bytecode compatibility thing means we always have to do a rebuild on the rakudo packages when a new parrot package comes out | ||
| moritz | and also the paths change | ||
| allison | but, a rebuild is simpler than a source version upgrade | ||
| Coke | can we have them wing us an email when it's decidin' time? | 20:33 | |
| allison | sure | ||
| Coke | seems the best thing is to talk about it rather than try to setup dominos in advance. | ||
| allison | for now, the next target is Parrot 5.0 | ||
| and I'm open to suggestions on Rakudo | |||
| sounds like 2013-01 or 2013-02 | |||
| pmichaud | allison: and "why" is the next target Parrot 5.0? | 20:34 | |
| because that's the last one we labeled "supported", or because that's the most recent one that you can reasonably package and get into the stream? | |||
| benabik | Didn't someone push changes to make Parrot not invalidate bytecode so often? | ||
| allison | pmichaud: both | 20:35 | |
| pmichaud: and at this point, it's unlikely that another Parrot release will be packaged for 3-6 months | |||
| pmichaud: probably closer to 6 | 20:36 | ||
| pmichaud | allison: if we had labeled today's release as the supported one, would you have chosen it instead? | ||
| allison | pmichaud: the problem is, there's substantial lag in packaging | ||
| pmichaud | how much lag is the question I'm trying to get to :) | 20:37 | |
| allison | pmuchaud: so, I was *planning* to get 5.0 into debian right after its release | ||
| but, it's still not in | |||
| and this happens a lot | |||
| Parrot/Rakudo come out with a new release before the last one is into Debian | |||
| rurban | benabik: I did | ||
| allison | and then the question is "do we chuck all that work and move to the new new release?" | ||
| or "do we go ahead with what we've got?" | |||
| if we try to aim for every monthly release, we just end up thrashing endlessly | 20:38 | ||
| pmichaud | I'm thinking we can avoid those questions if we know when things are likely to go into debian | ||
| allison | so, we pick a point, and follow that all the way through to full inclusion to Debian | ||
| the reasons we go with supported are a) lower frequency and b) at least some greater chance of support if we hit bugs later | 20:39 | ||
|
20:39
mberends joined
|
|||
| allison | the debian and Ubuntu support cycles are *way* longer than Parrot's | 20:40 | |
| pmichaud | I'm not asking for monthly, definitely. | ||
| allison | so, it's not actually a good fit | ||
| but, it's a slightly better fit | |||
| pmichaud | let's back up just a second. | ||
| rurban | debian parrot 5.0 will be threaded, and rakudo cannot handle threads yet | ||
| Coke | the way parrot releases things, there is no substantive difference between a supported one month and the devel the next. You /could/ just pick the latest one that works with rakudo.] | ||
| pmichaud | If we agree that Parrot exists to support one major customer now, then "greater chance of support" becomes irrelevant. | ||
| allison | different kinds of support | 20:41 | |
| an example... | |||
| wheezy is shipping with Parrot 4.0 and Rakudo 2012-01 | |||
| Coke | rurban: be that as it may, latest rakudo builds on latest parrot, I think. | ||
| cotto | Coke: yup. | ||
| allison | if Debian finds a security bug in either of them | ||
| at any point before the next stable debian release (~2015) | 20:42 | ||
| we can only make direct patches to the packages | |||
| we can't ship a new version of the packages | |||
| so, the support I'm talking about is bug/security fixes in the *packaged* versions of the packages | |||
| which are already way outside the guarantee of support that Parrot gives on releases | 20:43 | ||
| pmichaud | but why does 4.0 have a greater chance of support than any other version that we might tag for packaging? | ||
| allison | that's what I'm saying | ||
| pmichaud | greater than ... what? | ||
| allison | it doesn't really | ||
| pmichaud | so, your (b) reason doesn't really matter? | ||
| allison | even supported releases only give, what, 1 year of support? | ||
| well, 1 year is better than "that's a month old, you're on your own" | |||
| which has been the policy for dev releases | 20:44 | ||
| pmichaud | I'm saying that policy is irrelevant now. | ||
| allison | irrelevant how? | ||
| I mean, if all bets are off, I'd probably go with a completely different support policy | |||
| which is "we agree to best-effort bug/security fixes on active distro versions" | 20:45 | ||
| and kick the rest to the curb | |||
| pmichaud | for the case you're describing, what really matters is what version of parrot/rakudo gets pulled into a distro. | ||
| allison | yes, and we've been providing some guidance on that by declaring some as "supported" | 20:46 | |
| but, that's just a convention | |||
| pmichaud | the notion of supported made more sense when we felt we would have multiple users and the need for coordinated deprecation points | ||
| allison | any other way of signaling/choosing versions for packagin in the distros would work | ||
| as long as Parrot/Rakudo are willing to provide support for those versions, whatever they are | 20:47 | ||
| (and by "support" there, I mean distro bug/security patches, rather than any broader definition of "support") | |||
| pmichaud | oops, I have to pick up kid from school | 20:48 | |
| allison | pmichaud: yes, the regular cycle was more important with a broad customer target | ||
| pmichaud | bbi20 | ||
| allison | pmichaud: it's much easier to just declare a distro target when you're only coordinating between Parrot and Rakudo | ||
| pmichaud: (though, again, Parrot and Rakudo is really all Debian has cared about for years now) | 20:49 | ||
| cotto: I'll also drop out and hand this back to you | |||
| cotto | allison: it sounds like it was winding down | 20:50 | |
| any other questions? | |||
| kid51 is very glad to see everybody speaking with one another again | |||
| rurban | Coke: Latest rakudo builds and runs on latest parrot yes, because the threads tests are not yet executed. | ||
| not_gerd wants to highlight something that needs fixing long-term | 20:51 | ||
| story on JVM: QAST->JAST->bytecode | |||
| cotto | not_gerd: go for it | ||
| allison | rurban: what's the incompatibility between Rakudo and Parrot 5.0? | ||
| not_gerd | story on Parrot: QAST->POST/PIRT->PIR->[imcc]->bc | ||
| allison | rurban: and can we eliminate it with different build flags? | ||
| rurban: build an unthreaded Parrot, for example? | |||
| rurban: if not, I'll hold back the Parrot packages | 20:52 | ||
| rurban | we can tell people to not use threads on rakudo yet | ||
| they do work fine on parrot though. | |||
| allison | rurban: we can't ship broken packages | ||
| rurban | it's only nqp which is broken, when using threads | ||
| allison | and "telling people feature x doesn't work" doesn't fly in package land | ||
| rurban | since nobody is using threads yet, the tests pass | 20:53 | |
| see the threads branch in nqp | |||
| not_gerd | allison: Rakudo does not expose threading | ||
| allison | not_gerd: nqp is a separate package | ||
| rurban | for now we are pretty safe package-wise | 20:54 | |
| not_gerd | nqp doesn't either ;) | ||
| rurban | nqp branch=gh67-threads | ||
| allison | rurban: you're not making sense. You're saying that nqp and rakudo are incompatible with a feature of parrot that they don't use? | ||
| rurban | See t/nqp/67-threads.t | 20:55 | |
| yes | |||
| allison | is there any way that a user could stumble on Parrot threads through Rakudo or NQP version 2013-02? | ||
| rurban | via pir: $b := pir::new__PSP('Task', $a); pir::schedule__0P($b); pir::wait__0P($b) | ||
| Not yet | 20:56 | ||
| allison | then Debian doesn't care about it | ||
| cotto | rurban: thanks for the heads up. For the time being this doesn't sound like a blocker. | ||
| rurban | But they might ask, so it should be mentioned. Some people already are spreading wrong fud about parrot threads | ||
| cotto | We'll definitely want to get threads into a place where NQP/Rakudo can make use of them. | ||
| rurban | nqplexpad.pmc needs to be fixed | 20:57 | |
| allison | rurban: pmichaud is content with upgrading to 5.0 in Debian/Ubuntu, so that's good enough for me | ||
| rurban | the parrot lexpad implementation works fine threaded | ||
| not_gerd | imo threads are not the priority right now, as long as we take care that sixparrot doesn't break them | 21:00 | |
| if someone wants to work on them, great | |||
| cotto | not_gerd: that's how I feel too | ||
| not_gerd | performance is probably more important | ||
| allison | not_gerd: agreed, performance is key | ||
| cotto | If Rakudo says that they're a priority or someone with sufficient tuits feels like making them work, fine. Otherwise they're not hurting anything. | 21:01 | |
| pmichaud | back again | ||
| cotto | not_gerd: You have a valid concern about QAST->...->pbc, but I can't imagine PIRATE being nearly fast enough to be usable right now, even if the if it worked. | 21:02 | |
| *even if it worked | |||
| pmichaud | Rakudo's stance on parrot threads is I'd like to see an example of how the equivalent of Perl 6 "@a <<+>> @b" would be implemented using them. Until I can see that, they don't pose much interest to me personally. | 21:03 | |
| not_gerd | we first need to provide a proper API for bytecode generation | ||
| then, someone needs to come up with the intermediate layer between QAST and that API | |||
| benabik | I was going to do that with PACT. But I think building a structure the way it was doing isn't the right way. Should expose a PackfileBuilder that has functions like "start_sub" and "add_op" | 21:04 | |
| not_gerd | ->POST/PIRT->PIR->[imcc]-> should be *one* step | ||
| benabik: +1 | |||
| sounds sane to me | |||
| benabik | Models: Rubinius, ASM | 21:05 | |
| pmichaud | before going too far on the post/pirt/pir/imcc replacement path, be sure to look at whatever jnthn++ has been doing for jvm codegen | ||
| cotto | not_gerd: Parrot needs to be aggressive about improving performance before we can worry about providing saner APIs to do things that can currently be done. | ||
| pmichaud | that's the likely api we'll want to use | ||
| allison | pmichaud: there's a chance we can support that api directly | ||
| pmichaud: once it settles down | |||
| benabik | pmichaud: nqp-jvm-prep repo? | ||
| pmichaud | benabik: yes, I think so. | ||
| jnthn has done a fair bit of work/thinking about codegen for nqp, so it'd be good to revisit whatever he's done recently and use it as a restarting point | 21:06 | ||
| allison | codegen is codegen, whatever the target | ||
| benabik | Looks like he's doing the same build a tree and compile it, it's just that the compiler is in Java. | 21:07 | |
| not_gerd | cotto: I don't have the numbers ready, but building Rakudo's core setting spends ~100s on parsing and ~40s on code gen | ||
| cotto: so there is some performance improvement involved | |||
| cotto | not_gerd: that's similar to what I remember seeing | 21:08 | |
| benabik | Uses commons.apache.org/bcel/. Seems to have a similar factory system as I was discussing. | 21:09 | |
| cotto | not_gerd: The bigger question is how much of an impact there is to be had on runtime performance. | ||
| pmichaud | allison: just to confirm, yes, 5.0 is fine for packaging. Rakudo 2012.02 will still have Parrot 4.10 as a minimum version, which means it could be a candidate for packaging with the 5.0 release. | ||
| cotto | If the build is indicative of that, improving codegen is a worthwhile goal. | 21:10 | |
| allison | pmichaud: okay, sounds good | ||
| not_gerd | cotto: well, if the choice is between adding optimization stages to imcc or the new system, I know what I'd vote for | ||
| as I mentioned when I brought it up, this is a long-term goal | |||
| cotto | not_gerd: not a hard choice | ||
| I'd be interested in seeing a profile of a typical Rakudo application (aside: Is there one?) to see if it spends a similar amount of time in parsing and codegen. | 21:11 | ||
| pmichaud | also, my takeaway from the earlier discussion is that whenever someone wants to merge in the evalpmc changes to Parrot, we'll go ahead and update Rakudo/NQP to match (which will bump up the parrot revision requirement). I may decide to-reimplement the nqp/rakudo patches myself, though, rather than adopt the pull requests. | ||
| cotto | another takeaway: make pull requests to nqp minimal | 21:12 | |
| pmichaud | I think that's generally true; keep things as small diffs rather than large ones. | ||
| cotto | yes | 21:13 | |
| benabik | s/to nqp// | ||
| not_gerd | pmichaud: the problem was that I din't really know what I was doing when I started | ||
| allison | pmichaud: yes, makes sense. I'll track when Rakudo makes that change. | ||
| not_gerd | just moved stuff around until it worked | ||
| pmichaud: if you want to do it, go ahead | |||
| otherwise, I can rebase on master and provide a new, atomic set of patches | 21:14 | ||
| pmichaud | allison: good deal. I suspect it means that the next package-able version of rakudo will be 2013.04, which will concide with the Parrot 5.3.0 release (assuming it's the next supported release) | ||
| not_gerd | pmichaud:just tell me what you prefer so we don't work in parallel | ||
| cotto | pmichaud: It's the next supported release if Rakudo wants it to be. | ||
| allison | pmichaud: ok, we can check in around that time and decide which Parrot/Rakudo releases should be the next Debian/Ubuntu target | 21:15 | |
| pmichaud | cotto: before declaring that, I think we should decide what the next supported release of Parrot ought to look like | ||
| i.e., at what point do we start going minimal? | |||
| allison | pmichaud: I suspect a lot is going to depend on the results of the next couple of weeks of work | ||
| pmichaud | it may be too soon to decide that today, but at some point we do need to make a roadmap | 21:16 | |
| allison | pmichaud: and whether sixparrot starts to look like a feasible replacement for trunk | ||
| for me, that comes down to "does it offer enough advantages to be worth breaking compatibility with other languages" | 21:17 | ||
| I hope so | |||
| it's not really substantially different yet | |||
| like, 30 seconds on the test suite isn't hugely compelling | |||
| but, it's at least trending in the right direction :) | |||
| pmichaud | cotto: from a rakudo perspective, we'd want there to be another "supported" release by April, unless we know for sure that packagers won't be using April as a candidate anyway. | 21:18 | |
| put another way, as long as Parrot 5.0 remains the latest "supported" release, distros and users would never be able to upgrade beyond Rakudo 2013.02. | 21:19 | ||
| allison | pmichaud: seems to me like one of a) 5.3 is mostly the same as 5.0, b) 5.3 never happens because 5.0 is "good enough", and possibly c) 5.3 is sixparrot | ||
| (c) seems most unlikely | |||
| though I can imagine 5.6 as sixparrot | 21:20 | ||
| depending on how things go | |||
| pmichaud | well, if we introduce the evalpmc changes, then 5.0 is no longer "good enough" because it places an upper bound on rakudo releases. | ||
| allison | that'd make 5.3 worthwhile, then | ||
| Coke | pmichaud: let's let development on sixparot drive whether something is merging back. | ||
| allison | even without sixparrot | ||
| pmichaud | right. my point is that a backward-incompatible change (such as evalpmc) drives the need for another supported release in the relatively short term after that. | 21:21 | |
| allison | will the new evalpmc apis be in 5.1? | ||
| pmichaud | allison: no. | 21:22 | |
| 5.1 is being released today. | |||
| allison | ok, more like 5.2 then | ||
| Coke | I would argue that it isn't int he short term after that, but "before packagers consider packaging another release" | ||
| pmichaud | Coke: that was my point about letting packagers drive the release schedule, but allison gives me the impression that's not really possible. | ||
| allison | I was wondering if it would be worth waiting for 5.1 instead of 5.0 | 21:23 | |
| pmichaud | allison: I don't think 5.1 is significantly different from 5.0. | ||
| allison | packaging is driven by the Ubuntu and Debian release schedules | ||
| which are so slow compared to Parrot/Rakudo as to be glacial | |||
| pmichaud | 5.0 versus 5.1 really doesn't impact rakudo or nqp much. | ||
| allison | I'll stick with 5.0, then | 21:24 | |
| but, if Rakudo decides it wants 5.2, we can do that instead of waiting for 5.3 | |||
| on the whole, I think adding evalpmc in 5.2 | 21:25 | ||
| having Rakudo make the transition... | |||
| and then doing packaging of 5.3, is the most sane | |||
| the thing is, very few Debian packagers coordinate with upstreams like Parrot/Rakudo | |||
| it's unfamiliar to them to think they might have any say whatsoever in upstream release schedules | 21:26 | ||
| I try to do better than the usual :) | |||
| pmichaud | yes, I can understand why packagers would look at it that way in the normal case. In our case, having very old versions of packages in circulation is really hurtful to the overall project, so we're wanting to work with packagers to jit the release schedules as much as we can | 21:27 | |
| cotto | thanks, allison | 21:29 | |
| pmichaud | in later phases, with more maturity, the jitting is much less relevant, but when going through rapid growth/update we want to reduce lags if we can | ||
| allison | pmichaud: yes, makes sense | ||
| Util | (pre|post)-YAPC::NA::2013 hackathon for Perl-NG (Parrot, NQP, Rakudo, Niecza, Moe, p5-mop, Topaz, etc) | 21:34 | |
| Interest? | |||
| cotto | Util: yes | 21:35 | |
| In the likely event that I'm at YAPC::NA, I'll attend. | |||
| pmichaud | Util: yes. | ||
| tadzik | hm, if I may add my 5zÅ to the previous issues | ||
| Util | I have emailed the YAPC list, to find out whether space is available before, or after YAPC. | ||
| cotto | Util: before is much preferable | 21:36 | |
| tadzik | 1) the only use of threads in rakudo/nqp that I know of is my Threads.pm, which (1) explicitely states that it's experimental (2) lives outside rakudo (3) clearly says that it needs parrot --without-threads to work | ||
|
21:36
masak joined
|
|||
| Util | cotto: for me, too, but I could do after. More discussion next week at #parrotsketch | 21:36 | |
| cotto | Util: +1 | ||
| benabik | tadzik: --without-threads? | 21:37 | |
| tadzik | and regarding the releasing issues, I read the discussion and wondered: if it's that much of a hassle to release parrot and rakudo in sync, maybe it would make sense for rakudo to just ship parrot source with it and build it itself? | ||
| like a submodule or something | |||
| benabik: yeah, that switches native threads to green threads | |||
| green threads work alright in nqp. Native ones, as rurban indicated, do not | |||
| rurban | Util: You forgot p2 | ||
| (As I want to run p5 and p6 in true #p6p5 sense) | 21:38 | ||
| Util | rurban: My email expanded it to ", etc.". I did have your p2 in mind, but did not explicitly list it since I got confused as to the final proposal(s) during the discussions on it. | 21:39 | |
| masak | rurban: I for one would really like to see someone reply to diakopter's mail about threads on parrot-dev. in my estimation, they raise serious concerns with Parrot's threading model, and I haven't seen anything to address those. | ||
| rurban | masak: Those concerns were not serious. and whiteknight already answered. | ||
| In short: threads from subthreads will leave stale proxies | 21:40 | ||
| They will leak. But 1. we do not support subthreads from a thread, only from master, and 2. I would not be concerned by leaking proxies. | |||
| not_gerd | masak: different threading models lead to different implementation strategies | 21:41 | |
| parrot's model is not pthread | |||
| but neither is erlang's or rust's | |||
| that does not mean any of these is defective | |||
| masak | rurban: hm, I didn't see an answer from whiteknight. I'm looking not, and I still don't see it. got a url? | 21:42 | |
| cotto | Let's continue this discussion in #parrot and call #ps a wrap unless there are any unaddressed questions. | 21:43 | |
| tadzik | any opinion on my proposal? | ||
| rurban | masak: it was nine. lists.parrot.org/pipermail/parrot-d...07295.html | ||
| masak: And we need a semaphore library of course | 21:45 | ||
| masak | rurban: diakopter wrote a reply to that one which raised more (serious) concerns. that mail went unanswered. | ||
| tadzik | I implemented semaphores for Perl 6 :) | 21:46 | |
| rurban | I didn't see any serious concern in the 2nd mail | ||
| tadzik | basing on some parrot example | ||
| not_gerd | masak: I remember that mail | ||
| my thoughts were: doctor, it hurts when I do that -- so don't | 21:47 | ||
| masak | it sounded like quite an un-contrived example to me. but I'm not a threads expert. | ||
| what concerned me was that the email went unanswered, though. | |||
| I would have liked for someone from Parrot-land to have replied to it, settling any doubts. | |||
| even if you guys look at it and don't take it seriously, it *sounds* serious. | 21:48 | ||
| Coke | As I suggested when this came up in parrot, it would be nice if those concerns could be translated into code that we could run and see the result of. | ||
| rurban | Well, since you should not do cross-thread writes, only from main, it's a rather contrived limitation | ||
| masak | not doing cross-thread writes sounds like a very limiting limitation. | 21:49 | |
| Coke | we should move the technical bits back to #parrot | ||
| rurban | and proxy invoked code should not create other proxies | ||
| masak | Coke: right. sorry. | ||
|
21:49
masak left
|
|||
| rurban | in short: not serious concerns, but nice to have for the future | 21:49 | |
| Coke | in short: please stop saying "not serious". thanks. | 21:51 | |
|
21:51
benabik joined
21:53
not_gerd left
22:04
benabik left
|
|||