-
Notifications
You must be signed in to change notification settings - Fork 51
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
is surprising. "0 direct children" seems to suggest that nothing "needed" it, and a test a little higher up in the file https://github.com/timholy/SnoopCompile.jl/blob/a8f0490237f0c26ac50d35baca38f1298f532b80/test/snoop_inference.jl#L858 explicitly checks that there is a valid compiled instance. So I can't understand why this method is being recompiled. It is being triggered by the https://github.com/timholy/SnoopCompile.jl/blob/teh/debug_1.11/test/snoop_inference.jl#L875 line (if you comment it out, 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 JuliaDebug/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 JuliaDebug/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 JuliaDebug/SnoopCompile.jl#413 (comment)
No description provided.