-
Notifications
You must be signed in to change notification settings - Fork 9
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
'Called is_live() on 0, which maps to an empty space' in weak ref processing #176
Comments
There are two issues here:
The simple solution is to pin both: the weak ref, and the value they refer to. See mmtk/julia@51ba2a6. |
There are many such instances in ART and the solution they have/I have co-opted is to visit these locations at the end of the transitive closure but before the "release" and fixup all pointers since we have complete information at that time. I use the |
This PR adds a few more pining for types in the native heap, and exposes globally rooted symbols so we can trace them in the MMTk binding. With this PR, we can run moving Immix without transitively pinning `global_roots_table`. See mmtk/mmtk-julia#170. * Add `jl_gc_pin` * Use `jl_gc_pin` to pin `BigFloat` for MPFR * Rename `PTR_PIN` to `OBJ_PIN`. Additionally add `PTR_PIN` which handles cases for internal pointers. * Pin objects that are used as key in `jl_codectx_t.global_targets` * Pin objects that are stored in `jl_codectx_t.PhiNodes` * Pin objects that are referred to by `jl_cgval_t` * Disable GC before doing perm alloc in `jl_get_layout` (see mmtk/mmtk-julia#172) * Pin weak references and the referee (see mmtk/mmtk-julia#176) * Pin objects that are used in `libuv`'s handle. * Pin `jl_task_t.completion_future` (see mmtk/mmtk-julia#179) * Pin all `jl_codeinst_t` objects. * Pin all `jl_method_instance_t` objects. * Pin all `jl_module_t` objects. * Pin all `jl_task_t` objects. * Expose some `JL_GLOBALLY_ROOTED` symbols, such as `newly_inferred`, `task_done_hook_func`.
Saw the following error in #175.
The text was updated successfully, but these errors were encountered: