-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
[mmtk-julia] Allow building Julia with variations of the binding #57176
base: master
Are you sure you want to change the base?
Conversation
5ec92d1
to
12e2954
Compare
12e2954
to
47cf1c5
Compare
cab6d06
to
9f53c2c
Compare
45f710e
to
a0f5c24
Compare
7e309a4
to
d7bc72c
Compare
d5b9db2
to
f890322
Compare
1870113
to
51a7abc
Compare
9aac610
to
20d4373
Compare
1673f57
to
2ece67b
Compare
2ece67b
to
120a7bf
Compare
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.
LGTM. Minor comment about error handling when the third-party-GC flag is set to something other than mmtk
.
ifeq (${USE_THIRD_PARTY_GC},mmtk) | ||
JCXXFLAGS += -DWITH_THIRD_PARTY_HEAP=1 | ||
JCFLAGS += -DWITH_THIRD_PARTY_HEAP=1 | ||
|
||
# Must specify a supported MMTk Plan: Immix or StickyImmix | ||
ifeq (${MMTK_PLAN},Immix) | ||
JCXXFLAGS += -DMMTK_PLAN_IMMIX | ||
JCFLAGS += -DMMTK_PLAN_IMMIX | ||
else ifeq (${MMTK_PLAN},StickyImmix) | ||
JCXXFLAGS += -DMMTK_PLAN_STICKYIMMIX | ||
JCFLAGS += -DMMTK_PLAN_STICKYIMMIX | ||
else | ||
$(error "Unsupported MMTk plan: $(MMTK_PLAN)") | ||
$(error "Unsupported MMTk plan: $(MMTK_PLAN). Supported plans: Immix or StickyImmix.") | ||
endif |
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.
Perhaps have an else branch in which we throw an "unsupported" error if someone sets the third-party-GC flag to something else.
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
(inMake.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):MMTK_PLAN
MMTK_MOVING
MMTK_BUILD
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.