Skip to content

Commit 91b3eb8

Browse files
Merge pull request #71 from Shopify/nc/ruby-3.4-modgc
Enable Modular GC on v3.4.7
2 parents 71cfcd5 + fadb489 commit 91b3eb8

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

rubies/3.4.7-modgc

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
# Build a Ruby version with modular GC support
2+
# Built from Shopify/ruby fork at the commit corresponding to upstream ruby/ruby v3.4.7 tag.
3+
# Upstream tag: https://github.com/ruby/ruby/releases/tag/
4+
# Commit: 7482835d0b5c9f55662fb7c6586f456354e2b66e
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.1.4" "https://www.openssl.org/source/openssl-3.1.4.tar.gz#840af5366ab9b522bde525826be3ef0fb0af81c6a9ebd84caa600fea1731eee3" openssl --if needs_openssl:1.0.2-3.x.x
28+
install_git "ruby-3.4.7-modgc" "https://github.com/Shopify/ruby.git" "v3.4.7-pshopify1" autoconf enable_shared standard modular_gc_install

0 commit comments

Comments
 (0)