github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
Geth | MoarVM/postrelease-opts: cc3a17414b | (Jonathan Worthington)++ | src/jit/x64/emit.dasc Fix JIT of specialized bigint ops In the case where the result was going into the same register that an input argument came from, we stored the result prematurely, and then read a NULLed out bigint struct as one of the arguments. This only took place in the fallback path and when the earlier requirement was meant. Fixes various crashing spectests. |
00:01 | |
MoarVM/postrelease-opts: 40f8a8ba85 | (Jonathan Worthington)++ | src/6model/reprs/P6bigint.c Correct indentation |
|||
jnthn | Sadly, while that fixes spectests, it doesn't fix the CORE.setting SEGV. That'll have to wait for another day. | 00:04 | |
Also, it looks like it stands a good chance of having fixed all the unhappy spectests, which means I may really be left with using CORE.setting compilation as the problem example. | 00:05 | ||
'ngiht | |||
timotimo | gnite jnthn | 00:07 | |
the "promoted/cleared/retained bytes" graph looks very funny when the second gc run has 1000x as much in total as all other bars ... by which i mean there's just a single peak and nothing else :D | 00:28 | ||
m: say 4294966848.base(16) | 00:44 | ||
camelia | FFFFFE40 | ||
timotimo | huh, i wonder if this was actually a negative value | ||
chrome devtools be like "hey, i need all of your CPU for as long as i'm displaying nothing, K? | 00:46 | ||
maybe it was connected to how the log was shaking | |||
00:50
squashable6 joined,
p6bannerbot sets mode: +v squashable6
|
|||
timotimo | ho-hum, the reflog just saved me from losing the code that recorded the type information in the profiler | 00:54 | |
01:00
lizmat joined
01:01
p6bannerbot sets mode: +v lizmat
01:10
lizmat left
02:29
wictory[m] left,
AlexDaniel` left,
timotimo left
02:35
wictory[m] joined,
p6bannerbot sets mode: +v wictory[m]
02:37
timotimo joined,
p6bannerbot sets mode: +v timotimo
02:38
AlexDaniel` joined,
p6bannerbot sets mode: +v AlexDaniel`
04:20
ggoebel left
04:34
ggoebel joined
04:35
p6bannerbot sets mode: +v ggoebel
06:47
pmn joined
06:55
MasterDuke left
06:56
pmn left
07:07
fake_space_whale left
07:49
domidumont joined
07:50
p6bannerbot sets mode: +v domidumont
08:01
zakharyas joined
08:02
p6bannerbot sets mode: +v zakharyas
08:12
domidumont left
08:41
tktech7 joined
08:43
tktech7 left
08:44
lizmat joined
08:45
p6bannerbot sets mode: +v lizmat
09:01
lizmat left
09:08
lizmat joined
09:09
p6bannerbot sets mode: +v lizmat
|
|||
Geth | MoarVM: c43a9b97e1 | (Jeremy Studer)++ | .travis.yml Workaround version failure on Travis CI (MacOS) Travis doesn't fetch the full history (only 50 commits by default) and we use 'git fetch --unshallow' to retrieve the rest. This is necessary to retrieve the tags used in versioning MoarVM. That process does not appear to be working on MacOS currently. Explicitly fetch the full history in order to work around this defect. See [this thread](github.com/travis-ci/travis-ci/issues/4942) for more information. |
09:17 | |
MoarVM: 99ddb9d4a4 | (Jeremy Studer)++ | .travis.yml Remove unshallow as it causes error on full repo |
|||
MoarVM: e530be4d35 | (Jonathan Worthington)++ (committed using GitHub Web editor) | .travis.yml Merge pull request #945 from jstuder-gh/travis_tags_mac_os Workaround version failure on Travis CI (MacOS) |
|||
09:36
lizmat_ joined
09:37
p6bannerbot sets mode: +v lizmat_
09:39
lizmat left
|
|||
AlexDaniel | jnthn: fwiw you can click `Edit` on a PR and change `base:master` to another branch | 09:41 | |
this way you can merge it to, say, postrelease-opts | |||
09:47
stmuk joined
09:48
p6bannerbot sets mode: +v stmuk
|
|||
jnthn | AlexDaniel: I could, but I've already got a nasty bug to track down in that, and would rather not have another variable factor. | 09:49 | |
AlexDaniel | ok sure | ||
09:50
stmuk_ left
|
|||
jnthn | I plan to (once I've fixed the nasty remaining issue I know about) merge postrelease-opts soon after the release | 09:50 | |
If it's possible to get a toaster run of that, it'd be cool, since I'll have time next week to fix things up, but not much time at all for MoarVM/Rakudo things in the 2 weeks after. | 09:51 | ||
AlexDaniel | I see | ||
jnthn | Ideally there'll be no regressions from it, but...shiny new opts don't always work out that way. | 09:53 | |
AlexDaniel | hmmm but that just means that we should toast it before merging | 09:54 | |
jnthn: so, as far as I understand, to toast it we'd need a branch in nqp and rakudo with appropriate *_REVISION files | 09:55 | ||
and that's it | 09:56 | ||
10:10
domidumont joined
10:11
p6bannerbot sets mode: +v domidumont
|
|||
jnthn | That'd also be an option, yes | 10:14 | |
With the downside that we delay finding stuff that users following HEAD testing it might also find | 10:15 | ||
10:17
lizmat_ is now known as lizmat
|
|||
dogbert17 | are we still looking for the setting SEGV? | 10:21 | |
jnthn: I guess you already know but if not, the SEGV occurs here: github.com/MoarVM/MoarVM/blob/post...rp.c#L2062 | 10:24 | ||
jnthn | Yeah, and it's a null pointer exception. But that tells us approximately nothing about where the real problem is. | 10:25 | |
dogbert17 | so you need something short and sweet, 100% reproducible? | 10:26 | |
jnthn | I tried getting the same issue out of the spectests, but at least with MVM_SPESH_BLOCKING=1 all the things that broke seemed to be fixed by what I did last night | 10:28 | |
dogbert17 | I got two failures during spectest (t/spec/S06-other/anon-hashes-vs-blocks.t and t/spec/S12-methods/private.t) but trying to repro failed | 10:29 | |
I could see that no tests were run so they failed early | |||
jnthn: t/09-moar/00-misc.t seems like a good file to run, fails consistently for me | 10:45 | ||
jnthn | That's only because the branch misses a fix from master | 10:46 | |
dogbert17 | :( | 10:47 | |
damn | |||
lizmat | t/spec/MISC/misc-6.d.t flaps for me, but probably has nothing to do with this | 10:54 | |
test 3: native num defaults to 0e0 | |||
dogbert17 | jnthn: is it the 'Fix race in setting the type debug name' commit | ||
lizmat: I've had that 0e0 test flap several times | 10:55 | ||
jnthn | dogbert17: yes | 10:56 | |
dogbert17 | thx | ||
11:07
undersightable6 joined,
p6bannerbot sets mode: +v undersightable6
|
|||
dogbert17 | hmm, I cherry picked the fix from master and the error in t/09-moar/00-misc.t disappeared but now I get a consistent fail in t/spec/integration/weird-errors.t | 11:09 | |
perhaps that's not the correct way of doing things ... | 11:11 | ||
jnthn: take a glance at gist.github.com/dogbert17/4b2bc72a...505c44e7de time permitting | 11:18 | ||
11:23
zakharyas left
11:38
lizmat left
|
|||
jnthn | I probably *should* work on something else, but will debug this a bit. ) | 12:06 | |
Gonna rebase postrelease-opts on master | 12:08 | ||
dogbert17: Hm, also interesting | 12:14 | ||
Wonder if I can get ASAN to complain about that | |||
Good news is that I can reliably repro the CORE.setting optimize stage crash at the office too | 12:15 | ||
And my machine here is at least quite a bit faster than at home | |||
aha, it just did a deopt in optimize_p6typecheckrv and that's the frame we're in when we crash | 12:17 | ||
Deopt one requested by JIT in frame 'optimize_p6typecheckrv' (cuid '65') (4294967295 -> 42) | |||
m: say 4294967295.base(16) | 12:18 | ||
camelia | FFFFFFFF | ||
jnthn | Hmmmm. | ||
Only happens when running under the JIT too | 12:31 | ||
dogbert17 | jnthn: I updated gist.github.com/dogbert17/4b2bc72a...505c44e7de with ASAN output | 12:35 | |
jnthn | This makes little sense: | 12:36 | |
[Annotation: INS Deopt Inline (idx 25 -> pc 104; line 1521)] | |||
[Annotation: INS Deopt Inline (idx 22 -> pc 48; line 1521)] | |||
sp_guardtype r22(2), r22(1), sslot(7), litui32(42) | |||
dogbert17: Thanks, interesting. | 12:43 | ||
12:45
zakharyas joined,
p6bannerbot sets mode: +v zakharyas
|
|||
Geth | MoarVM/postrelease-opts: 53 commits pushed by (Jonathan Worthington)++, (Timo Paulssen)++, MasterDuke17++ review: github.com/MoarVM/MoarVM/compare/4...aa26882a40 |
13:00 | |
jnthn | that's the rebase | ||
Testing a fix for the CORE.setting SEGV | 13:01 | ||
Another of those bugs we had, but only just exposed | 13:02 | ||
dogbert17 | cool, so you might have found it | 13:03 | |
jnthn | Think so | ||
Doubt it fixes the other issue though | |||
dogbert17 | which is still present after the rebase | ||
jnthn | Yeah, make test should be clean though | 13:04 | |
It's good with my latest fix too | 13:05 | ||
make spectest now | |||
with spesh blocking on | |||
nwc10 | that was the one that I reported? | 13:06 | |
jnthn | nwc10: CORE.setting crash at stage optimize with null pointer deref? | ||
nwc10 | no, MVM_SPESH_NODELAY=1 IIRC caused a setting compilation abort with some sort of error diagnistic | 13:07 | |
IIRC | |||
jnthn | ah | ||
No, didn't try it what that | |||
nwc10 | or was it the other variable | ||
jnthn | OK, weird-errors.t is the only spectset fail I have left with spesh_blocking | 13:08 | |
dogbert17 | that's sounds like a good result | 13:09 | |
Geth | MoarVM/postrelease-opts: 58926538d8 | (Jonathan Worthington)++ | src/spesh/codegen.c Populate all deopt points with an offset Rather than just the first one of each kind that we encounter. With more aggressive optimizations, we could end up with multiple of them being shuffled onto the same instruction. |
13:10 | |
jnthn | And yeah, the weird-errors one is...weird :) | ||
It's a bugger overflow | |||
dogbert17 | :) | ||
jnthn | uhh | ||
*buffer | |||
In a bit of code that didn't change for ages, and that I can't see much to go wrong with... :S | 13:11 | ||
The way it typically blows up is at free of the thing we went over the end of | 13:12 | ||
But ASAN nicely catches it earlier | |||
dogbert17 | ASAN++ | 13:13 | |
MVM_SPESH_INLINE_DISABLE=1 makes it vanish | |||
jnthn | oh, hmm | ||
(gdb) p cand->handlers[0] | 13:39 | ||
$3 = {start_offset = 60, end_offset = 54, | 13:40 | ||
umm :) | |||
dogbert17 | that looks slightly wrong :) | 13:43 | |
jnthn tests a fix | 13:47 | ||
dogbert17 dashes out to buy some fikabrƶd | 13:49 | ||
jnthn | ooh yes, it's almost cookie o'clock... | 13:51 | |
Woo, clean spectest with MVM_SPESH_BLOCKING | 13:54 | ||
Geth | MoarVM/postrelease-opts: 24d98c64a5 | (Jonathan Worthington)++ | src/spesh/graph.c Consider handler with start > end unreachable |
||
MoarVM/postrelease-opts: e2fe88f9db | (Jonathan Worthington)++ | src/spesh/graph.c Harden against handler start/end on same ins We could potentially process the start after the end in this case, and so leave inconsistent data in the active handlers data array. |
|||
dogbert17 | jnthn++ | 13:56 | |
jnthn | NQP is happy with NODELAY too, both build and tests | ||
Waiting for Rakudo build with that now | 13:57 | ||
Currently doing CORE.setting | |||
yay, it builds CORE.setting fine too | 13:58 | ||
dogbert17 | hooray | ||
jnthn | Gets through the whole Rakudo build. Now for make test | ||
Ah, that's less good :/ | 13:59 | ||
dogbert17 | nooo | 14:00 | |
nwc10 | pavent pizza? | 14:03 | |
pavement | |||
jnthn | Lots of fails, but all looking to have one root cause | 14:04 | |
(Module loading gets broked) | |||
nwc10 | "insufficient cookies"? | ||
ilmari | ooh, that reminds me, office snacktime! | 14:05 | |
(yes, I have had lunch) | |||
nwc10 | and the london.pm social? | ||
ilmari++ | 14:06 | ||
ilmari | gah, I forgot, it's in the other building on thursdays | 14:13 | |
nwc10 | does this make it acceptable to nip out for a swift pint instead? | 14:14 | |
"no, not on a logged channel" | |||
14:15
brrt joined
14:16
p6bannerbot sets mode: +v brrt
|
|||
ilmari | I already had lunch... | 14:16 | |
brrt | \o | ||
nwc10 | o/ | ||
14:56
brrt left,
brrt joined
14:57
CoJaBo13 joined,
p6bannerbot sets mode: +v brrt
14:58
CoJaBo13 left
15:03
fake_space_whale joined
15:04
p6bannerbot sets mode: +v fake_space_whale
|
|||
jnthn | Grr, so I was like "oh wow, getdynlex would never work if inlined!" and "fixed" that...then discovered that it was marked :noinline | 15:21 | |
I didn't fix the problem I'm hunting, but it seems I accidentally implemented an optimization :P | 15:22 | ||
[Coke] | a pleasant oops. | 15:25 | |
jnthn | Hm, actually it won't work :) | 15:26 | |
I think it may genuinely be a fix though. | |||
But still not for my bug :P | |||
Ah, I think I found my one | 15:30 | ||
Inlining loadbytecode goes badly | 15:31 | ||
And I can see why too | 15:32 | ||
We don't recognize it as an invoke | 15:33 | ||
dogbert17 | I hope you didn't miss cookie time :) | 15:36 | |
jnthn | I didn't, but I ate all the cookies and now have none left for tomorrow | 15:37 | |
TimToady still thinks occasionally about the idea of storing an authoritative dynvar cache only in frames that add a dynvar, and just carrying a link to the nearest one | |||
brrt had another idea which I wanted to annoy you with | 15:38 | ||
see, from my understanding, dynamic variables in perl5 are implemented as globals, and when localized, the compiler inserts a swap-to-and-from | 15:39 | ||
or the interpreter executes them, I don't know and it doesn't matter | |||
TimToady | we abandoned that on purpose | ||
brrt | what was the purpose | ||
Geth | MoarVM/postrelease-opts: c20d5112f0 | (Jonathan Worthington)++ | src/jit/x64/emit.dasc Bring JIT of getlexreldyn in line with interp |
||
MoarVM/postrelease-opts: 8063990bc4 | (Jonathan Worthington)++ | 2 files Do not inline loadbytecode It makes various invocations, and we don't end up with the calling point properly tracked as a deopt point, in turn breaking things like dynamic variable resolutions very close to the point that did the loadbytecode. |
|||
TimToady | make them thread-safer, for one | ||
brrt | because that is a very efficient way to implement them | ||
TimToady | and avoid globals | ||
brrt | bind them to a threadcontext, and they're thread safe | 15:40 | |
(rather than to the global instance) | |||
timotimo | except when you resolve the dyn vars that were active when you "start"ed a piece of code | ||
and it runs on another thread :) | |||
jnthn | Who wants to write the fixup code when a continuation migrates thread? :) | ||
timotimo | moarvm will write it for us! | ||
jnthn | But also, whatever happens need to deal with inlining | ||
timotimo | so we just need someone to write the code that writes the fixup code | ||
jnthn | Because what happens if you inline a frame that declares dynamic variables? | 15:41 | |
Then some of the cache is only applicable for part of the frame | |||
brrt | the push-and-pop become part of the inlined code | ||
jnthn | Not saying it ain't possible, just that this all has to be thought about | 15:42 | |
TimToady | it's also just terribly fragile without strict RAII, which p5 has | ||
brrt | also, the fixup for continuations isn't so hard, I think? we swap the pointer to the table? | ||
thing is, we do have that, in terms of special-return | |||
jnthn | So with the above commits we're back to `make test` in Rakudo being happy under NODELAY :) | 15:43 | |
brrt | \o/ | ||
TimToady | anyway, we have "temp" if you want it, which does that already | 15:44 | |
brrt | hmmm | ||
jnthn | spectset has a little unhappiness | 15:46 | |
As in, "a little more than the amount we tend to tolerate" :) | |||
TimToady | .oO(Better red than dead?) |
15:47 | |
dogbert17 | any test file in particular? | ||
jnthn | dogbert17: The one I looked at was int-unit | ||
15:48
brrt left
|
|||
dogbert17 | and I got a fail, before applying your latest fix, in t/spec/S32-hash/antipairs.t | 15:48 | |
ah, a classic which timotimo will recognize | 15:49 | ||
0x00007ffff765fb24 in MVM_gc_mark_collectable (tc=0x604a70, worklist=0x356ced0, new_addr=0x365f4a8) at src/gc/collect.c:370 | |||
370 MVM_gc_worklist_add(tc, worklist, &(tc->instance->all_scs[sc_idx]->sc)); | |||
where sc_idx contains a bogus value | 15:51 | ||
TimToady | anyway, we could replace the currently cached dyn value in the frame with a direct pointer to the next cache to look at without growing the frame | ||
the only cost is an extra data structure on frames that declare a dynvar | |||
and could just use the same pointer, with a flag saying it belongs to us | 15:52 | ||
jnthn | One problem (that we probably need to solve anyway) is that the VM currently doesn't understand which lexicals are dynamic or not (in terms of declaration; the lookup is carried with the op) | ||
TimToady | presumably we could cache negative lookup results as well, which is what I mean by authoritative | 15:53 | |
right, and the whole $_ problem you were talking about the other day | |||
I'm fine with tweaking the language to make everything faster :) | |||
jnthn | Was about to ask about that one :) | 15:54 | |
TimToady | where "tweak" probably excludes throwing out the containers ;) | 15:55 | |
TimToady actually backlogged the three weeks he was out of touch, thanks to a newly-written log colerizer that helped his poor eyes skim better | 15:56 | ||
dogbert17 | so there seems to be 'one' bug left to find | 16:05 | |
jnthn | haha...if only :P | 16:06 | |
TimToady | That's an off-by-ā/1 error? | 16:08 | |
jnthn | Some days, it feels like it :P | ||
OK, lots of the NODELAY spectest fails are fixed | 16:21 | ||
need to look at the results of the latest run but I suspect there'll be one remaining thing I should really look at | |||
dogbert17 | and what might that be? | 16:24 | |
nwc10 | stock levels in the cookie jar? or the beer fridge? | ||
Geth | MoarVM/postrelease-opts: 9a6adf2612 | (Jonathan Worthington)++ | 3 files Make forceouterctx more forgiving * Try going for an outer frame if the immediately available one is inlined (this will work together with a change in Rakudo to mark frames that use `EVAL` as no-inline, and mean that `try EVAL $x` will work out fine) * If that doesn't work, don't SEGV, but throw |
16:25 | |
jnthn | dogbert17: A couple blow up with "MoarVM panic: Spesh codegen: out of range BB index 108" | 16:28 | |
dogbert17 | aha, haven't seen those | 16:29 | |
does this give you any ideas? gist.github.com/dogbert17/47efe57d...cd809ec4da | |||
jnthn | t/spec/S04-declarations/constant-6.d.t does it | ||
dogbert17: I've no clue what that one would be | 16:30 | ||
dogbert17 | darn | ||
note that I had small nursery + MVM_GC_DEBUG set there | 16:31 | ||
16:33
fake_space_whale left
|
|||
jnthn | Above blow-up is something wrong with merge_bbs | 16:36 | |
dogbert17 | would be nice if ASAN could help out here | 16:41 | |
jnthn | Well, it's a panic due to a malformed graph | ||
goto BB(108) | |||
Successors: 108, 80 | |||
That goto should really be to BB(80) | 16:42 | ||
dogbert17 | have you managed to repro? | ||
jnthn | Oh yeah, it's very stable | ||
Happens every time | |||
dogbert17 | as good as it gets then :) | 16:43 | |
jnthn | And if I comment out the call to merge_bbs then it goes away | ||
dogbert17 | ah | ||
jnthn | hm, and I moved the call to that a bit later | 16:44 | |
Geth | MoarVM/postrelease-opts: 544ee885aa | (Jonathan Worthington)++ | src/spesh/optimize.c Revert "Do basic block merging as the last step" This reverts commit d84778a0f9958d89b3bb61855e2aed69ad48be6a, which caused some breakage. Also, it might well have been better placed (or at least just as well placed) beforehand anyway. |
16:45 | |
dogbert17 | oops, a revert | 16:47 | |
jnthn | That helps :) | ||
I'm not convinced it was an improvemnet to move it anyway | 16:48 | ||
That'll fix 2 more. Then there's t/spec/S32-num/expmod.rakudo.moar left, which is a SEGV under the JIT | |||
dogbert17 | is that with MVM_SPESH_NODELAY=1 ? | 16:49 | |
jnthn | Yup | ||
And blocking | |||
dogbert17 | ok | 16:50 | |
jnthn | Hm, commenting out JIT of the various new bigint ops still gets me a fail, even though it's in that area | 16:51 | |
dogbert17 | 0 0x00007f100f4869e7 in get_bigint_body (obj=0x40b28b8, tc=0xe0fa70) at src/math/bigintops.c:148 | ||
148 return (MVMP6bigintBody *)REPR(obj)->box_funcs.get_boxed_ref(tc, | |||
jnthn | Yeah, same as I see | ||
ah, not me :) | 16:52 | ||
It's an expr jit sensitive one | 16:53 | ||
I suspect this occurs on master too, then | |||
dogbert17 | running under valgrind uncovers | ||
an invalid read so not much new there, was the same line | 16:54 | ||
aha it vanishes, for me, with MVM_JIT_EXPR_DISABLE=1 | 16:55 | ||
jnthn | yup; I'm guessing there's a bug in the template | 16:56 | |
16:56
japhb left
|
|||
dogbert17 | something for brrt perhaps | 16:57 | |
don't forget dinner | 17:01 | ||
17:01
slackjeff joined
17:02
zakharyas left
|
|||
jnthn | heh, I found a way to make it give all the wrong answers instead of segfault :) | 17:04 | |
17:04
slackjeff left
17:05
zakharyas joined,
p6bannerbot sets mode: +v zakharyas
|
|||
jnthn | oh, I also found a way that works | 17:06 | |
I don't understand *why* | |||
:) | |||
17:08
japhb joined
17:09
p6bannerbot sets mode: +v japhb
|
|||
Geth | MoarVM/postrelease-opts: db0e310c36 | (Jonathan Worthington)++ | src/jit/core_templates.expr Fix expmod_I template Or at least, change it so it works. My gut feeling is that the way it was before should produce better code (doesn't need to save a value during a call), and that the change I've done should have had no semantic effect. |
17:11 | |
jnthn | .tell brrt github.com/MoarVM/MoarVM/commit/db0e310c36 makes `MVM_SPESH_BLOCKING=1 MVM_SPESH_NODELAY=1 ./perl6-m t/spec/S32-num/expmod.rakudo.moar` pass (before that commit it was SEGV), but I'm not sure why. :) | 17:12 | |
yoleaux | jnthn: I'll pass your message to brrt. | ||
dogbert17 | impressive | ||
jnthn | Confusing :) | 17:13 | |
But either I learn something or we found an expr jit bug | |||
17:13
badon20 joined
|
|||
jnthn | Darn, it was too hot to sleep with a blanket and I've ended up with a bunch of insect bites, all of which itch :/ | 17:14 | |
But... | |||
dogbert17 | is it still hot | ||
17:14
p6bannerbot sets mode: +v badon20
|
|||
jnthn | Today is probably the last day of too hot weather! | 17:14 | |
Yes, 33C | |||
dogbert17 | gah, that's way too much | 17:15 | |
jnthn | Indeed. | ||
It's been 4+ weeks of mostly way too hot | |||
17:15
badon20 left
|
|||
jnthn | But it should finally improve from tomorrow, and next week looks like mid-20s at the very most | 17:15 | |
dogbert17 | that's definitely more comfortable | ||
[Coke] | (too hot) I am a bad human and use too much AC | 17:16 | |
jnthn | If I had AC I'd use it too :P | 17:17 | |
Prague's weather isn't supposed to be like this | |||
Though I fear it's the new normal | |||
Given that every year since I've been here has been above average | |||
Things look rather better with today's fixes :) | 17:18 | ||
dogbert17 | indeed, is mergeable, after the release ofc? | ||
*is it | |||
[Coke] deliberately misreads that as "Prague's weather looks rather better with today's fixes" | 17:20 | ||
jnthn | That fix is still to come (thunderstorm :)) | 17:27 | |
OK, enough for now :) | 17:28 | ||
And tomorrow I really had better work on all the things I was meant to do today :P | 17:29 | ||
bbl o/ | 17:30 | ||
[Coke] | jnthn: I feel like you have described my $DAYJOB this week. | 17:31 | |
18:49
lizmat joined,
brrt joined,
p6bannerbot sets mode: +v lizmat
18:50
p6bannerbot sets mode: +v brrt
|
|||
brrt | \o | 18:50 | |
yoleaux | 17:12Z <jnthn> brrt: github.com/MoarVM/MoarVM/commit/db0e310c36 makes `MVM_SPESH_BLOCKING=1 MVM_SPESH_NODELAY=1 ./perl6-m t/spec/S32-num/expmod.rakudo.moar` pass (before that commit it was SEGV), but I'm not sure why. :) | ||
brrt | well, fortunately I do | ||
jnthn | Ah, good :) | 18:54 | |
Well, depending on the explanation :P | |||
18:54
zakharyas left
|
|||
brrt left a note on the commit | 19:00 | ||
github.com/MoarVM/MoarVM/commit/db...#r30270684 | |||
(I love how nearly everything in github is linkable, btw) | |||
jnthn | :) | 19:01 | |
brrt | ... having a sigil change for pointer-typed operands seems like a way to have less template bugs, and less template bugs is pretty high on the priority list. Only choice is 'which one' | ||
jnthn | Thanks for explaining; wrote a follow-up comment, should probably try swapping it back with the change to see | ||
brrt | aha, hmm | ||
if changing to $res only didn't work, that looks like I have a register allocator bug on my hands | 19:02 | ||
I will check it out | |||
jnthn | It was the end of the day and hot, so I mighta messed up :) | ||
brrt | :-) | ||
available sigils: [~`%*_+'<>\/] | 19:03 | ||
hell, we could even do {0} | |||
or <, >, . | 19:04 | ||
jnthn | Too bad we don't have & :) | ||
brrt | (Or, even, \$0 | ||
& is taken for macro's | |||
C macro's | 19:05 | ||
jnthn | \$0 is Perl-y | ||
brrt | hmmm | ||
jnthn | I guess * is pointer-y put the wrong way around perhaps :) | ||
brrt | I could be swayed for another sigil for C-macro's, but I kind of like \$0 now | ||
19:14
lizmat left
19:25
domidumont left
|
|||
dogbert17 | jnthn: might possibly have found something useful, gist.github.com/dogbert17/a6ee6ddd...6eca767716 | 19:29 | |
jnthn | ooh, that's a good one | 20:13 | |
Let's see if I can get it to happen here | 20:15 | ||
No joy reproducing it here | 20:19 | ||
nwc10 | jnthn: MoarVM on origin/postrelease-opts, + #define MVM_SPESH_CHECK_DU 1 + export MVM_SPESH_NODELAY=1 | 20:20 | |
NQP build explodes. I think on gen/moar/stage1/NQPP6QRegex.moarvm | |||
OK, no, not that. but it does explode with a lot of spesh backtrace | 20:21 | ||
jnthn | Ah, that's probably from the graph checker | 20:22 | |
20:22
brrt left
|
|||
nwc10 | of course, now I think I'm re-running with the same setup and it's working | 20:23 | |
jnthn | You generally want MVM_SPESH_BLOCKING=1 in there too, or it's not going to be reproducible | ||
nwc10 | but something reliably went boom earlier, and I thought I'd pared it down to the minimum amount of non-default | ||
aha | |||
jnthn | Though if you have the spesh backtrace to hand still, there's a decent chance I can figure out what happened from it | 20:24 | |
nwc10 | can probably do that soon | ||
paste.scsys.co.uk/581554 | 20:27 | ||
all 1545 lines | |||
I hope | 20:28 | ||
20:28
lizmat joined
|
|||
dogbert17 | jnthn: I can't say that it happens every time I'm afraid | 20:28 | |
nwc10 | I need to go to bed (been up for too long) so can't re-run that tonight | ||
20:29
p6bannerbot sets mode: +v lizmat
|
|||
dogbert17 | I can repro it once in approximately ten runs | 20:31 | |
Geth | MoarVM/postrelease-opts: ce2b91771f | (Jonathan Worthington)++ | src/core/fixedsizealloc.c Simplify realloc_at_safepoint debug code No need to add on to a pointer only to subtract from it again. |
20:39 | |
MoarVM/postrelease-opts: ec83f8cf5a | (Jonathan Worthington)++ | src/gc/collect.c Add debugging range check on SC index |
|||
jnthn | nwc10: thanks | ||
dogbert17: I can't yet repro it in at least that many runs, but it's maybe worth seeing if it trips that new debug check I added | |||
away for a bit :) | 20:41 | ||
dogbert17 | which check is that? | ||
sry, will learn how to read | |||
20:42
MasterDuke joined,
p6bannerbot sets mode: +v MasterDuke,
MasterDuke left,
MasterDuke joined,
herbert.freenode.net sets mode: +v MasterDuke,
p6bannerbot sets mode: +v MasterDuke
|
|||
dogbert17 | ok 14 - Updated value seen by non-atomic too | 20:43 | |
MoarVM panic: SC index out of range | |||
jnthn: the gist of the matter - gist.github.com/dogbert17/24e6033e...c8cfdfb444 | 20:53 | ||
jnthn | dogbert17: Thanks. Unfortunately, that makes the ASAN output a little less helpful in figuring out any more | 21:59 | |
(It's just an overrun) | |||
(But because the sc index is way too high) | |||
Wow, it's entirely bogus | 22:00 | ||
22:02
lizmat left
|
|||
MasterDuke | i think that's usually the case (that the sc index is so high as to be bogus) | 22:03 | |
jnthn | Very odd | 22:05 | |
timotimo | i don't think i've checked yet if it perhaps got negative for some odd reason | 22:09 | |
m: say 55807408.base(16) | 22:10 | ||
camelia | 3538DB0 | ||
timotimo | not really, no | ||
MasterDuke | timotimo: is this the sort of thing rr would be good for? you could watch sc_index backward in time? | 22:16 | |
22:18
enonvf joined
|
|||
timotimo | sounds plausible | 22:19 | |
22:19
p6bannerbot sets mode: +v enonvf
22:23
enonvf left
22:29
lizmat joined
22:30
p6bannerbot sets mode: +v lizmat
22:36
njm joined,
p6bannerbot sets mode: +v njm
23:08
lizmat left
|
|||
jnthn | Interesting. One of my work apps managed to trip the fromspace assert during spesh plugin evaluation | 23:09 | |
I placed some more and it turns out it's the value being fed in as an argument to the plugin that is bad | 23:10 | ||
However, I can only get it to happen with the JIT | |||
It's raining! \o/ | 23:19 | ||
timotimo | \o/ | ||
we had a bunch of water fall onto our surroundings, as well | |||
jnthn | Forecast for tomorrow is a more sensible temperature, and the weekend will be decidedly more pleasant :) | 23:21 | |
MasterDuke | jnthn: how come the MVM_repr_alloc_init in the interp.c version of expmod_I doesn't need to be MVMROOTed? | 23:22 | |
compared to the other ops that do the MVM_repr_alloc_init in the function | 23:23 | ||
jnthn | What would be rooted? | ||
type is the only local and it's not used after the allocation | 23:24 | ||
MasterDuke | ah | ||
jnthn | And GET_REG reads from the registers, which will be marked | ||
So it's safe | |||
MasterDuke | fwiw, i'm working on a branch to convert it to allocating in the function (and make the _I ops a little more consistent overall) | 23:25 | |
jnthn | consistency++ | 23:30 | |
There may be more ops that we can add sp_*_I variants of too | |||
'night o/ | 23:58 |