01:48
ilbot3 joined
|
|||
konobi | jnthn: there's an extremely efficient algo in zfs for doing that shared space stuff, since it's the main thing behind the dmu | 04:55 | |
07:32
domidumont joined
07:37
domidumont joined
07:53
lizmat joined
|
|||
konobi | also... github.com/lovasko/bc_thesis | 08:06 | |
08:31
Ven joined
|
|||
konobi | and... queue.acm.org/detail.cfm?id=2492433 | 10:16 | |
which leads to... concurrencykit.org/ | 10:52 | ||
11:07
diakopter joined
11:26
zakharyas joined
11:29
Ven joined
11:55
Util joined
12:01
brrt joined
|
|||
brrt | ehm, i'm looking for something, and i can't explain why this has never crashed before | 12:08 | |
timotimo | oh my :) | ||
brrt | github.com/MoarVM/MoarVM/blob/mast....dasc#L162 | 12:09 | |
this | |||
we cmp ref with 0x0 | |||
and then | |||
we proceed to dereference it anyway | |||
wtf | |||
this has been here for over 2 years | 12:11 | ||
lizmat | maybe we never reach that code ? | 12:13 | |
brrt | we reach it, it's just never zero | 12:15 | |
it's supposed to be the same as github.com/MoarVM/MoarVM/blob/mast...gc/wb.h#L8 | 12:16 | ||
but it's not shortcircuiting | |||
timotimo | maybe because we make sure to have VMNull everywhere? | ||
and never use nulled out objects registers unless we explicitly handle it in the code itself? | |||
brrt | probably | 12:19 | |
this value comes from getdynlex | |||
anyway, will investigate later | |||
timotimo | 'k | ||
brrt | (it's reframe-jit speciifc afaik) | ||
konobi | is there much use of COW semantics in GCs? | 12:38 | |
timotimo | in general, you mean? | 12:39 | |
konobi | yeah | 12:44 | |
timotimo | i bet there's some papers on that already. no clue about implementations "in the wild", though | ||
konobi | seems to me like an implementation similar to how the ZFS DMU does COW and it's GC would be very fitting for memory and GC in dynamic languages | 12:49 | |
huh... and i just thought of a cheap way of doing GC with COW semantics | 13:11 | ||
lizmat | konobi: PR's are accepted by jnthn on a regular basis :-) | 13:17 | |
timotimo | i'm not sure file systems have to deal with as much traffic from little files as a dynamic language's memory management would | 13:19 | |
but i'd gladly be corrected :) | |||
13:51
brrt joined
|
|||
brrt | fairly sure this is probably a case of a missing MVMROOT... :-( | 14:14 | |
or, write barrier check somewher | 14:15 | ||
timotimo | you haven't told us yet what exactly you're hunting | 14:16 | |
brrt | i'm getting a SEGV on running rakudo tools/build/install-core-dist.pl under reframe-jit | 14:20 | |
i'm also getting a 'cannot invoke this type' error on building CORE.setting | 14:21 | ||
i'm kind of hoping the former is easier to find than the latter | |||
timotimo | you should merge the newest moar commits that give you more info for the "cannot invoke this type" error | ||
14:55
dalek joined
|
|||
brrt | hmm, maybe, but i imagine jnthn will want to merge that too, and i try to base off reframe | 15:17 | |
timotimo | OK, but you can also just merge it temporarily locally-only :) | 15:27 | |
just to make your life easier for finding this problem out | |||
brrt | true.. | 15:32 | |
also possible that it is just a NULL pointer error | |||
timotimo | you mean a VMNull? | 15:34 | |
brrt | hmm, yeah, the think we're looking at is VMNull | 15:42 | |
so why | |||
theory; jit_entry_label is borked | 15:47 | ||
timotimo | it's not moving right? | 15:50 | |
brrt | well, it's a negative offset from the function entry | 16:29 | |
timotimo | that's weird, yeah | ||
gist.github.com/timo/5843f49fe287e...78743e6d0c - do you see this shit? %) | 16:31 | ||
brrt | what's bad about it? | 16:32 | |
timotimo | boxing an int, just to unbox it again in order to box it into an int again | 16:33 | |
brrt | ah, the last parts | 16:34 | |
how difficult would it be to eliminate that using spesh? | |||
timotimo | it's the lost parts, yeah | ||
this particular thing should be quite doable | |||
brrt | better theory | 16:35 | |
(you can look at decont, and see if it's source input is a boxing op?) | |||
we're in the wrong frame altogether | 16:36 | ||
we're not looking at the right frame | |||
how even | |||
timotimo | we have a "known box source" fact | ||
o_O | |||
this particular part of the whole thing isn't interesting for performance, though ... this is right before the return, it seems like | 16:37 | ||
brrt | we are somehow, jumping into this frame, with the wrong jit_entry_label set | ||
timotimo | boy am i glad p6bool doesn't allocate %) | 16:43 | |
i don't think we actually have an op that does the same as unboxing a bool that got boxed from an int | 16:44 | ||
we can't just use the int, because that may have any value :$ | |||
we'd have to +& 1 basically | |||
ah, so every instance of me using rand is followed up by a p6box_n usually followed shortly by a decont_n | 16:48 | ||
16:52
Ven joined
|
|||
dalek | arVM: 6559c2c | timotimo++ | tools/graph_spesh.p6: spesh graph: rescue a few missing writer-reader arrows by waiting until the end of the file to find if a given register's writer is anywhere to be found. |
17:09 | |
17:47
zakharyas joined
18:11
zakharyas joined
|
|||
dalek | arVM: b69f894 | timotimo++ | tools/graph_spesh.p6: fix extops not getting their args pointed at a GLR regression lying in hiding for a loooong time |
18:28 | |
18:31
dalek joined
19:25
zakharyas joined
|
|||
dalek | arVM: 4aa9c76 | timotimo++ | tools/graph_spesh.p6: spesh_graph: colored BBs |
20:26 | |
arVM: 818f485 | timotimo++ | tools/graph_spesh.p6: graph_spesh: a little "mini map" for dominance and CFG |
|||
timotimo | m) | 20:27 | |
the tool changes its name every commit | |||
masak | talk about agile development! | 20:29 | |
timotimo | excellent turn-around | 20:30 | |
i think i need a optipng version that uses multiple CPU cores ... | 20:32 | ||
6768x25391 pixels, 4x8 bits/pixel, RGB+alpha | |||
this might not actually be a very good candidate for getting optipngd | |||
t.h8.lv/fully_operational.png - look at all the pretty lights! | 20:57 | ||
lizmat | hmmm.. my browser only shows this too small or too large :-( | 20:59 | |
timotimo | yeah, you'll have to be panning around a lot | 21:00 | |
but at the top right there's a little "mini-map" :) | |||
i could just export it as SVG instead, which should work much better | |||
t.h8.lv/fully_operational.svg | 21:01 | ||
lizmat | scales better, but not really good yet :-( | 21:02 | |
timotimo | :\ | 21:03 | |
well, it is a huge crapton of content ... :\ | |||
i wish i could make things sensibly clickable there so that navigation becomes possible | 21:07 | ||
i put the "mini maps" on the top left now. reuploading ... | 21:08 | ||
dalek | arVM: 4b23cc7 | timotimo++ | tools/graph_spesh.p6: graph_spesh: expect debugnames sometimes like when we have a wval instruction. |
21:14 | |
arVM: c3e8bef | timotimo++ | tools/graph_spesh.p6: move mini maps to the left |
|||
arVM: 592cbb4 | timotimo++ | tools/graph_spesh.p6: graph spesh: vary saturation as well as hue |
22:32 |