github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
00:59 undersightable6 left, undersightable6 joined, benchable6 left, reportable6 left, coverable6 left, reportable6 joined, benchable6 joined 01:00 p6bannerbot sets mode: +v undersightable6, p6bannerbot sets mode: +v reportable6, p6bannerbot sets mode: +v benchable6 02:01 coverable6 joined 02:02 p6bannerbot sets mode: +v coverable6 02:15 AlexDani` joined 02:16 p6bannerbot sets mode: +v AlexDani` 02:19 AlexDaniel left 02:27 AlexDani` is now known as AlexDaniel 02:35 Kaiepi left, squashable6 left 02:36 Kaiepi joined 02:37 p6bannerbot sets mode: +v Kaiepi 02:40 btyler_ joined, AlexDani` joined, p6bannerbot sets mode: +v btyler_ 02:41 p6bannerbot sets mode: +v AlexDani` 02:42 masak_ joined 02:43 p6bannerbot sets mode: +v masak_ 02:44 samcv_ joined, p6bannerbot sets mode: +v samcv_ 02:45 dogbert11 joined 02:46 p6bannerbot sets mode: +v dogbert11, AlexDaniel left, reportable6 left, benchable6 left, undersightable6 left, bisectable6 left, evalable6 left, dogbert17 left, quotable6 left, committable6 left, masak left, samcv left, btyler left 02:49 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 02:54 timotimo joined, p6bannerbot sets mode: +v timotimo
MasterDuke timotimo: every once in a while i get distracted by trying to figure out why tools/build/install-core-dist.p6 takes so long. a profile just shows lots of ThreadScheduler stuff and a perf report doesn't seem particularly helpful 03:03
i assume it's all the pre-compiling it does. would nine++'s (planned i think) work on precompiling in-process or something like that help? 03:04
timotimo yeah, it's most probably running subprocesses
MasterDuke or is there any better way to figure out what's going on?
timotimo there'd have to be something that passes --profile flags to the subprocesses to really see what's going on at all
MasterDuke think that'd be easy to hack in temporarliy just to get some profiles of this? 03:06
timotimo i'd at least suggest trying that
i don't recall if putting a %d in the filename for the profile will cause it to put the PID in the filename there 03:07
that might be important so that it doesn't b0rk
MasterDuke ah, good call
03:11 evalable6 joined, p6bannerbot sets mode: +v evalable6 03:16 evalable6 left, evalable6 joined 03:17 p6bannerbot sets mode: +v evalable6 03:36 bisectable6 joined 03:37 p6bannerbot sets mode: +v bisectable6 03:39 benchable6 joined 03:40 squashable6 joined, p6bannerbot sets mode: +v benchable6, committable6 joined 03:41 p6bannerbot sets mode: +v squashable6, p6bannerbot sets mode: +v committable6 03:42 quotable6 joined, reportable6 joined 03:43 p6bannerbot sets mode: +v quotable6, p6bannerbot sets mode: +v reportable6 03:46 undersightable6 joined 03:47 p6bannerbot sets mode: +v undersightable6 03:56 lizmat left 05:39 robertle joined 05:40 p6bannerbot sets mode: +v robertle 06:30 domidumont joined 06:31 p6bannerbot sets mode: +v domidumont 06:39 domidumont left 07:02 domidumont joined 07:03 p6bannerbot sets mode: +v domidumont 08:08 samcv_ is now known as samcv 08:58 lizmat joined, p6bannerbot sets mode: +v lizmat 09:48 zakharyas joined 09:49 p6bannerbot sets mode: +v zakharyas 10:00 brrt joined 10:01 Kaiepi left, p6bannerbot sets mode: +v brrt, Kaiepi joined 10:02 p6bannerbot sets mode: +v Kaiepi 10:56 domidumont left 11:05 brrt left 11:47 brrt joined 11:48 p6bannerbot sets mode: +v brrt
brrt \o 11:51
nwc10 o/ 12:05
timotimo \o 12:10
brrt everybody's here again :-) 12:11
jnthn
.oO( I'm nobody :D )
12:15
brrt I knew you were lurking here
okay, I'm also still waiting for nine, lizmat, samcv, MasterDuke, etc. 12:16
lizmat delurks
12:56 domidumont joined, p6bannerbot sets mode: +v domidumont
brrt I should probably try and get something useful to do. 13:11
samcv hello 13:18
brrt ohai samcv 13:22
I've decided I like bitmaps
Especially for the problem of register allocation 13:24
jnthn I like bitmaps and I cannot lie...you other hacker's can't deny...that when a hash walks in with a wasteful malloc race and a cache miss in your face 13:27
brrt You'd get stalls 13:38
of course, there are dialects that have more registers than 8-byte bitmap can describe 13:39
but not so many
13:44 lucasb joined, p6bannerbot sets mode: +v lucasb 13:47 masak_ is now known as masak
brrt oh hey, my newly defined register scheme actually compiles... 13:57
nwc10 "ship it!" 13:58
brrt and segfaults
nwc10 (thank you for the pause that was just long enough)
brrt
.oO( If it compiles, it works! So way we all )
hmm, I have an idea of what's going wrong though 14:12
14:19 AlexDani` is now known as AlexDaniel
AlexDaniel releasable6: status 14:24
releasable6 AlexDaniel, Next release in ā‰ˆ2 days and ā‰ˆ4 hours. 5 blockers. 109 out of 230 commits logged (āš  41 warnings)
AlexDaniel, Details: gist.github.com/84c8f83acb9ee5888a...8850f4639c
14:46 lizmat left
Geth MoarVM/jit-2op-form: 349bea26b5 | (Bart Wiegmans)++ | 5 files
[JIT] Reorganize JIT register definitions

  - All registers are defined as integers
  - All sets of registers are bitmaps
  - Registers are either reserved, available, or spare
  - A register class is a distinct range of registers (and is
   implemented as a bitmap mask)
I removed the __COMMA__ hack because it wasn't such a terribly great idea anyway.
14:50
dogbert11 jnthn: are you on a blocker hunt? 14:57
jnthn I've just written up notes on one of them 14:58
github.com/rakudo/rakudo/issues/2564 I don't really know where to look next for it
Two of the others look platform specific 14:59
dogbert11 2564 is strange, trying to make it fail with asan enabled has so far proved fruitless :(
jnthn 2606 looks rather more possible to do something about 15:01
dogbert11 cool, any theories about what's going on there? 15:02
jnthn Not yet, but running it with massif
dogbert11 That will perhaps uncover what might be going on 15:04
jnthn Indeed, plugin gone wild 15:08
dogbert11 a wild plugin :)
jnthn I'm going to put in an upper limit for the size of the guard set, so bugs like this don't end up running so wild on memory 15:12
And then a mode to dump stack traces if it happens
dogbert11 so you know what happens but not (yet) why? 15:15
Geth MoarVM: 7fc6be1082 | (Jonathan Worthington)++ | src/spesh/plugin.c
Add a limit on spesh plugin guard set size

Above a certain size, it's both likely to be a spesh plugin bug, but also likely to not be an optimization at all, so better to just run the plugin each time. Add a mode (off by default) where we dump the stack trace of the location where we were trying to add way too many guards to the set, to help with tracking down such bugs.
15:23
jnthn Yeah. Well, this fix will at least get us to not nom epic amounts of memory 15:24
Too many plugin guards added; probable spesh plugin bug 15:25
at SETTING::src/core/control.pm6:62 (./CORE.setting.moarvm:take)
Curious
Especially as I can't see what in there would be using a plugin... 15:27
dogbert11 a mystery then 15:28
jnthn ah, decontrv
15:32 AlexDaniel` left 15:33 wictory[m] left 15:37 wictory[m] joined, p6bannerbot sets mode: +v wictory[m] 15:41 AlexDaniel` joined, p6bannerbot sets mode: +v AlexDaniel`
dogbert11 hmm, the valgrind option when building MoarVM seems to have bitrotted unless I'm doing something wrong :( 15:43
brrt decontrv, clearly 15:44
jnthn The plugin seems to be doing the right thing, though. It's just adding one type guard.
Ah...but we also get an inlining of a spesh plugin too..hmm 16:00
Yeah, it's something to do with that inlined one 16:06
D'oh, think I found it 16:18
brrt eagerly awaits the patch 16:23
16:24 domidumont left
Geth MoarVM: 58caebf4f2 | (Jonathan Worthington)++ | src/spesh/plugin.c
Use correct static frame in plugin resolution

When we inline a speshresolve that needs late-bound lookups, we include the static frame, meaning that we can then inline it. However, part of the spesh plugin handling code just read the static frame of the frame currently on the callstack, rather than using the one it was provided with. If the plugin got new guards, they were resolved in the provided static frame, but the new ones would be stored in the incorrect
  (currently executing) static frame. This would lead to repeated addition
of the same guard to the wrong place, since it would be missed every time.
16:28
MoarVM/pea: 35 commits pushed by (Jonathan Worthington)++, (Carl Masak)++
review: github.com/MoarVM/MoarVM/compare/6...a63376373b
16:37
jnthn Rebase time :)
Let's see what my next task in here is...
16:55 brrt left
Geth MoarVM/pea: db0c8a7c97 | (Jonathan Worthington)++ | src/spesh/deopt.c
Implement deopt materialization of native attrs

So that we can materialize scalar-replaced objects during deopt that have native attributes.
16:56
jnthn m: say 0.38 / 0.49 17:10
camelia 0.77551
jnthn Those numbers are about github.com/japhb/perl6-bench/blob/...mandelbrot 17:15
Best time with PEA / without PEA
dogbert11 impressive improvement 17:16
jnthn This isn't even especially *good* PEA :) 17:17
It's the simplest that could possibly do a few useful things
dogbert11 so it will get even better then
17:58 zakharyas left
Geth MoarVM/pea: 83a35e95b7 | (Jonathan Worthington)++ | src/spesh/deopt.c
Remove unused variable
18:17
18:19 domidumont joined 18:20 p6bannerbot sets mode: +v domidumont 18:21 brrt joined, p6bannerbot sets mode: +v brrt
nine jnthn: I got the compute_allocation_strategy segfault too and there I see the same bogus sc_forward_u that I posted on the ticket: {forwarder = 0xffffffff00000016, sc = {sc_idx = 22, idx = 4294967295}, st = 0xffffffff00000016} 18:39
yoleaux 16 Jan 2019 21:42Z <japhb> nine: Will Inline::Python support python3? Or will you EOL it next year?
nine .tell japhb if there's interest, I can certainly port. The changes are not that many 18:40
yoleaux nine: I'll pass your message to japhb.
nine jnthn: note however that that's the header of an STable. Does that make a difference?
jnthn nine: STables start with MVMCollectable also 19:09
So yes, that part is the same
nine So 2 very different back traces with segfaults on dereferencing a NULL REPR_data of a CStruct type where sc_forward_u is bogus with exactly the same value: 0xffffffff00000016 19:14
With a nursery of 8K and gc debugging 2 I get a reliable Collectable in fromspace accessed of a CArray with forwarder = 0xffffffff00000016 19:31
Well with that value in the CArray's st
19:32 domidumont left
nine Another oddity: the faulty object has both the MVM_CF_SECOND_GEN and the MVM_CF_REF_FROM_GEN2 flags set. Don't those flags contradict each other? 19:34
jnthn: you did an interesting GC related commit in CUnion. Doesn't the same apply to CStruct? github.com/MoarVM/MoarVM/commit/67...0cb2c38d77 19:42
japhb .tell nine Yes, there's interest from me at least. :-) 20:06
yoleaux 18:40Z <nine> japhb: if there's interest, I can certainly port. The changes are not that many
japhb: I'll pass your message to nine.
jnthn nine: ooh, maybe yes... 20:14
20:14 MasterDuke left
jnthn Though I thought I'd checked some of the others at the time...but it was a whlie ago 20:14
nine: I noticed that too, but no: it just means, I think, that the object was born in the nursery, was referenced by a GEN2 object, and then got promoted. Promotion doesn't clear the flag, but the flag is used solely to decide to do early promotion to gen2 20:15
nine I'd be highly surprised if the patch wasn't necessary as the CStruct code is virtually identical to the CUnion one 20:18
yoleaux 20:06Z <japhb> nine: Yes, there's interest from me at least. :-)
jnthn If that's all it needs, I'd be delighted :) 20:24
nine If only this bug was a little easier to reproduce 20:36
20:37 brrt left 20:44 lucasb left
nine With the patch I now sometimes get a weird segfault in return_o in this later test: throws-like 'class EmptyCStructTest is repr<CStruct> { };', Exception, message => { m/'no attributes'/ }; 20:51
23:14 lizmat joined, p6bannerbot sets mode: +v lizmat 23:53 Kaypie joined 23:54 p6bannerbot sets mode: +v Kaypie, Kaiepi left, Kaypie left 23:55 Kaiepi joined 23:56 p6bannerbot sets mode: +v Kaiepi