shopify-ruby-definitions 1.1.0 → 1.3.0

Sign up to get free protection for your applications and to get access to all the features.
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.