01:05
pochi joined
02:38
vendethiel joined
03:36
cognominal joined
06:45
domidumont joined
06:49
domidumont joined
07:26
domidumont joined
07:31
FROGGS joined
07:39
domidumont1 joined
07:59
domidumont joined
08:04
domidumont joined
08:39
zakharyas joined
09:06
mojca joined
|
|||
dalek | arVM/heap-profiler: 60db2be | jnthn++ | / (5 files): Sketch in heap profiler data structures. |
10:25 | |
arVM/heap-profiler: b7b62cb | jnthn++ | src/ (5 files): Refactor to prepare for multiple profilers. We don't need to mark tc->cur_frame twice. Was harmless, and not a big waste 'cus its mark generation would have already been set to the current collection. But still, a waste of a few lines of code. |
|||
jnthn | (force-pushed rebase) | ||
10:26
dalek joined
|
|||
nwc10 | OMG you killed dalek | 10:26 | |
jnthn | I'm a b... :P | ||
Let's see if I can get his heap snapshot thingy to actually spew out some data | 10:27 | ||
nwc10 | I'm sure that part is easy | 10:31 | |
but can you make it spew out *useful* data | |||
jnthn | Easy in the sense of "as hard as implementing a GC mark" :) | 10:33 | |
Though in reality easier 'cus it doesn't need doing in parallel :) | 10:34 | ||
yay, my meat delivery just came \o/ | 10:42 | ||
10:42
domidumont1 joined
10:43
zakharyas joined
10:49
domidumont joined
|
|||
arVM/heap-profiler: d15aee7 | jnthn++ | src/gc/ (2 files): Move thread object mark into thread root mark. No reason for it to specially be mentioned in collect.c. |
|||
arVM/heap-profiler: f9b85f2 | jnthn++ | src/profiler/heapsnapshot.h: Add one more kind of root source. |
11:02 | ||
arVM/heap-profiler: f647934 | jnthn++ | src/profiler/heapsnapshot.c: Todo list of root sources for heap snapshot. |
|||
arVM/heap-profiler: b6f03ff | jnthn++ | src/profiler/heapsnapshot.h: A few heap snapshot data structure clean-ups. Size tweaking, name tweaking. |
12:38 | ||
arVM/heap-profiler: 3d5f4dc | jnthn++ | src/profiler/heapsnapshot.c: Sketch in snapshot worklist processing. |
|||
12:40
FROGGS joined
13:35
domidumont joined
|
|||
dalek | arVM/heap-profiler: 46f2f2b | jnthn++ | src/profiler/heapsnapshot. (2 files): Start recording names of root relations. |
15:15 | |
arVM/heap-profiler: f32209d | jnthn++ | src/profiler/heapsnapshot.c: Set collectable kind field. |
|||
arVM/heap-profiler: 34e6672 | jnthn++ | src/profiler/heapsnapshot.c: Clear up strings. |
|||
arVM/heap-profiler: 032a5e6 | jnthn++ | src/profiler/heapsnapshot.c: Turn collected data into MoarVM objects. Done once we've collected all snapshots, so it doesn't influence them. |
15:27 | ||
arVM/heap-profiler: cee52dd | jnthn++ | src/ (3 files): Refactor to expose heap snapshot state. We'll need it to be API. |
15:46 | ||
arVM/heap-profiler: 4f01eb1 | jnthn++ | src/ (5 files): Add permanent roots into the heap snapshot. |
15:58 | ||
arVM/heap-profiler: 279e57c | jnthn++ | src/profiler/heapsnapshot.c: Fix thinko in "should we free this" string flags. |
16:16 | ||
arVM/heap-profiler: 8a509f1 | jnthn++ | src/profiler/heapsnapshot.c: Cheating handling of objects, STables, frames. Doesn't actually walk their references yet. |
|||
arVM/heap-profiler: 1327f65 | jnthn++ | src/ (4 files): Add instance roots to heap snapshot. |
16:31 | ||
arVM/heap-profiler: 5486585 | jnthn++ | src/profiler/heapsnapshot.c: Make heap snapshots aware of multiple threads. |
16:46 | ||
arVM/heap-profiler: 71f28f1 | jnthn++ | src/ (5 files): Add temporary C stack roots to heap snapshot. |
16:57 | ||
diakopter | jnthn: will it ever try to clean up the C strings alloc'd by the various printf formats in the low level exception error messages? | ||
jnthn | diakopter: We already do in many (most?) cases, I think | 16:59 | |
grep for "waste" | |||
diakopter | ohhh | 17:03 | |
dalek | arVM/heap-profiler: 6065388 | jnthn++ | src/ (4 files): Add thread context roots to heap snapshot. |
17:12 | |
arVM/heap-profiler: 271b763 | jnthn++ | src/profiler/heapsnapshot.c: Add the current frame to the snapshot. |
|||
17:12
vendethiel joined
|
|||
jnthn | Well, that's us adding all of the roots into it. | 17:13 | |
Time for a break, me thinks :) | 17:14 | ||
17:45
zakharyas joined
18:35
Ven joined
18:51
Ven_ joined
19:04
Ven joined
19:23
FROGGS joined
19:31
patrickz joined
19:35
Azry joined
19:49
brrt joined
19:51
rubio_terra joined
|
|||
brrt | good * #moarvm | 19:55 | |
diakopter | hiii | ||
brrt | hi diakopter | 19:58 | |
jnthn | o/ brrt | 19:59 | |
brrt | good fix jnthn :-) | 20:01 | |
subtle, too | |||
Azry | Hi! I'm currently looking in p6 for a method to create a filehandle from a file descriptor. I can see that nqp oplist does the reverse, which corresponds to the "fileno_fh" line in the oplist. Is it planned to add such a method to p6/nqp in the future ? | 20:12 | |
jnthn | Azry: Not planned yet, but if there's demand for it, it should be possible to do. | 20:13 | |
lizmat | jnthn: if we could do that, could we get rid of special casing STDIN/STDOUT/STDERR ? | 20:16 | |
Azry | well, i'm trying to port io::pty to p6 and posix_openpt() gives me a file descriptor, so i would need it to create a proper IO::Handle. I don't know if that is a good enough reason | ||
jnthn | Azry: Sounds reasonable enough to me | 20:20 | |
Azry | cool =) | ||
jnthn | Azry: Not sure, without thinking about it some more | 20:21 | |
oops | 20:22 | ||
lizmat: ^^ | |||
lizmat | jnthn: yeah, just pointing out maybe another benefit :-) | ||
Azry | ah ok lol | ||
:( | |||
ah, uh now i feel dumb | 20:24 | ||
jnthn | Azry: Heh, no, I meant your request sounds reasonable enough, I was being unsure about lizmat's suggestion :) | ||
Azry | =) | ||
jnthn stops confusing folks and goes back to writing the heap profiler... | |||
20:24
Ven joined
|
|||
lizmat | .oO( that'd be confusing enough :-) |
20:24 | |
jnthn | It's a bit like writing a garbage collector that doesn't bother to collect :) | 20:26 | |
Azry | so, do i have to register an issue on github, or something ? | 20:29 | |
jnthn | Azry: I'd file it in the Perl 6 RT (that is, as a Perl 6 feature request) | 20:30 | |
That's where "full stack" things tend to go | 20:31 | ||
Azry | okay i'll to it, thank you =) | 20:32 | |
dalek | arVM/heap-profiler: a8caa75 | jnthn++ | src/profiler/heapsnapshot.c: Offer own/const/dup options for snapshot strings. We'll need all three of them. |
20:43 | |
arVM/heap-profiler: 5d64386 | jnthn++ | src/profiler/heapsnapshot.h: Simplify the types table. These will just be references into the strings heap. Keeps things a lot simpler. |
|||
arVM/heap-profiler: af15fbc | jnthn++ | src/profiler/heapsnapshot.c: Annotate MVMCollectables with type. |
20:54 | ||
arVM/heap-profiler: b93ca4f | jnthn++ | src/profiler/heapsnapshot.c: Add type table to output. |
|||
arVM/heap-profiler: 8c144c4 | jnthn++ | src/profiler/heapsnapshot.c: Add object's STables into the heap snapshot. |
21:00 | ||
arVM/heap-profiler: bd38593 | jnthn++ | src/profiler/heapsnapshot.c: Include SC reference into heap snapshot. |
21:16 | ||
21:31
mojca joined
|
|||
dalek | arVM/heap-profiler: 40a212c | jnthn++ | src/ (3 files): Add a seen hash for collectables/frames. So that we don't duplicate them in the snapshot, and can handle ciruclar data structures. |
21:43 | |
arVM/heap-profiler: 902d23f | jnthn++ | src/profiler/heapsnapshot.c: Fix copy-pasta. |
21:47 | ||
arVM/heap-profiler: faca3aa | jnthn++ | src/profiler/heapsnapshot. (2 files): Use gc_mark to walk heap objects. In the longer run, we'll add an optional REPR API to enable more detailed output (including attribute names, for example). |
21:49 | ||
jnthn | That last commit gets us really doing serious volumes of data collection :) | ||
We're missing walking STables and frames still | 21:55 | ||
But, enough for today :) | |||
Even with some stuff missing, 1.4MB of profile output for an empty NQP already. And over 100,000 inter-object references. | 22:00 | ||
And that's for a run with a single snapshot. :) | 22:01 | ||
'night | 22:04 | ||
lizmat | good night, jnthn | ||
timotimo | gnite jnthn | 22:07 | |
22:18
ilbot3 joined
|
|||
timotimo | i don't know how exactly jnthn is testing the heap profiler stuff | 23:25 | |
nqp doesn't yet have a branch for dumping that, i think | |||
i suppose he's just gdbing the data | 23:26 | ||
.o( we could totally be building nqp-gdb-m and nqp-valgrind-m launchers ) | 23:27 | ||
yay | 23:50 | ||
{"types":"", "strings":[], "snapshots":[]} | 23:51 | ||
23:56
geekosaur joined
|