github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
Geth | MoarVM: 7aa9500ee4 | (Timo Paulssen)++ | src/profiler/instrument.c nativecallcast invokes, so have profiler track it |
00:18 | |
timotimo | we should really be able to figure out which ops allocate with clever use of breakpoints. like, whenever MVM_gc_alloc is called, check what line in interp.c it corresponds to and build a Set of those | 00:21 | |
01:14
fake_space_whale joined
01:15
p6bannerbot sets mode: +v fake_space_whale
04:59
fake_space_whale left
06:30
lizmat_ joined,
p6bannerbot sets mode: +v lizmat_
06:33
lizmat left
07:15
domidumont joined
07:16
p6bannerbot sets mode: +v domidumont
07:27
AlexDaniel left
|
|||
nine | We only have a return_i op, but no return_u op. | 09:55 | |
So we actually coerce a uint64 to int64 before returning it. Considering that in memory uint and int are the same and it's just the interpretation that differs, couldn't we just omit the coercer and use return_i to return the uint? | 09:57 | ||
Ah, no. The bytecode validator complains | 10:06 | ||
timotimo | the bytecode validator doesn't run after spesh, i don't think | 10:40 | |
so spesh could probably turn it into a set op | |||
10:41
lizmat_ is now known as lizmat
|
|||
nine | That would get rid of the coercer before the return but still wouldn't get the block to get a uint return_kind | 10:42 | |
timotimo | ah | 11:12 | |
jnthn | We probably should add a return_u; unsigned handling is still a bit sketchy | 11:30 | |
nine | And sp_getarg_u | 11:33 | |
Though sp_getarg_i seems to work just fine for unsinged args | 11:34 | ||
Geth | MoarVM/nqp-mbc: 27 commits pushed by (Stefan Seifert)++ review: github.com/MoarVM/MoarVM/compare/d...8e0e67f9f9 |
11:43 | |
nine | ^^^ rebase | ||
Geth | MoarVM/nqp-mbc: 8 commits pushed by (Stefan Seifert)++
|
11:45 | |
MoarVM/nqp-mbc: 7 commits pushed by (Stefan Seifert)++
|
11:46 | ||
13:53
fake_space_whale joined
13:54
p6bannerbot sets mode: +v fake_space_whale
|
|||
nine | Does anyone feel like reviewing nqp-mbc or should I just merge it and we improve it afterwards? | 14:21 | |
timotimo | well, we're far from a release anyway; do you mean only the moarvm branch or also the nqp branch? | 14:33 | |
i don't think there'd be a problem merging only the moarvm branch | |||
maybe the ecosystem should be toasted with the nqp-mbc mast backend | 14:34 | ||
nine | I'd need to merge the branches in all repos | 14:35 | |
timotimo | ah | 14:37 | |
releasable6: status | |||
releasable6 | timotimo, Next release in ā14 days and ā4 hours. 2 blockers. 0 out of 58 commits logged | ||
timotimo, Details: gist.github.com/2d4fa0c8c355d9b9db...fd3fd751a6 | |||
timotimo | 2 weeks should be plenty to find and fix problems; wost case a revert should still be possible, right? | ||
nine | sure | ||
timotimo | you have my +1 at least | 14:38 | |
dogbert17 | does any of you know why having a BEGIN phaser at the beginning of a one-liner slows it down massively? | 14:40 | |
nine++ (go for it) | |||
Geth | MoarVM/master: 43 commits pushed by (Stefan Seifert)++ review: github.com/MoarVM/MoarVM/compare/7...baeee5f3f0 |
||
nine | It is....done! | 14:41 | |
That was quite a bit more work than expected, but such is life :) | |||
dogbert17 | impressive | ||
timotimo | i'm wondering if any of this work would let us have a slimmer implementation for nativecall's compilation parts - for moar only, of course | 14:43 | |
but i guess since that already builds qast, and qast to mbc is now a step shorter, it'll already benefit a lot | 14:44 | ||
nine | Yes, we could still gain a bit there | 14:45 | |
timotimo | oh? cool | ||
it'd be pretty rad if we could compile multiple functions at once, too | |||
nine | at once? | 14:47 | |
14:48
shareable6 left
|
|||
timotimo | into a single compunit | 14:48 | |
14:48
shareable6 joined
14:49
p6bannerbot sets mode: +v shareable6
|
|||
nine | Right now compilation of nativeinvoke goes through $call_gen in QASTOperationsMAST. That's very generic. We already know that it has exactly 2 args and what kind they are. It'd be possible to handle them like speshresolve. | 14:49 | |
timotimo | gotta go AFK now for a while, though | ||
nine | You mean threaded? | ||
timotimo | not necessarily; could just be lazy | 14:50 | |
have a counter of how often unoptimized functions were called | |||
when it reaches a threshold, compile all functions that were called in the mean time and reset the counter | |||
say, how about a hook we can call at BEGIN time | 14:51 | ||
nine | FWIW it already compiles those optimized functions at BEGIN time, so your typical binding module won't incur any runtime overhead | ||
timotimo | like, my @funcs = ::.grep(*.is-native); NativeCall::CompileAll(@funcs) | ||
nine | github.com/rakudo/rakudo/blob/mast...l.pm6#L736 | ||
timotimo | ah, i thought the first call would cause compilation | 14:52 | |
in that case they all land in the single compunit, too | |||
fantastic! | |||
but, hold on | |||
ooh, it installs a check phaser? | |||
nine | How do you think I've kept ahead in the benchmarking game for so long :) | ||
timotimo | you're scary smart, sir. | 14:53 | |
nine bows | |||
timotimo does the AFK thing | |||
o/ | |||
dogbert17 | nine: do you have any theories as to why 'BEGIN { }; { for ^10_000_000 { }; say now - ENTER now }' is much slower than '{ for ^10_000_000 { }; say now - ENTER now }' | 14:56 | |
nine | Err...no? | 14:59 | |
dogbert17 | it's quite strange methinks | 15:02 | |
dogbert17 is trying to build Rakudo on a RPi2 atm | 15:03 | ||
15:05
travis-ci joined,
p6bannerbot sets mode: +v travis-ci
|
|||
travis-ci | MoarVM build errored. Stefan Seifert 'Merge branch 'nqp-mbc'' | 15:05 | |
travis-ci.org/MoarVM/MoarVM/builds/450228766 github.com/MoarVM/MoarVM/compare/7...baeee5f3f0 | |||
15:05
travis-ci left
|
|||
nine | How can I create an actual int literal in NQP? | 15:06 | |
MasterDuke | nine: i get a couple new warnings now: gist.github.com/MasterDuke17/21f2d...32596f2ce5 | 15:23 | |
Geth | MoarVM: 255bf8a7ad | (Stefan Seifert)++ | src/core/validation.c Fix error in format string in validate_reg_operand Thanks to MasterDuke++ for pointing this out! |
15:26 | |
MasterDuke | nine++ that was fast | 15:28 | |
15:41
nativecallable6 left,
nativecallable6 joined,
p6bannerbot sets mode: +v nativecallable6
15:42
AlexDaniel joined,
p6bannerbot sets mode: +v AlexDaniel
15:49
patrickb joined
15:50
p6bannerbot sets mode: +v patrickb
15:52
travis-ci joined,
p6bannerbot sets mode: +v travis-ci
|
|||
travis-ci | MoarVM build errored. Stefan Seifert 'Fix error in format string in validate_reg_operand | 15:52 | |
travis-ci.org/MoarVM/MoarVM/builds/450239670 github.com/MoarVM/MoarVM/compare/4...5bf8a7ad03 | |||
15:52
travis-ci left
16:53
lizmat left
16:56
lizmat joined,
p6bannerbot sets mode: +v lizmat
17:32
MasterDuke left
|
|||
nwc10 | nine: I get a backtrace failure early in the NQP build if I have MoarVM built with #define MVM_SPESH_CHECK_DU 1 | 17:44 | |
and without, t/nqp/033-init.t t/nqp/081-radix.t and t/nqp/101-lexpad-stuff.t all fail with "MoarVM panic: Register types do not match between value and node" | |||
and I forgot (to repeat) that I have SR0-amp-hack | 17:56 | ||
on no, not *That* | |||
I have MVM_SPESH_BLOCKING=1 and MVM_SPESH_NODELAY=1 set in my environment | |||
(and #define MVM_ARRAY_CONC_DEBUG 1 and #define FSA_SIZE_DEBUG 1 but they probably don't matter. And yes this is under ASAN but it made no comment) | 17:57 | ||
sorry, this all seems like a somewhat LTA response to what's actually "oh cool, the branch got merged" | 17:58 | ||
timotimo | nine: what exact kind of literal do you need? something with P6int repr? i.e. not a bigint? | 18:53 | |
nine | Yeah, just an int | 19:12 | |
timotimo | hm, is that what BOOTInt is, or is that bigint? | 19:13 | |
no, BOOTInt is actually a P6int | 19:14 | ||
nine | nwc10: well it was a huge branch with lots of optimizations. Regressions are not exactly surprising :) | ||
timotimo | rather than a P6bigint-boxing type | ||
19:41
domidumont left
19:43
domidumont joined
19:44
p6bannerbot sets mode: +v domidumont
19:53
domidumont left
20:14
patrickb left
21:26
ugexe left
21:53
ugexe joined
21:54
p6bannerbot sets mode: +v ugexe
22:07
zakharyas joined
22:08
p6bannerbot sets mode: +v zakharyas
|
|||
nine | nwc10: my branch appears to be innocent after all. Even if I revert my 2 changes to spesh, the error still appears. So I presume the spesh bug was already there and my code just uncovered it. At least if my understanding is correct that errors in the DU chain can only be caused by spesh bugs. | 22:31 | |
22:31
zakharyas left
22:34
zakharyas joined,
p6bannerbot sets mode: +v zakharyas
23:02
zakharyas left
|
|||
timotimo | jetbrains ide over x forwarding might not be a very good idea | 23:24 | |
timotimo grabs a bowl of chips | |||
nope, it's not working well enough | 23:31 |