-
Notifications
You must be signed in to change notification settings - Fork 48
Fix test failures on 1.11 #413
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
Conversation
I now have a much clearer understanding of what is going wrong, but I still lack an understanding of why. In case later changes fix it, the report in question is https://github.com/timholy/SnoopCompile.jl/actions/runs/13989097828/job/39168795257?pr=413 Here's the logic: https://github.com/timholy/SnoopCompile.jl/blob/teh/debug_1.11/test/testmodules/Stale/StaleC/src/StaleC.jl should "heal" invalidations in the SnoopCompile.jl/test/snoop_inference.jl Lines 873 to 877 in a8f0490
is surprising. "0 direct children" seems to suggest that nothing "needed" it, and a test a little higher up in the file SnoopCompile.jl/test/snoop_inference.jl Line 858 in a8f0490
use_stale isn't recompiled).
Locally, this happens only with |
Summary of a discussion on slack: this is a consequence of avoiding cached native code:
in conjunction with the more recent (Julia 1.11.3 and Julia 1.11.4) removal of the inferred code: The plan is to revert the latter on Julia 1.11, hopefully landing in Julia 1.11.5. Meanwhile, I'll edit the test to compensate. The signature: in mius = only(methodinstances(StaleA.use_stale))
cius = mius.cache
@test cius.max_world == typemax(UInt)
@show cius.specptr cius.invoke cius.inferred one gets
when coverage is on. (When coverage is off, those pointers are non-NULL.) |
Mostly, this compensates for a bug present in Julia 1.11.3 and 1.11.4. xref #413 (comment)
Ah, lovely. |
…)" This reverts commit bdf8219. Rationale: when coverage is on, both the native code and the inferred code might be eliminated, a complete loss of all precompilation results. There are intentions to adopt a new strategy for Julia 1.12, but in the meantime we should revert this change since it is "just" a sysimg size reduction. xref timholy/SnoopCompile.jl#413 (comment)
…eless inferred code" (#57864) This reverts commit bdf8219, from #56749 **Note that this PR is made against `backports-release-1.11`.** Rationale: when coverage is on, both the native code and the inferred code might be eliminated, a complete loss of all precompilation results. There are intentions to adopt a new strategy for Julia 1.12, but in the meantime we should revert this change since it is "just" a sysimg size reduction. Affected Julia versions: 1.11.3, 1.11.4 xref timholy/SnoopCompile.jl#413 (comment)
…eless inferred code" (#57864) This reverts commit bdf8219, from #56749 **Note that this PR is made against `backports-release-1.11`.** Rationale: when coverage is on, both the native code and the inferred code might be eliminated, a complete loss of all precompilation results. There are intentions to adopt a new strategy for Julia 1.12, but in the meantime we should revert this change since it is "just" a sysimg size reduction. Affected Julia versions: 1.11.3, 1.11.4 xref timholy/SnoopCompile.jl#413 (comment)
No description provided.