| IRC logs at
Set by AlexDaniel on 12 June 2018.
buggable 🎺🎺🎺 It's time for the monthly Accidental /win Lottery 😍😍😍 We have 1 ballots submitted by 1 users! DRUM ROLL PLEASE!... 00:00
And the winning number is 5! Congratulations to Ulti! You win a roll of duck tape!
00:10 patrickb left 01:18 ggoebel joined 01:19 p6bannerbot sets mode: +v ggoebel 01:27 fake_space_whale joined 01:28 p6bannerbot sets mode: +v fake_space_whale 02:50 MasterDuke left 03:48 lizmat left 05:00 fake_space_whale left 05:35 fake_space_whale joined, p6bannerbot sets mode: +v fake_space_whale 05:39 fake_space_whale left 07:50 ItchyPlant joined 07:51 p6bannerbot sets mode: +v ItchyPlant 07:53 dalek left
ItchyPlant Hi, 08:00
By the suggestion of u/liztormato, I issued "make spectest" for Rakudo on AIX, after it successfully compiled. The results are uploaded here if you would like to investigate: 08:01
Also, I'm asking if these 6 failures are dead serious and I should avoid using Perl 6 on AIX. I could run any scripts on it so far, so looks working to me but there are these 6 failures... 08:10
08:11 ItchyPlant left 08:12 ItchyPlant joined, p6bannerbot sets mode: +v ItchyPlant 08:16 Geth left, zakharyas joined 08:17 p6bannerbot sets mode: +v zakharyas 08:21 ItchyPlant left 08:42 lizmat joined, p6bannerbot sets mode: +v lizmat 08:48 ItchyPlant joined 08:49 p6bannerbot sets mode: +v ItchyPlant, robertle joined 08:50 p6bannerbot sets mode: +v robertle
timotimo looks like we're handling unsigned ints wrong on aix 09:16
does moar use its jit at all on aix? i.e. does anything change if you MVM_JIT_DISABLE=yes in the environment?
lizmat AIX non intel, so no JIT afaik 09:33
.oO( not looking forward to the day that the MBP will run on an A14 processor)
timotimo maybe we want to run ubsan on that to see if we're doing integer casting wrong or something 09:49
ItchyPlant do you have a script that I can run there? 09:51
timotimo you can run moarvm's with --ubsan 09:54
ItchyPlant Ok 09:55
09:55 ItchyPlant left 10:07 ItchyPlant joined, p6bannerbot sets mode: +v ItchyPlant
ItchyPlant had to change laptop :) 10:08
is there a need to install extra RPM packages for libffi when using --ubsan? 10:11
just asking because I got this:
timotimo looks more like it just can't compile if ubsan is set 10:12
10:31 SourceBaby left, dalek joined, Geth joined, p6lert_ joined, synopsebot_ joined, p6lert left, synopsebot left 10:32 SourceBaby joined, p6bannerbot sets mode: +v dalek, synopsebot_ left, p6bannerbot sets mode: +v Geth, p6bannerbot sets mode: +v p6lert_, p6lert_ left, synopsebot joined, p6lert joined, p6bannerbot sets mode: +v SourceBaby 10:33 p6bannerbot sets mode: +v synopsebot, p6bannerbot sets mode: +v p6lert 10:50 brrt joined 10:51 p6bannerbot sets mode: +v brrt
brrt \o 10:51
11:53 ItchyPlant left
dogbert2_ hello brrt 12:14
timotimo: is there anything else I should test regarding the SEGV from yesterday? 12:18
nine By now I'm tempted to recommend always running raukdo with MVM_SPESH_LOG. It's just faster... 12:26
brrt ohai dogbert2_, nine 12:45
that is weird nine
we kind of need to figure out why the hell that is
I'm guessing that the spesh thread is blocked somehow otherwise 12:46
(but how????)
13:01 GDPR is now known as emerson 13:09 zakharyas left 13:13 ggoebel left
nine timotimo: is it possible that the profile only sees frames as JIT compiled if that compilation happened when the profiler was actually active? With --profile-stage there are several frames that get the JIT treatment before we even start profiling 13:59
14:34 zakharyas joined, p6bannerbot sets mode: +v zakharyas
nine And we haz performance parity! 14:55
lizmat nine++ 14:56
dogbert2_ nine++ 14:57
jnthn \o? 14:58
Speed parity and memory decrease, then? :) 14:59
[Coke] nine++ 15:03
15:18 fake_space_whale joined 15:19 brrt left, p6bannerbot sets mode: +v fake_space_whale
nine Pretty sure about the memory decrease, but haven't measured it in quite a while 16:01
16:10 domidumont joined, p6bannerbot sets mode: +v domidumont
nine Looks like it uses 94 MiB less memory (1289 instead of 1383 MiB) 16:11
measured using /usr/bin/time -f "%M" 16:12
17:33 zakharyas left 17:42 ggoebel joined, p6bannerbot sets mode: +v ggoebel 18:02 domidumont left 18:50 domidumont joined 18:51 p6bannerbot sets mode: +v domidumont 19:01 brrt joined 19:02 p6bannerbot sets mode: +v brrt
brrt \o 19:02
when will you merge it?
19:12 ggoebel left 19:27 ggoebel joined, p6bannerbot sets mode: +v ggoebel
nine Need to fix compilation of nqp::xor first. That doesn't short-circuit anymore right now. Nothing difficult however. 19:50
19:50 brrt left 20:02 domidumont left 20:37 brrt joined 20:38 p6bannerbot sets mode: +v brrt
timotimo sorry I was afk all day 20:39
whether a routine shows up as jit-called depends on which profile_enter variant is called
activating the profiler invalidates all code so far 20:40
I'm not entirely sure how that interacts, tbh. maybe it would require logging and speaking all over again 20:41
that is surely something we should investigate 20:42
20:54 ItchyPlant joined 20:55 p6bannerbot sets mode: +v ItchyPlant 21:13 dogbert17 left 21:22 brrt left
Geth MoarVM: jstuder-gh++ created pull request #988:
Use arithmetic right shift in JIT of brshift_i
MoarVM: jstuder-gh++ created pull request #989:
Add exprjit integer multiplication op
22:07 ItchyPlant left 23:13 robertle left, robertle joined 23:14 p6bannerbot sets mode: +v robertle
timotimo a piece of perl6 code with SDL and tile-based simulation and such is now running pretty fast, or at least i think it is; i don't have the numbers from the last time i checked 23:29
jnthn Cool :) 23:30
I've no travel nor guests in November, so hoping to get some good progress in on EA and related things :)
timotimo i'm seeing something silly in Array.pm6's push method 23:40
it sets $!descriptor, then immediately reads it again (after set-ing registers around a bit) 23:41
looks like it guards on it
hm, this might be interesting 23:42
jnthn Yeah, well, that's why EA and SR :)
timotimo a sp_guard is followed right by a sp_guardjustconc
surely the second one was a guardconc that was redundant with the first guard and that's why it got turned into a guardjustconc?
jnthn Yeah, those could indeed merge into one
No, I think it's because spesh plugins let you guard type and then concreteness 23:43
And it spits out the guards as they are set
timotimo could very well be, yeah
jnthn Rather than perhaps emitting a single guard instruction
timotimo should the optimizer merge them after the fact, or should the spesh plugin code become smarter? 23:44
jnthn I'm almost certain it's that; I've pondered improving it before, but then realized after JIT it probably is a wash in terms of branch count
But otoh it probably bloats the code size
So it's wroth doing
The spesh plugin code-gen is already complex enough, I fear...though maybe there's a need way to "look ahead" or something
It's probably better to find a neat way to do it there than to do it after the fact, even if that code is getting a little involved. 23:45
timotimo too many cooks will spoil the wroth? :)
would it be all right to clean up unused spesh slots after optimization? 23:47
jnthn Hmmm
How expensive will it be? 23:48
timotimo this frame has 0 through 17, it uses 5, 7, 8, 3, 14, 13, 9, 15, 17
so a bit more than 50%
jnthn Unless we somehow track their usage as we go, it's going to be a bit costly
timotimo right, it'd have to live inside another pass
jnthn In that I think you'd have to do a pass to find usages, and then aother pass to update?
Of course you could collect the instructions that'd need updating in the first pass
timotimo re-naming, yeah
indeed 23:49
jnthn So maybe it's not so bad
timotimo will it have more benefits other than slightly less GC work and slightly less memory usage?
the spesh slots live only a single time per spesh candidate, don't they? 23:50
OK, cache locality for the spesh slots
smaller heap snapshots :D 23:51
(again, barely)
oh, don't we have some op that only mentions a single sslot, but actually also uses the spesh slot after that? 23:52
jnthn Yes, we do :)
Method caching
I think the gains would be hard to measure, honestly 23:53
timotimo that could also be kind of bad for "add spesh slot try reuse"
if the value accidentally is the same but the method cache changes at some point
and then the spesh slot expecting to have null or whatever in it ... suddenly has a method
jnthn We don't try and re-use a slot for NULL :) 23:55
Oh, and yeah, the method one would be an inlining issue 23:56
I think there's enough dragons here, and the win is too small, for it to be worth doing at this point.
timotimo right
but what do you mean "an inlining issue"?
would you want the facts list in the spesh log also show the debug_name of the known type and known deconted type? 23:57