Skip to content

Conversation

@udesou
Copy link
Contributor

@udesou udesou commented Jan 28, 2025

This PR enables building the mmtk-julia binding with different configurations other than non-moving Immix. While it was already possible to do so when building from source, this should enable using the binaries generated via the latest version from BinaryBuilder (JuliaPackaging/Yggdrasil#10357).
I have also decoupled MMTk from the code, such that it should be an option for a third-party heap. This should be set using WITH_THIRD_PARTY_GC=mmtk (in Make.user or as an environment variable).

The different configurations of MMTk can be achieved by setting the variables below (set in Make.user, for example):

Variable
MMTK_PLAN Immix StickyImmix
MMTK_MOVING 0 1
MMTK_BUILD release debug

Note that the actual code to support building with moving and sticky immix will be added in future PRs.
I've also added some preliminary documentation in doc/gc.md about building Julia with MMTk, including a link to the binding and an small FAQ on what to do if you break the build of Julia+MMTk.

@udesou udesou added the GC Garbage collector label Jan 28, 2025
@udesou udesou force-pushed the feature/adding-build-flags branch 2 times, most recently from 5ec92d1 to 12e2954 Compare January 28, 2025 05:10
@udesou udesou requested review from d-netto and qinsoon January 28, 2025 05:12
@udesou udesou force-pushed the feature/adding-build-flags branch from 12e2954 to 47cf1c5 Compare January 28, 2025 05:18
@udesou udesou changed the title Allow building Julia with variations of the binding [mmtk-julia] Allow building Julia with variations of the binding Jan 28, 2025
@udesou udesou added the GC: MMTK MMTK GC integration label Jan 28, 2025
@udesou udesou force-pushed the feature/adding-build-flags branch 3 times, most recently from cab6d06 to 9f53c2c Compare January 28, 2025 07:14
@udesou udesou force-pushed the feature/adding-build-flags branch 11 times, most recently from 45f710e to a0f5c24 Compare February 4, 2025 01:22
@d-netto d-netto force-pushed the feature/adding-build-flags branch 2 times, most recently from 7e309a4 to d7bc72c Compare February 4, 2025 18:56
@udesou udesou force-pushed the feature/adding-build-flags branch 2 times, most recently from d5b9db2 to f890322 Compare February 9, 2025 22:46
@udesou udesou force-pushed the feature/adding-build-flags branch 2 times, most recently from 1870113 to 51a7abc Compare February 12, 2025 00:18
@udesou udesou force-pushed the feature/adding-build-flags branch 5 times, most recently from 9aac610 to 20d4373 Compare February 18, 2025 23:22
@udesou udesou force-pushed the feature/adding-build-flags branch 4 times, most recently from 2ece67b to 120a7bf Compare February 20, 2025 22:30
Copy link
Member

@d-netto d-netto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Minor comment about error handling when the third-party-GC flag is set to something other than mmtk.

@udesou udesou force-pushed the feature/adding-build-flags branch 2 times, most recently from 4d08a18 to 496ebf1 Compare February 23, 2025 22:58
@udesou udesou force-pushed the feature/adding-build-flags branch 5 times, most recently from 081dccc to bada14e Compare February 24, 2025 23:39
@udesou udesou force-pushed the feature/adding-build-flags branch from bada14e to c1cd6cc Compare February 25, 2025 03:09
@d-netto d-netto merged commit 5a24982 into JuliaLang:master Feb 25, 2025
7 checks passed
kodiakhq bot pushed a commit to JuliaCI/julia-buildkite that referenced this pull request Feb 27, 2025
Adding `WITH_THIRD_PARTY_GC=mmtk` to the MMTk CI to fix it after we
merged JuliaLang/julia#57176. Without that,
Julia will keep using the stock GC, even though `MMTK_PLAN` has been
set.

---------

Co-authored-by: Dilum Aluthge <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

GC: MMTK MMTK GC integration GC Garbage collector

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants