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.inferredone 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.