shopify-ruby-definitions 1.1.0 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c5f6825b0f8833a808ab5d6c2b8df316d9be247985ef0fb1876b9f83a161c065
4
- data.tar.gz: febe64f1bebdbd659c6f29c25d8439a10718b3db078d2d1f0967851621328cd9
3
+ metadata.gz: 36ec1c53d777075c663dee26571193af1f79474d6abe2d5c84003cb20cca4e5c
4
+ data.tar.gz: 834e8078feac3d9decd89f216874127e8d24843b554bf5706a9f3b1f2304e750
5
5
  SHA512:
6
- metadata.gz: 3fb2548ecd2321482037209b974e9836ba7956d133c795a12186359cf71c432ab1ec7e4bd8d576647e76d3cc080ad78d361fd505a61c96e4f8ac1b020f733456
7
- data.tar.gz: 8d585b10b92f799af2304d4e08491735177a81a38f3ee33e4b83f733813bae5ac759fd1a699eb25d361c4d1f3b31ab8379ea5c706ca310b5d333934497acbc3f
6
+ metadata.gz: 6145d0b61aef565384da8873fa0b43176ace73272b74e21285e56f0eb0901adf1cf7d56bce63494ca542becf794982054bbc2fa5812ee9f880bd1524351be0ad
7
+ data.tar.gz: b12d96074850b97d920f062dce7956045e6404ab1e61df86889ac44907f711b4ac2d2d84c95f1c291752c4898edf69dcdf7c13482de91803d4efcb6f5de518c9
data/LICENSE.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  The MIT License (MIT)
2
2
 
3
- Copyright (c) 2023 Peter Zhu
3
+ Copyright (c) 2023 Shopify Inc.
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy
6
6
  of this software and associated documentation files (the "Software"), to deal
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  # shopify-ruby-definitions
2
2
 
3
3
  This repository contains [ruby-build](https://github.com/rbenv/ruby-build/) definitions of Rubies we use at Shopify.
4
- These builds are API complient with release Rubies, but with additional backports for bugfixes and performance.
4
+ These builds are API compliant with release Rubies, but with additional backports for bugfixes and performance.
5
5
 
6
6
  ## rbenv integration
7
7
 
@@ -44,3 +44,10 @@ If you are using another ruby version manager or no manager at all:
44
44
  ```bash
45
45
  $ shopify-ruby build 3.2.2-pshopify4 ~/.rubies/versions/3.2.2
46
46
  ```
47
+
48
+ 5. Resolve a less specific version to one of these definitions
49
+ ```bash
50
+ $ shopify-ruby resolve 3.2
51
+ $ shopify-ruby resolve 3.2
52
+ 3.2.2-pshopify4
53
+ ```
data/exe/shopify-ruby CHANGED
@@ -9,6 +9,8 @@ definitions = [
9
9
  ].compact.join(":")
10
10
 
11
11
  case ARGV.shift
12
+ when "resolve"
13
+ puts ShopifyRubyDefinitions.resolve_version(ARGV.first)
12
14
  when "versions"
13
15
  puts ShopifyRubyDefinitions::RubyVersions::ALL_VERSIONS
14
16
  when "build"
@@ -17,7 +19,8 @@ when "env"
17
19
  puts %{export RUBY_BUILD_DEFINITIONS="#{definitions}"}
18
20
  else
19
21
  $stderr.puts <<~USAGE
20
- Usage: shopify-ruby list
22
+ Usage: shopify-ruby versions
23
+ shopify-ruby resolve <version>
21
24
  shopify-ruby build [-kpv] <definition> <prefix>
22
25
  shopify-ruby env
23
26
  USAGE
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ShopifyRubyDefinitions
4
- VERSION = "1.1.0"
4
+ VERSION = "1.3.0"
5
5
  end
@@ -0,0 +1,44 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify10
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+ # @peterzhu2118 Store initial slots per size pool https://github.com/ruby/ruby/pull/8116
35
+ # @k0kubun YJIT: Implement throw instruction https://github.com/ruby/ruby/pull/7491
36
+ # @k0kubun YJIT: Fallback send instructions to vm_sendish https://github.com/ruby/ruby/pull/8106
37
+ # @k0kubun YJIT: Support entry for multiple PCs per ISEQ https://github.com/ruby/ruby/pull/7535
38
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for send https://github.com/ruby/ruby/pull/8159
39
+ # @k0kubun YJIT: Use dynamic dispatch for megamorphic send https://github.com/ruby/ruby/pull/8125
40
+ # @k0kubun YJIT: Compile exception handlers https://github.com/ruby/ruby/pull/8171
41
+ # @k0kubun YJIT: Introduce RubyVM::YJIT.stats_string https://github.com/ruby/ruby/pull/7857
42
+
43
+ install_package "openssl-3.1.0" "https://www.openssl.org/source/openssl-3.1.0.tar.gz#aaa925ad9828745c4cad9d9efeb273deca820f2cdcf2c3ac7d7c1212b7c497b4" openssl --if needs_openssl_102_300
44
+ install_git "ruby-3.2.2-pshopify10" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify10" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,49 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify11
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+ # @peterzhu2118 Store initial slots per size pool https://github.com/ruby/ruby/pull/8116
35
+ # @k0kubun YJIT: Implement throw instruction https://github.com/ruby/ruby/pull/7491
36
+ # @k0kubun YJIT: Fallback send instructions to vm_sendish https://github.com/ruby/ruby/pull/8106
37
+ # @k0kubun YJIT: Support entry for multiple PCs per ISEQ https://github.com/ruby/ruby/pull/7535
38
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for send https://github.com/ruby/ruby/pull/8159
39
+ # @k0kubun YJIT: Use dynamic dispatch for megamorphic send https://github.com/ruby/ruby/pull/8125
40
+ # @k0kubun YJIT: Compile exception handlers https://github.com/ruby/ruby/pull/8171
41
+ # @k0kubun YJIT: Introduce RubyVM::YJIT.stats_string https://github.com/ruby/ruby/pull/7857
42
+ # @k0kubun YJIT: Don't side-exit on too-complex shapes https://github.com/ruby/ruby/pull/7298
43
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for invokesuper/invokeblock https://github.com/ruby/ruby/pull/8194
44
+ # @jhawthorn YJIT: invokesuper: Remove cme mid matching check https://github.com/ruby/ruby/pull/7740
45
+ # @k0kubun YJIT: Fallback megamorphic super/yield to dynamic dispatch https://github.com/ruby/ruby/pull/8197
46
+ # @maximecb YJIT: add stats for ratio of versions per block https://github.com/ruby/ruby/pull/7653
47
+
48
+ install_package "openssl-3.1.0" "https://www.openssl.org/source/openssl-3.1.0.tar.gz#aaa925ad9828745c4cad9d9efeb273deca820f2cdcf2c3ac7d7c1212b7c497b4" openssl --if needs_openssl_102_300
49
+ install_git "ruby-3.2.2-pshopify11" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify11" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,50 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify12
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+ # @peterzhu2118 Store initial slots per size pool https://github.com/ruby/ruby/pull/8116
35
+ # @k0kubun YJIT: Implement throw instruction https://github.com/ruby/ruby/pull/7491
36
+ # @k0kubun YJIT: Fallback send instructions to vm_sendish https://github.com/ruby/ruby/pull/8106
37
+ # @k0kubun YJIT: Support entry for multiple PCs per ISEQ https://github.com/ruby/ruby/pull/7535
38
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for send https://github.com/ruby/ruby/pull/8159
39
+ # @k0kubun YJIT: Use dynamic dispatch for megamorphic send https://github.com/ruby/ruby/pull/8125
40
+ # @k0kubun YJIT: Compile exception handlers https://github.com/ruby/ruby/pull/8171
41
+ # @k0kubun YJIT: Introduce RubyVM::YJIT.stats_string https://github.com/ruby/ruby/pull/7857
42
+ # @k0kubun YJIT: Don't side-exit on too-complex shapes https://github.com/ruby/ruby/pull/7298
43
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for invokesuper/invokeblock https://github.com/ruby/ruby/pull/8194
44
+ # @jhawthorn YJIT: invokesuper: Remove cme mid matching check https://github.com/ruby/ruby/pull/7740
45
+ # @k0kubun YJIT: Fallback megamorphic super/yield to dynamic dispatch https://github.com/ruby/ruby/pull/8197
46
+ # @maximecb YJIT: add stats for ratio of versions per block https://github.com/ruby/ruby/pull/7653
47
+ # @XrXr YJIT: YJIT: Fix false object collection when setting ivar https://github.com/ruby/ruby/pull/7718
48
+
49
+ install_package "openssl-3.1.2" "https://www.openssl.org/source/openssl-3.1.2.tar.gz#a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539" openssl --if needs_openssl_102_300
50
+ install_git "ruby-3.2.2-pshopify12" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify12" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,51 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify13
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+ # @peterzhu2118 Store initial slots per size pool https://github.com/ruby/ruby/pull/8116
35
+ # @k0kubun YJIT: Implement throw instruction https://github.com/ruby/ruby/pull/7491
36
+ # @k0kubun YJIT: Fallback send instructions to vm_sendish https://github.com/ruby/ruby/pull/8106
37
+ # @k0kubun YJIT: Support entry for multiple PCs per ISEQ https://github.com/ruby/ruby/pull/7535
38
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for send https://github.com/ruby/ruby/pull/8159
39
+ # @k0kubun YJIT: Use dynamic dispatch for megamorphic send https://github.com/ruby/ruby/pull/8125
40
+ # @k0kubun YJIT: Compile exception handlers https://github.com/ruby/ruby/pull/8171
41
+ # @k0kubun YJIT: Introduce RubyVM::YJIT.stats_string https://github.com/ruby/ruby/pull/7857
42
+ # @k0kubun YJIT: Don't side-exit on too-complex shapes https://github.com/ruby/ruby/pull/7298
43
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for invokesuper/invokeblock https://github.com/ruby/ruby/pull/8194
44
+ # @jhawthorn YJIT: invokesuper: Remove cme mid matching check https://github.com/ruby/ruby/pull/7740
45
+ # @k0kubun YJIT: Fallback megamorphic super/yield to dynamic dispatch https://github.com/ruby/ruby/pull/8197
46
+ # @maximecb YJIT: add stats for ratio of versions per block https://github.com/ruby/ruby/pull/7653
47
+ # @XrXr YJIT: YJIT: Fix false object collection when setting ivar https://github.com/ruby/ruby/pull/7718
48
+ # @peterzhu2118 Add REMEMBERED_WB_UNPROTECTED_OBJECTS_LIMIT_RATIO https://github.com/ruby/ruby/pull/7577
49
+
50
+ install_package "openssl-3.1.2" "https://www.openssl.org/source/openssl-3.1.2.tar.gz#a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539" openssl --if needs_openssl_102_300
51
+ install_git "ruby-3.2.2-pshopify13" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify13" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,65 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify14
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+ # @peterzhu2118 Store initial slots per size pool https://github.com/ruby/ruby/pull/8116
35
+ # @k0kubun YJIT: Implement throw instruction https://github.com/ruby/ruby/pull/7491
36
+ # @k0kubun YJIT: Fallback send instructions to vm_sendish https://github.com/ruby/ruby/pull/8106
37
+ # @k0kubun YJIT: Support entry for multiple PCs per ISEQ https://github.com/ruby/ruby/pull/7535
38
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for send https://github.com/ruby/ruby/pull/8159
39
+ # @k0kubun YJIT: Use dynamic dispatch for megamorphic send https://github.com/ruby/ruby/pull/8125
40
+ # @k0kubun YJIT: Compile exception handlers https://github.com/ruby/ruby/pull/8171
41
+ # @k0kubun YJIT: Introduce RubyVM::YJIT.stats_string https://github.com/ruby/ruby/pull/7857
42
+ # @k0kubun YJIT: Don't side-exit on too-complex shapes https://github.com/ruby/ruby/pull/7298
43
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for invokesuper/invokeblock https://github.com/ruby/ruby/pull/8194
44
+ # @jhawthorn YJIT: invokesuper: Remove cme mid matching check https://github.com/ruby/ruby/pull/7740
45
+ # @k0kubun YJIT: Fallback megamorphic super/yield to dynamic dispatch https://github.com/ruby/ruby/pull/8197
46
+ # @maximecb YJIT: add stats for ratio of versions per block https://github.com/ruby/ruby/pull/7653
47
+ # @XrXr YJIT: YJIT: Fix false object collection when setting ivar https://github.com/ruby/ruby/pull/7718
48
+ # @peterzhu2118 Add REMEMBERED_WB_UNPROTECTED_OBJECTS_LIMIT_RATIO https://github.com/ruby/ruby/pull/7577
49
+ # @k0kubun YJIT: Fallback setivar if the next shape is too complex ruby/ruby#8152
50
+ # @byroot YJIT: Fallback setivar if the receiver isn't T_OBJECT ruby/ruby#8160
51
+ # @maximecb YJIT: handle expandarray_rhs_too_small case ruby/ruby#8161
52
+ # @maximecb YJIT: add jb (unsigned less-than) instruction to backend ruby/ruby#8168
53
+ # @maximecb YJIT: guard for array_len >= num in expandarray ruby/ruby#8169
54
+ # @k0kubun YJIT: Implement checkmatch instruction ruby/ruby#8203
55
+ # @maximecb YJIT: increase max chain depth for expandarray ruby/ruby#8205
56
+ # @k0kubun YJIT: Support ifunc on invokeblock ruby/ruby#7233
57
+ # @k0kubun YJIT: Allow VM_CALL_ARGS_BLOCKARG on invokesuper ruby/ruby#8198
58
+ # @k0kubun YJIT: Implement GET_BLOCK_HANDLER() for invokesuper ruby/ruby#8206
59
+ # @k0kubun YJIT: Bump SEND_MAX_DEPTH to 20 ruby/ruby#7469
60
+ # @k0kubun YJIT: Refactor getlocal and setlocal insns ruby/ruby#7320
61
+ # @maximecb YJIT: implement side chain fallback for setlocal to avoid exiting ruby/ruby#8227
62
+ # @byroot YJIT: Stop incrementing jit_entry_calls once threshold is hit https://github.com/ruby/ruby/pull/8259
63
+
64
+ install_package "openssl-3.1.2" "https://www.openssl.org/source/openssl-3.1.2.tar.gz#a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539" openssl --if needs_openssl_102_300
65
+ install_git "ruby-3.2.2-pshopify13" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify13" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,66 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify15
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+ # @peterzhu2118 Store initial slots per size pool https://github.com/ruby/ruby/pull/8116
35
+ # @k0kubun YJIT: Implement throw instruction https://github.com/ruby/ruby/pull/7491
36
+ # @k0kubun YJIT: Fallback send instructions to vm_sendish https://github.com/ruby/ruby/pull/8106
37
+ # @k0kubun YJIT: Support entry for multiple PCs per ISEQ https://github.com/ruby/ruby/pull/7535
38
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for send https://github.com/ruby/ruby/pull/8159
39
+ # @k0kubun YJIT: Use dynamic dispatch for megamorphic send https://github.com/ruby/ruby/pull/8125
40
+ # @k0kubun YJIT: Compile exception handlers https://github.com/ruby/ruby/pull/8171
41
+ # @k0kubun YJIT: Introduce RubyVM::YJIT.stats_string https://github.com/ruby/ruby/pull/7857
42
+ # @k0kubun YJIT: Don't side-exit on too-complex shapes https://github.com/ruby/ruby/pull/7298
43
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for invokesuper/invokeblock https://github.com/ruby/ruby/pull/8194
44
+ # @jhawthorn YJIT: invokesuper: Remove cme mid matching check https://github.com/ruby/ruby/pull/7740
45
+ # @k0kubun YJIT: Fallback megamorphic super/yield to dynamic dispatch https://github.com/ruby/ruby/pull/8197
46
+ # @maximecb YJIT: add stats for ratio of versions per block https://github.com/ruby/ruby/pull/7653
47
+ # @XrXr YJIT: YJIT: Fix false object collection when setting ivar https://github.com/ruby/ruby/pull/7718
48
+ # @peterzhu2118 Add REMEMBERED_WB_UNPROTECTED_OBJECTS_LIMIT_RATIO https://github.com/ruby/ruby/pull/7577
49
+ # @k0kubun YJIT: Fallback setivar if the next shape is too complex ruby/ruby#8152
50
+ # @byroot YJIT: Fallback setivar if the receiver isn't T_OBJECT ruby/ruby#8160
51
+ # @maximecb YJIT: handle expandarray_rhs_too_small case ruby/ruby#8161
52
+ # @maximecb YJIT: add jb (unsigned less-than) instruction to backend ruby/ruby#8168
53
+ # @maximecb YJIT: guard for array_len >= num in expandarray ruby/ruby#8169
54
+ # @k0kubun YJIT: Implement checkmatch instruction ruby/ruby#8203
55
+ # @maximecb YJIT: increase max chain depth for expandarray ruby/ruby#8205
56
+ # @k0kubun YJIT: Support ifunc on invokeblock ruby/ruby#7233
57
+ # @k0kubun YJIT: Allow VM_CALL_ARGS_BLOCKARG on invokesuper ruby/ruby#8198
58
+ # @k0kubun YJIT: Implement GET_BLOCK_HANDLER() for invokesuper ruby/ruby#8206
59
+ # @k0kubun YJIT: Refactor getlocal and setlocal insns ruby/ruby#7320
60
+ # @maximecb YJIT: implement side chain fallback for setlocal to avoid exiting ruby/ruby#8227
61
+ # @byroot YJIT: Stop incrementing jit_entry_calls once threshold is hit https://github.com/ruby/ruby/pull/8259
62
+ # @peterzhu2118 Implement GC.free_all_empty_pages
63
+ # @nobu / @byroot Write crash report in $RUBY_CRASH_REPORT https://bugs.ruby-lang.org/issues/19790
64
+
65
+ install_package "openssl-3.1.2" "https://www.openssl.org/source/openssl-3.1.2.tar.gz#a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539" openssl --if needs_openssl_102_300
66
+ install_git "ruby-3.2.2-pshopify15" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify15" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,66 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify16
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+ # @peterzhu2118 Store initial slots per size pool https://github.com/ruby/ruby/pull/8116
35
+ # @k0kubun YJIT: Implement throw instruction https://github.com/ruby/ruby/pull/7491
36
+ # @k0kubun YJIT: Fallback send instructions to vm_sendish https://github.com/ruby/ruby/pull/8106
37
+ # @k0kubun YJIT: Support entry for multiple PCs per ISEQ https://github.com/ruby/ruby/pull/7535
38
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for send https://github.com/ruby/ruby/pull/8159
39
+ # @k0kubun YJIT: Use dynamic dispatch for megamorphic send https://github.com/ruby/ruby/pull/8125
40
+ # @k0kubun YJIT: Compile exception handlers https://github.com/ruby/ruby/pull/8171
41
+ # @k0kubun YJIT: Introduce RubyVM::YJIT.stats_string https://github.com/ruby/ruby/pull/7857
42
+ # @k0kubun YJIT: Don't side-exit on too-complex shapes https://github.com/ruby/ruby/pull/7298
43
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for invokesuper/invokeblock https://github.com/ruby/ruby/pull/8194
44
+ # @jhawthorn YJIT: invokesuper: Remove cme mid matching check https://github.com/ruby/ruby/pull/7740
45
+ # @k0kubun YJIT: Fallback megamorphic super/yield to dynamic dispatch https://github.com/ruby/ruby/pull/8197
46
+ # @maximecb YJIT: add stats for ratio of versions per block https://github.com/ruby/ruby/pull/7653
47
+ # @XrXr YJIT: YJIT: Fix false object collection when setting ivar https://github.com/ruby/ruby/pull/7718
48
+ # @peterzhu2118 Add REMEMBERED_WB_UNPROTECTED_OBJECTS_LIMIT_RATIO https://github.com/ruby/ruby/pull/7577
49
+ # @k0kubun YJIT: Fallback setivar if the next shape is too complex ruby/ruby#8152
50
+ # @byroot YJIT: Fallback setivar if the receiver isn't T_OBJECT ruby/ruby#8160
51
+ # @maximecb YJIT: handle expandarray_rhs_too_small case ruby/ruby#8161
52
+ # @maximecb YJIT: add jb (unsigned less-than) instruction to backend ruby/ruby#8168
53
+ # @maximecb YJIT: guard for array_len >= num in expandarray ruby/ruby#8169
54
+ # @k0kubun YJIT: Implement checkmatch instruction ruby/ruby#8203
55
+ # @maximecb YJIT: increase max chain depth for expandarray ruby/ruby#8205
56
+ # @k0kubun YJIT: Support ifunc on invokeblock ruby/ruby#7233
57
+ # @k0kubun YJIT: Allow VM_CALL_ARGS_BLOCKARG on invokesuper ruby/ruby#8198
58
+ # @k0kubun YJIT: Implement GET_BLOCK_HANDLER() for invokesuper ruby/ruby#8206
59
+ # @k0kubun YJIT: Refactor getlocal and setlocal insns ruby/ruby#7320
60
+ # @maximecb YJIT: implement side chain fallback for setlocal to avoid exiting ruby/ruby#8227
61
+ # @byroot YJIT: Stop incrementing jit_entry_calls once threshold is hit https://github.com/ruby/ruby/pull/8259
62
+ # @peterzhu2118 Implement GC.free_all_empty_pages
63
+ # @nobu / @byroot Write crash report in $RUBY_CRASH_REPORT https://bugs.ruby-lang.org/issues/19790
64
+
65
+ install_package "openssl-3.1.2" "https://www.openssl.org/source/openssl-3.1.2.tar.gz#a0ce69b8b97ea6a35b96875235aa453b966ba3cba8af2de23657d8b6767d6539" openssl --if needs_openssl_102_300
66
+ install_git "ruby-3.2.2-pshopify16" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify16" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,36 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify5
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+
35
+ install_package "openssl-3.1.0" "https://www.openssl.org/source/openssl-3.1.0.tar.gz#aaa925ad9828745c4cad9d9efeb273deca820f2cdcf2c3ac7d7c1212b7c497b4" openssl --if needs_openssl_102_300
36
+ install_git "ruby-3.2.2-pshopify5" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify5" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,37 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify6
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+ # @peterzhu2118 Store initial slots per size pool https://github.com/ruby/ruby/pull/8116
35
+
36
+ install_package "openssl-3.1.0" "https://www.openssl.org/source/openssl-3.1.0.tar.gz#aaa925ad9828745c4cad9d9efeb273deca820f2cdcf2c3ac7d7c1212b7c497b4" openssl --if needs_openssl_102_300
37
+ install_git "ruby-3.2.2-pshopify6" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify6" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,39 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify7
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+ # @peterzhu2118 Store initial slots per size pool https://github.com/ruby/ruby/pull/8116
35
+ # @k0kubun YJIT: Implement throw instruction https://github.com/ruby/ruby/pull/7491
36
+ # @k0kubun YJIT: Fallback send instructions to vm_sendish https://github.com/ruby/ruby/pull/8106
37
+
38
+ install_package "openssl-3.1.0" "https://www.openssl.org/source/openssl-3.1.0.tar.gz#aaa925ad9828745c4cad9d9efeb273deca820f2cdcf2c3ac7d7c1212b7c497b4" openssl --if needs_openssl_102_300
39
+ install_git "ruby-3.2.2-pshopify7" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify7" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,41 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify8
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+ # @peterzhu2118 Store initial slots per size pool https://github.com/ruby/ruby/pull/8116
35
+ # @k0kubun YJIT: Implement throw instruction https://github.com/ruby/ruby/pull/7491
36
+ # @k0kubun YJIT: Fallback send instructions to vm_sendish https://github.com/ruby/ruby/pull/8106
37
+ # @k0kubun YJIT: Support entry for multiple PCs per ISEQ https://github.com/ruby/ruby/pull/7535
38
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for send https://github.com/ruby/ruby/pull/8159
39
+
40
+ install_package "openssl-3.1.0" "https://www.openssl.org/source/openssl-3.1.0.tar.gz#aaa925ad9828745c4cad9d9efeb273deca820f2cdcf2c3ac7d7c1212b7c497b4" openssl --if needs_openssl_102_300
41
+ install_git "ruby-3.2.2-pshopify8" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify8" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,42 @@
1
+ # https://github.com/ruby/ruby/compare/ruby_3_2...Shopify:v3.2.2-pshopify9
2
+
3
+ # Based off `ruby_3_2`, with backports of:
4
+ # @byroot [ruby/set] Avoid the `block or return` pattern to save Proc allocations https://github.com/ruby/set/pull/29
5
+ # @peterzhu2118 Keep shared arrays WB protected https://github.com/ruby/ruby/pull/7224
6
+ # @peterzhu2118 Make BigDecimal WB protected https://github.com/ruby/bigdecimal/pull/248
7
+ # @XrXr YJIT String#+@ fixes https://github.com/ruby/ruby/pull/7328
8
+ # @byroot Add RUBY_GC_HEAP_INIT_SIZE_%d_SLOTS to pre-init pools granularly https://github.com/ruby/ruby/pull/7235
9
+ # @byroot Consider DATA objects without a mark function as protected https://github.com/ruby/ruby/pull/7263
10
+ # @byroot Implement Write Barrier for RMatch objects https://github.com/ruby/ruby/pull/7286
11
+ # @byroot Enable write barriers on File::Stat https://github.com/ruby/ruby/pull/7239
12
+ # @byroot Implement Write Barrier for Backtrace::Location https://github.com/ruby/ruby/pull/7240
13
+ # @byroot Mark "mapping_buffer" as write barrier protected https://github.com/ruby/ruby/pull/7238
14
+ # @byroot Mark "method" objects as protected by write barrier https://github.com/ruby/ruby/pull/7237
15
+ # @byroot Mark Encoding as Write Barrier protected Mark Encoding as Write Barrier protected
16
+ # @peterzhu2118 Make Time objects WB protected https://github.com/ruby/ruby/pull/7244
17
+ # @jhawthorn Use write barriers for Backtrace objects
18
+ # @peterzhu2118 Crash when malloc during GC
19
+ # @peterzhu2118 Fix crash when allocating classes with newobj hook
20
+ # @peterzhu2118 [Bug #19469] Fix crash when resizing generic iv list
21
+ # @byroot Implement Write Barrier for autoload_data
22
+ # @byroot Implement Write Barrier for autoload_table_type
23
+ # @k0kubun YJIT: Protect strings from GC on String#<<
24
+ # @tenderlove Use an st table for "too complex" objects
25
+ # @byroot Cache `Process.pid`
26
+ # @byroot thread_pthread.c: Use a `fork_gen` to protect against fork instead of getpid()
27
+ # @XrXr Fix write barrier order for klass to cme edge https://github.com/ruby/ruby/pull/7113
28
+ # @peterzhu2118 Ensure throw data is not set as cause https://github.com/ruby/ruby/pull/7696
29
+ # @peterzhu2118 Fix crash in rb_gc_register_address https://github.com/ruby/ruby/pull/7670
30
+ # @peterzhu2118 [Feature #19678] Don't immediately promote children of old objects https://github.com/ruby/ruby/pull/7821
31
+ # @k0kubun YJIT: Use rb_ivar_get at the end of ivar chains https://github.com/ruby/ruby/pull/7334
32
+ # @k0kubun / @maximecb / @XrXr YJIT: Add --yjit-pause and RubyVM::YJIT.resume https://github.com/ruby/ruby/pull/7609
33
+ # @k0kubun YJIT: Make ratio_in_yjit always available https://github.com/ruby/ruby/pull/8064
34
+ # @peterzhu2118 Store initial slots per size pool https://github.com/ruby/ruby/pull/8116
35
+ # @k0kubun YJIT: Implement throw instruction https://github.com/ruby/ruby/pull/7491
36
+ # @k0kubun YJIT: Fallback send instructions to vm_sendish https://github.com/ruby/ruby/pull/8106
37
+ # @k0kubun YJIT: Support entry for multiple PCs per ISEQ https://github.com/ruby/ruby/pull/7535
38
+ # @k0kubun YJIT: Distinguish exit and fallback reasons for send https://github.com/ruby/ruby/pull/8159
39
+ # @k0kubun YJIT: Use dynamic dispatch for megamorphic send https://github.com/ruby/ruby/pull/8125
40
+
41
+ install_package "openssl-3.1.0" "https://www.openssl.org/source/openssl-3.1.0.tar.gz#aaa925ad9828745c4cad9d9efeb273deca820f2cdcf2c3ac7d7c1212b7c497b4" openssl --if needs_openssl_102_300
42
+ install_git "ruby-3.2.2-pshopify9" "https://github.com/Shopify/ruby.git" "v3.2.2-pshopify9" ldflags_dirs autoconf standard_build standard_install_with_bundled_gems verify_openssl
@@ -0,0 +1,32 @@
1
+ # frozen_string_literal: true
2
+
3
+ require_relative "lib/shopify_ruby_definitions/version"
4
+
5
+ Gem::Specification.new do |spec|
6
+ spec.name = "shopify-ruby-definitions"
7
+ spec.version = ShopifyRubyDefinitions::VERSION
8
+ spec.authors = ["Peter Zhu"]
9
+ spec.email = ["ruby@shopify.com"]
10
+
11
+ spec.summary = "Ruby builds used at Shopify."
12
+ spec.homepage = "https://github.com/Shopify/ruby-definitions"
13
+ spec.license = "MIT"
14
+ spec.required_ruby_version = ">= 2.6.0"
15
+
16
+ spec.metadata["homepage_uri"] = spec.homepage
17
+ spec.metadata["source_code_uri"] = "https://github.com/Shopify/ruby-definitions"
18
+
19
+ # Specify which files should be added to the gem when it is released.
20
+ # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
21
+ spec.files = Dir.chdir(__dir__) do
22
+ %x(git ls-files -z).split("\x0").reject do |f|
23
+ (f == __FILE__) || f.match(%r{\A(?:(?:bin|test|spec|features)/|\.(?:git|circleci)|appveyor)})
24
+ end
25
+ end
26
+ spec.bindir = "exe"
27
+ spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
28
+ spec.require_paths = ["lib"]
29
+
30
+ spec.add_development_dependency("rubocop-minitest")
31
+ spec.add_development_dependency("rubocop-shopify")
32
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shopify-ruby-definitions
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Zhu
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2023-06-16 00:00:00.000000000 Z
11
+ date: 2023-09-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rubocop-minitest
@@ -40,7 +40,7 @@ dependencies:
40
40
  version: '0'
41
41
  description:
42
42
  email:
43
- - peter@peterzhu.ca
43
+ - ruby@shopify.com
44
44
  executables:
45
45
  - shopify-ruby
46
46
  extensions: []
@@ -65,8 +65,21 @@ files:
65
65
  - rubies/3.1.4-pshopify1
66
66
  - rubies/3.2.0-pshopify2
67
67
  - rubies/3.2.1-pshopify5
68
+ - rubies/3.2.2-pshopify10
69
+ - rubies/3.2.2-pshopify11
70
+ - rubies/3.2.2-pshopify12
71
+ - rubies/3.2.2-pshopify13
72
+ - rubies/3.2.2-pshopify14
73
+ - rubies/3.2.2-pshopify15
74
+ - rubies/3.2.2-pshopify16
68
75
  - rubies/3.2.2-pshopify3
69
76
  - rubies/3.2.2-pshopify4
77
+ - rubies/3.2.2-pshopify5
78
+ - rubies/3.2.2-pshopify6
79
+ - rubies/3.2.2-pshopify7
80
+ - rubies/3.2.2-pshopify8
81
+ - rubies/3.2.2-pshopify9
82
+ - shopify-ruby-definitions.gemspec
70
83
  homepage: https://github.com/Shopify/ruby-definitions
71
84
  licenses:
72
85
  - MIT
@@ -88,7 +101,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
88
101
  - !ruby/object:Gem::Version
89
102
  version: '0'
90
103
  requirements: []
91
- rubygems_version: 3.4.10
104
+ rubygems_version: 3.5.0.dev
92
105
  signing_key:
93
106
  specification_version: 4
94
107
  summary: Ruby builds used at Shopify.