Perl 6 - the future is here, just unevenly distributed

IRC log for #moarvm, 2014-10-12

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

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

| Channels | #moarvm index | Today | | Search | Google Search | Plain-Text | summary