Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-12-13

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

All times shown according to UTC.

Time Nick Message
00:14 dalek_p6c MoarVM: 4bf289a | hoelzro++ | src/io/fileops.c:
00:14 dalek_p6c MoarVM: Don't resolve symlinks by hand
00:14 dalek_p6c MoarVM:
00:14 dalek_p6c MoarVM: Let the operating system resolve them for us, because it knows best.
00:14 dalek_p6c MoarVM: review: https://github.com/MoarVM/MoarVM/commit/4bf289a2f9
00:14 dalek_p6c MoarVM: d3559f9 | hoelzro++ | src/io/fileops. (2 files):
00:14 dalek_p6c MoarVM: Remove MVM_file_stat_follow_symlink
00:14 dalek_p6c MoarVM:
00:14 dalek_p6c MoarVM: It's no longer used
00:14 dalek_p6c MoarVM: review: https://github.com/MoarVM/MoarVM/commit/d3559f9723
00:17 jnthn \o/
01:26 jimmy2 joined #moarvm
01:32 JimmyZ_ joined #moarvm
02:30 vendethiel joined #moarvm
02:52 JimmyZ_ joined #moarvm
03:19 JimmyZ_ joined #moarvm
03:41 JimmyZ_ joined #moarvm
03:47 vendethiel joined #moarvm
04:08 JimmyZ__ joined #moarvm
06:23 vendethiel joined #moarvm
06:54 vendethiel joined #moarvm
06:58 dalek joined #moarvm
08:04 rurban_ joined #moarvm
08:05 vendethiel joined #moarvm
08:38 dalek joined #moarvm
09:31 woolfy left #moarvm
10:05 dalek joined #moarvm
10:07 JimmyZ \o
10:08 JimmyZ jnthn: I have a pull request for rakudo/roast :)
12:23 terrencehan joined #moarvm
12:25 terrencehan left #moarvm
13:09 jnthn joined #moarvm
14:01 JimmyZ joined #moarvm
16:19 timotimo jnthn: should i invest some time and energy to trying to figure out what kinds of things end up with gen2 roots pointing to them?
16:20 timotimo especially for core setting compilation
16:20 jnthn timotimo: If you can just dump out the REPR names and counts of them that'd help us enough, I think.
16:21 timotimo it seems like that should boil down to iterating over the gen2 roots list in a tiny shred of C code
16:21 jnthn Right
16:21 jnthn And just dump the output and hack up a script to analyze it
16:21 * timotimo tries
16:21 jnthn My suspicion is it's going to be a lot of MVMCode
16:21 nwc10 I missed the backstory on this - I assume that there's an interesting reason for this, but I'm utterly failing to guessit
16:22 timotimo could be
16:22 jnthn nwc10: There's not really much backstory
16:22 nwc10 ah OK - so, what does finding this out let us improve?
16:22 timotimo oh, my time is being cut short
16:22 timotimo maybe i'll try later today
16:23 jnthn Well, it would confirm my hypothesis that the issue is that frames don't play in the generational model
16:23 jnthn And so if we end up with a gazillion closures alive, and those have to kept in the inter-gen list for now (which promises safety), we can end up with the inter-gen list getting huge.
16:23 jnthn Gotta go...bbiab
16:23 ChanServ joined #moarvm
16:25 timotimo not 100% sure how the frames fit into the gc story
16:41 timotimo jnthn: not really sure if i've done it right: https://gist.github.com/timo/f00e026fa5c59ddc9ee9
16:46 zakharyas joined #moarvm
17:56 rurban_ joined #moarvm
17:57 flussence joined #moarvm
17:58 flussence joined #moarvm
18:00 flussence left #moarvm
18:17 flussence joined #moarvm
19:10 FROGGS__ joined #moarvm
19:58 timotimo all i can say is: that seems like awfully little stuff
19:58 timotimo so it may be the frames rather than the items that cause stuff to balloon up
20:04 timotimo yeah, the number of frames in the gen2 worklist reaches 50k during core setting compilation
20:05 timotimo oh
20:05 timotimo now the number of things i salso much, much bigger
20:14 timotimo https://gist.github.com/timo/f00e026fa5c59ddc9ee9 - updated with probably correcter numbers
20:15 timotimo to be honest, i don't really know what SCRefREPR'd things ... are
20:29 colomon joined #moarvm
20:51 timotimo https://gist.github.com/timo/f00e026fa5c59ddc9ee9 - updated to have the frames: lines in it, too
21:01 jnthn What the heck, why SCRef 120608 times?!
21:03 jnthn Surely that can't be right. The inter-gen worklist is not meant to have dupes.
21:03 jnthn And we can't be creating that many SCs.
21:06 zakharyas joined #moarvm
21:10 timotimo mhh
21:11 jnthn I can't find any fault with your patch
21:11 jnthn oh...
21:12 jnthn But I did mis-understand what the data means.
21:14 jnthn OK, it kinda makes sense.
21:15 jnthn Because what's in the list is *pointers* that need updating.
21:37 dalek MoarVM: 5380cee | jnthn++ | src/gc/roots.c:
21:37 dalek MoarVM: Avoid some duplicate work in inter-gen roots.
21:37 dalek MoarVM:
21:37 dalek MoarVM: The intermediate worklist already filters gen2 things out, so we do
21:37 dalek MoarVM: not need to re-validate this. And the flag fiddling for the main
21:37 dalek MoarVM: worklist is bogus; we only put nursery things on it (this may be a
21:37 dalek MoarVM: leftover from an earlier design).
21:37 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/5380cee1e3
21:38 jnthn Doesn't yield much of note, but a worthwhile cleanup
21:44 jnthn timotimo: The thing is, MVM_gc_root_add_gen2s_to_worklist actually visits the gen2s and marks all of them
21:44 jnthn timotimo: So what we're learning here is that the intergenerational roots point to, rather than what they *are*.
21:45 jnthn timotimo: Which is interesting, though not the same.
21:57 timotimo ah
21:57 timotimo so really i'd want to instrument he write barrier to find ou twhat gets added to gen2 roots?
21:59 jnthn o
21:59 jnthn *no
22:00 jnthn Just need to loop over tc->instance->gen2roots
22:00 jnthn uh, sorry
22:00 jnthn tc->gen2roots
22:02 dalek MoarVM: ffac8fa | jnthn++ | src/gc/roots.c:
22:02 dalek MoarVM: Avoid some copying handling inter-gen roots.
22:02 dalek MoarVM:
22:02 dalek MoarVM: We used to handle this by putting the entries onto a temporary list,
22:02 dalek MoarVM: then copying them and counting if there were any. There's an easier
22:02 dalek MoarVM: way, though: just look at the worklist size before and after. Again,
22:02 dalek MoarVM: not much impact from this, but it avoids some work.
22:02 dalek MoarVM: review: https://github.com/MoarVM/MoarVM/commit/ffac8fa65f
22:02 jnthn Not to mention the code is simpler :)
22:50 timotimo yays
22:50 timotimo i can make that change work
22:57 timotimo this takes long
22:57 timotimo yup, here's the results
22:58 timotimo jnthn: https://gist.github.com/timo/6b21aad669233881509a
22:58 timotimo as you guessed
23:04 timotimo so, you're gonna fix it, right? :)
23:10 ChanServ joined #moarvm
23:20 timotimo because TBH i don't know what's causing this
23:20 timotimo MVMCode doesn't get moved into gen2 for some reason?
23:28 ChanServ joined #moarvm
23:32 jnthn timotimo: It does get moved into gen2, but since it references a frame, and frames aren't write-barriered at all, then to preserve the generational invariant we put it into the inter-gen set.
23:33 jnthn timotimo: So if we don't want to put it into there, we have to do something else to make sure we're upholding the invariant in question :)
23:36 ChanServ joined #moarvm
23:37 jnthn Anyway, so far as I can tell, the various things are working as designed. So it's the design that needs another approach. :)
23:59 tgt joined #moarvm

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