-
-
Notifications
You must be signed in to change notification settings - Fork 5.6k
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
Also serialize dt->instance. Fixes #5129 #5149
Conversation
I don't think this is the full fix. What we want to do is iterate over the |
I can't think of any other instance where this might happen. The reason I didn't instead iterate of the |
I guess that is handled by |
Correct. |
Updated to remove unnecessary changes. |
I actually want to go with Jeff's idea in the long term. Anything in jl_value_to_llvm was JIT into the code somewhere, so we should make sure it has a reference. However, as Jeff pointed out, this will require special handing of jl_binding_t objects, but that's needs to be fixed soon anyways. (It may also require some special handling of function pointers, but that's not really an issue either). For now however, this is probably fine.
Those are actually already gone. My last commit before the branch was merged moved all of the serialization of global variable stuff to the end of the file. |
Wouldn't the better solution there be to cut out the unreferenced IR rather than including unreferenced julia objects? |
Third time's the charm. |
It doesn't look like you actually return the placeholder value anywhere. |
dt->instance is one of the jl_value_t*'s that can occur purely in code and not anywhere else in the AST. All other instances of where this happends are captured by li->roots, since they need GC roots that way, but this instance is rooted by the owning type.
Doh! Fixed. |
Also serialize dt->instance. Fixes #5129
dt->instance is one of the jl_value_t*'s that can occur purely in code
and not anywhere else in the AST. All other instances of where this
happends are captured by li->roots, since they need GC roots that way,
but this instance is rooted by the owning type.
@JeffBezanson @vtjnash