github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm
Set by AlexDaniel on 12 June 2018.
brrt \o 10:14
nwc10 o/ 10:16
lizmat sanity check: in pure nqp, there is no implicit slurpy hash that eats any unexpected named parameters on methods ? 10:39
timotimo not sure about that actually. should be easy to check, though? 10:40
brrt I'm wondering if it is worth the while improving the jit/spesh bisect script
jnthn lizmat: No, NQP doesn't do that 10:41
lizmat jnthn: this is re R#2401 10:43
synopsebot_ R#2401 [open]: github.com/rakudo/rakudo/issues/2401 Match.^roles does not behave
lizmat src/how/NQPParametricRoleHOW.nqp method roles does not have a :$transitive named param
lizmat just adding a :$transitive though feels wrong to me... or not ? 10:46
timotimo if the API requires a named parameter to be accepted, i suppose we better take it, though of course you can use transitive => $ so that it doesn't actually put it into a variable, at least i think so 10:50
Geth MoarVM/jit-expr-optimizer: 4 commits pushed by (Bart Wiegmans)++ 12:59
MoarVM/expr-jit-invoke: 65f40100fa | (Bart Wiegmans)++ | 4 files
[JIT] Implement invoke sequence in expr JIT
13:30
MoarVM/expr-jit-invoke: e3e3677ab1 | (Bart Wiegmans)++ | src/jit/graph.c
[JIT] Eliminate special consume_invoke opcode

Except for nativecall_invoke, we no longer need this part of the legacy JIT.
MoarVM/expr-jit-invoke: 3ccad429cc | (Bart Wiegmans)++ | 7 files
[JIT] WIP on nativeinvoke in the expression JIT
dogbert2_ hmm, the duplicate label bug is still present on 32 bit systems 13:34
brrt what bug is that? 13:38
know what's ironic
despite all the immense effort spent on making java fast, it still doesn't relaly work 13:40
Trying to use it at 'scale' breaks down because a): every object must have an object header b): every object is heap allocated c): garbage collection is the only strategy
At the end you're back into reading to and from byte streams to avoid heap tracing overhead
dogbert2_ brrt, all I know is that it's not JIT related but here's how it looks when running t/spec/S15-nfg/emoji-test.t: ===SORRY!=== Duplicate label at <seemingly random number> 13:46
brrt hmmm 13:52
yeah, i know nothing whatever 13:58
nine The seemingly random number is an objectid 14:23
No idea though why it would behave differently on 32 bit 14:24
timotimo hmm, ubsan time?
i mean, 32bit doesn't have jit at all, isn't that there a jit bug?! 14:30
jnthn timotimo: The JIT ain't the only thing with labels 14:31
timotimo well, then. label me a fool.
jnthn The QAST -> bytecode thing does too, for example
timotimo ah, of course, that's why nine is interested in it 14:32
can we provoke the problem on 64bit by turning the jit off? i.e. a difference in impl of something in interp vs jit? 14:33
nine Works just fine here 14:47
lizmat .ask jnthn should "BEGIN $foo := nqp::hash" work in a compiled module or not ? 14:58
yoleaux lizmat: I'll pass your message to jnthn.
dogbert2_ nine, timotimo: it's a nasty problem in that it does not fail every time 15:30
jnthn lizmat: No, we don't preserve bindings, only assignments. The reason being that what you're binding into is the "proto"-lexical scope, because the actual one that we'll have at runtime doesn't exist yet. Whereas assignment works because you assign into the Scalar container that will be used as the basis for the runtime lexical scope(s) 15:50
yoleaux 14:58Z <lizmat> jnthn: should "BEGIN $foo := nqp::hash" work in a compiled module or not ?
lizmat jnthn: thanks 15:54
timotimo samcv: are you the same samcv that speedruns spelunky? 17:31
samcv nope 17:41
brrt what is spelunky even 17:50
timotimo it's a video game :) 17:58
japhb brrt: More precisely, it is a famous "roguelite" 2D realtime platformer, spawning many imitators and even a nonfiction book 19:01
brrt :-) 20:51
brrt wishes he had / took time for video games more often