brrt \o 08:41
timotimo o/
brrt ohai timotimo 08:49
brrt interestingly, the expr jit IR is an SSA form 10:46
brrt because each value's name is identical to the node which computes it 10:47
jnthn :) 10:49
brrt and, IF nodes are the only 'PHI's we know
timotimo .o( interactive fiction nodes ) 10:52
jnthn, how do you feel about adding an entry to the REPROps for a function that'd count up bytes of "extra storage" that an object owns? 10:54
thoughts about a heap explorer have been going through my mind 10:56
jnthn Like, if it malloc's something? Sounds reasonable, provided it's not transitive.
(That is, it's self size, not including other GC-ables)
timotimo aye, only on self 11:03
i was thinking it'd report data a bit "richly"
because for arrays it'd definitely be interesting to see slots used + slots allocated 11:04
jnthn Well, d'oh. Seems that whatever valgrind flags I used yesterday hid a lot of things. :) 20:36
oh, duh 20:37
I missed --full-cleanup to moar :)
Phew. :)
timotimo phew 21:04
so with libmicrohttpd i should be able to build something that serves data from the moar process to a browser, including the web app itself 21:28
does that sound sane?
[Coke] rather than do a static html file? assumes we can keep moar running when done, yes? 21:30
would be nice to not have to generate/serve the JS we're not using; I'd make it so you only load what you need to show the user, should make it more responsive.
dalek arVM: 7a1ff97 | jnthn++ | src/ (3 files):
First steps in cleaning up NFG state.
21:32
arVM: 541ce86 | jnthn++ | src/jit/compile.c:
Missing JIT memory cleanup.
timotimo [Coke]: it'd be fine to have a static html file for the UI, but the UI really, really wants to be interactive 21:35
rather than analyzing the whole heap and turning it into a gigantic json file
[Coke] timotimo: if the static html file is issuing ajax requests, then it's not static. ? 21:36
timotimo since we're already at like 60 megabytes up to 100 megabytes for the simplest files, it seems extremely unlikely that a static json file would be enough
well ... the html that we serve is static, it just doesn't behave static in the browser :D
[Coke] ... fair 21:37
anyway, sounds reasonable to me.
timotimo and yes, moar should continue running. i expect that the moar process would be "stopped" during every GC run when the heap has settled and then it'd allow introspection via the app and when the user hits the "continue" button it'd continue
if i do go with the fork approach, it could even take heap snapshots every time a gc run happens. or, i suppose, at any time whatsoever 21:38
without forcing moar to stop completely
(thanks to copy-on-write semantics via fork/clone)
dalek arVM: 3e127b1 | jnthn++ | src/moar.c:
Clean up integer constant mutex/cache.
21:40
arVM: fde6f2a | jnthn++ | src/moar.c:
Clean up int to string cache.
timotimo ugh. pulling in libmicrohttpd requires build system stuff >_> 21:50
dalek arVM: f9a9b96 | jnthn++ | src/6model/reprs/SCRef.c:
Free SC dependencies array.
21:55
arVM: c41ec69 | jnthn++ | src/moar.c:
Clean up list of all SCs.
arVM: dc856b6 | jnthn++ | src/6model/reprs/MVMCompUnit.c:
Free compunit SC handle indexes array.
22:06
arVM: 9ae6dd4 | jnthn++ | src/ (4 files):
Clean up decode stream separators on handles.
arVM: 172b501 | jnthn++ | src/core/interp.c:
Don't leak a replaced boolification spec.
22:11
jnthn Down to 1,069 bytes not cleaned up, of which 128 seem to be thanks to libuv 22:12
timotimo that's very good already 22:13
so we're responsible for less than 1kb
dalek arVM: 4671fae | jnthn++ | src/mast/compiler.c:
Fully clean up callsite re-use hash.
22:20
jnthn Yeah
Though that's only on ./nqp -e "say(1)"
timotimo OK, fair enough
jnthn (with --full-cleanup on)
timotimo rakudo will perhaps have something for extops, for example
jnthn Other than the libuv thing, there's basically only one source of leaks left 22:21
It's about standard handles
timotimo \o/
jnthn But we get into some trouble with cleaning those up
Will be able to fix it, but...not tonight :) 22:22
I plan to work my way through the NQP test suite hunting issues 22:23
01-literals.t already shows up one extra
timotimo pff, who needs to clean up literals 22:25
jnthn :) 22:26
Anyway, enough for tonight :)
o/
timotimo gnite jnthn!
actually ... why not build the heap explorer on top of electron! :P 22:29
lizmat gnight jnthn