Skip to content

Commit 92452b1

Browse files
Build Ruby with ModGC enabled
1 parent cedaa31 commit 92452b1

2 files changed

Lines changed: 27 additions & 0 deletions

File tree

rubies/4.0.0-dev-modgc

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Ruby 4.0 development build with modular GC support
2+
#
3+
# This build enables Ruby's experimental modular GC feature, allowing
4+
# alternative GC implementations to be loaded at runtime.
5+
#
6+
# MODULAR GC USAGE:
7+
# Ruby is usable as normal in this build, it will use the default Ruby garbage
8+
# collector and behave as expected
9+
#
10+
# To use a modular GC, you will require a GC compiled as a shared object with
11+
# the name librubygc.name.so to exist in the $MODULAR_GC directory.
12+
#
13+
# It can then be loaded with
14+
#
15+
# RUBY_GC_LIBRARY=name ruby
16+
#
17+
# Post-install step to build the default modular GC library
18+
build_package_modular_gc_install() {
19+
log_info "Building modular GC (default)..."
20+
capture_command make install-modular-gc MODULAR_GC=default
21+
}
22+
23+
package_option ruby configure --with-modular-gc="$PREFIX_PATH/lib/ruby/gc"
24+
25+
install_package "openssl-3.4.0" "https://github.com/openssl/openssl/releases/download/openssl-3.4.0/openssl-3.4.0.tar.gz#e15dda82fe2fe8139dc2ac21a36d4ca01d5313c75f99f46c4e8a27571b5486cd" openssl --if needs_openssl:1.0.2-3.x.x
26+
install_git "ruby-4.0.0-dev-modgc" "https://github.com/Shopify/ruby.git" "master" autoconf enable_shared standard modular_gc_install

test/shopify_ruby_definitions/test_ruby_versions.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ def test_ALL_VERSIONS
1919
(?:\-preview\d*)? # match -preview optionally
2020
# preview tag must be before the pshopify tag
2121
(?:\-pshopify\d*)? # match -pshopify optionally
22+
(?:\-dev\-modgc)? # match -dev-modgc for modular GC dev builds
2223
\z
2324
}x,
2425
v,

0 commit comments

Comments
 (0)