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 the binding to support MMTk with upstream Julia #180

Merged
merged 32 commits into from
Oct 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
ea27258
Changes to make the binding compatible with the latest version of Jul…
udesou Sep 2, 2024
f19ffd6
Update julia_repo and julia_version
udesou Sep 2, 2024
63e6b50
Add check so that we don't try to scan a null object
udesou Sep 2, 2024
641d748
Skip test about heap snapshot
udesou Sep 3, 2024
aeb224b
Updating julia_version
udesou Sep 23, 2024
d24f52e
Adding changes to support getter for jl_gc_disable_counter and using …
udesou Sep 25, 2024
7873163
Updating julia_version
udesou Sep 25, 2024
8f0ceed
Updating julia_version
udesou Sep 25, 2024
552883a
Updating rust version to 1.77.0
udesou Oct 8, 2024
7793910
Merging refactor-pre-mmtk branch from julia and reflecting those chan…
udesou Oct 9, 2024
56b2542
Updating julia_version
udesou Oct 9, 2024
a41dadd
Only run tests for non-moving immix
udesou Oct 10, 2024
91d43ec
Update julia_version and ci.yml
udesou Oct 10, 2024
7690691
Updating julia_version
udesou Oct 10, 2024
da9ff0d
Skipping tests that check the reasons for a full sweep and are specif…
udesou Oct 10, 2024
61e1cfd
Adding comments on new functions
udesou Oct 13, 2024
60c3d58
Removing julia folder and using build.rs to generate bindings
udesou Oct 16, 2024
4791a62
This file will be generated by build.rs
udesou Oct 16, 2024
9798604
Updating julia_version
udesou Oct 16, 2024
48c82a0
Adding build.rs
udesou Oct 16, 2024
10fbc83
Exporting JULIA_PATH
udesou Oct 16, 2024
0862d06
Adding architecture to see if it removes bindgen issues
udesou Oct 16, 2024
b1fd11e
One more try with --target=x86_64-pc-linux-gnu
udesou Oct 16, 2024
ee4911e
Trying to set up tmate session to debug bingen issue
udesou Oct 16, 2024
b0b6d7e
Typo
udesou Oct 16, 2024
8888772
Adding tmate session before building Julia?
udesou Oct 16, 2024
efbd912
Removing with sudo false
udesou Oct 16, 2024
d6c6bbe
Disable action-tmate and rm llvm-* before building mmtk (?)
udesou Oct 17, 2024
2ea5669
Trying again
udesou Oct 17, 2024
7affec8
Applying cargo fmt
udesou Oct 17, 2024
480834e
Remove commented code
udesou Oct 17, 2024
3a397c9
Updating emails
udesou Oct 18, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/scripts/ci-test-patching.sh
Original file line number Diff line number Diff line change
Expand Up @@ -38,11 +38,17 @@ declare -a tests_to_skip=(
'@test !live_bytes_has_grown_too_much' "$JULIA_PATH/test/gc.jl"
'@test any(page_utilization .> 0)' "$JULIA_PATH/test/gc.jl"

# Tests that check the reasons for a full sweep and are specific to stock Julia
'@test reasons\[:FULL_SWEEP_REASON_FORCED_FULL_SWEEP\] >= 1' "$JULIA_PATH/test/gc.jl"
'@test keys(reasons) == Set(Base.FULL_SWEEP_REASONS)' "$JULIA_PATH/test/gc.jl"

# Allocation profiler tests that fail when we inline fastpath allocation
'@test length(\[a for a in prof.allocs if a.type == MyType\]) >= 1' "$JULIA_PATH/stdlib/Profile/test/allocs.jl"
'@test length(prof.allocs) >= 1' "$JULIA_PATH/stdlib/Profile/test/allocs.jl"
'@test length(filter(a->a.type <: type, profile.allocs)) >= NUM_TASKS' "$JULIA_PATH/stdlib/Profile/test/allocs.jl"


# Test that expects information from heap snapshot which is currently not available in MMTk
'@test contains(sshot, "redact_this")' "$JULIA_PATH/stdlib/Profile/test/runtests.jl"

# This test checks GC logging
'@test occursin("GC: pause", read(tmppath, String))' "$JULIA_PATH/test/misc.jl"
Expand Down
2 changes: 1 addition & 1 deletion .github/scripts/common.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
BINDING_PATH=$(realpath $(dirname "$0"))/../..
JULIA_PATH=$BINDING_PATH/vm/julia
export JULIA_PATH=$BINDING_PATH/vm/julia

RUSTUP_TOOLCHAIN=`cat $BINDING_PATH/mmtk/rust-toolchain`
JULIA_TEST_ARGS='--check-bounds=yes --startup-file=no --depwarn=error'
Expand Down
12 changes: 12 additions & 0 deletions .github/workflows/binding-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ jobs:
run: |
./.github/scripts/ci-checkout.sh
./.github/scripts/ci-setup.sh
# removing these as they cause a conflict within bindgen
sudo rm -rf /usr/lib/llvm-14
sudo rm -rf /usr/lib/llvm-13
- name: Build Julia (Debug)
run: |
./.github/scripts/ci-build.sh debug ${{ inputs.gc_plan }} ${{ inputs.moving }}
Expand All @@ -35,6 +38,9 @@ jobs:
run: |
./.github/scripts/ci-checkout.sh
./.github/scripts/ci-setup.sh
# removing these as they cause a conflict within bindgen
sudo rm -rf /usr/lib/llvm-14
sudo rm -rf /usr/lib/llvm-13
- name: Patching unsupported tests
run: |
./.github/scripts/ci-test-patching.sh
Expand All @@ -54,6 +60,9 @@ jobs:
run: |
./.github/scripts/ci-checkout.sh
./.github/scripts/ci-setup.sh
# removing these as they cause a conflict within bindgen
sudo rm -rf /usr/lib/llvm-14
sudo rm -rf /usr/lib/llvm-13
- name: Patching unsupported tests
run: |
./.github/scripts/ci-test-patching.sh
Expand All @@ -73,6 +82,9 @@ jobs:
run: |
./.github/scripts/ci-checkout.sh
./.github/scripts/ci-setup.sh
# removing these as they cause a conflict within bindgen
sudo rm -rf /usr/lib/llvm-14
sudo rm -rf /usr/lib/llvm-13
- name: Build Julia (Release)
run: |
./.github/scripts/ci-build.sh release ${{ inputs.gc_plan }} ${{ inputs.moving }}
Expand Down
5 changes: 3 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ on:
- master
- v1.8.2\+RAI
- v1.9.2\+RAI
- upstream-ready/immix

concurrency:
# Cancels pending runs when a PR gets updated.
Expand All @@ -17,8 +18,8 @@ jobs:
strategy:
fail-fast: false
matrix:
gc_plan: [Immix, StickyImmix]
moving: [Default, Non_Moving]
gc_plan: [Immix]
moving: [Non_Moving]
uses: ./.github/workflows/binding-tests.yml
with:
gc_plan: ${{ matrix.gc_plan }}
Expand Down
Loading
Loading