Skip to content

Commit 71cfcd5

Browse files
Merge pull request #70 from Shopify/mvh-ruby-modgc
Build Ruby with ModGC enabled
2 parents cedaa31 + 56b566f commit 71cfcd5

2 files changed

Lines changed: 29 additions & 0 deletions

File tree

rubies/4.0.1-modgc

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Ruby 4.0.1 with modular GC support
2+
# Built from Shopify/ruby fork at the commit corresponding to upstream ruby/ruby v4.0.1 tag.
3+
# Upstream tag: https://github.com/ruby/ruby/releases/tag/v4.0.1
4+
# Commit: e04267a14b1a5dea2d2c368e48d41bd3db441f4f
5+
#
6+
# This build enables Ruby's experimental modular GC feature, allowing
7+
# alternative GC implementations to be loaded at runtime.
8+
#
9+
# MODULAR GC USAGE:
10+
# Ruby is usable as normal in this build, it will use the default Ruby garbage
11+
# collector and behave as expected.
12+
#
13+
# To use a modular GC, you need a GC compiled as a shared object with the name
14+
# librubygc.<name>.so in the modular GC directory ($PREFIX/lib/ruby/gc/).
15+
#
16+
# Load it at runtime with:
17+
# RUBY_GC_LIBRARY=<name> ruby
18+
#
19+
20+
build_package_modular_gc_install() {
21+
log_info "Building modular GC (default)..."
22+
capture_command make install-modular-gc MODULAR_GC=default
23+
}
24+
25+
package_option ruby configure --with-modular-gc="$PREFIX_PATH/lib/ruby/gc"
26+
27+
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
28+
install_git "ruby-4.0.1-modgc" "https://github.com/Shopify/ruby.git" "v4.0.1" 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+
(?:\-modgc)? # match -modgc for modular GC builds
2223
\z
2324
}x,
2425
v,

0 commit comments

Comments
 (0)