github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
00:51
Kaiepi left
00:52
Kaiepi joined
01:07
Kaiepi left
01:08
Kaiepi joined
01:14
Kaypie joined
01:15
Kaiepi left
01:20
Kaypie left
01:22
Kaiepi joined
06:38
Geth left
06:39
Geth joined
06:50
domidumont joined
09:19
camelia joined
|
|||
nine | m: say "alive again" | 09:19 | |
camelia | alive again | 09:20 | |
kawaii | samcv: was planning on starting the work on the new release in 2 - 3 hours, does that work for you? | 10:05 | |
timotimo | nine: how come there's no code in generate_operand for callsite? there's exactly one op that uses it, which is prepargs, don't we ever output that? | 10:08 | |
like, surely that'd need to output something | 10:10 | ||
otherwise the length of the piece of bytecode would be wrong and it'd asplode violently inside the validator? | |||
there must be some other piece of code that handles this; in that case i'll probably throw the generator out, or replace it with code that just dies, and add a comment why that is the case | 10:16 | ||
nine | timotimo: yeah, $call_gen et al in src/vm/moar/QAST/QASTOperationsMAST.nqp generate the code for prepargs directly | 10:19 | |
timotimo | cool, i'll put that in there | 10:21 | |
this gets rid of the annoying "use of Any in string context" warning for update_ops.p6 | 10:22 | ||
10:30
lizmat left
10:33
lizmat joined
|
|||
timotimo | nine: may i ask why the last part of the const_i* ops are wrapped in curly braces? | 10:33 | |
10:34
sena_kun joined
|
|||
timotimo | oh | 10:35 | |
for lexical variable scope? | |||
any reason in particular to not use the name of the operand? | 10:36 | ||
i get the impression that none of these functions are typically jitted or even speshed | 10:43 | ||
ok, it just requires a lot of calls before it gets speshed | 10:47 | ||
nine | Yes, it's for scoping | 10:48 | |
Adding the curlies was probably just the easiest solution | |||
timotimo | there's also both an "int16 $op1" and a "if $value < -32768 || ..." thing in there | 10:51 | |
so, i'm considering throwing that out | |||
fortunately, the braces for scoping get flattened by nqp's optimizer | 10:52 | ||
so that's already good | |||
but yeah, the range checks should probably go :) | 10:54 | ||
nine | Oh....yes, now that you mention that | 11:03 | |
timotimo | i'm on it already | 11:13 | |
that could give us a percent or two speedup during Stage MAST | |||
or which stage name this has | |||
and if there's no range check, i also see no reason for a "my int $value", and then the block also gets superfluous | 11:14 | ||
first i'm restoring the whitespace behaviour so that the "git diff" of lib/MAST/Ops.nqp isn't massive | 11:20 | ||
oh what in the everliving... ?! | 11:30 | ||
nine: github.com/MoarVM/MoarVM/blob/mast...#L144-L149 - they look wrong; are they actually dead code? | 11:31 | ||
oh | 11:33 | ||
writeuint is an actual sub in that file | |||
never mind then | |||
kawaii | Is there anyone else here able to tag a 2019.05 release for Moar? :) | 11:37 | |
timotimo | i can, but it won't have the fancy "verified" badge and that'd not be cool :( | 11:41 | |
kawaii | I'll be around pretty much all day then if someone comes along :) | 11:47 | |
timotimo | i assume you pinged samcv already? | ||
kawaii | timotimo: yep | ||
timotimo | i see you discussed timezones, but not a time-of-day? | 11:48 | |
kawaii | we didn't but like I said, today is mostly a free day for me so I'm happy to fit in with their schedule | 11:49 | |
robertle | if for some perverse reason I would like to run something on moar but without nqp/perl6, how would I learn more about the input format? | 11:52 | |
I vaguely recall having seen some perl5 modules that represented the different MAST node types, but can't find that now. did I imagine this? | |||
timotimo | robertle: you'll want to use A Compilerā¢, which nqp would offer | 11:53 | |
but you don't have to compile something that ends up with dependencies on nqp | |||
have you seen the rakudo & nqp internals workshop slides? | |||
robertle | so, you are saying "don't, use nqp"? | 11:54 | |
timotimo | not necessarily, but you'll probably have the easiest time basing your compiler on nqp | 11:55 | |
one important thing that goes into a moarvm file is the "serialized blob" | |||
robertle | ok, I'll look at these slides again. last time i did, I was zoning out quite quickly :) | ||
timotimo | those are objects (including types), and moarvm generates the results of those from stuff in src/6model/reprs/ and src/core/bytecode.c or something | 11:56 | |
it's not hard to steal that code and/or port it to some other language, but it is a bunch of work, and probably not terribly easy to debug once you have something running | |||
anyway, you'll want to check out moarvm's lib/MAST/Ops.nqp to have a look at how frames of code are written out, and a bunch more stuff in nqp's src/vm/moar/QAST/QASTOperationsMAST.nqp and QASTCompilerMAST.nqp | 11:57 | ||
changing the bytecode writing stuff and passing stresstest sounds good enough to me to put my changes in for the release | 12:04 | ||
samcv | kawaii, this evening i'll be releasing | 12:49 | |
kawaii | samcv: thanks, just ping me an hour or so before so I can be aware and do my parts for nqp and rakudo too :) | ||
samcv | ok :) | ||
timotimo | found another little optimization opportunity, yay | 12:50 | |
we were only ever specializing unbox_i in P6Opaque objects if it had a p6bigint embedded, not if it was just a p6int | 12:51 | ||
which the mast compiler uses a little bit | |||
12:51
Geth left
12:52
Geth joined
12:53
AlexDaniel left,
AlexDaniel joined
|
|||
timotimo | hmm, i can double-devirt associative and positional access to objects that have a positional or associative delegate slot | 14:07 | |
but i'm not totally sure how best to put it in the jit | |||
since i'll have to put a little offset calculation in one of the arguments | |||
oh, can't we use a literal pointer in the jit whenever we pass an STABLE of something we're already guaranteed to know the type of? we'd probably only have to check beforehand if the stable lives in gen2 so it won't move | 14:08 | ||
16:38
zakharyas joined
19:02
domidumont left
|
|||
samcv | kawaii, i have all but 25 changelog entries processed. but i will have to finish it tomorrow. sorry about that | 19:05 | |
kawaii | samcv: no problem, I am free most of tomorrow too since it's a national holiday here | ||
samcv | i got through 88% of them though. so we can release tomorrow if that works for you. | ||
kawaii | Yes that's fine with me :) | ||
samcv | okay great. i'll be online during the day in that case | 19:06 | |
timotimo | samcv: is the work you've done so far in the wiki so i could have a look? | 19:13 | |
MasterDuke | timotimo: have you done any experiments to see if LTO helps moarvm? | 19:17 | |
timotimo | don't think so | 19:18 | |
MasterDuke | well, turns out it makes stage parse 1s slower | 19:41 | |
nine | MasterDuke: 1s sounds like it's within noise | 19:44 | |
timotimo | probably | 19:46 | |
MasterDuke | any other ideas for things to test? | ||
timotimo | hm, you mean like very general techniques and flags we could set/use? | 19:50 | |
MasterDuke | btw, anybody have an opinion on github.com/MoarVM/MoarVM/pull/935 ? | ||
timotimo | looks sensible | 19:51 | |
MasterDuke | timotimo: that too, but i was actually thinking of ways to test if LTO was beneficial or not | ||
timotimo | oh, hmm | 19:52 | |
not sure | |||
using a more deterministic measuring mode like callgrind could be a good idea (use MVM_SPESH_BLOCKING with that) | 19:53 | ||
MasterDuke | i think github.com/MoarVM/MoarVM/pull/935 is a pretty safe change, but there is a release planned for tomorrow. merge now or wait? | 19:54 | |
timotimo | i don't see a way for it to break things; how does gcc react when a too-old version encounters that diagnostic setting? | 19:56 | |
MasterDuke | dunno | ||
20:49
MasterDuke left
20:50
Geth left
20:51
Geth joined
21:36
Kaiepi left
21:37
Kaiepi joined
21:50
robertle left,
zakharyas left
22:21
Kaiepi left
22:25
harrow left
22:31
harrow joined
22:37
Kaiepi joined
22:39
Kaiepi left
22:40
Kaiepi joined
23:28
sena_kun left
23:38
MasterDuke joined,
MasterDuke left,
MasterDuke joined
|