github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:29 reportable6 joined 01:31 MasterDuke left
mtj hi folks.. 02:19
timotimo, i just noticed the disabled appveyor build for moarvm, seems to be succeeding now :) 02:20
ci.appveyor.com/project/timo/moarvm-5bpx6
'Failed a year ago in 4 min 39 sec'
...if you force a build now, it should succeed 02:21
03:20 Kaypie left 03:22 Kaiepi joined
mtj github.com/KohaAloha/MoarVM 03:26
^.. thats an example of a passing build
04:48 Kaiepi left 05:23 squashable6 left 05:28 squashable6 joined 06:12 sena_kun joined 06:18 domidumont joined 07:04 robertle_ joined 07:23 anatofuz joined 07:50 zakharyas joined 09:37 domidumont left
jnthn people.eecs.berkeley.edu/~rohanpad...vmil19.pdf 10:06
lizmat is that interesting for the MoarVM case? raiph seemed to say it wasn't in the end ? 10:15
jnthn Oh, I didn't know it'd been discussed anywhere already :) 10:16
lizmat www.reddit.com/r/perl6/comments/d1...ing_paper/
I didn't mention it in the P6W because raiph in the end felt it was just noise
(from him)
jnthn I didn't read it carefully enough yet, *but* I think the `given $foo { when T1 { } when T2 { } ... }` style things could benefit from it. 10:18
otoh, those have a buttload of overhead besides the type check right now...
lizmat but shouldn't have that overhead in light of future opts, no ? 10:19
jnthn Correct, which'd presumably make the `istype` the bottleneck 10:22
10:59 robertle_ left 11:01 robertle_ joined
Guest15407 jnthn: could this be something something? programming-journal.org/2020/4/1/ Reference Capabilities for Safe Parallel Array Programming 11:18
only one 'something' is enough :)
11:21 domidumont joined 11:24 sena_kun left 11:41 zakharyas left 12:16 domidumont left 12:35 anatofuz left 12:55 lucasb joined 13:08 anatofuz joined 13:11 domidumont joined 13:26 zakharyas joined
timotimo if the heapsnapshot pass were to take place before stuff from the marking phase gets cleaned, we'd have essentially a bit of extra space in every object that would let us store the object's collectable index right there, while we follow the forwarder to call the gc_mark or explain_refs functions 13:30
13:31 anatofuz left
timotimo that should let us completely get rid of "saw" and "seen" 13:32
but maybe first i'll check what a cache for object address to type/collectable index would do 13:33
Guest15407 timotimo: do you think it's time to upgrade to libuv 1.32? 13:34
timotimo i didn't check the changelog, but it's probably a good idea in any case 13:37
Guest15407 Do you think we can do what we did before, i.e. check out the new version and then 'git add' the libuv dir? 13:39
timotimo probably 13:40
Guest15407 If so I can whip up a PR unless someone beats me to it :)
13:48 lizmat left
timotimo a simple cache simulation says with an 8 slot cache for STABLEs (address to index) there'd be a 92% hit rate in my case here 13:51
not sure why, but for type objects it's only 80% 13:52
for objects the hit rate is just 41% :( 13:55
14:00 Kaiepi joined
jnthn timotimo: Hmm...I wonder if that'd give us a difference in the inter-gen set... 14:03
timotimo: As in, it'd tell us what's in in pre-cleanup?
timotimo we'd still be doing a proper mark pass though, wouldn't we? 14:05
oh, though all the roots and such will also already have been updated at a much earlier point
how much faster do you reckon will a cache with 64 slots and simple rotating insert position be compared to looking through the "seen" hash? 14:07
jnthn Dunno. Is this thing bloomable? 14:08
Maybe seen hash already does that though
timotimo i don't think uthash has something like a bloom filter 14:09
and even if the bloom filter says "it's not there", the value still has to be put into the hash in the right spot 14:16
gist.github.com/timo/c94bd42f15e29...66134cf914 - here's the hit rates for caches of different sizes for the different kinds of collectables that the heap snapshot profiler has 14:23
i wonder what happens if the objects are further divided by whether they're in the nursery or in gen2 14:26
huh, there's only about 500 lookups for gen2 objects in here anyway 14:30
14:32 sena_kun joined
Guest15407 nine: interested in a distraction? 14:40
timotimo for completeness sake, i'll run a cache simulation with one cache for everything 14:48
ooooh, the heap snapshot profiler could actually write out the heap snapshot in a separate worker thread and continue running the user program at the same time 15:09
though depending on how it's managed, it'll either still cause pauses or potentially infinitely grow in memory usage
i.e. either it'll have a cap on how many heap snapshots are queued, then it'll pause the main program 15:10
or it'll just happily queue up more and more and more work on the worker thread
15:19 robertle_ left
nine Guest15407: you've got a good one? 15:21
timotimo seen is still at 10% in perf's report o_O
15:23 zakharyas left 15:25 zakharyas joined
timotimo oh, nice, writing out the heap snapshot is actually faster than taking the snapshot 15:26
so it wouldn't actually get backed up if this case generalizes
that also means that the time that the program is paused while taking a heap snapshot will not be less than half 15:27
15:28 anatofuz joined 15:38 domidumont left
timotimo what the heck, the performance of the caches is abysmal in actual use 15:56
dogbert17 nine: gist.github.com/dogbert17/f396ed9a...7f26227232 16:01
16:03 anatofuz left
dogbert17 nine: the file is t/04-nativecall/13-union.t and the nursery size 768 16:03
timotimo ha! now the cache is doing its job 16:09
16:12 lizmat joined
Geth MoarVM: dogbert17++ created pull request #1173:
Update libuv to version 1.32.0
16:13
dogbert17 tada
timotimo how in the heck does this program end up with not-string-objects in one CU's strings list >:( 16:20
robertle dogbert17: have you seen any weirdnesses with this, or perhaps with earlier versions of libuv? we are seeing problems in debian, where we use the OS-version, 1.31.1 currently. and that version seems to have problems when used teh way moar does, something around it's choice of statx calls and other variants, leading to it not correctly recognmizing whether a path exists or not... 16:21
tellable6 2019-09-09T15:09:07Z #perl6-dev <AlexDaniel> robertle please let me know if what we have with stage0 is ok for debian or not. I created this ticket github.com/perl6/problem-solving/issues/100
2019-09-09T15:09:14Z #perl6-dev <AlexDaniel> robertle Basically, the upstream guide talks about compiling for other architectures, but we don't have this problem. The only problem is purity of the build itself (“Reflections on Trusting Trust” stuff)
robertle haven'tt got more details yet, hope to do more digging later today
but would be interested if you have encountered anything
also spotted M#1172 in the process :) 16:22
synopsebot M#1172 [open]: github.com/MoarVM/MoarVM/issues/1172 possible uid/gid confusion
timotimo aaaand it's the core setting
i can't reproduce the bug with spesh being disabled 17:18
17:20 MasterDuke joined
nine dogbert17: as distractions go, this was only of mediocre value ;) 17:20
Geth MoarVM: d76ebbe49a | (Stefan Seifert)++ | src/6model/reprs/CUnion.c
Fix possible memory corruption in CUnion's get_attribute

An untimely GC run may move *root before we get to assign the newly created object into the child_objs slot. This could cause us to over write unrelated memory. Fix by MVMROOTing root.
nine Well actually it took exactly the time I had... off to get some exercise now 17:21
17:38 travis-ci joined
travis-ci MoarVM build errored. Stefan Seifert 'Fix possible memory corruption in CUnion's get_attribute 17:38
travis-ci.org/MoarVM/MoarVM/builds/583279347 github.com/MoarVM/MoarVM/compare/2...6ebbe49ada
17:38 travis-ci left 17:42 zakharyas left 17:58 anatofuz joined 18:32 anatofuz left
dogbert17 nine: damn, I thought that would be a tricky problem :) 18:45
Geth MoarVM: MasterDuke17++ created pull request #1174:
Silence some clang warnings
18:55
19:00 Kaypie joined, Kaiepi left 19:02 anatofuz joined 19:09 Kaypie is now known as Kaiepi 19:10 AlexDaniel left 19:11 AlexDaniel joined, AlexDaniel left, AlexDaniel joined 19:16 anatofuz left 19:30 Ven`` joined
dogbert17 heh, a SEGV 19:37
timotimo: what do you make of this? gist.github.com/dogbert17/bd5a41e0...d8a1536915 19:41
19:41 AlexDaniel left, AlexDaniel joined, AlexDaniel left, AlexDaniel joined
timotimo that's nully 19:43
dogbert17 yeah 19:44
timotimo i'd say rr it %)
dogbert17 32k nursery this time so not too small
hahaha
timotimo rrawr
"RR And Wait for Results" 19:45
MasterDuke any reason not to merge github.com/MoarVM/MoarVM/pull/1174 ?
dogbert17 you know anyone with an Intel CPU :)
timotimo another bug has been kicking my ass today 19:53
dogbert17 another SEGV? 19:54
timotimo more than just one
dogbert17 oops 19:55
timotimo well, it could be just one, but i see distinct symptoms
dogbert17 and the SEGV itself don't give you any ideas?
timotimo one is that a decidedly not-a-string object gets into the strings list of a compunit 19:56
dogbert17 corruption
have you tried the GC debug flag? 19:57
MasterDuke timotimo: that seems like a perfect rr use case, right?
19:57 lizmat left
timotimo yup 19:57
the object itself, the string, ends up on the gen2 freelist
that's not easy to figure out with rr because watchpoints require a lot of manual shuffling around of addresses to figure out when that happens, but it's usually just "when gc has finished" 19:58
dogbert17 now here's a cool error message which I have nevere seen before 19:59
moar: tpp.c:87: __pthread_tpp_change_priority: Assertion `previous_prio == -1 || (previous_prio >= fifo_min_prio && previous_prio <= fifo_max_prio)' failed.
19:59 lizmat joined, lizmat left
dogbert17 timotimo: can you backtrack your latest changes? 20:05
timotimo "backtrack"?
dogbert17 go back in the commit history I mean 20:06
timotimo oh, right
aha 20:15
* ee18678e9 - (HEAD) Update "Features" part of readme (10 days ago) <Timo Paulssen> 20:16
crashes here already
dogbert17 sounds like progress 20:19
timotimo it's the same problem, too.
string number 15 in this CU is actually a MAST::Lexical
i'm tired of this bug for now
dogbert17 it can probably rest for a bit 20:20
timotimo do you have an interesting workload that changes how it uses memory over time so i can get actually interesting graphs out of the heap snapshot analyzer?
dogbert17 hmm
timotimo all the ones i have are basically flat
nwc10 timotimo: *this* time my beer fridge was obstructed by a shopping bag of shower gel or similar, which is meant to get onto the shelves near it. I hope your beer fridge (or equivalent) is in better shape
timotimo cdn.discordapp.com/attachments/614...nknown.png 20:21
dogbert17 not as exciting as it could be :)
timotimo: perhaps this one - github.com/rakudo/rakudo/issues/3114 20:23
timotimo how many gc runs does that do ... 20:28
how often does it say "evaluating"? 20:29
like on average?
20:29 sena_kun left
dogbert17 it's a bit random, I have seen evaluating go as low as two and up to 30-40 20:30
timotimo 32022969 484M -rw-r--r--. 1 timo timo 484M Sep 10 22:30 /tmp/shmup.mvmheap
not terribly exciting 20:31
dogbert17 oh no 20:32
timotimo 187 snaps
cdn.discordapp.com/attachments/614...nknown.png 20:40
don't want to know how often the gc runs during core setting compilation :) :) 21:11
21:12 anatofuz joined
MasterDuke learn anything useful from it? 21:17
timotimo from what?
MasterDuke the graph. i assume you were taking heap snapshots during core compilation? 21:18
timotimo ah, no, that picture was from the rakudo ticket dogbert17 linked to 21:19
i'm just taking snapshots of core setting stage parse, i'm at 580 megs so far
MasterDuke how much does that slow it down? 21:23
timotimo quite a bit 21:24
it looks like immediately after a heap snapshot finished writing it starts taking the next one
cdn.discordapp.com/attachments/538...nknown.png 21:25
i ctrl-c'd the heap snapshot taking
amusingly i hit 198 snapshots without looking 21:26
MasterDuke that looks a little more interesting 21:27
timotimo i was wishing for something where bars go up *and* down ;)
i told my grant manager yesterday that i'd have something on my blog "today or more probably tomorrow" 21:31
that "tomorrow" is almost over and all i've been doing is hunt that disgust bug
MasterDuke doh
timotimo the only thing the heap snapshot profiler inside moarperf could do until a few days ago was give you a list of the snapshots in a file and letting you cause them to be parsed (by way of one button per snapshot) 21:33
before i did another little refactoring it now even showed parsing progress
MasterDuke nice 21:35
timotimo you can't get any data out of it yet except these graphs 21:36
they'll of course get labels, too
22:06 lizmat joined 22:08 Ven`` left
AlexDaniel MasterDuke: “some clang warnings” there are more? 22:22
MasterDuke AlexDaniel: yeah, i think all `warning: control may reach end of non-void function [-Wreturn-type]` 22:23
AlexDaniel MasterDuke: might as well fix these too? :) 22:25
MasterDuke those might be more complicated and might require more invasive changes. i think the existing PR is pretty much a no-brainer 22:27
Geth MoarVM: 8e7e121035 | (Daniel Green)++ | 5 files
Silence some clang warnings
22:28
MoarVM: 15a8725e33 | (Aleks-Daniel Jakimenko-Aleksejev)++ (committed using GitHub Web editor) | 5 files
Merge pull request #1174 from MasterDuke17/silence_some_clang_warnings

Silence some clang warnings
AlexDaniel well, I hope so, last time we did something like this I recall issues with %ld or something when using some compiler 22:29
was it windows something something? I don't remember :)
timotimo there's constants that give you "the right" thing
PRiu64 or something like that 22:30
it's used in many spots already
but it's so much more to type ;)
22:33 anatofuz left 23:05 lucasb left 23:08 anatofuz joined