00:29 lizmat joined 01:16 nativecallable6 joined, releasable6 joined, statisfiable6 joined 01:17 unicodable6 joined, quotable6 joined 02:59 ilbot3 joined 08:57 zakharyas joined 08:58 zakharyas1 joined 09:09 zakharyas joined 09:16 zakharyas joined 09:21 domidumont joined 09:28 domidumont joined 11:03 domidumont joined 11:17 geekosaur joined
lizmat if a JIT log says: "Cannot get template for: getcode" 11:32
is that good or bad ?
jnthn At a guess it means the expression JIT doesn't know about that op yet 11:36
lizmat and "BAIL: op <param_on_o>" 11:37
what's param_on_o ?
jnthn on = optional named
o = object register
lizmat ok, so that means we cannot JIT any sub/method that takes an optional named parameter ? 11:38
jnthn No
Most of the time, spesh rewrites param_* instructions into sp_ instructions
lizmat I was checking gfldex's note about DateTime being slow 11:39
jnthn Specializations are often keyed on callsite objects, meaning that when we specialize, we know if we're getting such an argument
lizmat and it turns out the real bottleneck is that new-from-positional and SET-SELF don't even get speshed, let alone JITted
jnthn So it specializes to either the default code or a fast op to directly read from the incoming args buffer without checking 11:40
And those cases JIT just fine
11:40 domidumont joined
jnthn So there's a few possible things that could be happening 11:40
1) There's something about the params otherwise that is too complex for spesh to deal with
2) The function is megamorphic 11:41
3) The function is called with flattening args
lizmat I guess it's the number of args
jnthn How many?
lizmat 9 and 8
I guess that's too many :-) 11:42
jnthn src/spesh/args.c
#define MAX_POS_ARGS 8
/* Maximum number of named args we'll consider for optimization purposes. */
#define MAX_NAMED_ARGS 8
Maybe tweak those up to 16 :) 11:43
And see if it helps
(Can just go to your MoarVM directory, replace 8 with 16, and type make install, no need to rebuild NQP or Rakudo or to re-configure)
lizmat ack
will do
nine jnthn: what's the reason for having those limits in the first place? 11:51
jnthn Easier memory management
(Can just declare the array on the stack)
Plus a figuring that if you have that many args, then chances are this ain't all that hot path anyway :P 11:52
*params
nine Good guess... p5_call_method has exactly 8 arguments ;) 11:53
jnthn haha 11:54
The other thing that it really doesn't like at the moment is aliases
:foo(:$f)
lizmat setting it to 16 doesn't change the profile 12:01
jnthn OK, then it's probably something else 12:02
12:02 reportable6 joined
jnthn lunch; bbl 12:03
12:20 MasterDuke joined
lizmat jnthn: could it also be that some attributes live in a role? 12:37
jnthn No 12:52
Not for failing to rewrite args
lizmat ack 12:53
13:37 geekosaur joined 13:49 zakharyas joined 13:50 zakharyas1 joined 13:55 geekosaur joined 14:00 geekosaur joined 14:11 geekosaur joined 14:15 bart_ joined
bart_ good * #moarvm 14:17
jnthn o/ brrt
brrt ohai jnthn
long time no direct chat, i think :-)
jnthn Aye...I did a bit of travel, got flu, just about got rid of it for Christmas/New Year but still mostly rested then...slowly starting to get back to things a bit 14:20
14:20 geekosaur joined 14:27 geekosaur joined 14:30 geekosaur joined 14:35 domidumont joined 14:37 committable6 joined, squashable6 joined 14:43 geekosaur joined 14:44 geekosaur joined 14:52 domidumont joined 14:56 domidumont joined 15:06 domidumont joined 15:07 domidumont joined 15:19 domidumont joined 15:20 domidumont1 joined 15:22 geospeck joined 15:23 domidumont joined 15:45 domidumont joined 16:02 dogbert17 joined
[Coke] welcome back to the land of the breathing. 16:34
16:45 brrt joined
dogbert17 is the following a well known problem or should I report it? gist.github.com/dogbert17/a7cb8eaf...fc2dc29c5f 17:02
17:07 geospeck joined 17:22 bloatable6 joined, coverable6 joined, benchable6 joined 17:39 bisectable6 joined 17:48 harrow joined 18:27 zakharyas joined 18:37 geekosaur joined
Geth MoarVM: dogbert17++ created pull request #776:
Fix typo
18:43
MoarVM: 47769a5a77 | (Jan-Olof Hendig)++ | src/gc/orchestrate.c
Fix typo
18:49
MoarVM: c2de234c4c | (Zoffix Znet)++ (committed using GitHub Web editor) | src/gc/orchestrate.c
Merge pull request #776 from dogbert17/fix-typo

Fix typo
18:49 geekosaur joined 19:03 geospeck joined 19:39 greppable6 joined 20:59 evalable6 joined 21:03 FROGGS joined 21:52 Kaiepi joined 22:04 nwc10 joined
jnthn Fun (slightly irritated :)) read for those interested in the intersection of GC, concurrency primitives, and JIT: psy-lob-saw.blogspot.cz/2018/01/wha...makes.html 22:53
23:22 brrt joined 23:52 Kaiepi joined 23:54 Kaiepi joined 23:56 Kaiepi joined