github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
00:17
MasterDuke left
01:09
MasterDuke joined,
MasterDuke left,
MasterDuke joined
|
|||
Geth | MoarVM/inline_smart_coerce_methodcalls: 56379415dc | (Timo Paulssen)++ | src/spesh/optimize.c Turn smrt_strify/_numify Into Method Calls and potentially inline them immediately. |
01:28 | |
timotimo | (just forcepushed to fix the commit message) | ||
MasterDuke | timotimo: that'll just need a minor change to support smrt_intify, correct? | 01:37 | |
timotimo | yeah | 01:39 | |
does smrt_intify live in your repo or in moarvm/moarvm? | |||
and the whole nqp-with-int-by-defaults tuff | |||
MasterDuke | they're all in my repo. i did make a PR for moarvm a day or two ago, currently working on cleaning up the nqp branch to PR it | 01:40 | |
timotimo | hum. annoyingly the comment i'm trying to put into the spesh graph for when a smrt_*ify gets turned into a method call doesn't stick around | ||
MasterDuke | github.com/MoarVM/MoarVM/pull/1038 if anyone wants to review | ||
timotimo | recently when looking at PRs i have made but haven't merged i saw that i was trying to make decont on proxies a spesh plugin related thing | 01:42 | |
say, do you think we should perhaps use one of the deprecated ops for new ops by now? | 01:43 | ||
i think they have been in there for graceful explosivity for a long time | 01:44 | ||
that way the diffs for new ops isn't as gigantic either | |||
MasterDuke | huh, i don't think i've ever seen an error about using a deprecated op | 01:46 | |
timotimo | say, do you get a lot of "Couldn't safely determine ..." outputs in the spesh log? | ||
MasterDuke | all the time? or when doing something in particular? | ||
timotimo | just in general | ||
i think we'll also want to put BOOTHash into the cheating list | 01:47 | ||
MasterDuke | don't really remember seeing that a lot | ||
timotimo | but did you grep for it? :P | ||
MasterDuke | heh, i did not | 01:48 | |
timotimo | how would you feel about replacing the lowest-numbered DEPRECATED op with smrt_intify? | ||
MasterDuke | what cheating list (re BOOTHash)? | ||
timotimo | the one in spesh that also contains BOOTInt and BOOTNum or whatever | 01:49 | |
BOOTInt, BOOTNum, and BOOTStr | |||
for some reason they don't make it clear that they don't have these methods, so the optimization would always fall flat on them | 01:50 | ||
MasterDuke | in my PR? | 01:51 | |
timotimo | the cheating list already existed before your PR | 01:52 | |
MasterDuke | will i have to rebootstrap nqp if i replace a DEPRECATED with smrt_intify? | 01:53 | |
timotimo | i don't think so, no | ||
MasterDuke | k | 01:54 | |
btw, why just BOOTHash and not all the BOOT*s? | |||
timotimo | i've gone and collected spesh logs of the entire nqp build and that's the only one that showed up :) | 01:55 | |
MasterDuke | ah | 01:56 | |
timotimo | curiously, int also shows up | ||
MasterDuke | oh, while i'm looking at the oplist | ||
timotimo | not sure how that's happening | ||
MasterDuke | i have intify with `:pure :invokish :deoptallpoint :deoptonepoint :maycausedeopt :specializable`, but (num|str)ify only have `:pure :invokish :maycausedeopt :specializable` | 01:57 | |
should `:deoptallpoint :deoptonepoint` be added to them? | 01:58 | ||
timotimo | those are prerequisites for the method call optimization i recently made | ||
they aren't yet in master because that opt is waiting for the next release | |||
MasterDuke | so do them seperately after that's merged? | 01:59 | |
timotimo | yeah, probably together with the changes to the spesh function that adds intify support to the method call optimization | 02:00 | |
MasterDuke | k | ||
timotimo: force pushed a change to replace DEPRECATED_1 instead of putting it at the end | 02:05 | ||
timotimo | oh wow | ||
the diff actually became a whole lot bigger because the array in Ops.nqp actually has all operands in a row | |||
maybe there's a different deprecated op that actually has the same amount of operands as the smrt_intify one | 02:06 | ||
that'd hopefully give the small diff that i was hoping for | |||
MasterDuke | should that BOOTHash addition go in with my PR? or be a seperate change? | 02:07 | |
timotimo | let's make it a separate change | ||
MasterDuke | testing it now | 02:13 | |
Geth | MoarVM: MasterDuke17++ created pull request #1040: Add BOOTHash to spesh cheat list |
02:32 | |
timotimo | i think i'll go to bed very soon now | 02:43 | |
02:56
Kaiepi left
02:59
Kaiepi joined
03:01
Kaypie joined,
Kaiepi left
03:05
Kaypie left
03:09
Kaiepi joined
03:22
Kaypie joined,
Kaiepi left
03:48
ufobat_ joined
03:52
ufobat__ left
07:41
domidumont joined
11:39
AlexDaniel left
|
|||
nine | timotimo: I can't find any special handling of profiler ops in the inliner's bytecode size determination. The spesh log also shows a frame size of 1094 bytes with enabled profiler vs. 369 bytes without. | 12:57 | |
13:39
AlexDaniel joined
13:41
lizmat joined
|
|||
timotimo | nine: yeah, i have a PR that has an unresolved change request from you for this ;) | 13:55 | |
MasterDuke | there are a bunch of MoarVM PRs that should be looked over | 14:06 | |
nine | timotimo: I'm suddenly much more interested in seeing that merged *g* | 14:09 | |
timotimo | i'll have to put in more features to update_ops :| | 14:11 | |
14:49
Ven`` joined
|
|||
timotimo | MasterDuke: better candidates for replacement with smrt_intify are DEPRECATED_34, DEPRECATED_24, DEPRECATED_17, DEPRECATED_22, DEPRECATED_13, DEPRECATED_32 (maybe the best of them all), DEPRECATED_4 (the oldest of the candidates), and a few more | 14:52 | |
14:59
MasterDuke left
15:03
domidumont left
15:50
Kaypie left
15:51
Kaypie joined
15:54
domidumont joined
16:11
domidumont left
17:06
Ven`` left
17:09
zakharyas joined,
AlexDaniel left
17:54
domidumont joined
18:50
MasterDuke joined,
MasterDuke left,
MasterDuke joined
|
|||
MasterDuke | timotimo: github.com/MoarVM/MoarVM/pull/1038 updated | 18:58 | |
yoleaux | 18:19Z <moritz> MasterDuke: github.com/moritz/perl6-all-module...cpan/JNTHN looks much better now | ||
timotimo | yes, that's what i'm talking about! \o/ | ||
MasterDuke | .tell moritz nice, i use perl6-all-modules a lot and that helps | 18:59 | |
yoleaux | MasterDuke: I'll pass your message to moritz. | ||
timotimo | i think after that PR goes in, it'd probably be good to give most of the functions in coerce.h an MVM_PUBLIC, even though we don't really have users per se | 19:00 | |
19:00
Kaypie left
|
|||
MasterDuke | i could see that | 19:02 | |
19:02
Kaiepi joined
|
|||
timotimo | i gave the PR a review :) | 19:04 | |
the nqp branch will surely not be as easy a review as this one X_x | 19:07 | ||
MasterDuke | thanks | 19:15 | |
19:44
domidumont left
19:48
domidumont joined,
domidumont left
|
|||
MasterDuke | it turns out i was not 100% consistent in literal notation in NQP and Rakudo, e.g., changing `1` to `1.0` vs `1e0`. anybody have a preference? is there a difference in NQP? | 19:50 | |
timotimo | how do you mean? | 19:51 | |
nqp doesn't have rats at all | |||
so the only thing that 1.0 can be is a num | |||
MasterDuke | that's what i was thinking (and i prefer 1.0 over 1e0), but thought i should poll | 19:55 | |
20:40
lizmat_ joined
20:43
lizmat left
20:55
lizmat_ left
20:58
lizmat joined
20:59
patrickb joined
21:02
Kaiepi left
21:07
Kaiepi joined
21:08
patrickb left
21:15
Kaypie joined,
Kaiepi left
21:46
zakharyas left
22:10
ufobat_ left
|
|||
japhb | MasterDuke: I prefer 1e0 to reduce confusion for people that have to work across layers (and that would be basically anyone who is looking at the NQP source code, I would think). Plus which, after the intify work, aren't there going to be only a few num constants in NQP? | 22:47 | |
timotimo | i've got a benchmark that has a high percentage of hits in spesh's arg guard run function | 23:49 | |
i wonder if we should perhaps put computed goto in there, too? | 23:50 | ||
(also at some point they can be jit-compiled, too) |