rb-concurrent-ruby*: update to 1.3.4

This commit is contained in:
Sergey Fedorov
2024-09-08 23:29:55 +08:00
committed by Herby Gillot
parent a7c2c91689
commit cdb7de6e6a
3 changed files with 38 additions and 6 deletions
+17 -3
View File
@@ -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
}
@@ -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 */
+3 -3
View File
@@ -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