From cdb7de6e6a8b109d32e9b046af3b92d7b423e96a Mon Sep 17 00:00:00 2001 From: Sergey Fedorov Date: Sun, 8 Sep 2024 23:29:55 +0800 Subject: [PATCH] rb-concurrent-ruby*: update to 1.3.4 --- ruby/rb-concurrent-ruby-ext/Portfile | 20 ++++++++++++++++--- .../files/patch-atomic_reference.c.diff | 18 +++++++++++++++++ ruby/rb-concurrent-ruby/Portfile | 6 +++--- 3 files changed, 38 insertions(+), 6 deletions(-) create mode 100644 ruby/rb-concurrent-ruby-ext/files/patch-atomic_reference.c.diff diff --git a/ruby/rb-concurrent-ruby-ext/Portfile b/ruby/rb-concurrent-ruby-ext/Portfile index d0e323cedbe..58bb91c3eb4 100644 --- a/ruby/rb-concurrent-ruby-ext/Portfile +++ b/ruby/rb-concurrent-ruby-ext/Portfile @@ -4,18 +4,32 @@ PortSystem 1.0 PortGroup ruby 1.0 ruby.branches 3.3 3.2 3.1 -ruby.setup concurrent-ruby-ext 1.3.3 gem {} rubygems +ruby.setup concurrent-ruby-ext 1.3.4 gem {} rubygems license MIT categories-append devel maintainers nomaintainer description C extensions to optimize the concurrent-ruby gem long_description {*}${description} when running under MRI. homepage https://github.com/ruby-concurrency/concurrent-ruby -checksums rmd160 5734a5aff59c9f4733a4da4cdee4d71e8f2fe867 \ - sha256 24b32e2e2994e00f2b1cacdf98635238ff9bfdf7a7ae1bcab48ea9bd85da362e \ +checksums rmd160 38378e5a53eafccac2d72951a61095cec67e9143 \ + sha256 873369551743523d235e3e76bcfa3aaa1bc5cd0a7050b6174df0f156ed7de4d7 \ size 24576 if {${name} ne ${subport}} { + depends_extract port:rb${ruby.suffix}-gem-patch + + # https://github.com/ruby-concurrency/concurrent-ruby/pull/1064 + post-patch { + copy ${filespath}/patch-atomic_reference.c.diff ${worksrcpath} + reinplace "s|@@PREFIX@@|${prefix}|g" ${worksrcpath}/patch-atomic_reference.c.diff + system -W ${worksrcpath} "${ruby.gem} patch ${ruby.filename}.gem patch-atomic_reference.c.diff -o ${ruby.filename}.gem -p0" + } + + if {${ruby.branch} < 3.3} { + destroot.post_args-append \ + -- --with-cflags="-Wno-incompatible-pointer-types" + } + depends_run-append \ port:rb${ruby.suffix}-concurrent-ruby } diff --git a/ruby/rb-concurrent-ruby-ext/files/patch-atomic_reference.c.diff b/ruby/rb-concurrent-ruby-ext/files/patch-atomic_reference.c.diff new file mode 100644 index 00000000000..eacd0390a9b --- /dev/null +++ b/ruby/rb-concurrent-ruby-ext/files/patch-atomic_reference.c.diff @@ -0,0 +1,18 @@ +--- ext/concurrent-ruby-ext/atomic_reference.c ++++ ext/concurrent-ruby-ext/atomic_reference.c 2024-09-08 23:03:29.000000000 +0800 +@@ -79,9 +79,15 @@ + + VALUE ir_compare_and_set(volatile VALUE self, VALUE expect_value, VALUE new_value) { + #if defined(__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__) && __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ >= 1050 ++#if defined(__i386__) || defined(__ppc__) ++ if (OSAtomicCompareAndSwap32(expect_value, new_value, &DATA_PTR(self))) { ++ return Qtrue; ++ } ++#else + if (OSAtomicCompareAndSwap64(expect_value, new_value, &DATA_PTR(self))) { + return Qtrue; + } ++#endif + #elif defined(__sun) + /* Assuming VALUE is uintptr_t */ + /* Based on the definition of uintptr_t from /usr/include/sys/int_types.h */ diff --git a/ruby/rb-concurrent-ruby/Portfile b/ruby/rb-concurrent-ruby/Portfile index f3a463a0a78..7d82067382a 100644 --- a/ruby/rb-concurrent-ruby/Portfile +++ b/ruby/rb-concurrent-ruby/Portfile @@ -4,7 +4,7 @@ PortSystem 1.0 PortGroup ruby 1.0 ruby.branches 3.3 3.2 3.1 3.0 -ruby.setup concurrent-ruby 1.3.3 gem {} rubygems +ruby.setup concurrent-ruby 1.3.4 gem {} rubygems license MIT categories-append devel platforms any @@ -14,6 +14,6 @@ description Modern concurrency tools long_description {*}${description} including agents, futures, promises, \ thread pools, actors, supervisors and more. homepage https://github.com/ruby-concurrency/concurrent-ruby -checksums rmd160 335ba7b61f58320734151bc9cd87b592756804c0 \ - sha256 4f9cd28965c4dcf83ffd3ea7304f9323277be8525819cb18a3b61edcb56a7c6a \ +checksums rmd160 9494c071ab6a8d0dd276fe600942d0785335b3fd \ + sha256 d4aa926339b0a86b5b5054a0a8c580163e6f5dcbdfd0f4bb916b1a2570731c32 \ size 349696