Skip to content
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

Updating our dev branches #65

Closed
wants to merge 144 commits into from
Closed

Conversation

udesou
Copy link

@udesou udesou commented Oct 11, 2024

This PR updates our dev branch to keep it on track with upstream (including the changes that we want to add from upstream-ready/immix since it is already up to date with upstream).

udesou and others added 30 commits February 1, 2023 10:56
This PR updates the binding to the latest Julia master (up to this commit: 134f3e7).
In preparation for upstreaming these changes.

This ended up being a pretty large set of changes, but I think most of this would have been necessary for the upstream PR anyway.

Summary of the changes:
- Build-related, to more closely match how Julia adds optional libraries. More has to be done here, for automation and for BinaryBuilder.
- Reduced the `#ifdef MMTK_GC`s.
- Documented the GC interface in `gc-interface.h`.
- Moved code that is common to Julia's GC and MMTk into `gc-common.c`.
- Exclude `gc-debug.c` and `gc-pages.c` entirely for MMTk.
- Reorganized `gc.h` into 3 parts: common, MMTk-specific, and Julia GC-specific.
- Reorganized changes to `julia.h` and `julia_internal.h`.
- Removed `#ifdef MMTK_GC` in `llvm-pass-helpers.cpp`.

We can now start working on resolving the TODOs.
* Implement MMTk write barrier
* Check which barrier to use in codegen
This PR implements the write barrier fastpath for sticky immix in both the runtime write barrier and the codegen write barrier. There are also a few other changes: 1. pass collection type to MMTk's `handle_user_collection_request`, 2. call MMTk in `jl_gc_notify_image_alloc`.
Copies libmmtk_julia.so from the source directory (`mmtk-julia/mmtk/target/debug/libmmtk_julia.so`) to `build/usr/lib`.
This PR embeds the MMTk mutator struct in `_jl_tls_states_t`, and also adds `jl_deinit_thread_heap` to allow a proper destruction of the mutator struct.
This PR changes the implementation of malloc methods for MMTk. We no longer use malloc and counted malloc methods from MMTk for those. Instead, we maintain a global counter for the size, and report the size to MMTk.
This PR moves code about registering and running finalizers to `gc-common`.
udesou added 29 commits October 9, 2024 09:47
@udesou udesou closed this Oct 11, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants