01:24
FROGGS_ joined
02:06
[Coke] joined
02:10
dalek joined,
sergot joined,
synopsebot joined
02:21
sergot joined
02:39
dalek joined,
synopsebot joined
02:47
dalek joined
03:07
d4l3k_ joined
03:09
sergot joined
03:14
sergot joined
03:17
[Coke]_ joined,
synopsebot joined
03:23
synopsebot joined
03:30
dalek joined
03:54
synopsebot joined
04:01
dalek joined
04:07
d4l3k_ joined
04:27
dalek joined
04:46
dalek joined
04:51
dalek joined
04:58
sergot joined
05:08
dalek joined
05:46
lizmat_ joined
05:54
lizmat joined
05:58
woolfy joined
06:02
lizmat joined
|
|||
sergot | o/ | 06:48 | |
07:09
zakharyas joined
|
|||
ren1us | should moar be regularly running at ~99% CPU? | 08:43 | |
nwc10 | I guess "that depends" - what are you doing with it? | 10:14 | |
10:28
brrt joined
|
|||
jnthn | Was gonna say...depends how many cores you have and what workload you put on it. | 10:38 | |
nwc10 | jnthn: fresh SAN barf paste.scsys.co.uk/408725 | 10:41 | |
master/master/nom | |||
need to go for lunch | 10:42 | ||
can't do more | |||
brrt | \o | ||
jnthn | timotimo: ^^ may relate to your recent spesh work; probably a missing NULL check | ||
o/ brrt | |||
brrt | how's things :-) | 10:43 | |
jnthn | Not bad. Got a friend visiting for the weekend, so will be playing tour guide a bit :) | 10:44 | |
brrt | nice | ||
(why off all frames that had to fail, did it have to be one of 49 basic blocks?) | |||
24 basic blocks | |||
jnthn has had to debug stuff in a frame with 200 before | 10:45 | ||
It's..."fun"... | |||
brrt | 'challenging' | ||
anyway, i see two things that i've been finding difficult to test | 10:51 | ||
decont on one hand, getlex with viv on the other | |||
jnthn | Both will only show up a lot in Rakudo | 11:06 | |
You may want to try disabling JIT for the build, getting a Rakudo, then running stuff with it | |||
11:08
brrt joined
|
|||
jnthn | afk for a while | 11:40 | |
FROGGS | have fun | ||
nwc10 | timotimo: ^^ 1869baf6cd92f1149ed5838ecfa3e566a09ab66c is the first bad commit | 11:45 | |
timotimo | thank you, i'll have a look in a few | 11:46 | |
11:51
btyler joined
11:54
brrt joined
|
|||
timotimo | can the boolification spec ever be null? | 11:59 | |
12:09
jnap joined
|
|||
brrt | yes | 12:14 | |
afaik | |||
timotimo | oh, that'd explain the problem :) | 12:15 | |
how do we boolify something that doesn't have a boolification spec set? | |||
just use the default, which is check if the object is concrete? | 12:17 | ||
brrt | let me see | ||
see MVM_coerce_istrue, src/core/coerce.c, l32 | |||
basically, no boolifciation spec means MVM_BOOL_MODE_NOT_TYPE_OBJECT, which is indeed IS_CONCRETE | 12:18 | ||
timotimo | ah, right | ||
brrt | so no boolification spec and known type can be converted to sp_guardconc and set | ||
(it would seem) | |||
timotimo | well, i turn it into an isconcrete and defer to the isconcrete optimization | 12:19 | |
i suppose the isconcrete optimization does the guardconc piece? | |||
dalek | arVM: 9a0099d | (Timo Paulssen)++ | src/spesh/optimize.c: boolification spec may be null, which means "not type object" |
12:27 | |
timotimo | isconcrete may want to flag any given guardconc as "used" when it turns that into a const_i | 12:30 | |
brrt | well then, you can swap an const_i and an if_i into a goto :-) | ||
timotimo | well, the isconcrete opt already turns an isconcrete and a "known to be concrete" into a const, and the if would remove the usages of that const and turn into a goto (or rather: should) | 12:31 | |
12:49
btyler_ joined
|
|||
nwc10 | timotimo: pass | 12:50 | |
timotimo | thank you! | ||
nwc10 | thank you for the quick fix | ||
timotimo | you made it easy :) | 12:51 | |
brrt | getlex with autoviv isn't hit on rakudo build | 12:53 | |
... hit_wb is hit | 12:55 | ||
yes | |||
(it is in fact hit in a relevant code path, it seems) | 12:58 | ||
timotimo | is that the code you spiked with a little abort()? | 12:59 | |
brrt | other code that i spiked | 13:00 | |
timotimo | ah | 13:01 | |
brrt | the good thing is that it blows up in approximately the right frame | 13:04 | |
timotimo | AFK for a bit ... | ||
brrt | see you :-0 | 13:05 | |
:-) | |||
if i have an MVMObject in the debugger, how can i figure out what type it is? | 13:17 | ||
oh, it's VMArray | |||
13:25
woolfy joined
13:26
lizmat joined
|
|||
brrt | it seems a GC bug | 13:30 | |
13:30
jnap joined
|
|||
brrt | (that's not quite right. it seems a bug in jit related to gc) | 13:30 | |
brrt afk | 13:33 | ||
timotimo | that sounds like a nasty kind of problem | 13:50 | |
14:07
woolfy1 joined
|
|||
jnthn | Need to be rather careful in the JIT not to have something sat in a register then do a call that may allocate. | 14:35 | |
nwc10 | is it possible to add optional assertion code that spots if that is happening? | ||
14:56
jnap joined
|
|||
jnthn | nwc10: Hmm...could try emitting a sanity check of the current frame between instructions... | 15:05 | |
Not srue that's enough though | |||
Best bet is the usual "make the nursery tiny" trick | |||
FROGGS | jnthn: I know you have no time, but this is on topic: github.com/MoarVM/MoarVM/issues/114 | 15:10 | |
do you have any pointers? | |||
jnthn | *foo, **bar | 15:11 | |
On "Is it related to spesh/inlining?" - set MVM_SPESH_DISABLE=1 for no spesh | 15:12 | ||
And MVM_SPESH_INLINE_DISABLE=1 just for disabling inlining. | |||
FROGGS | &baz | 15:17 | |
if I disable one of them then it infiniloops, probably again in libuv waiting for data | 15:23 | ||
jnthn | Which one? | 15:27 | |
FROGGS | that example here: gist.github.com/FROGGS/be23c4bcdca366a0ddab | ||
jnthn | no, which flag... | 15:29 | |
Anyway, heading out & | |||
FROGGS | both MVM_SPESH_DISABLE=1 and MVM_SPESH_INLINE_DISABLE=1 | 15:30 | |
jnthn | The first subsumes the second | ||
FROGGS | yes, sure | 15:31 | |
jnthn | OK, so could be inlining related | ||
16:04
cognominal joined
16:08
cognominal joined
16:55
vendethiel joined
18:26
cognominal joined
18:47
lizmat joined
18:48
woolfy joined
19:07
brrt joined,
brrt left,
brrt joined
|
|||
brrt | \o | 19:08 | |
ok, i have no good evidence of jit-relatedness, but i have this | 19:09 | ||
ehm, gc-related-jit-bugs, i mean | |||
and fwiw, our main interface with the GC is hitting write barriers | |||
which i suspected of not being tested very well, but nevertheless | 19:10 | ||
hmm | 19:11 | ||
maybe that's wrong | |||
19:11
woolfy joined
19:17
woolfy joined
|
|||
brrt | can i influence when GC is run? | 19:26 | |
[Coke] | ISTR jnthn & nwc10 have a way to make it run more frequently. I don't know if you can kick off a run from a particular line of code. | 19:30 | |
brrt | hmm i might need that way | 19:31 | |
FROGGS | brrt: you can adjust these values: | 19:33 | |
/home/froggs/dev/MoarVM/src/gc/collect.h:4:#define MVM_NURSERY_SIZE 4194304 | |||
/home/froggs/dev/MoarVM/src/gc/collect.h:9:#define MVM_GC_GEN2_RATIO 25 | |||
brrt | ah, ok | ||
awesome | 19:34 | ||
that should help | |||
FROGGS | make the first smaller (like 5000 or so) | ||
but the gc is only triggered when an allocation happens, so you cannot trigger it at another moment | |||
brrt | that's ok, i already know that the gc is triggered just twice before the 'funky' stuff happens | 19:35 | |
i.e. a REPR that can't be invoked because it is (probably) VMNull | |||
hmmmm | 19:37 | ||
ok, very interesting, i get troubles invoking but the invoked code is VMNull | 19:38 | ||
it is exactly the same object | |||
shame i can't get at the actual object since it's been optimized out | 19:45 | ||
it's a P6Opaque | 19:48 | ||
but P6Opaque should be able to look stuff up, shouldn't it? | 19:49 | ||
FROGGS | 'look stuff up'? | 19:50 | |
brrt | support atkey_o | 19:54 | |
19:55
btyler joined,
carlin joined
|
|||
brrt off | 20:06 | ||
20:06
brrt left
|
|||
itz__ | what version of nqp should I use with moar-jit? | 22:24 | |
FROGGS | latest I guess | ||
itz__ | master seems to depend on a newer moar version | 22:25 | |
FROGGS | yes, moar master might need to be merged into moar-jit | ||
so, take a look when moar master was merged into moar-jit the last time, and pick an nqp from the same time | 22:28 | ||
itz__ | I'll try that | 22:31 | |
timotimo | merging moar-jit into master should be mostly clean, though | 23:35 | |
carlin | is jit being merged before the next release? | 23:40 |