diff --git a/rubies/4.0.1-modgc b/rubies/4.0.1-modgc new file mode 100644 index 0000000..1ddc6e5 --- /dev/null +++ b/rubies/4.0.1-modgc @@ -0,0 +1,28 @@ +# Ruby 4.0.1 with modular GC support +# Built from Shopify/ruby fork at the commit corresponding to upstream ruby/ruby v4.0.1 tag. +# Upstream tag: https://github.com/ruby/ruby/releases/tag/v4.0.1 +# Commit: e04267a14b1a5dea2d2c368e48d41bd3db441f4f +# +# This build enables Ruby's experimental modular GC feature, allowing +# alternative GC implementations to be loaded at runtime. +# +# MODULAR GC USAGE: +# Ruby is usable as normal in this build, it will use the default Ruby garbage +# collector and behave as expected. +# +# To use a modular GC, you need a GC compiled as a shared object with the name +# librubygc..so in the modular GC directory ($PREFIX/lib/ruby/gc/). +# +# Load it at runtime with: +# RUBY_GC_LIBRARY= ruby +# + +build_package_modular_gc_install() { + log_info "Building modular GC (default)..." + capture_command make install-modular-gc MODULAR_GC=default +} + +package_option ruby configure --with-modular-gc="$PREFIX_PATH/lib/ruby/gc" + +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 +install_git "ruby-4.0.1-modgc" "https://github.com/Shopify/ruby.git" "v4.0.1" autoconf enable_shared standard modular_gc_install diff --git a/test/shopify_ruby_definitions/test_ruby_versions.rb b/test/shopify_ruby_definitions/test_ruby_versions.rb index f232129..708a908 100644 --- a/test/shopify_ruby_definitions/test_ruby_versions.rb +++ b/test/shopify_ruby_definitions/test_ruby_versions.rb @@ -19,6 +19,7 @@ def test_ALL_VERSIONS (?:\-preview\d*)? # match -preview optionally # preview tag must be before the pshopify tag (?:\-pshopify\d*)? # match -pshopify optionally + (?:\-modgc)? # match -modgc for modular GC builds \z }x, v,