-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Duplicate deopt #1521
Comments
Here is the most minimal test case I have for
|
So the good news from
|
Good news: we can find a stand-alone test (without harness.lua et al.) that (a) is much smaller (b) triggers the problem (c) does so on the first execution of the only traced loop. Here's my hand-reduced version: a = {}
for i = 0, 47 do
a[i] = {}
for j = 0, #a do
x = a[i]
end
end To get this to bork we need to turn serialised compilation on:
|
This is almost certainly a false bug: loop peeling doesn't jump properly if |
Confirmed that this "bug" is actually the result of a different bug which is fixed in #1523. Closing this one. |
With yk and yklua compiled in debug mode I can deterministically see this with the
bounce
benchmark:It looks like the recently added
assert
has caught something nasty!Interestingly,
YKD_OPT=0
seems necessary for this bug to manifest deterministically. It's difficult to say for sure why, but it is plausible that is because the optimiser is removing the guard which causes the crash above. In release mode, I do fairly predictably get a crash withYKD_OPT=0
but (a) the crash manifests in a Lua backtrace (b) it's not the same backtrace each time. So probably we should stick to debug mode when fixing this one.The text was updated successfully, but these errors were encountered: