public inbox for git-commits@fedoraproject.org
help / color / mirror / Atom feed
* [rpms/perl-threads] rawhide: Upgrade to 2.45 as provided in perl-5.44.0-RC1
@ 2026-06-30 13:45 Jitka Plesnikova
  0 siblings, 0 replies; only message in thread
From: Jitka Plesnikova @ 2026-06-30 13:45 UTC (permalink / raw)
  To: git-commits

A new commit has been pushed.

Repo   : rpms/perl-threads
Branch : rawhide
Commit : d534de82290ced872dd769aea77dd66f787483ad
Author : Jitka Plesnikova <jplesnik@redhat.com>
Date   : 2026-06-30T15:44:16+02:00
Stats  : +516/-2 in 2 file(s)
URL    : https://src.fedoraproject.org/rpms/perl-threads/c/d534de82290ced872dd769aea77dd66f787483ad?branch=rawhide

Log:
Upgrade to 2.45 as provided in perl-5.44.0-RC1

---
diff --git a/perl-threads.spec b/perl-threads.spec
index 9fecd40..6a31ffd 100644
--- a/perl-threads.spec
+++ b/perl-threads.spec
@@ -1,8 +1,8 @@
 %global base_version 2.21
 Name:           perl-threads
 Epoch:          1
-Version:        2.43
-Release:        521%{?dist}
+Version:        2.45
+Release:        1%{?dist}
 Summary:        Perl interpreter-based threads
 License:        GPL-1.0-or-later OR Artistic-1.0-Perl
 URL:            https://metacpan.org/release/threads
@@ -11,6 +11,8 @@ Source0:        https://cpan.metacpan.org/authors/id/J/JD/JDHEDDEN/threads-%{bas
 Patch0:         threads-2.21-Upgrade-to-2.40.patch
 # Unbundled from perl 5.42.0
 Patch1:         threads-2.40-Upgrade-to-2.43.patch
+# Unbundled from perl 5.44.0-RC1
+Patch2:         threads-2.43-Upgrade-to-2.45.patch
 BuildRequires:  coreutils
 BuildRequires:  findutils
 BuildRequires:  gcc
@@ -73,6 +75,7 @@ with "%{_libexecdir}/%{name}/test".
 %setup -q -n threads-%{base_version}
 %patch -P0 -p1
 %patch -P1 -p1
+%patch -P2 -p1
 chmod -x examples/*
 
 # Generate ppport.h
@@ -130,6 +133,9 @@ make test
 %{_libexecdir}/%{name}
 
 %changelog
+* Tue Jun 23 2026 Jitka Plesnikova <jplesnik@redhat.com> - 1:2.45-1
+- Upgrade to 2.45 as provided in perl-5.44.0-RC1
+
 * Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 1:2.43-521
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
 

diff --git a/threads-2.43-Upgrade-to-2.45.patch b/threads-2.43-Upgrade-to-2.45.patch
new file mode 100644
index 0000000..d18666b
--- /dev/null
+++ b/threads-2.43-Upgrade-to-2.45.patch
@@ -0,0 +1,508 @@
+From ede5b28e52781606dc82e6a2eb16601ad46d78e0 Mon Sep 17 00:00:00 2001
+From: Jitka Plesnikova <jplesnik@redhat.com>
+Date: Thu, 4 Jun 2026 14:53:46 +0200
+Subject: [PATCH] Upgrade to 2.45
+
+---
+ lib/threads.pm |   4 +-
+ threads.xs     | 148 +++++++++++++++++++++++++------------------------
+ 2 files changed, 79 insertions(+), 73 deletions(-)
+
+diff --git a/lib/threads.pm b/lib/threads.pm
+index 85c48b9..93db76d 100644
+--- a/lib/threads.pm
++++ b/lib/threads.pm
+@@ -5,7 +5,7 @@ use 5.008;
+ use strict;
+ use warnings;
+ 
+-our $VERSION = '2.43';      # remember to update version in POD!
++our $VERSION = '2.45';      # remember to update version in POD!
+ my $XS_VERSION = $VERSION;
+ #$VERSION = eval $VERSION;
+ 
+@@ -134,7 +134,7 @@ threads - Perl interpreter-based threads
+ 
+ =head1 VERSION
+ 
+-This document describes threads version 2.43
++This document describes threads version 2.45
+ 
+ =head1 WARNING
+ 
+diff --git a/threads.xs b/threads.xs
+index 84ad487..d54ab0b 100644
+--- a/threads.xs
++++ b/threads.xs
+@@ -147,7 +147,7 @@ typedef struct {
+ 
+ /* Block most signals for calling thread, setting the old signal mask to
+  * oldmask, if it is not NULL */
+-STATIC int
++static int
+ S_block_most_signals(sigset_t *oldmask)
+ {
+     sigset_t newmask;
+@@ -173,7 +173,7 @@ S_block_most_signals(sigset_t *oldmask)
+ }
+ 
+ /* Set the signal mask for this thread to newmask */
+-STATIC int
++static int
+ S_set_sigmask(sigset_t *newmask)
+ {
+ #if defined(VMS)
+@@ -185,14 +185,14 @@ S_set_sigmask(sigset_t *newmask)
+ #endif /* WIN32 */
+ 
+ /* Used by Perl interpreter for thread context switching */
+-STATIC void
++static void
+ S_ithread_set(pTHX_ ithread *thread)
+ {
+     dMY_CXT;
+     MY_CXT.context = thread;
+ }
+ 
+-STATIC ithread *
++static ithread *
+ S_ithread_get(pTHX)
+ {
+     dMY_CXT;
+@@ -207,7 +207,7 @@ S_ithread_get(pTHX)
+  * of the interpreter can lead to recursive destruction calls that could
+  * lead to a deadlock on that mutex.
+  */
+-STATIC void
++static void
+ S_ithread_clear(pTHX_ ithread *thread)
+ {
+     PerlInterpreter *interp;
+@@ -276,7 +276,7 @@ S_ithread_clear(pTHX_ ithread *thread)
+  * Must be called with the mutex held.
+  * On return, mutex is released (or destroyed).
+  */
+-STATIC void
++static void
+ S_ithread_free(pTHX_ ithread *thread)
+   PERL_TSA_RELEASE(thread->mutex)
+ {
+@@ -350,7 +350,7 @@ S_ithread_count_inc(pTHX_ ithread *thread)
+ 
+ 
+ /* Warn if exiting with any unjoined threads */
+-STATIC int
++static int
+ S_exit_warning(pTHX)
+ {
+     int veto_cleanup, warn;
+@@ -389,7 +389,7 @@ S_exit_warning(pTHX)
+ /* Called from perl_destruct() in each thread.  If it's the main thread,
+  * stop it from freeing everything if there are other threads still running.
+  */
+-STATIC int
++static int
+ Perl_ithread_hook(pTHX)
+ {
+     dMY_POOL;
+@@ -399,7 +399,7 @@ Perl_ithread_hook(pTHX)
+ 
+ /* MAGIC (in mg.h sense) hooks */
+ 
+-STATIC int
++static int
+ ithread_mg_get(pTHX_ SV *sv, MAGIC *mg)
+ {
+     ithread *thread = (ithread *)mg->mg_ptr;
+@@ -408,7 +408,7 @@ ithread_mg_get(pTHX_ SV *sv, MAGIC *mg)
+     return (0);
+ }
+ 
+-STATIC int
++static int
+ ithread_mg_free(pTHX_ SV *sv, MAGIC *mg)
+ {
+     ithread *thread = (ithread *)mg->mg_ptr;
+@@ -418,7 +418,7 @@ ithread_mg_free(pTHX_ SV *sv, MAGIC *mg)
+     return (0);
+ }
+ 
+-STATIC int
++static int
+ ithread_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *param)
+ {
+     PERL_UNUSED_ARG(param);
+@@ -426,7 +426,7 @@ ithread_mg_dup(pTHX_ MAGIC *mg, CLONE_PARAMS *param)
+     return (0);
+ }
+ 
+-STATIC const MGVTBL ithread_vtbl = {
++static const MGVTBL ithread_vtbl = {
+     ithread_mg_get,     /* get */
+     0,                  /* set */
+     0,                  /* len */
+@@ -441,7 +441,7 @@ STATIC const MGVTBL ithread_vtbl = {
+ 
+ 
+ /* Provided default, minimum and rational stack sizes */
+-STATIC IV
++static IV
+ S_good_stack_size(pTHX_ IV stack_size)
+ {
+     dMY_POOL;
+@@ -543,10 +543,10 @@ S_jmpenv_run(pTHX_ int action, ithread *thread,
+  */
+ #ifdef WIN32
+ PERL_STACK_REALIGN
+-STATIC THREAD_RET_TYPE
++static THREAD_RET_TYPE
+ S_ithread_run(LPVOID arg)
+ #else
+-STATIC void *
++static void *
+ S_ithread_run(void * arg)
+ #endif
+ {
+@@ -726,7 +726,7 @@ S_ithread_run(void * arg)
+ 
+ /* Type conversion helper functions */
+ 
+-STATIC SV *
++static SV *
+ S_ithread_to_SV(pTHX_ SV *obj, ithread *thread, char *classname, bool inc)
+ {
+     SV *sv;
+@@ -748,7 +748,7 @@ S_ithread_to_SV(pTHX_ SV *obj, ithread *thread, char *classname, bool inc)
+     return (obj);
+ }
+ 
+-STATIC ithread *
++static ithread *
+ S_SV_to_ithread(pTHX_ SV *sv)
+ {
+     /* Argument is a thread */
+@@ -765,7 +765,7 @@ S_SV_to_ithread(pTHX_ SV *sv)
+  * Called with my_pool->create_destruct_mutex locked.
+  * (Unlocked both on error and on success.)
+  */
+-STATIC ithread *
++static ithread *
+ S_ithread_create(
+         PerlInterpreter *parent_perl,
+         my_pool_t *my_pool,
+@@ -978,9 +978,9 @@ S_ithread_create(
+                                   &thread->thr);
+ #else
+     {
+-        STATIC pthread_attr_t attr;
+-        STATIC int attr_inited = 0;
+-        STATIC int attr_joinable = PTHREAD_CREATE_JOINABLE;
++        static pthread_attr_t attr;
++        static int attr_inited = 0;
++        static int attr_joinable = PTHREAD_CREATE_JOINABLE;
+         if (! attr_inited) {
+             pthread_attr_init(&attr);
+             attr_inited = 1;
+@@ -1061,7 +1061,7 @@ S_ithread_create(
+             }
+         }
+ #endif
+-        return (NULL);
++        return NULL;
+     }
+ 
+     my_pool->running_threads++;
+@@ -1081,7 +1081,7 @@ PROTOTYPES: DISABLE
+ 
+ #ifdef USE_ITHREADS
+ 
+-void
++SV*
+ ithread_create(...)
+     PREINIT:
+         char *classname;
+@@ -1206,7 +1206,7 @@ ithread_create(...)
+             XSRETURN_UNDEF;     /* Mutex already unlocked */
+         }
+         PERL_SRAND_OVERRIDE_NEXT_PARENT();
+-        ST(0) = sv_2mortal(S_ithread_to_SV(aTHX_ Nullsv, thread, classname, FALSE));
++        RETVAL = S_ithread_to_SV(aTHX_ Nullsv, thread, classname, FALSE);
+ 
+         /* Let thread run. */
+         /* See S_ithread_run() for more detail. */
+@@ -1214,7 +1214,7 @@ ithread_create(...)
+         /* warning: releasing mutex 'thread->mutex' that was not held [-Wthread-safety-analysis] */
+         MUTEX_UNLOCK(&thread->mutex);
+         CLANG_DIAG_RESTORE_STMT;
+-        /* XSRETURN(1); - implied */
++    OUTPUT: RETVAL
+ 
+ 
+ void
+@@ -1283,7 +1283,7 @@ ithread_list(...)
+         }
+ 
+ 
+-void
++SV*
+ ithread_self(...)
+     PREINIT:
+         char *classname;
+@@ -1297,19 +1297,19 @@ ithread_self(...)
+ 
+         thread = S_ithread_get(aTHX);
+ 
+-        ST(0) = sv_2mortal(S_ithread_to_SV(aTHX_ Nullsv, thread, classname, TRUE));
+-        /* XSRETURN(1); - implied */
++        RETVAL = S_ithread_to_SV(aTHX_ Nullsv, thread, classname, TRUE);
++    OUTPUT: RETVAL
+ 
+ 
+-void
++UV
+ ithread_tid(...)
+     PREINIT:
+         ithread *thread;
+     CODE:
+         PERL_UNUSED_VAR(items);
+         thread = S_SV_to_ithread(aTHX_ ST(0));
+-        XST_mUV(0, thread->tid);
+-        /* XSRETURN(1); - implied */
++        RETVAL = thread->tid;
++    OUTPUT: RETVAL
+ 
+ 
+ void
+@@ -1503,7 +1503,7 @@ ithread_kill(...)
+         char *sig_name;
+         IV signal;
+         int no_handler = 1;
+-    CODE:
++    PPCODE:
+         /* Must have safe signals */
+         if (PL_signals & PERL_SIGNALS_UNSAFE_FLAG) {
+             Perl_croak(aTHX_ "Cannot signal threads without safe signals");
+@@ -1549,9 +1549,9 @@ ithread_kill(...)
+                              sig_name, thread->tid);
+         }
+ 
+-        /* Return the thread to allow for method chaining */
+-        ST(0) = ST(0);
+-        /* XSRETURN(1); - implied */
++        /* Return the thread to allow for method chaining: */
++        /* cheap PUSHs(ST(0)) -  ST(0) still holds the object SV */
++        SP++;
+ 
+ 
+ void
+@@ -1561,7 +1561,7 @@ ithread_DESTROY(...)
+         sv_unmagic(SvRV(ST(0)), PERL_MAGIC_shared_scalar);
+ 
+ 
+-void
++IV
+ ithread_equal(...)
+     PREINIT:
+         int are_equal = 0;
+@@ -1575,15 +1575,15 @@ ithread_equal(...)
+             are_equal = (thr1->tid == thr2->tid);
+         }
+         if (are_equal) {
+-            XST_mYES(0);
++            XSRETURN_YES;
+         } else {
+             /* Return 0 on false for backward compatibility */
+-            XST_mIV(0, 0);
++            RETVAL = 0;
+         }
+-        /* XSRETURN(1); - implied */
++    OUTPUT: RETVAL
+ 
+ 
+-void
++SV*
+ ithread_object(...)
+     PREINIT:
+         char *classname;
+@@ -1619,7 +1619,7 @@ ithread_object(...)
+            ->self() */
+         thread = S_ithread_get(aTHX);
+         if (thread->tid == tid) {
+-            ST(0) = sv_2mortal(S_ithread_to_SV(aTHX_ Nullsv, thread, classname, TRUE));
++            RETVAL = S_ithread_to_SV(aTHX_ Nullsv, thread, classname, TRUE);
+             have_obj = 1;
+ 
+         } else {
+@@ -1636,8 +1636,8 @@ ithread_object(...)
+                     state = thread->state;
+                     MUTEX_UNLOCK(&thread->mutex);
+                     if (! (state & PERL_ITHR_UNCALLABLE)) {
+-                        /* Put object on stack */
+-                        ST(0) = sv_2mortal(S_ithread_to_SV(aTHX_ Nullsv, thread, classname, TRUE));
++                        RETVAL = S_ithread_to_SV(aTHX_ Nullsv,
++                                                thread, classname, TRUE);
+                         have_obj = 1;
+                     }
+                     break;
+@@ -1649,10 +1649,10 @@ ithread_object(...)
+         if (! have_obj) {
+             XSRETURN_UNDEF;
+         }
+-        /* XSRETURN(1); - implied */
++    OUTPUT: RETVAL
+ 
+ 
+-void
++UV
+ ithread__handle(...);
+     PREINIT:
+         ithread *thread;
+@@ -1660,14 +1660,14 @@ ithread__handle(...);
+         PERL_UNUSED_VAR(items);
+         thread = S_SV_to_ithread(aTHX_ ST(0));
+ #ifdef WIN32
+-        XST_mUV(0, PTR2UV(&thread->handle));
++        RETVAL = PTR2UV(&thread->handle);
+ #else
+-        XST_mUV(0, PTR2UV(&thread->thr));
++        RETVAL = PTR2UV(&thread->thr);
+ #endif
+-        /* XSRETURN(1); - implied */
++    OUTPUT: RETVAL
+ 
+ 
+-void
++IV
+ ithread_get_stack_size(...)
+     PREINIT:
+         IV stack_size;
+@@ -1682,11 +1682,11 @@ ithread_get_stack_size(...)
+             /* threads->get_stack_size() */
+             stack_size = MY_POOL.default_stack_size;
+         }
+-        XST_mIV(0, stack_size);
+-        /* XSRETURN(1); - implied */
++        RETVAL = stack_size;
++    OUTPUT: RETVAL
+ 
+ 
+-void
++IV
+ ithread_set_stack_size(...)
+     PREINIT:
+         IV old_size;
+@@ -1704,11 +1704,11 @@ ithread_set_stack_size(...)
+ 
+         old_size = MY_POOL.default_stack_size;
+         MY_POOL.default_stack_size = S_good_stack_size(aTHX_ SvIV(ST(1)));
+-        XST_mIV(0, old_size);
+-        /* XSRETURN(1); - implied */
++        RETVAL = old_size;
++    OUTPUT: RETVAL
+ 
+ 
+-void
++SV*
+ ithread_is_running(...)
+     PREINIT:
+         ithread *thread;
+@@ -1720,12 +1720,12 @@ ithread_is_running(...)
+ 
+         thread = INT2PTR(ithread *, SvIV(SvRV(ST(0))));
+         MUTEX_LOCK(&thread->mutex);
+-        ST(0) = (thread->state & PERL_ITHR_FINISHED) ? &PL_sv_no : &PL_sv_yes;
++        RETVAL = (thread->state & PERL_ITHR_FINISHED) ? &PL_sv_no : &PL_sv_yes;
+         MUTEX_UNLOCK(&thread->mutex);
+-        /* XSRETURN(1); - implied */
++    OUTPUT: RETVAL
+ 
+ 
+-void
++SV*
+ ithread_is_detached(...)
+     PREINIT:
+         ithread *thread;
+@@ -1733,12 +1733,12 @@ ithread_is_detached(...)
+         PERL_UNUSED_VAR(items);
+         thread = S_SV_to_ithread(aTHX_ ST(0));
+         MUTEX_LOCK(&thread->mutex);
+-        ST(0) = (thread->state & PERL_ITHR_DETACHED) ? &PL_sv_yes : &PL_sv_no;
++        RETVAL = (thread->state & PERL_ITHR_DETACHED) ? &PL_sv_yes : &PL_sv_no;
+         MUTEX_UNLOCK(&thread->mutex);
+-        /* XSRETURN(1); - implied */
++    OUTPUT: RETVAL
+ 
+ 
+-void
++SV*
+ ithread_is_joinable(...)
+     PREINIT:
+         ithread *thread;
+@@ -1750,24 +1750,24 @@ ithread_is_joinable(...)
+ 
+         thread = INT2PTR(ithread *, SvIV(SvRV(ST(0))));
+         MUTEX_LOCK(&thread->mutex);
+-        ST(0) = ((thread->state & PERL_ITHR_FINISHED) &&
++        RETVAL = ((thread->state & PERL_ITHR_FINISHED) &&
+                  ! (thread->state & PERL_ITHR_UNCALLABLE))
+             ? &PL_sv_yes : &PL_sv_no;
+         MUTEX_UNLOCK(&thread->mutex);
+-        /* XSRETURN(1); - implied */
++    OUTPUT: RETVAL
+ 
+ 
+-void
++SV*
+ ithread_wantarray(...)
+     PREINIT:
+         ithread *thread;
+     CODE:
+         PERL_UNUSED_VAR(items);
+         thread = S_SV_to_ithread(aTHX_ ST(0));
+-        ST(0) = ((thread->gimme & G_WANT) == G_LIST) ? &PL_sv_yes :
+-                ((thread->gimme & G_WANT) == G_VOID) ? &PL_sv_undef
+-                                      /* G_SCALAR */ : &PL_sv_no;
+-        /* XSRETURN(1); - implied */
++        RETVAL = ((thread->gimme & G_WANT) == G_LIST) ? &PL_sv_yes :
++                 ((thread->gimme & G_WANT) == G_VOID) ? &PL_sv_undef
++                                       /* G_SCALAR */ : &PL_sv_no;
++    OUTPUT: RETVAL
+ 
+ 
+ void
+@@ -1781,6 +1781,12 @@ ithread_set_thread_exit_only(...)
+         thread = S_SV_to_ithread(aTHX_ ST(0));
+         MUTEX_LOCK(&thread->mutex);
+         if (SvTRUE(ST(1))) {
++            /* ; <-- this semicolon disables a spurious false positive
++             * from the XS parser when it is looking for
++             *     'ST( [anything except ;] ='
++             * on void subs and thus emitting XSRETURN(1) rather than
++             * XSRETURN_EMPTY.
++             */
+             thread->state |= PERL_ITHR_THREAD_EXIT_ONLY;
+         } else {
+             thread->state &= ~PERL_ITHR_THREAD_EXIT_ONLY;
+@@ -1788,7 +1794,7 @@ ithread_set_thread_exit_only(...)
+         MUTEX_UNLOCK(&thread->mutex);
+ 
+ 
+-void
++SV*
+ ithread_error(...)
+     PREINIT:
+         ithread *thread;
+@@ -1864,8 +1870,8 @@ ithread_error(...)
+             XSRETURN_UNDEF;
+         }
+ 
+-        ST(0) = sv_2mortal(err);
+-        /* XSRETURN(1); - implied */
++        RETVAL = err;
++    OUTPUT: RETVAL
+ 
+ 
+ #endif /* USE_ITHREADS */
+-- 
+2.54.0
+

^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2026-06-30 13:45 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-06-30 13:45 [rpms/perl-threads] rawhide: Upgrade to 2.45 as provided in perl-5.44.0-RC1 Jitka Plesnikova

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox