github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
Geth MoarVM: kazcw++ created pull request #1116:
fix rakudo/rakudo#2965
00:49
synopsebot RAKUDO#2965 [open]: github.com/rakudo/rakudo/issues/2965 I can't HAS stub?
01:13 evalable6 left 01:16 evalable6 joined 03:36 Kaiepi left 03:38 Kaiepi joined 03:42 Kaiepi left, Kaiepi joined 03:47 Kaiepi left 03:51 Kaiepi joined 06:43 notable6 left, nativecallable6 left, coverable6 left, evalable6 left, benchable6 left, undersightable6 left, unicodable6 left, quotable6 left, reportable6 left, releasable6 left, squashable6 left, greppable6 left, bisectable6 left, bloatable6 left, statisfiable6 left, committable6 left, shareable6 left 06:44 releasable6 joined, nativecallable6 joined, quotable6 joined, statisfiable6 joined 06:45 shareable6 joined, greppable6 joined, coverable6 joined, squashable6 joined 06:46 undersightable6 joined, reportable6 joined, bloatable6 joined 06:47 committable6 joined, notable6 joined, unicodable6 joined, benchable6 joined, evalable6 joined 06:48 bisectable6 joined 07:19 robertle joined 07:39 domidumont joined 08:59 sena_kun joined 09:08 brrt joined 09:31 brrt left 12:18 brrt joined 12:47 brrt left 13:28 lucasb joined 13:35 pamplemousse joined 13:54 pamplemousse left 14:04 domidumont left 14:27 brrt joined
brrt ]\o 14:36
jnthn o/ brrt 14:39
brrt ohai jnthn 14:40
I didn't get to bugfixing yet
can't even compile moar 14:42
jnthn Oh? 14:45
timotimo try reinstalling the OS 14:51
Guest12727 o/ 15:14
brrt: is moar causing you trouble? 15:15
jnthn, brrt: I've tried to debug the expr jit problem (in an amateurish way) 15:22
all roads seems to lead towards this template: github.com/MoarVM/MoarVM/blob/mast....expr#L746
15:54 brrt left 16:09 domidumont joined
Geth MoarVM: kazcw++ created pull request #1117:
fix warning in Configure in non-relocatable builds
16:18
17:07 brrt joined
Guest12727 o/ brrt 17:08
Geth MoarVM: Kaiepi++ created pull request #1118:
Fix miscellaneous compiler flag passing on OpenBSD
17:17
Kaiepi reaaalllly should've checked the makefile when i made the original commit to see if anything was wrong 17:18
17:18 lucasb left
brrt \o Guest12727 17:19
interesting
I meant to say, I can't compile rakudo, not moar
moar compiles just fine
Kaiepi it's the moar runner right?
do you have NQP_HOME/PERL6_HOME configured? if so, that's probably why 17:20
i have a pullreq up to fix that since i ran into that a few days ago
Guest12727 brrt: I tried 'bisecting' by removing templates
Kaiepi oh my bad i didn't read up
Guest12727 removing the linked template makes hte spectest pass on jnthn's branches 17:21
jnthn brrt: If you're trying to compile my p6o-setup MoarVM branch: you need the Rakudo branch of the same name, otherwise it won't build
Guest12727 dogbert17 in disguise
jnthn If you do have that, I've no idea, in that I've built that combo on multiple machines :) 17:22
dinner, bbl
timotimo i imagine making the exprjit disengage whenever it sees a "create" can prevent many other ops from being considered 17:28
Guest12727 I guess that's a possibility 17:34
17:47 brrt left 18:33 brrt joined 18:54 domidumont left
brrt ok, now I have rakudo working 21:01
in the p6o-setup branch
lets see if i can reproduce failures
dogbert17 yay 21:02
you should also double check that you have the following commit methinks: github.com/rakudo/rakudo/commit/bd...c78dcfc645 21:03
brrt ehm, is that in p6o-setup? 21:06
dogbert17 I don't think so 21:08
21:09 sena_kun left
ugexe github has still not answered my plea to open sponsorship up to jnthn :/ 21:12
reini urban got in already though 21:13
brrt t/spec/S03-sequence/basic.t is one that appears to fail 21:15
what kind of sponsorship, ugexe?
ugexe the max amount (at least for reini) was a whopping $6/month though, so not gonna bring in any real money without sheer numbers
its just a thing github added to let people give you money 21:16
github.com/rurban/ see this profile
click "Sponsor" to see the options
dogbert17 brrt: yes, that's one 21:17
brrt ok, awesome 21:18
dogbert17: anything I can do to make that more repeatable... 21:31
as i, not solely crashing in rakudo spectest
dogbert17 I can't get it to crash every time but making the nursery smaller definitely helps 21:38
brrt let's try that
dogbert17 I set it to (16384 * 2), don't know what numbers jnthn used though 21:39
brrt yep, that does the trick 21:41
dogbert17 one interesting, at least to me, thing is that if moarvm is built with --no-optimize the fail is a broken assertion otherwise it's a SEGV
i.e. moar: src/6model/sc.c:401: MVM_SC_WB_OBJ: Assertion `!(obj->header.flags & MVM_CF_FORWARDER_VALID)' failed. 21:42
brrt yep 21:47
as it should be
dogbert17 interesting, I thought it was controlled by the debug option --debug 21:53
brrt I think with optimize, some of those things may be eliminated 21:57
idk actually
hm, the output of jit-bisect looks fairly innocuous 21:58
dogbert17 oops, I guess that's not what you were hoping for? 22:02
brrt appears to depend on inlining 22:03
no
I want somethin that looks guilty :-P
dogbert17 :) 22:04
22:25 Kaiepi left 22:30 Kaiepi joined
jnthn Ah, I shoulda mentioned that small nursery helping tease it out, yes 22:34
Alas, setting GC_DEBUG doesn't help give a better clue
And yes, the bissect output confused me too 22:35
brrt yes, the bisect is useless 22:36
now.. I get a block that points to sp_fastcreate, but no indication that the expr JIT ran on that block 22:40
jnthn I thought hash rand mgiht be to blame, but then forced (in moar.c) the random values to be 0 and still got a confusing result 22:41
brrt fastcreate theory can be eliminated; 22:43
oh, and appears to be inline sensitive?
at least in this case
dogbert17 and the create template? 22:44
brrt yeah, that fixes it 22:45
Kaiepi openbsd has malloc_conceal and calloc_conceal functions, which call mmap with MAP_CONCEAL and epxlicitly discard the memory allocated on free
is there anywhere this would be useful?
dogbert17 but it doesn't give any clues I guess
brrt well, it kind of does... 22:46
dogbert17 that sounds promising
Kaiepi mainly malloc_conceal and calloc_conceal would be used for memory that should be hidden from coredumps 22:48
brrt intersting 22:49
ok, I have one theory on why 'create' could fail with a small nursery
- template allocates a value 22:50
..., hang on. 22:51
dogbert17 oh, the suspense ... 22:52
timotimo is shivering in antici... 22:54
brrt Or maybe the rain... 22:55
anyway
in the create template, we first allocate an object, then initialize, then assign to memory 22:56
intialize is a function call.
it will cause the $obj value to be spilled to memory
Normally, when we spill a value, we mark it as an object for the garbage collector
However, because '$obj' isn't associated with a register (and the template is 'destructive'), we never assign a type to it, so we don't mark its temporary storage space as object space 22:58
so the GC will not visit it, nor update the pointer
the fix is, if correct, simple
we simply change the order of the 'store' and the call to initialize 23:00
as an added bonus, we no longer have to spill and preserve '$obj'
yep, that seems to work....
jnthn Ah, that fits very well, because slow-path `create` is now more likely to allocate on initialize (however, other things also could before) 23:01
brrt jnthn: can I push a fix to the p6o-setup branch? 23:02
maybe better to master...
timotimo huh. has this always been a problem? 23:04
brrt yes 23:05
jnthn brrt: I don't mind, but it's maybe better to master, in that not sure when to merge my branch
I've some upcoming trip, and don't want to be on the hook to fix a release blocker bug :)
Geth MoarVM: kazcw++ created pull request #1119:
enforce wb in get_attribute of C reprs
23:09
MoarVM: b55658b99f | (Bart Wiegmans)++ | src/jit/core_templates.expr
[JIT] Template for 'create' should store first then initialize

If we call 'initialize' before storing '$obj' to memory, the '$obj' is treated as an (anonymous) temporary value, and its location when spilled to memory is not marked as an object. If GC is then activated betwen the 'allocate' and the 'initialize' calls, the (spilled) value of $obj will be pointing to the old ... (8 more lines)
brrt and so I remove the cause... (but not the symptom?)
timotimo gasp
y'all see that PR?
brrt did 23:12
I'm inclined to believe it
timotimo i can't believe somebody found out how to fix the gumbo thing 23:14
that is so good
i don't think i saw kazcw before a week or two ago and there's been a few good-looking PRs already 23:15
brrt what's the gumbo thing? 23:27
brrt sleep & 23:29
23:29 brrt left
timotimo gumbo is an xml parser library in C and skarsnik has had an open ticket for like three years that it sometimes crashes 23:32
23:38 travis-ci joined
travis-ci MoarVM build passed. Bart Wiegmans '[JIT] Template for 'create' should store first then initialize 23:38
travis-ci.org/MoarVM/MoarVM/builds/543259464 github.com/MoarVM/MoarVM/compare/e...5658b99f71
23:38 travis-ci left