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
|