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
|