github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
01:09
AlexDani` joined
01:12
AlexDaniel left
01:13
Marflutter joined,
Marflutter left
02:00
Kaiepi left,
Kaiepi joined
03:08
Tixiks joined,
Tixiks left
03:39
Strozill joined,
Strozill left
07:12
domidumont joined
08:08
Kaiepi left,
Kaiepi joined
08:26
zakharyas joined
09:02
AlexDani` is now known as AlexDaniel
09:03
lizmat_ joined
09:06
lizmat left
09:23
Kaiepi left
09:27
Kaiepi joined
10:20
lizmat joined
10:24
lizmat_ left
12:36
zakharyas left
|
|||
lizmat hopes jnthn will have some tuits to look at R#2676 | 12:44 | ||
synopsebot | R#2676 [open]: github.com/rakudo/rakudo/issues/2676 Do we need an overhaul of .ACCEPTS methods wrt Any / Mu? | ||
13:32
MasterDuke left
13:46
lucasb joined
13:50
lizmat left
14:04
zakharyas joined
14:40
AlexDaniel left,
AlexDani` joined,
AlexDani` is now known as AlexDaniel
|
|||
Geth | MoarVM: d6d057a20e | (Daniel Green)++ | src/jit/graph.c Jit (open|read|close)_dir |
14:48 | |
MoarVM: e459d36b84 | (Daniel Green)++ | src/jit/graph.c Also JIT stat and lstat |
|||
MoarVM: 43789a9370 | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/jit/graph.c Merge pull request #1043 from MasterDuke17/jit_dir_ops Jit (open|read|close)_dir |
|||
MoarVM: 4c19115408 | (Daniel Green)++ | src/spesh/optimize.c Add BOOTHash to spesh cheat list It's the only other BOOT* that shows up in the spesh logs of an NQP build. timotimo++ |
14:49 | ||
MoarVM: 870cdad3cd | (Jonathan Worthington)++ (committed using GitHub Web editor) | src/spesh/optimize.c Merge pull request #1040 from MasterDuke17/add_BOOTHash_to_spesh_exemption_list Add BOOTHash to spesh cheat list |
|||
MoarVM: a1cfd7022c | (Fabrice Fontaine)++ | Configure.pl Configure.pl: fix cross-compilation Do not add -I/usr/local/include or -L/usr/local/lib when cross-compiling Signed-off-by: Fabrice Fontaine [email@hidden.address] |
14:56 | ||
MoarVM: 1cb70d46df | (Jonathan Worthington)++ (committed using GitHub Web editor) | Configure.pl Merge pull request #1045 from ffontaine/master Configure.pl: fix cross-compilation |
|||
MoarVM/pea: 37 commits pushed by (Jonathan Worthington)++, (Carl Masak)++ review: github.com/MoarVM/MoarVM/compare/8...936a5a50d0 |
15:01 | ||
jnthn | Doing some test runs on pea, but thinking to merge it; I'd planned that after the last Rakudo release, which didn't happen. | 15:03 | |
15:12
samcv left
15:13
samcv joined
|
|||
dogbert2_ | jnthn: merging pea seems like an excellent idea :) | 15:14 | |
jnthn | Hm, well, something to fix first, it looks like | 15:23 | |
It causes some kind of test regression S32-num/rand.t, which is an odd place for it :) | |||
timotimo | hahaha | 15:37 | |
oh that's great | |||
jnthn: you know how we put instance->VMNull into tc->last_payload so that we never have to do a null pointer check? | |||
^- in MVM_tc_create | |||
well, guess what value instance->VMNull has when the first tc gets created | 15:38 | ||
jnthn | Umm...maybe it's not set yet 'cus we didn't bootstrap 'cus we need a tc for that? :) | 15:47 | |
timotimo | yup | 15:54 | |
so the bootstrap will have to set that up, too | 15:55 | ||
that's what caused the guard_args to be null even though i set it to VMNull | |||
15:56
lucasb left
|
|||
jnthn | Consider this: | 15:57 | |
my sub repeat_rand ($seed) { | |||
srand($seed); | |||
for 1..99 { rand; } | |||
return rand; | |||
} | |||
Spesh of this with PEA enabled fails. Can anyone guess why? | |||
(I have a guess, and am now seeing if it's the right one. :)) | |||
timotimo | rand is being sunk? | ||
so it won't actually do the side effect? | |||
jnthn | Well, it was in sink context before | 15:58 | |
timotimo | right, but not eliminated i guess? | ||
jnthn | Here's the code from `rand` that we inline: | ||
randscale_n r1(2), r1(1) | |||
sp_fastcreate r2(1), liti16(40), sslot(3) | |||
sp_bind_n r2(1), liti16(32), r1(2) | |||
timotimo | it's not that randscale uses two versions of r1? | 15:59 | |
jnthn | No :) | ||
timotimo | was it using the previous rand result as the maximum value each time? | 16:00 | |
jnthn | The object done by sp_fastcreate is scalar replaced | ||
The sp_bind_n just becomes a set | |||
It's unused | |||
Dead code elimination comes along and sees the dead set and eats it. | |||
That means randscale_n is now unused | |||
And | |||
randscale_n w(num64) r(num64) :pure | 16:01 | ||
timotimo | yeah, marked as pure | ||
not good | |||
jnthn | Yeah, that's the issue | ||
I guess I marked it thinking "well, if you don't use a random number, so what" :) | |||
randscale_n w(num64) r(num64) :pure | 16:02 | ||
oops | |||
rand_I w(obj) r(obj) r(obj) :pure | |||
That's probably also bad | |||
timotimo | for sure | ||
btw i don't think we have a "get the random seed" op | |||
i think that's a feature that's sometimes needed | |||
Geth | MoarVM/pea: a6939d7c1f | (Jonathan Worthington)++ | 2 files randscale_n and rand_I are not pure ops Since obtaining a random number will mutate the state of the random number generator. We never noticed this before, but PEA allowing for more aggressive optimization revealed it. |
16:06 | |
16:23
domidumont left
|
|||
jnthn | Under NODELAY, I get a weird hang in t/02-rakudo/repl.t that I'm having some trouble nailing down | 16:41 | |
Trying a NODELAY spectest now to see if I can get anything similar there | |||
D'oh, I think I understand what's going on. | 17:20 | ||
It's no use doing all this stuff to materialize objects at deopt points if we then go and delete the registers that we scalar replaced attributes into | |||
timotimo | ouch :) | 17:21 | |
perl6-m -e 'use nqp; nqp::speshguardgetattr(8, Int, q[$!value])' | |||
This representation (Null) does not support elems (for type VMNull) | |||
^- anyway, this is my current status and i like it | |||
it also ensures the assumption that tc->last_payload is always a proper pointer | 17:22 | ||
Geth | MoarVM: 5431d50fbc | (Timo Paulssen)++ | 2 files Ensure last_payload And plugin_guard_args Are Valid until now using spesh plugin commands outside of something called by speshresolve caused a segfault. Also, last_payload was assumed to always point at VMNull so that no null pointer checks were needed, but due to VMNull being created later than the first tc being created, it'd end up a null pointer anyway! |
17:26 | |
jnthn | Cool, seems that problem was what afflicted repl.t also | 17:55 | |
Geth | MoarVM/pea: 3629362fea | (Jonathan Worthington)++ | src/spesh/pea.c Add deopt uses as needed for scalar replacements When we perform scalar replacement, then we place what used to be in object attributes into registers. If we deopt, we materialize the object from those registers. However, if those register's only use is for deopt, then we could delete writes into them, and thus would not be able to do that materialization. Thus, be sure to add deopt usages to the scalar replacement registers as required (we do it per version, so this is quite precise). That way, they will be preserved as needed, and not break our ability to deoptimize. |
18:01 | |
18:15
robertle joined
|
|||
timotimo | .o( can't we just optimize in peas, damn it? ) | 18:20 | |
18:42
Kaiepi left
|
|||
jnthn | I think there's one more root problem that's causing regressions in NODELAY now | 18:48 | |
It's odd, a bunch of tests complain we try to stringify a code object and then fail | |||
18:49
lucasb joined
|
|||
jnthn | Anyway, enough for the moment | 18:49 | |
timotimo | i'm glad pea is rebased up to latest so i can try it out more thoroughly :) | 18:50 | |
18:55
zakharyas left
19:38
domidumont joined
19:39
Ven`` joined
19:41
domidumont left
19:47
Kaiepi joined
20:33
Kaiepi left
20:34
Kaiepi joined
22:06
Kaiepi left
22:07
Kaiepi joined
22:09
lucasb left
22:15
Ven`` left
22:54
robertle left
22:55
MasterDuke joined,
MasterDuke left,
MasterDuke joined
23:26
Kaiepi left
23:29
Kaiepi joined,
Kaiepi left,
Kaiepi joined
23:32
Kaypie joined
23:33
Kaiepi left
23:52
Kaypie left
23:55
Kaiepi joined
|