public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
From: Jitka Plesnikova <jplesnik@redhat.com>
To: git-commits@fedoraproject.org
Subject: [rpms/perl-threads-shared] rawhide: Upgrade to 1.73 as provided in perl-5.44.0-RC1
Date: Tue, 30 Jun 2026 13:54:02 GMT [thread overview]
Message-ID: <178282764206.1.2572716576621779982.rpms-perl-threads-shared-98d05c6cb3f8@fedoraproject.org> (raw)
A new commit has been pushed.
Repo : rpms/perl-threads-shared
Branch : rawhide
Commit : 98d05c6cb3f869cc8113140f37046143423145cb
Author : Jitka Plesnikova <jplesnik@redhat.com>
Date : 2026-06-30T15:53:05+02:00
Stats : +475/-2 in 2 file(s)
URL : https://src.fedoraproject.org/rpms/perl-threads-shared/c/98d05c6cb3f869cc8113140f37046143423145cb?branch=rawhide
Log:
Upgrade to 1.73 as provided in perl-5.44.0-RC1
---
diff --git a/perl-threads-shared.spec b/perl-threads-shared.spec
index 37224d9..7f023ec 100644
--- a/perl-threads-shared.spec
+++ b/perl-threads-shared.spec
@@ -1,8 +1,8 @@
%global base_version 1.59
Name: perl-threads-shared
-Version: 1.70
-Release: 521%{?dist}
+Version: 1.73
+Release: 1%{?dist}
Summary: Perl extension for sharing data structures between threads
License: GPL-1.0-or-later OR Artistic-1.0-Perl
URL: https://metacpan.org/release/threads-shared
@@ -24,6 +24,8 @@ Patch5: threads-shared-1.64-Upgrade-to-1.68.patch
Patch6: threads-shared-1.68-Upgrade-to-1.69.patch
# Unbundled from perl 5.42.0
Patch7: threads-shared-1.69-Upgrade-to-1.70.patch
+# Unbundled from perl 5.44.0-RC1
+Patch8: threads-shared-1.70-Upgrade-to-1.73.patch
BuildRequires: coreutils
BuildRequires: findutils
BuildRequires: gcc
@@ -121,6 +123,9 @@ make test
%{_libexecdir}/%{name}
%changelog
+* Tue Jun 23 2026 Jitka Plesnikova <jplesnik@redhat.com> - 1.73-1
+- Upgrade to 1.73 as provided in perl-5.44.0-RC1
+
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 1.70-521
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
diff --git a/threads-shared-1.70-Upgrade-to-1.73.patch b/threads-shared-1.70-Upgrade-to-1.73.patch
new file mode 100644
index 0000000..9c31578
--- /dev/null
+++ b/threads-shared-1.70-Upgrade-to-1.73.patch
@@ -0,0 +1,468 @@
+From 9ec48533d2b9bb2579ad9657b32061cfe07598eb Mon Sep 17 00:00:00 2001
+From: Jitka Plesnikova <jplesnik@redhat.com>
+Date: Thu, 4 Jun 2026 15:16:58 +0200
+Subject: [PATCH] Upgrade to 1.73
+
+---
+ lib/threads/shared.pm | 4 +-
+ shared.xs | 214 +++++++++++++++++++++++++-----------------
+ 2 files changed, 130 insertions(+), 88 deletions(-)
+
+diff --git a/lib/threads/shared.pm b/lib/threads/shared.pm
+index 03b7f94..2ee092d 100644
+--- a/lib/threads/shared.pm
++++ b/lib/threads/shared.pm
+@@ -8,7 +8,7 @@ use Config;
+
+ use Scalar::Util qw(reftype refaddr blessed);
+
+-our $VERSION = '1.70'; # Please update the pod, too.
++our $VERSION = '1.73'; # Please update the pod, too.
+ my $XS_VERSION = $VERSION;
+ $VERSION = eval $VERSION;
+
+@@ -196,7 +196,7 @@ threads::shared - Perl extension for sharing data structures between threads
+
+ =head1 VERSION
+
+-This document describes threads::shared version 1.70
++This document describes threads::shared version 1.73
+
+ =head1 SYNOPSIS
+
+diff --git a/shared.xs b/shared.xs
+index 5c8345c..85700fe 100644
+--- a/shared.xs
++++ b/shared.xs
+@@ -212,8 +212,9 @@ recursive_lock_destroy(pTHX_ recursive_lock_t *lock)
+ }
+
+ static void
+-recursive_lock_release(pTHX_ recursive_lock_t *lock)
++recursive_lock_release(pTHX_ void *ptr)
+ {
++ recursive_lock_t *lock = (recursive_lock_t *)ptr;
+ MUTEX_LOCK(&lock->mutex);
+ if (lock->owner == aTHX) {
+ if (--lock->locks == 0) {
+@@ -377,15 +378,94 @@ static const MGVTBL sharedsv_userlock_vtbl = {
+ the shared thing.
+ */
+
+-extern const MGVTBL sharedsv_scalar_vtbl; /* Scalars have this vtable */
+-extern const MGVTBL sharedsv_array_vtbl; /* Hashes and arrays have this
+- - like 'tie' */
+-extern const MGVTBL sharedsv_elem_vtbl; /* Elements of hashes and arrays have
+- this _AS WELL AS_ the scalar magic:
++static int
++sharedsv_scalar_mg_get(pTHX_ SV *sv, MAGIC *mg);
++static int
++sharedsv_scalar_mg_set(pTHX_ SV *sv, MAGIC *mg);
++static int
++sharedsv_scalar_mg_free(pTHX_ SV *sv, MAGIC *mg);
++static int
++sharedsv_scalar_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *param);
++#ifdef MGf_LOCAL
++static int
++sharedsv_scalar_mg_local(pTHX_ SV* nsv, MAGIC *mg);
++#endif
++
++static U32
++sharedsv_array_mg_FETCHSIZE(pTHX_ SV *sv, MAGIC *mg);
++static int
++sharedsv_array_mg_CLEAR(pTHX_ SV *sv, MAGIC *mg);
++static int
++sharedsv_array_mg_free(pTHX_ SV *sv, MAGIC *mg);
++#if PERL_VERSION_GE(5,11,0)
++static int
++sharedsv_array_mg_copy(pTHX_ SV *sv, MAGIC* mg,
++ SV *nsv, const char *name, I32 namlen);
++#else
++static int
++sharedsv_array_mg_copy(pTHX_ SV *sv, MAGIC* mg,
++ SV *nsv, const char *name, int namlen);
++#endif
++static int
++sharedsv_array_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *param);
++
++static int
++sharedsv_elem_mg_FETCH(pTHX_ SV *sv, MAGIC *mg);
++static int
++sharedsv_elem_mg_STORE(pTHX_ SV *sv, MAGIC *mg);
++static int
++sharedsv_elem_mg_DELETE(pTHX_ SV *sv, MAGIC *mg);
++static int
++sharedsv_elem_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *param);
++
++/* Scalars have this vtable */
++static const MGVTBL
++sharedsv_scalar_vtbl = {
++ sharedsv_scalar_mg_get, /* get */
++ sharedsv_scalar_mg_set, /* set */
++ 0, /* len */
++ 0, /* clear */
++ sharedsv_scalar_mg_free, /* free */
++ 0, /* copy */
++ sharedsv_scalar_mg_dup, /* dup */
++#ifdef MGf_LOCAL
++ sharedsv_scalar_mg_local, /* local */
++#endif
++};
++
++/* Hashes and arrays have this - like 'tie' */
++static const MGVTBL
++sharedsv_array_vtbl = {
++ 0, /* get */
++ 0, /* set */
++ sharedsv_array_mg_FETCHSIZE,/* len */
++ sharedsv_array_mg_CLEAR, /* clear */
++ sharedsv_array_mg_free, /* free */
++ sharedsv_array_mg_copy, /* copy */
++ sharedsv_array_mg_dup, /* dup */
++#ifdef MGf_LOCAL
++ 0, /* local */
++#endif
++};
++
++/* Elements of hashes and arrays have
++ this _AS WELL AS_ the scalar magic:
+ The sharedsv_elem_vtbl associates the element with the array/hash and
+ the sharedsv_scalar_vtbl associates it with the value
+ */
+-
++static const MGVTBL
++sharedsv_elem_vtbl = {
++ sharedsv_elem_mg_FETCH, /* get */
++ sharedsv_elem_mg_STORE, /* set */
++ 0, /* len */
++ sharedsv_elem_mg_DELETE, /* clear */
++ 0, /* free */
++ 0, /* copy */
++ sharedsv_elem_mg_dup, /* dup */
++#ifdef MGf_LOCAL
++ 0, /* local */
++#endif
++};
+
+ /* Get shared aggregate SV pointed to by threads::shared::tie magic object */
+
+@@ -395,7 +475,7 @@ extern const MGVTBL sharedsv_elem_vtbl; /* Elements of hashes and arrays ha
+ /* Return the user_lock structure (if any) associated with a shared SV.
+ * If create is true, create one if it doesn't exist
+ */
+-STATIC user_lock *
++static user_lock *
+ S_get_userlock(pTHX_ SV* ssv, bool create)
+ {
+ MAGIC *mg;
+@@ -466,7 +546,7 @@ Perl_sharedsv_find(pTHX_ SV *sv)
+ if (SvROK(sv) && sv_derived_from(sv, "threads::shared::tie")) {
+ return (SHAREDSV_FROM_OBJ(sv));
+ }
+- return (NULL);
++ return NULL;
+ }
+
+
+@@ -533,7 +613,7 @@ Perl_sharedsv_associate(pTHX_ SV *sv, SV *ssv)
+ /* Given a private SV, create and return an associated shared SV.
+ * Assumes lock is held.
+ */
+-STATIC SV *
++static SV *
+ S_sharedsv_new_shared(pTHX_ SV *sv)
+ {
+ dTHXc;
+@@ -555,7 +635,7 @@ S_sharedsv_new_shared(pTHX_ SV *sv)
+ /* Given a shared SV, create and return an associated private SV.
+ * Assumes lock is held.
+ */
+-STATIC SV *
++static SV *
+ S_sharedsv_new_private(pTHX_ SV *ssv)
+ {
+ SV *sv;
+@@ -572,7 +652,7 @@ S_sharedsv_new_private(pTHX_ SV *ssv)
+
+ /* A threadsafe version of SvREFCNT_dec(ssv) */
+
+-STATIC void
++static void
+ S_sharedsv_dec(pTHX_ SV* ssv)
+ {
+ if (! ssv)
+@@ -620,7 +700,7 @@ Perl_sharedsv_share(pTHX_ SV *sv)
+ #define EPOCH_BIAS 11644473600000.
+
+ /* Returns relative time in milliseconds. (Adapted from Time::HiRes.) */
+-STATIC DWORD
++static DWORD
+ S_abs_2_rel_milli(double abs)
+ {
+ double rel;
+@@ -729,7 +809,7 @@ Perl_sharedsv_cond_timedwait(perl_cond *cond, perl_mutex *mut, double abs)
+ * If the private side is already an appropriate RV->SV combination, keep
+ * it if possible.
+ */
+-STATIC void
++static void
+ S_get_RV(pTHX_ SV *sv, SV *sobj) {
+ SV *obj;
+ if (! (SvROK(sv) &&
+@@ -931,19 +1011,6 @@ sharedsv_scalar_mg_local(pTHX_ SV* nsv, MAGIC *mg)
+ }
+ #endif
+
+-const MGVTBL sharedsv_scalar_vtbl = {
+- sharedsv_scalar_mg_get, /* get */
+- sharedsv_scalar_mg_set, /* set */
+- 0, /* len */
+- 0, /* clear */
+- sharedsv_scalar_mg_free, /* free */
+- 0, /* copy */
+- sharedsv_scalar_mg_dup, /* dup */
+-#ifdef MGf_LOCAL
+- sharedsv_scalar_mg_local, /* local */
+-#endif
+-};
+-
+ /* ------------ PERL_MAGIC_tiedelem(p) functions -------------- */
+
+ /* Get magic for PERL_MAGIC_tiedelem(p) */
+@@ -1092,19 +1159,6 @@ sharedsv_elem_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *param)
+ return (0);
+ }
+
+-const MGVTBL sharedsv_elem_vtbl = {
+- sharedsv_elem_mg_FETCH, /* get */
+- sharedsv_elem_mg_STORE, /* set */
+- 0, /* len */
+- sharedsv_elem_mg_DELETE, /* clear */
+- 0, /* free */
+- 0, /* copy */
+- sharedsv_elem_mg_dup, /* dup */
+-#ifdef MGf_LOCAL
+- 0, /* local */
+-#endif
+-};
+-
+ /* ------------ PERL_MAGIC_tied(P) functions -------------- */
+
+ /* Len magic for PERL_MAGIC_tied(P) */
+@@ -1206,19 +1260,6 @@ sharedsv_array_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *param)
+ return (0);
+ }
+
+-const MGVTBL sharedsv_array_vtbl = {
+- 0, /* get */
+- 0, /* set */
+- sharedsv_array_mg_FETCHSIZE,/* len */
+- sharedsv_array_mg_CLEAR, /* clear */
+- sharedsv_array_mg_free, /* free */
+- sharedsv_array_mg_copy, /* copy */
+- sharedsv_array_mg_dup, /* dup */
+-#ifdef MGf_LOCAL
+- 0, /* local */
+-#endif
+-};
+-
+
+ /* Recursive locks on a sharedsv.
+ * Locks are dynamically scoped at the level of the first lock.
+@@ -1270,9 +1311,9 @@ Perl_shared_object_destroy(pTHX_ SV *sv)
+
+ #ifdef PL_signalhook
+
+-STATIC despatch_signals_proc_t prev_signal_hook = NULL;
++static despatch_signals_proc_t prev_signal_hook = NULL;
+
+-STATIC void
++static void
+ S_shared_signal_hook(pTHX) {
+ int us;
+ MUTEX_LOCK(&PL_sharedsv_lock.mutex);
+@@ -1389,7 +1430,7 @@ UNSHIFT(SV *obj, ...)
+ LEAVE_LOCK;
+
+
+-void
++SV*
+ POP(SV *obj)
+ CODE:
+ dTHXc;
+@@ -1399,14 +1440,14 @@ POP(SV *obj)
+ SHARED_CONTEXT;
+ ssv = av_pop((AV*)sobj);
+ CALLER_CONTEXT;
+- ST(0) = sv_newmortal();
+- Perl_sharedsv_associate(aTHX_ ST(0), ssv);
++ RETVAL = newSV(0);
++ Perl_sharedsv_associate(aTHX_ RETVAL, ssv);
+ SvREFCNT_dec(ssv);
+ LEAVE_LOCK;
+- /* XSRETURN(1); - implied */
++ OUTPUT: RETVAL
+
+
+-void
++SV*
+ SHIFT(SV *obj)
+ CODE:
+ dTHXc;
+@@ -1416,11 +1457,11 @@ SHIFT(SV *obj)
+ SHARED_CONTEXT;
+ ssv = av_shift((AV*)sobj);
+ CALLER_CONTEXT;
+- ST(0) = sv_newmortal();
+- Perl_sharedsv_associate(aTHX_ ST(0), ssv);
++ RETVAL = newSV(0);
++ Perl_sharedsv_associate(aTHX_ RETVAL, ssv);
+ SvREFCNT_dec(ssv);
+ LEAVE_LOCK;
+- /* XSRETURN(1); - implied */
++ OUTPUT: RETVAL
+
+
+ void
+@@ -1464,7 +1505,7 @@ STORESIZE(SV *obj,IV count)
+ SHARED_RELEASE;
+
+
+-void
++SV*
+ EXISTS(SV *obj, SV *index)
+ CODE:
+ dTHXc;
+@@ -1485,11 +1526,11 @@ EXISTS(SV *obj, SV *index)
+ exists = hv_exists((HV*) sobj, key, len);
+ }
+ SHARED_RELEASE;
+- ST(0) = (exists) ? &PL_sv_yes : &PL_sv_no;
+- /* XSRETURN(1); - implied */
++ RETVAL = (exists) ? &PL_sv_yes : &PL_sv_no;
+
++ OUTPUT: RETVAL
+
+-void
++SV*
+ FIRSTKEY(SV *obj)
+ CODE:
+ dTHXc;
+@@ -1505,16 +1546,16 @@ FIRSTKEY(SV *obj)
+ I32 utf8 = HeKUTF8(entry);
+ key = hv_iterkey(entry,&len);
+ CALLER_CONTEXT;
+- ST(0) = newSVpvn_flags(key, len, SVs_TEMP | (utf8 ? SVf_UTF8 : 0));
++ RETVAL = newSVpvn_flags(key, len, (utf8 ? SVf_UTF8 : 0));
+ } else {
+ CALLER_CONTEXT;
+- ST(0) = &PL_sv_undef;
++ RETVAL = &PL_sv_undef;
+ }
+ LEAVE_LOCK;
+- /* XSRETURN(1); - implied */
++ OUTPUT: RETVAL
+
+
+-void
++SV*
+ NEXTKEY(SV *obj, SV *oldkey)
+ CODE:
+ dTHXc;
+@@ -1532,20 +1573,20 @@ NEXTKEY(SV *obj, SV *oldkey)
+ I32 utf8 = HeKUTF8(entry);
+ key = hv_iterkey(entry,&len);
+ CALLER_CONTEXT;
+- ST(0) = newSVpvn_flags(key, len, SVs_TEMP | (utf8 ? SVf_UTF8 : 0));
++ RETVAL = newSVpvn_flags(key, len, (utf8 ? SVf_UTF8 : 0));
+ } else {
+ CALLER_CONTEXT;
+- ST(0) = &PL_sv_undef;
++ RETVAL = &PL_sv_undef;
+ }
+ LEAVE_LOCK;
+- /* XSRETURN(1); - implied */
++ OUTPUT: RETVAL
+
+
+ MODULE = threads::shared PACKAGE = threads::shared
+
+ PROTOTYPES: ENABLE
+
+-void
++UV
+ _id(SV *myref)
+ PROTOTYPE: \[$@%]
+ PREINIT:
+@@ -1559,11 +1600,11 @@ _id(SV *myref)
+ ssv = Perl_sharedsv_find(aTHX_ myref);
+ if (! ssv)
+ XSRETURN_UNDEF;
+- ST(0) = sv_2mortal(newSVuv(PTR2UV(ssv)));
+- /* XSRETURN(1); - implied */
++ RETVAL = PTR2UV(ssv);
++ OUTPUT: RETVAL
+
+
+-void
++IV
+ _refcnt(SV *myref)
+ PROTOTYPE: \[$@%]
+ PREINIT:
+@@ -1580,11 +1621,11 @@ _refcnt(SV *myref)
+ }
+ XSRETURN_UNDEF;
+ }
+- ST(0) = sv_2mortal(newSViv(SvREFCNT(ssv)));
+- /* XSRETURN(1); - implied */
++ RETVAL = SvREFCNT(ssv);
++ OUTPUT: RETVAL
+
+
+-void
++SV*
+ share(SV *myref)
+ PROTOTYPE: \[$@%]
+ CODE:
+@@ -1594,8 +1635,8 @@ share(SV *myref)
+ if (SvROK(myref))
+ myref = SvRV(myref);
+ Perl_sharedsv_share(aTHX_ myref);
+- ST(0) = sv_2mortal(newRV_inc(myref));
+- /* XSRETURN(1); - implied */
++ RETVAL = newRV_inc(myref);
++ OUTPUT: RETVAL
+
+
+ void
+@@ -1751,7 +1792,7 @@ cond_broadcast(SV *myref)
+ COND_BROADCAST(&ul->user_cond);
+
+
+-void
++SV*
+ bless(SV* myref, ...)
+ PROTOTYPE: $;$
+ PREINIT:
+@@ -1781,7 +1822,7 @@ bless(SV* myref, ...)
+ }
+ SvREFCNT_inc_void(myref);
+ (void)sv_bless(myref, stash);
+- ST(0) = sv_2mortal(myref);
++ RETVAL = myref;
+ ssv = Perl_sharedsv_find(aTHX_ myref);
+ if (ssv) {
+ dTHXc;
+@@ -1794,7 +1835,8 @@ bless(SV* myref, ...)
+ CALLER_CONTEXT;
+ LEAVE_LOCK;
+ }
+- /* XSRETURN(1); - implied */
++ OUTPUT: RETVAL
++
+
+ #endif /* USE_ITHREADS */
+
+--
+2.54.0
+
reply other threads:[~2026-06-30 13:54 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=178282764206.1.2572716576621779982.rpms-perl-threads-shared-98d05c6cb3f8@fedoraproject.org \
--to=jplesnik@redhat.com \
--cc=git-commits@fedoraproject.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox