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