viki is confused by this text github.com/MoarVM/MoarVM/blob/mast...ist#L6-L17 00:37
geekosaur ? 00:38
viki The rule is: add ops to end of file. But then the text says there's an exception to it: spesh ops. But then it says they must go to the end of file...
geekosaur the rule is more correctly: don't renumber existing ops
"add ops to end of file" is mechanism
viki OK.
Alright. 00:39
geekosaur but spesh ops should always come after the normal ops including any of those that you add, and since they are generated on the fly at runtime they never go into bytecode files and so don't need to be stable
viki What are the w() and r()? isnanorinf w(int64) r(num64) :pure 00:41
eh... I'm too dumb for this shit 00:48
geekosaur r is read register, w is write register, rl is read lexical, wl is write lexical 00:49
(from github.com/MoarVM/MoarVM/blob/mast...L253-L258) 00:50
no flag is an immediate value
viki Thanks, but I've no idea what any of the other stuff means. I looked at interp.c and there's a bunch of MVM. 00:51
And I don't know C, so heh
geekosaur read the rest of that script I pointed to, it's what parses the oplist file and generates C and NQP source fom it
viki Well, before I do all that, is it agreed that we need nqp::negzero() that can tell whether you're dealing with -0e0 or 0e0? 00:54
m: use nqp; for ^1000_000 { nqp::islt_n(nqp::atan2_n(-0e0, -1e0), 0e0) }; say now - INIT now 00:57
camelia rakudo-moar 15f51a: OUTPUTĀ«0.23019159ā¤Ā»
viki m: use nqp; for ^1000_000 { nqp::isnanorinf(-0e0) }; say now - INIT now
camelia rakudo-moar 15f51a: OUTPUTĀ«0.2291996ā¤Ā»
viki I'm guessing negzero would have similar perf to isnanorinf, and that is pretty much the same as islt+atan2.
I'm just gonna use atan2 for the fix. 00:58
And will mark it as XXX TODO to change to a proper op if there turns up to be more usecases for it 00:59
m: nqp: nqp::say(nqp::islt_n(nqp::div_n(1e0,0e0), 0e0)) 01:04
camelia rakudo-moar 15f51a: OUTPUTĀ«===SORRY!=== Error while compiling <tmp>ā¤Could not find nqp::div_n, did you forget 'use nqp;' ?ā¤at <tmp>:1ā¤------> nqp::say(nqp::islt_n(nqp::div_n(1e0,0e0)ā, 0e0))ā¤Ā»
viki ^ gonna use that. No need for an op 01:05
02:48 ilbot3 joined 05:11 TimToady joined 06:19 xtt2 joined 06:23 domidumont joined 06:28 domidumont joined 08:00 geekosaur joined 09:49 vendethiel joined 09:51 FROGGS joined
FROGGS o/ 09:52
nwc10 \o 09:53
11:14 domidumont joined
jnthn o/ 11:47
timotimo \o 12:42
i'll havee something interesting to show in about half an hour 14:19
okay 14:25
hack.p6c.org/~timo/mysterious_but_h...ess_binary
jnthn: ^ you may find this intriguing 14:28
14:45 domidumont joined
FROGGS timotimo: what is that? 14:47
timotimo please re-download it from the same URL now and make sure the sha1sum is c37e662155612839aceb11a070c5a47a895dcf1e 14:51
FROGGS still, what does it do?
timotimo well, i already told the others in #perl6 what it does, but i wanted to give you a little bit of a challenge for finding out what it is
FROGGS hmmm, will look into it after buying some stuff 14:52
timotimo you can buy my mysterious_but_harmless_binary if you want!
14:58 cygx joined
cygx timotimo: been there, done that: irclog.perlgeek.de/moarvm/2015-05-12#i_10592179 14:59
congrats, anyway!
FROGGS ohh, I did that too :o)
had an nqp and rakudo executable 15:00
timotimo well, i did it without the linker.
why didn't you go ahead and make a rakudo fakecutable then?
cygx I did, but there where issues with properly loading the setting 15:01
I don't quite remember the edtails, it's been a year
*were 15:02
what I moved on to was having a proper MoarVM embedding API and a single DLL for rakudo and nqp each that would embed the bytecode files 15:09
my half-baked attempt at it can still be found at github.com/cygx/librakudo/ 15:10
timotimo hm. 15:12
*** Error in `./full_rakudo': double free or corruption (out): 0x00007f5227492220 *** 15:17
well, that's fun
the annoying thing is that running the binary with valgrind makes it unable to find its shit 15:18
p6captureouters got non-code object 15:22
at src/Perl6/World.nqp:3162 (blib/Perl6/World.moarvm:resolve)
from SETTING::src/core/traits.pm:467 (./CORE.setting.moarvm:<unit>)
from gen/moar/CORE.setting:1 (./CORE.setting.moarvm:<unit-outer>)
from <unknown>:1 (./CORE.setting.moarvm:<load>)
from gen/moar/ModuleLoader.nqp:196 (blib/Perl6/ModuleLoader.moarvm:)
from gen/moar/ModuleLoader.nqp:186 (blib/Perl6/ModuleLoader.moarvm:load_setting)
cygx: does that look familiar?
cygx timotimo: I *think* it failed differently, but I'm too lazy to check right now :p 15:25
17:56 zakharyas joined 18:02 lizmat_ joined
timotimo well, i'm still happy i made it work without requiring the use of a linker or compiler or anything 18:37
dalek arVM/concat_moar_binary: c9144bd | timotimo++ | / (6 files):
can put stuff at the end of binary and get it from inside.

linux-only, and not endian-safe, doesn't yet handle extops yet, because it's tricky, but other than that it works!
19:19 zakharyas joined
lizmat .tell jnthn some HARNESS_TYPE=6 failures: gist.github.com/lizmat/0bd1a0668a7...c6dffac399 22:54
yoleaux2 lizmat: I'll pass your message to jnthn.
23:23 Ven joined