01:02
woolfy joined
02:26
colomon joined
03:36
flaviusb joined
04:45
ggoebel1111117 joined
|
|||
FROGGS | ohh | 05:55 | |
JimmyZ++ # good catch | |||
06:49
FROGGS_ joined
|
|||
timotimo | ooooh | 07:11 | |
07:12
flaviusb joined
|
|||
timotimo | so properly jitting nativecallinvoke begins at turning nativecallinvoke into sp_nativecallinvokestatic if the site parameter is spesh-time-constant | 07:19 | |
what comes after that? will have to see at the hackathon venue | |||
07:48
JimmyZ joined
08:02
woolfy left
08:14
oetiker joined
08:26
lizmat joined
08:33
Ven joined
08:41
brrt joined
|
|||
brrt | JimmyZ++ for the jle fix | 08:41 | |
dalek | arVM: 23c6826 | jonathan++ | src/ (2 files): Make "cannot invoke" errors consistent. |
08:43 | |
08:44
FROGGS joined
|
|||
timotimo | oh hey brrt | 08:45 | |
brrt | hey timotimo | ||
timotimo | any thoughts about sp_nativecallstatic and implementing it in the jit? | ||
brrt | no | ||
but that's because i haven't looked at it | 08:46 | ||
timotimo | doesn't look that terrible to gen code from nativecallinvoke | 08:47 | |
it's apparently mostly calls to C | |||
and the parts that need to generate a bit more complex code, i can just bail out of the compilation instead (until i implement that stuff) | |||
brrt | hmm | 08:50 | |
i'll get back to you :-) i'll be afk for a bit | 08:51 | ||
FROGGS | brrt: do we need to create src/jit/emit_x64.dasc on every platform or could we check these in? would that work? | 09:07 | |
timotimo | emit_x64.dasc is hand-written | 09:08 | |
it has to be hand-written for any architecture we want to support additionally | |||
it's the emit_x86_64_posix_gnu_c_2014_with_features_please.c that we shouldn't check in | 09:09 | ||
especially since we already ship a minilua that can generate it without dependencies | |||
FROGGS | thing is that packagers would bundle that minilua separately | 09:12 | |
wich perhaps does not make sense, when they already bundled lua itself | |||
JimmyZ | we only use it for compile... | ||
FROGGS | I know | ||
timotimo | right, we don't need to have the minilua in any binary distributions at all | 09:13 | |
we could also have the generated emit.c files in source distributions | |||
but i wouldn't appreciate having that stuff checked into the repository itself | |||
you know how nqp is a huge repository? | |||
that comes from all the stage0 updates | |||
every time the source .dasc file changes, all the line number annotations that the .c file contains will get shuffled about | 09:14 | ||
that gives us huge, unreadable diffs | |||
JimmyZ | so you may want has-lua ....since we have has-libuv or something | ||
timotimo | mhm, that's a possibility; then we need to figure out if the user has the bitops package, too and complain if they don' | 09:15 | |
JimmyZ | oh, we have --lua= | ||
timotimo | there's a TODO in nativecall.c about NATIVECALL_ARG_CALLBACK about having to have a c method that needs to be wrapped or something like that | 09:16 | |
does that have an rt ticket or do we know what it does? | |||
FROGGS | okay, problem solved (about lua) | 09:17 | |
(sort of) | |||
09:17
dalek joined
09:20
Juerd joined
|
|||
timotimo | maybe i'll work on something else. not on nativecallinvoke on moarvm's jit | 09:24 | |
09:25
PerlJam joined
09:30
lizmat_ joined,
woolfy joined
09:31
lizmat__ joined
09:35
Ven joined
|
|||
timotimo | jnthn: where should i look to improve the way we handle Proxy in spesh and/or jit? | 09:48 | |
dalek | arVM: e77f49e | (Tobias Leich)++ | / (2 files): add configure option --has-dynasm In case you have a dynasm installed on your system you can now use that instead. -I/usr/include/luajit-2.0 is added to include search path in case the compiler does not know about that directory. (As is happens on my ubuntu box.) |
10:14 | |
arVM: 6d52a83 | (Tobias Leich)++ | Configure.pl: document --no-jit |
10:16 | ||
11:02
colomon joined
11:07
Ven joined
|
|||
dalek | arVM: 6118f1f | TimToady++ | src/6model/reprs/NFA.c: use switch instead of cascaded if |
11:14 | |
japhb | TimToady: did that result in a measurable performance change? | 11:21 | |
TimToady | maybe | ||
I get a lot of timing noise based on CPU temp | |||
11:21
flaviusb joined
|
|||
japhb | Pin your CPU freq? | 11:23 | |
TimToady | never learned how :) | ||
11:45
brrt joined
|
|||
brrt | ok, what is sp_nativecallstatic, and why do we care | 11:47 | |
12:30
cognome joined
|
|||
dalek | arVM: 3d1920d | TimToady++ | src/6model/reprs/NFA.c: reverse sense of sort, remove negation loops |
12:42 | |
12:46
colomon joined
|
|||
dalek | arVM: 9fd84bd | (Tobias Leich)++ | / (2 files): implement --has-linenoise and --has-dyncall |
12:59 | |
timotimo | oh crap! | 13:09 | |
these changes have already been pushed | |||
13:14
kjs_ joined
|
|||
dalek | arVM: ebab39e | (Timo Paulssen)++ | src/ (4 files): callsite used in coerce.c is now interned. |
13:17 | |
arVM: 9f28aba | (Timo Paulssen)++ | src/jit/graph.c: trigonometry jitting was apparently broken, sorry! |
|||
arVM: 8bf2319 | (Tobias Leich)++ | / (2 files): install libatomic_ops conditionally |
13:23 | ||
JimmyZ wonders when callsite_inv_arg == NULL | |||
dalek | arVM: 4318419 | (Tobias Leich)++ | Configure.pl: fix dyncall library names |
13:25 | |
JimmyZ | timotimo: I think callsite_inv_arg is wrong? | 13:28 | |
callsite_inv_arg == NULL | |||
timotimo | oh, yeah, that is from when i did it wrong :) | 13:29 | |
thanks | |||
dalek | arVM: 0a38838 | (Tobias Leich)++ | Configure.pl: link against systems libatomic_ops if we are asked to |
||
arVM: 3e8e71b | (Timo Paulssen)++ | src/core/callsite.c: left some unnecessary code in there |
13:30 | ||
13:39
brrt left
|
|||
timotimo | brrt, would you like to jit neg_I or should i try to implement that? | 13:44 | |
13:58
kjs_ joined
14:04
zakharyas joined
14:16
colomon joined
14:34
lizmat joined
|
|||
timotimo | brrt, it would probably be pretty awesome if you could check out why the trigonometric functions i commented out in graph.c are misbehaving | 14:50 | |
jnthn: won't you be super glad to know that the finalizers will now be called with an interned callsite? ;) | 15:08 | ||
lizmat | timotimo++ :-) | 15:15 | |
jnthn | timotimo: oh yays :) | 15:20 | |
15:22
go|dfish joined
|
|||
timotimo | also, the very initial call that we make to the code object right after we create a new interpreter | 15:26 | |
that's interned now as well and could theoretically be speshed!! | |||
15:27
go|dfish joined
|
|||
timotimo | it seems like rakudo even still builds | 15:30 | |
jnthn | \o/ | 15:31 | |
and does more get jat in your app? :) | |||
timotimo | i'm currently getting a bit of spectest fallout that i want to sort out before i start with that | 15:32 | |
it *could* be that i broke mixes, sets and bags | 15:34 | ||
spec tests hang :\ | 15:39 | ||
15:44
kjs_ joined
|
|||
dalek | arVM: c3f7682 | (Timo Paulssen)++ | src/ (14 files): wipe out non-interned static callsites |
15:52 | |
arVM: 6d0e694 | (Timo Paulssen)++ | src/core/callsite.c: forgot another callsite |
|||
arVM: 2fdf95a | (Timo Paulssen)++ | src/core/nativecall.c: try interning the callsites we use in nativecall callbacks |
|||
timotimo | jnthn: i'm not entirely sure if the nativecall.c change should help | ||
turns out nativecall wasn't using a static callsite, it was creating new ones on the fly | 15:53 | ||
FROGGS | moritz++ # libtommath | 15:56 | |
moritz | I found another bugfix commit that needs to go upstream, github.com/libtom/libtommath/pull/27 | 15:57 | |
b0eb5301ab05c7af24d696981a699e1cf30e433f already is upstream | |||
jnthn | timotimo: Sure, you'd need to create it and then intern it... | ||
will look | |||
timotimo | that's what i do now | 15:58 | |
jnthn | OK, I look in a bit...fixing horrible nasty thing | ||
timotimo | i don't see a big change for spesh or jit, but this "benchmark" is quite unreliable | 16:02 | |
like, randomly spawning enemies (and random amounts) and different player behavior | |||
jnthn | timotimo: Well, are your thingies getting spesh'd? | ||
timotimo: As in, the actual callback functions | 16:03 | ||
timotimo | add_to_cache - entered 156240 times; does that make sense at all? | ||
jnthn | What is add_to_cache? :) | 16:04 | |
timotimo | nope, interp'd | ||
jnthn | ah... | ||
timotimo | from m-BOOTSTRAP.nqp:2092 | ||
it could be that it gets entered a million times and just bails out due to capturehasnameds being true immediately? OSLT? | 16:05 | ||
i need a much more homogenuous test script that also uses something with nativecall | 16:07 | ||
maybe at some point we should have a nativecall-using benchmark, too | |||
jnthn | m: role Foo { }; 42 but Foo('argh') | 16:08 | |
camelia | rakudo-moar ddc85c: OUTPUTĀ«Can only supply an initialization value for a role if it has a single public attribute, but this is not the case for 'Foo'ā¤ in sub infix:<but> at src/gen/m-CORE.setting:18454ā¤ in block <unit> at /tmp/MqJ3XcM7bA:1ā¤ā¤Ā» | ||
timotimo | that seems sensible? | ||
actually, that "capturehasnameds" can be factored out quite far | 16:09 | ||
not sure if i should, though. | |||
FROGGS | moritz: github.com/libtom/libtommath/pull/27 is already applied in a dev branch me thinks | 16:11 | |
moritz: it was already requested by gerdr in github.com/libtom/libtommath/pull/6 and I also made a duplicate PR a few weeks ago | 16:12 | ||
ewww, ww after all :/ | |||
jnthn | timotimo: Yes, could be worthwhile | 16:13 | |
timotimo: Though yak shave maybe 'cus it's gonna be the first benchmark with a module dependency... | |||
timotimo | aye :\ | 16:14 | |
japhb | jnthn: That yak needs to be shaved anyway. I was putting it off, but it's clearly needed in other cases too. | 16:18 | |
timotimo | .o( Data::Alias ) | ||
16:18
carlin left
|
|||
japhb | Also, NativeCall stress tests are already on my (local) list of things that need to be stress tested | 16:18 | |
timotimo: Yep, that's the very first one I wanted. :0( | 16:19 | ||
er :-) | |||
16:28
kjs_ joined
16:38
kjs_ joined,
zakharyas joined
|
|||
jnthn | timotimo: I mighta not done MVM_callsite_initialize_common(MVMInstance *instance) but instead made it take tc and just passed it instance->main_thread... | 16:38 | |
timotimo | i was wondering about that. is that just for prettyness reasons? | 16:39 | |
jnthn | yeah | ||
And it's done quite consistently elsewhere | |||
You rnativecall.c patch looks like it should be enough | 16:40 | ||
timotimo | fair enough | ||
maybe lizmat will report a faster spec test time soon-ish that could be traced back to these changes | 16:41 | ||
i feel a bit drained at the moment | 16:42 | ||
16:47
woolfy1 joined
16:51
woolfy1 left
16:52
colomon joined
18:58
kjs_ joined
19:37
kjs_ joined
20:21
kjs_ joined
20:35
kjs_ joined
20:47
kjs_ joined
21:05
colomon joined
21:07
lizmat joined
21:10
Ven joined
21:45
kjs_ joined
23:33
ilbot3 joined
23:46
ilbot3 joined,
moritz joined
|