github.com/moarvm/moarvm | IRC logs at colabti.org/irclogger/irclogger_logs/moarvm Set by AlexDaniel on 12 June 2018. |
|||
02:33
lizmat left
05:03
squashable6 joined
05:56
Zoffix joined
|
|||
Zoffix | New blog post: "The Missing Contributors of Perl 6": rakudo.party/post/The-Missing-Cont...s-of-Perl6 | 05:56 | |
06:05
Zoffix left
06:33
brrt joined
06:44
robertle joined
07:05
brrt left
07:18
domidumont joined
07:21
zakharyas joined
07:25
domidumont left,
domidumont joined
07:45
lizmat joined
08:11
brrt joined
08:27
brrt left
08:29
brrt joined
08:45
brrt left
08:51
zakharyas left
08:52
zakharyas joined
09:18
brrt joined
|
|||
jnthn | D'oh, one can get spesh dump to crash because it assumes it can look up the filename string index in the comp unit of the thing the top-level graph is for, but of course it might be inlined code from a totally different CU | 09:51 | |
Now I'm wondering if the profiler either solves this or trips over this. :) | |||
Geth | MoarVM/inline-unspecialized: 24d3b5bf2f | (Jonathan Worthington)++ | src/spesh/dump.c Fix dump of inlined spesh line/file annotations We did the string index lookup on the wrong CU, which could crash the dumper. |
10:12 | |
MoarVM/inline-unspecialized: a935d00e71 | (Jonathan Worthington)++ | src/spesh/optimize.h Better document MAX_ARGS_FOR_OPT |
10:18 | ||
MoarVM/inline-unspecialized: 5ef61a7663 | (Jonathan Worthington)++ | src/spesh/args.c When inlining unspecialized, set arg type facts So that we at least can do useful optimizations based upon those. |
10:31 | ||
jnthn | I think that branch is mostly good now | 10:33 | |
brrt | \o/ | 10:40 | |
by the way, if new statistics come in for the inlinees (does that still happen?), will they be replaced? | 10:41 | ||
jnthn | Not at the moment, no | ||
brrt | hmm. | 10:42 | |
jnthn | Well, doesn't happen, nor will they be replaced | ||
brrt | because, once speshed, the logging instructions will be removed.. | ||
jnthn | Right :) | ||
brrt | :-) | 10:43 | |
10:51
zakharyas left
|
|||
jnthn | huh, why on earth and I getting an empty spesh log | 10:51 | |
It only comes out empty if I set an MVM_SPESH_LIMIT :S | 10:52 | ||
How would that change anything... | |||
Oh...huh, it now only dumps the limited frame...in theory | 10:54 | ||
But in reality it's dumping nothing | |||
10:57
zakharyas joined
|
|||
jnthn | It gets stranger. | 11:05 | |
Also the error is | 11:06 | ||
At Frame 12, Instruction 14, op 'trunc_i8', operand 0, MAST::Local of wrong type (17) specified; expected 1 | |||
Which looks a lot like the native.t or whatever it was failure that nwc10 reported the other day | 11:07 | ||
Which is making me suspect this isn't to do with my branch | |||
brrt | no, that is very probable | ||
I / we broke something and i've yet to figure out what | |||
jnthn | Yeah, it seems very action-at-a-distance-y | 11:08 | |
brrt | try if it breaks under MVM_JIT_DISABLE | 11:09 | |
jnthn | MVM_SPESH_BLOCKING=1 MVM_SPESH_NODELAY=1 ./perl6-m -Ilib t/spec/S12-construction/named-params-in-BUILD.t | ||
That reliably fails | |||
With MVM_JIT_DISABLE=1 it reliably works | |||
With MVM_JIT_EXPR_DISABLE=1 it...huh, worked once, but mostly fails | 11:10 | ||
So yeah, it seems JIT-y | 11:11 | ||
brrt | hmm :-( | 11:13 | |
jnthn | My gut instinct given the action at a distance is also memory corruption-y | ||
Oh | |||
Or deot | |||
*deopt | |||
brrt | well, that one works for me, unfortunatley | ||
jnthn | If it's placing the interpreter back in a bogus place | ||
brrt | possibly, but why would that happen | 11:14 | |
jnthn | No idea | ||
t/spec/S02-types/native.rakudo.moar fails in a similar way, which is the one I think you noticed | |||
And also works with MVM_JIT_DISABLE=1 | 11:15 | ||
brrt | yeah. I jit-bisected that and it points to 'new' | ||
:-( | |||
11:19
zakharyas left
|
|||
jnthn | lunch; bbiab | 11:20 | |
master spectest looks pretty alright | 12:12 | ||
Modulo the heisenfail of the native test | |||
So I figure I can merge | |||
Better it gets some testing :) | |||
brrt | i can make the native test replicate btw | 12:13 | |
doesn't really tell me what's going wrong, but I can replicate it... | |||
Geth | MoarVM/master: 12 commits pushed by (Jonathan Worthington)++ review: github.com/MoarVM/MoarVM/compare/a...f61a7663c9 |
12:22 | |
jnthn | 9 files changed, 265 insertions(+), 102 deletions(-) | ||
Quite a small additional amount of code, especially when it also corrected 3 other issues along with the main goal of the branch :) | 12:23 | ||
12:29
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Jonathan Worthington 'When inlining unspecialized, set arg type facts | 12:29 | |
travis-ci.org/MoarVM/MoarVM/builds/400410421 github.com/MoarVM/MoarVM/compare/a...f61a7663c9 | |||
12:29
travis-ci left
|
|||
jnthn | bah, "apt-get install failed" | 12:31 | |
12:36
zakharyas joined
|
|||
jnthn | Very strange...two things that show up fine in the spesh log and the jit log show up in the profile as not running specialized or JITted. And it's slow enough to make me thing that's true. | 12:37 | |
tadzik | E: Unable to locate package failed | 12:38 | |
:( | |||
jnthn | :P | ||
12:40
lizmat left
12:44
lizmat joined
12:46
brrt left
12:47
zakharyas left
12:50
lizmat left
12:53
lizmat joined
13:05
brrt joined
13:18
zakharyas joined
13:53
brrt left
|
|||
jnthn | Phew, I think I finally found a way to write AT-POS that brings it below the inline limit | 14:19 | |
nwc10 | this statement is interesting. feels like it would turn into a useful short(ish) (for some value of "short") blog post | 14:33 | |
1) what is the inline limit, why is it necessary, what goes horribly wrong if we don't have one? | |||
2) what's the way to write AT-POS that isn't short enough | |||
I apologise for suggesting work (And a distraction from the real work) to someone else | 14:34 | ||
and I can't send you useful beer | |||
14:35
brrt joined
14:41
zakharyas left
15:08
domidumont left
|
|||
brrt | comments welcome: brrt-to-the-future.blogspot.com/b/...;type=POST | 15:16 | |
timotimo | MFW the URL is just the article text compressed and encoded as base64 | 15:18 | |
why does blogger have a "clicktrap" element over the page | 15:19 | ||
i have this unreasonable need to click around and mark words and paragraphs and not being able to do it, even though it serves no obvious purpose, makes it feel Just Wrong | |||
brrt | haha | 15:20 | |
timotimo | the paragraph above the second numbered list has left-overs from an earlier version of the sentence i think | ||
15:20
lizmat left
|
|||
timotimo | "but for various reasons, partially historical, we call For communicating with the " | 15:20 | |
15:23
lizmat joined
|
|||
brrt | thank you, fixed | 15:24 | |
lizmat | brrt: s/they usually to a system/they usually refer to a system/ | 15:25 | |
timotimo | looks good. you want to make it perl 6 or Perl 6 throughout the whole text | ||
jnthn | brrt: My name is typo'd | 15:27 | |
brrt | where? | ||
jnthn | At the Swiss Perl Workshop ... | ||
why on earth can't I copy-paste from this? | |||
lizmat | brrt: also try to use non breaking space between Perl and the number | ||
brrt | oh, because blogger is evil | ||
jnthn: seen, fixed | 15:28 | ||
timotimo | jnthn: inspect element on the "Preview" badge on the top left, find the "clicktrap" element one or two further up, and "delete element" | ||
lizmat | brrt: s/Jonathand/Jonathan/ | 15:29 | |
timotimo | moarvm got thoroughly jonathan'd | ||
Geth | MoarVM: 76b4f4ce79 | (Jonathan Worthington)++ | src/spesh/inline.c Inline limit with original bytecode size too This means that if we have a small piece of code that could be inlined, and then we inline something in to that, we can still inline the top piece of code too. This helps us do a bit more multi-level inlining. |
||
timotimo | does that mean that if we have tiny routine bodies with a deep call chain they'd all be inlined as long as the individual routines are all small enough? | 15:31 | |
brrt | lizmat: fixed, thanks | ||
jnthn | timotimo: Yes, though could happen. | 15:33 | |
timotimo: Though usually something does a decent amount of work somewhere :) | |||
timotimo | mhm | 15:35 | |
15:36
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Jonathan Worthington 'Inline limit with original bytecode size too | 15:36 | |
travis-ci.org/MoarVM/MoarVM/builds/400492904 github.com/MoarVM/MoarVM/compare/5...b4f4ce7999 | |||
15:36
travis-ci left
|
|||
jnthn | E: There were unauthenticated packages and -y was used without --allow-unauthenticated | 15:36 | |
grr | |||
15:49
zakharyas joined
15:58
dogbert17 joined
|
|||
dogbert17 | brrt: my git fu is far from optimal but it seems that the strange jit error, as seen in /spec/S02-types/native.rakudo.moar, was introduced by github.com/MoarVM/MoarVM/commit/35...29e6992760 | 16:00 | |
can that be possible? | |||
timotimo | it's always possible that one op being introduced causes an op that is sometimes problematic to appear in a spot that triggers the problem | 16:01 | |
dogbert17 | timotimo: I did this 'bisection' in the most incorrect way, I manually checked out versions and tested until the problem disappeared, which it did with github.com/MoarVM/MoarVM/commit/66...0ffabb594f | 16:03 | |
timotimo | that's fair | 16:04 | |
you can now use the jit bisect tool on top of the git bisect | |||
that may find us the exact miscompilation | |||
brrt | don't horrify me | ||
timotimo :-P | 16:05 | ||
anyway.... I'll revert, then try if that helps | |||
timotimo | how do you mean? | ||
brrt | jit-bisect on git-bisect, i'm not sure that will work very well very often | 16:06 | |
timotimo | oh no i meant use jit-bisect after git bisect is finished | ||
brrt | oh, i see | ||
i mean to say, jit-bisect.pl isn't probably that reliable / good of a tool :-) | 16:08 | ||
Geth | MoarVM: 29cc327f87 | (Bart Wiegmans)++ | 2 files Revert "Implement JIT templates for 10 ops" This reverts commit 354c62bdca1be082b61939fdcf6a4129e6992760. |
16:10 | |
timotimo | gu | 16:14 | |
dogbert17 | brrt++, that seems to have done the trick | 16:16 | |
16:18
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Bart Wiegmans 'Revert "Implement JIT templates for 10 ops" | 16:18 | |
travis-ci.org/MoarVM/MoarVM/builds/400510053 github.com/MoarVM/MoarVM/compare/7...cc327f87c9 | |||
16:18
travis-ci left
|
|||
brrt | what, segmentation fault | 16:20 | |
dogbert17 | when | 16:21 | |
brrt | during rakudo build | 16:24 | |
dogbert17 | oops | ||
brrt | yeah | 16:25 | |
16:37
dogbert17 left
16:39
stmuk_ joined
16:40
stmuk left
16:41
dogbert17 joined
|
|||
brrt | in a weird twist of fate, it seems it's the no-jit version that's broken | 16:48 | |
null pointer in a repr shift_o | 16:49 | ||
wtf | |||
it *is* spesh though | |||
OSR and inlining dependent :-( | 16:55 | ||
17:07
zakharyas left
17:08
zakharyas joined
17:16
brrt left
|
|||
jnthn | Uff, deopt is indeed a tricky thing | 17:18 | |
jnthn had an idea for keeping a bit less stuff around for deopt, tried it, and discovered it's flawed | |||
Think I can salvage one smaller improvement from the effort, though | 17:25 | ||
jnthn goes to rest a bit | 17:32 | ||
samcv | well i've got randomizing the order of the bucket iteration figured out | 17:37 | |
as we do now we go from 0..7 say if we have 8 buckets. but we XOR that with a random integer | 17:38 | ||
so 0 XOR 3 = 3; 1 XOR 3 = 2; 2 XOR 3 = 1 etc | |||
and so you get all of the numbers but in a different order | 17:39 | ||
Geth | MoarVM: 0eb25300bb | (Samantha McVey)++ | src/strings/parse_num.c Make parse_simple_number impossible to reach end without returning Make sure that it's not possible to reach the end of the function without returning or throwing. This fixes a compiler warning about this. Also change the comments from // style to /* */ which is MoarVM's recommended style. Make an if else chain into a switch for greater clairity. Remove some else's that were unneeded. |
18:12 | |
MoarVM: 4bde02e3b5 | (Samantha McVey)++ | 3 files Make sure we don't try and return values from void functions I had added MVMHash_at_key, MVMHash_bind_key, MVM_P6opaque_at_pos and MVM_VMArray_at_pos but had accidently used `return`, which is not needed since it is a void function and returning void is meaningless. |
|||
18:20
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Samantha McVey 'Make sure we don't try and return values from void functions | 18:20 | |
travis-ci.org/MoarVM/MoarVM/builds/400555407 github.com/MoarVM/MoarVM/compare/2...de02e3b58a | |||
18:20
travis-ci left
|
|||
AlexDaniel | squashable6: next | 18:26 | |
squashable6 | AlexDaniel, ā š Next SQUASHathon in ā15 hours (2018-07-07 UTC-12āUTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||
Geth | MoarVM: 3ef2acf0f3 | (Samantha McVey)++ | 13 files Hash: randomize insertion order and bucket iteration order The effect of this commit results in every hash having a different iteration order. Previously, if you created two hashes and added items in the same order, you would get the same iteration order. Now we hash the table's pointer and use this as a pseudo random value to ... (14 more lines) |
19:03 | |
MoarVM: 485d063a7b | (Samantha McVey)++ | .travis.yml Use the trusty not the precise llvm repos Travis is using trusty now and the precise repo has an outdated key, causing Travis CI to fail. |
19:10 | ||
19:12
zakharyas left
19:17
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Samantha McVey 'Use the trusty not the precise llvm repos | 19:17 | |
travis-ci.org/MoarVM/MoarVM/builds/400576375 github.com/MoarVM/MoarVM/compare/3...5d063a7bfb | |||
19:17
travis-ci left
19:31
robertle_ joined
|
|||
dogbert17 | what could this be: ===SORRY!=== Cannot call method 'optimize' on a null object | 20:15 | |
samcv | dogbert17: hmm, not sure | 20:23 | |
dogbert17 | samcv: I get it when running: ./perl6 t/spec/S26-documentation/07-tables.t | 20:25 | |
20:26
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Samantha McVey 'Try and get clang installing' | 20:26 | |
travis-ci.org/samcv/MoarVM/builds/400601243 github.com/samcv/MoarVM/compare/04...f421a8999e | |||
20:26
travis-ci left
20:32
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Samantha McVey 'Looks like trusty already has clang 5 so try to not install it' | 20:32 | |
travis-ci.org/samcv/MoarVM/builds/400602386 github.com/samcv/MoarVM/compare/d2...e415b13bc2 | |||
20:32
travis-ci left
20:36
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Samantha McVey 'Clang doesn't have a versioned binary so allow that' | 20:36 | |
travis-ci.org/samcv/MoarVM/builds/400605181 github.com/samcv/MoarVM/compare/b3...7118404699 | |||
20:36
travis-ci left
|
|||
MasterDuke | jnthn: is it intentional that not all the enum cases are handled in this switch? github.com/MoarVM/MoarVM/blob/mast...#L534-L539 | 20:45 | |
21:16
travis-ci joined
|
|||
travis-ci | MoarVM build errored. Samantha McVey 'Try adding llvm and clang to packages list' | 21:16 | |
travis-ci.org/samcv/MoarVM/builds/400619244 github.com/samcv/MoarVM/compare/4a...683f3963c8 | |||
21:16
travis-ci left
|
|||
jnthn | MasterDuke: Yes, not all of them have anything to mark; see github.com/MoarVM/MoarVM/blob/mast...uard.h#L72 | 21:24 | |
MasterDuke | jnthn: i assumed so, but clang warns about it. wonder if there's a way to mark that instance as intentional? | 21:28 | |
jnthn | Dunno. Guess that's what I get for using enums and not defines :P | 21:29 | |
MasterDuke | it also complains about a couple cases like `if (flags || g->facts[i][j].dead_writer || g->facts[i][j].writer && g->facts[i][j].writer->info->opcode == MVM_SSA_PHI) {`, where it wants parens around the && expression | 21:31 | |
any opposition to adding the parens in that case (and a couple similar) to silence the warning? | 21:32 | ||
jnthn | Not really, just don't expect me to wite them in the first place. :) | 21:34 | |
I consider it as obvious as + and * | |||
But I figure others don't. :) | |||
21:35
travis-ci joined
|
|||
travis-ci | MoarVM build failed. Samantha McVey 'Just try removing the lines' | 21:35 | |
travis-ci.org/samcv/MoarVM/builds/400624886 github.com/samcv/MoarVM/compare/55...a8d2efa417 | |||
21:35
travis-ci left
|
|||
MasterDuke | heh, cool | 21:35 | |
jnthn: also, did you see my question at colabti.org/irclogger/irclogger_log...07-04#l129 ? | 21:36 | ||
jnthn | MasterDuke: Yes, then promptly forgot. I set it up on a server I have and don't know why it stopped working. | 21:52 | |
So I guess I'd have to look at why, though it was also a total hack. | |||
MasterDuke | jnthn: you were using github.com/japhb/perl6-bench ? | 21:53 | |
jnthn | Yes | ||
MasterDuke | ah, then you'll need to update it | ||
21:54
dalek joined,
synopsebot_ joined,
p6lert joined,
Geth joined
|
|||
jnthn | Yeah, will see if I can find time look in the next couple of days | 21:55 | |
Geth | MoarVM: f93d47ebf8 | (Samantha McVey)++ | .travis.yml Use the llvm 5.0 toolchain deb line The non versioned url doesn't have llvm 5.0 |
||
21:57
SourceBaby joined
|
|||
Geth | MoarVM: 8733b8bdae | (Samantha McVey)++ | .travis.yml Get Travis working again by making sure clang is located right |
21:58 | |
MoarVM: MasterDuke17++ created pull request #895: Remove useless conditional |
|||
MoarVM: cc268bbcfd | MasterDuke17++ (committed using GitHub Web editor) | src/core/coerce.c Remove useless conditional `i` is an `MVMuint64`, so it will always be >= 0. |
22:02 | ||
MoarVM: 68abd3aaf9 | (Zoffix Znet)++ (committed using GitHub Web editor) | src/core/coerce.c Merge pull request #895 from MasterDuke17/patch-1 Remove useless conditional |
|||
22:03
Kaiepi left
22:20
travis-ci joined
|
|||
travis-ci | MoarVM build failed. Zoffix Znet 'Merge pull request #895 from MasterDuke17/patch-1 | 22:21 | |
travis-ci.org/MoarVM/MoarVM/builds/400638595 github.com/MoarVM/MoarVM/compare/8...abd3aaf968 | |||
22:21
travis-ci left
|
|||
jnthn | hmm, --no-jit ain't happy | 22:26 | |
Guess I'll have a look into that tomorrow | 22:30 | ||
22:30
Kaiepi joined
22:36
brrt joined
|
|||
brrt | MVM_SPESH_NODELAY + MVM_SPESH_BLOCKING + optimize=0 makes perl6 a bit slower | 22:37 | |
anyway, I have a fix for the issues the native type JIT issues | 22:38 | ||
it was load sizes :-) | |||
jnthn | Hurrah :) | ||
brrt++ | |||
I suspect the --no-jit mode breakage is one of my recent changes, though I've no idea which one. Will have to hunt that tmorrow. | 22:39 | ||
I thought I might have figured out a quick win for deopt stuff earlier today, but it turns out not. | 22:40 | ||
Well, actually, I did realize a few things | |||
Geth | MoarVM: 434e4950a7 | (Ben Davies)++ (committed by Bart Wiegmans) | 2 files Implement JIT templates for 10 ops Adds JIT support for the following ops: - isinvokable - getlexreldyn - objprimunsigned - scgethandle ... (9 more lines) |
||
brrt | what did you learn? | ||
jnthn | That you can't just use "where do we have things that actually deopt" before doing dead instruction elimination to decide what to keep | ||
Since if we deleted entire basic blocks, the instructions doing the using of stuff will be long gone | 22:42 | ||
But we delete basic blocks early to make PHI nodes shrink to, if we're lucky, a non-merge | |||
And we'd not want to lose that | 22:43 | ||
brrt | uhuh | ||
jnthn | It's not yet clear to me if the approach is entirely flawed or if it is salvageable by keeping information around about what deleted basic blocks used | ||
brrt | hmmm | 22:44 | |
jnthn | I did realize along the way that we should probably separate out "kept alive for deopt" and out from usages though. | ||
brrt | i'm a bit too tired to give useful commentary :-) | 22:45 | |
but i guess that makes sense | |||
jnthn | For one so we can understand that's what's going on in the spesh log, but also it means that if we optimize something to the point where it has zero possible points of deopt, we can just toss them all | ||
And for deopt-free inlinees, we can drop our reluctance to go optimizing those too | 22:46 | ||
brrt | uhuh | ||
jnthn | Also, I'll probably need to re-work the `set` instruction elimination at some point soon too | ||
It screws the SSA form utterly | |||
brrt night | 22:47 | ||
jnthn | 'night o/ | 22:49 | |
22:52
brrt left
|
|||
samcv | hmm --no-jit is broken in travis | 22:52 | |
anyway, time to sleep | |||
jnthn | samcv: Yeah, I'm suspsecting mea culpa, but...yes, sleep indeed :) | 22:54 | |
MasterDuke | jnthn: fwiw, some gdb and valgrind output of the segfault with --no-jit gist.github.com/MasterDuke17/7fd92...4ffb7bc036 | ||
jnthn | That doesn't look fun | 23:00 |