-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
bpart: failed "edge" invalidation #58336
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
Co-authored-by: Jameson Nash <[email protected]>
I took it off the milestone and slapped a "merge me" on it, but once merged we should make a milestone item to turn those |
@@ -956,6 +956,17 @@ precompile_test_harness("code caching") do dir | |||
use_stale(c) = stale(c[1]) + not_stale("hello") | |||
build_stale(x) = use_stale(Any[x]) | |||
|
|||
# bindings |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
tests for this code path are mostly in rebinding.jl. I don't really mind it being here, but I don't fully know yet what distinguishes this case from the ones already tested
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks, I hadn't found that yet. Likewise I'd have no objection to moving these tests to rebinding.jl.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
One potential difference: from a quick scan, the tests in rebinding.jl seem to define the function in the same module in which it's precompiled. This test defines StaleA.fib()
but defers its precompilation until StaleB
, and yanks the rug out in between loading those two modules.
This adds a test for an invalidation failure when `consts` are redefined. The failure occurs only in "edge" mode, i.e., due to the separation of precompilation from the user's running session.
This adds a test for an invalidation failure when `consts` are redefined. The failure occurs only in "edge" mode, i.e., due to the separation of precompilation from the user's running session. (cherry picked from commit c13ea2b)
This adds a test for an invalidation failure when
consts
are redefined. The failure occurs only in "edge" mode, i.e., due to the separation of precompilation from the user's running session.The corresponding "immediate" sequence is the following (which seems to work properly):
But it fails when the precompilation of
fib
happens in a package that gets loaded aftergib
is redefined in the user's session.