|
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 19 March 2012. |
|||
|
01:06
ilbot2 joined
|
|||
| moderator | 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/ | ||
|
01:34
contingencyplan joined
04:12
alvis joined
04:29
alvis left
09:15
lucian joined
11:47
alvis joined
12:42
bluescreen joined
15:20
bluescreen joined
16:11
whiteknight joined
|
|||
| whiteknight | WHAT I DID: | 16:18 | |
| * Getting ready for GSOC. Our application got accepted. I've been filling out forms and writing proposal ideas on github in preparation. | |||
| * Working on the remove_sub_flags branch. All coretests pass. Fixing t/library/* and t/language/* tests, most of which are using old load_bytecode_s and load_language_s opcodes. Things that are updated to use the new code seem to work perfectly. | |||
| * Planning for another round of IMCC cleanups, and creating a new packfile-write API. Input welcome. | |||
| WHAT I WILL DO: | 16:19 | ||
| * Keep working on remove_sub_flags branch. I would like to get it ready for broad testing within the next week or two. I do not have a merge timeline yet, we won't rush it. We want to make sure NQP and Rakudo work fine with it before doing anything. | |||
| * Prepare patches for NQP-rx, Winxed and maybe NQP to work with the new branch. | |||
| * Talk to a few prospective GSOC students about project ideas | |||
|
16:22
contingencyplan joined
18:09
benabik joined
18:58
bluescreen joined
19:26
kid51 joined
|
|||
| Util | # Done: Nothing. | 19:30 | |
| # Plan to do: Set up wiki page today for Parrot/Perl6 hackathon at YAPC::NA::2012 | |||
| # Blockers: $WORK | |||
| .end | |||
| Hello | 19:31 | ||
| benabik | hi | ||
| Util | The first week or two after the time change, we have low attendance. | 19:33 | |
| whiteknight | hello | ||
| I think cotto might not be here, he's at a conference | |||
| benabik | It's actually slightly easier for me to be here on DST. :-D | 19:34 | |
| Util | Which conference, whiteknight? | ||
| benabik | A Drupal conf, I think. | ||
| whiteknight | yeah, something with Drupals | 19:36 | |
| Util | Looks like the dates of YAPC::NA are 1/2-way between start of GSOC coding and mid-term evaluation. | 19:37 | |
| benabik | That's about what it was last year, wasn't it? | 19:38 | |
| Util | We should encourage GSOC students&mentors to come to YAPC for extra interaction. | 19:39 | |
| benabik: I think so. | |||
| benabik | It was very good last year. I'll be unable to this year, sadly. | 19:40 | |
| (Even assuming I'm a student this year.) | |||
| whiteknight | Where is YAPC this year? | ||
| Util | GSOC students might not be aware (unless we tell them) that YAPC can grant scholarships to help with travel and admission. | 19:41 | |
| Madison | |||
| benabik | ! | ||
| whiteknight | oh, yeah, ain't no way I'm making it to Madison | ||
| benabik | That would have been helpful. | ||
| Util | Yet Another Perl Conference : North America - Madison, Wisconsin - June 13-15, 2012 | ||
| whiteknight: You are in Philadelphia? benabik: Where are you based? | 19:42 | ||
| benabik | Util: Rochester, NY | ||
| whiteknight | Phily | 19:43 | |
| Util | I am in east-central Alabama. | ||
| I plan to attend. My wife Sarah is trying to come, too. She has been wanting to see a YAPC for several years now. | 19:44 | ||
| benabik | I'd really love to come, but with a kid scheduled for the end of June, trying to vanish mid-June would probably not go over well with the wife. | 19:45 | |
| Util | benabik: indeed! | ||
| My 2nd grandchild is due August 1, but we should be OK to travel. | 19:47 | ||
| whiteknight | benabik: your first kid? | 19:48 | |
| benabik | whiteknight: Yeah. Busy summer ahead. | ||
| whiteknight | the extra GSOC money will come in handy with the myriad baby expenses, at least | ||
| benabik | It's not really "extra" so much as "required summer job". :-D | 19:49 | |
| whiteknight | :) | ||
| benabik | I need something that spans between my assistantships. | ||
| whiteknight | okay, it looks like we're the only three people at the meeting. Are there any questions before we wrap this up and pretend it never happened? | 19:55 | |
| nine | yep | ||
| benabik | four! | ||
| whiteknight | nine: you have the floor | ||
| benabik | (ah-ha-ha) | ||
| nine | I think, I'll need some whiteknight time this week | ||
| whiteknight | We'll talk to him, see what he can do | 19:56 | |
| what do you need? | |||
| nine | Proxied calls can cause garbage collection which would be catastrophic if run from the wrong thread. Also the data owning thread might just be running GC as well... | 19:57 | |
| My only idea to maybe solve this is adding a lock to the GC but it's hard to say if that would be enough and it might be negative for single threaded performance. Maybe you got some of your great ideas handy. | 19:58 | ||
| whiteknight | GC only runs on the main thread? | 20:00 | |
| nine | Every interp (and thus thread) runs its own GC. Also I'm still not 100 % decided if I should run proxied PMC methods with the caller's interp or the proxied one. Everything is simple with an Integer PMC, but starts to get quite complicated with things like Sub. | 20:02 | |
| Just to be clear: I very much appreciate anyone's input on this. Just asking whiteknight specifically, because my work is based on his ideas. | 20:03 | ||
| whiteknight | I suggest running the method on the calling thread. The invocant is already proxied there so all accesses should be safe | 20:04 | |
| find_method on the proxy is going to have to return a clone of the Sub, since Sub is stateful | |||
| it shouldn't be, but it currently is | |||
| nine | It would certainly make the whole GC problem simpler. But it makes the question more complicated if a method should return a PMC as is, or a new Proxy to the PMC. | 20:05 | |
| whiteknight | return PMC as is. If the PMC originally came from a different thread, it would be a proxy already | ||
| if the PMC was created on the current thread, return it directly | 20:06 | ||
| nine | No it wouldnt | ||
| whiteknight | wouldn't? | ||
| nine | If I have a proxy to a ResizablePMCArray and do a shift, it would simply forward the shift VTABLE call to the array and thus return an unproxied PMC belonging to the other thread | ||
| whiteknight | that proxies vtable call doesn't automatically proxy results? | 20:08 | |
| nine | It does right now because it runs the forwarded calls with the proxied PMC's interpreter. If I run them with the calling thread's interp, I could no longer be sure that all PMC results originate from the foreign interp. So I could no longer unconditionally create proxies for these results. | 20:10 | |
| Any PMC which would be created during the forwarded call would be created on the thread's interp. Which would be nicer for GC, nicer for performance but Proxy would somehow have to know that it can pass it on as is. | 20:11 | ||
| whiteknight | all this gets much easier if the PMC structure contains a "parent interp" pointer for easy identification | 20:13 | |
| if (interp == pmc->parent_interp) all is good, etc | 20:14 | ||
| nine | Which it even does on my threads_playground branch, because I use it to track down PMCs leaking to interps where they don't belong. | 20:15 | |
| whiteknight | make that a permanent part of the design for now | ||
| Add a macro PMC_IS_OWNED_BY(p, interp), so we can try to optimize it later | 20:16 | ||
| then in GC we can explicitly ignore all PMCs that don't belong. In the proxy we can auto-proxy results that are from a different interp, etc. A lot of logic becomes easier | 20:19 | ||
| nine | I'm a bit worried about the cost, but don't have any numbers. | ||
| whiteknight | I'm sure it will have a negative impact, but we save on a lot of costly logic elsewhere | 20:20 | |
| If we wrap it up in a #ifdef PARROT_HAS_NINES_THREADS block, we can cut it out completely for single-threaded builds | 20:21 | ||
| and if we can clean out enough space, we might be able to store an interp_id in the PMC->flags field. Of course, that limits the number of interps we can have | |||
| We've got space there for at least 8 bits worth, if we have fewer than 256 interps | 20:23 | ||
| if we're on a machine with more than that many processor cores, maybe the extra pointer overhead is a non-issue | |||
| being able to do a this_interp == that_interp pointer comparison will be very fast compared to other kinds of lookups | 20:25 | ||
| nine | Yep, the comparison doesn't worry me since it's only done during GC runs and in Proxy. Both situations where we don't really hurt a single threaded program. It's just adding 8 bytes to every single PMC that sounds expensive. | 20:26 | |
| whiteknight | the extra piece of mind in avoiding GC "catastrophy" may be worth the cost | 20:27 | |
| and considering the whole lockless system was designed to be safer, that makes good sense | 20:28 | ||
| okay, I have to pack up and go home now. I'll be online later tonight to continue chatting | 20:29 | ||
| Util | Any other business? | 20:35 | |
| Adjourned. Thanks, everyone! | 20:37 | ||
|
21:32
dukeleto joined
|
|||
| dukeleto waves | 21:32 | ||
| did i miss it? | 21:33 | ||
| benabik | dukeleto: Very yes | 21:35 | |
| By 2 hours or so | |||
| dukeleto | lulz | 21:46 | |
| ETOOLATE | 21:50 | ||
|
22:35
whiteknight joined
|
|||