r66054 - in /branches/upstream/libscope-upper-perl/current: Changes META.yml README Upper.xs lib/Scope/Upper.pm t/59-unwind-threads.t

ansgar at users.alioth.debian.org ansgar at users.alioth.debian.org
Tue Dec 21 09:56:13 UTC 2010


Author: ansgar
Date: Tue Dec 21 09:56:06 2010
New Revision: 66054

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=66054
Log:
[svn-upgrade] new version libscope-upper-perl (0.13)

Modified:
    branches/upstream/libscope-upper-perl/current/Changes
    branches/upstream/libscope-upper-perl/current/META.yml
    branches/upstream/libscope-upper-perl/current/README
    branches/upstream/libscope-upper-perl/current/Upper.xs
    branches/upstream/libscope-upper-perl/current/lib/Scope/Upper.pm
    branches/upstream/libscope-upper-perl/current/t/59-unwind-threads.t

Modified: branches/upstream/libscope-upper-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libscope-upper-perl/current/Changes?rev=66054&op=diff
==============================================================================
--- branches/upstream/libscope-upper-perl/current/Changes (original)
+++ branches/upstream/libscope-upper-perl/current/Changes Tue Dec 21 09:56:06 2010
@@ -1,4 +1,17 @@
 Revision history for Scope-Upper
+
+0.13    2010-12-20 01:00 UTC
+        + Fix : [RT #61904] : Stack corruption when using unwind() under
+                Devel::NYTProf.
+                Thanks Sergey Aleynikov for contributing a fix.
+        + Fix : [RT #63378] : Compatibility with perl 5.13.8.
+                Thanks Andreas J. König for bisecting the issue.
+        + Tst : Threads tests are now only run on perl 5.13.4 and higher.
+                They could segfault randomly because of what seems to be an
+                internal bug of Perl, which has been addressed in 5.13.4.
+                There is also an environment variable that allows you to
+                forcefully run those tests, but it should be set only for
+                author testing and not for end users.
 
 0.12    2010-05-19 00:45 UTC
         + Fix : Compatibility with perl 5.13.

Modified: branches/upstream/libscope-upper-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libscope-upper-perl/current/META.yml?rev=66054&op=diff
==============================================================================
--- branches/upstream/libscope-upper-perl/current/META.yml (original)
+++ branches/upstream/libscope-upper-perl/current/META.yml Tue Dec 21 09:56:06 2010
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:               Scope-Upper
-version:            0.12
+version:            0.13
 abstract:           Act on upper scopes.
 author:
     - Vincent Pit <perl at profvince.com>

Modified: branches/upstream/libscope-upper-perl/current/README
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libscope-upper-perl/current/README?rev=66054&op=diff
==============================================================================
--- branches/upstream/libscope-upper-perl/current/README (original)
+++ branches/upstream/libscope-upper-perl/current/README Tue Dec 21 09:56:06 2010
@@ -2,7 +2,7 @@
     Scope::Upper - Act on upper scopes.
 
 VERSION
-    Version 0.12
+    Version 0.13
 
 SYNOPSIS
     "reap", "localize", "localize_elem", "localize_delete" and "WORDS" :

Modified: branches/upstream/libscope-upper-perl/current/Upper.xs
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libscope-upper-perl/current/Upper.xs?rev=66054&op=diff
==============================================================================
--- branches/upstream/libscope-upper-perl/current/Upper.xs (original)
+++ branches/upstream/libscope-upper-perl/current/Upper.xs Tue Dec 21 09:56:06 2010
@@ -120,11 +120,12 @@
 #define MY_CXT_KEY __PACKAGE__ "::_guts" XS_VERSION
 
 typedef struct {
- char *stack_placeholder;
- I32   cxix;
- I32   items;
- SV  **savesp;
- OP    fakeop;
+ char    *stack_placeholder;
+ I32      cxix;
+ I32      items;
+ SV     **savesp;
+ LISTOP   return_op;
+ OP       proxy_op;
 } my_cxt_t;
 
 START_MY_CXT
@@ -166,8 +167,10 @@
 # define SU_SAVE_GP_SIZE 6
 #elif !SU_HAS_PERL(5, 13, 0) || (SU_RELEASE && SU_HAS_PERL_EXACT(5, 13, 0))
 # define SU_SAVE_GP_SIZE 3
+#elif !SU_HAS_PERL(5, 13, 8)
+# define SU_SAVE_GP_SIZE 4
 #else
-# define SU_SAVE_GP_SIZE 4
+# define SU_SAVE_GP_SIZE 3
 #endif
 
 #ifndef SvCANEXISTDELETE
@@ -757,11 +760,13 @@
                 items, PL_stack_sp - PL_stack_base, *PL_markstack_ptr, mark);
  });
 
- PL_op = PL_ppaddr[OP_RETURN](aTHX);
+ PL_op = (OP *) &(MY_CXT.return_op);
+ PL_op = PL_op->op_ppaddr(aTHX);
+
  *PL_markstack_ptr = mark;
 
- MY_CXT.fakeop.op_next = PL_op;
- PL_op = &(MY_CXT.fakeop);
+ MY_CXT.proxy_op.op_next = PL_op;
+ PL_op = &(MY_CXT.proxy_op);
 }
 
 /* --- XS ------------------------------------------------------------------ */
@@ -878,7 +883,17 @@
  HV *stash;
 
  MY_CXT_INIT;
+
  MY_CXT.stack_placeholder = NULL;
+
+ /* NewOp() calls calloc() which just zeroes the memory with memset(). */
+ Zero(&(MY_CXT.return_op), 1, sizeof(MY_CXT.return_op));
+ MY_CXT.return_op.op_type   = OP_RETURN;
+ MY_CXT.return_op.op_ppaddr = PL_ppaddr[OP_RETURN];
+
+ Zero(&(MY_CXT.proxy_op), 1, sizeof(MY_CXT.proxy_op));
+ MY_CXT.proxy_op.op_type   = OP_STUB;
+ MY_CXT.proxy_op.op_ppaddr = NULL;
 
  stash = gv_stashpv(__PACKAGE__, 1);
  newCONSTSUB(stash, "TOP",           newSViv(0));

Modified: branches/upstream/libscope-upper-perl/current/lib/Scope/Upper.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libscope-upper-perl/current/lib/Scope/Upper.pm?rev=66054&op=diff
==============================================================================
--- branches/upstream/libscope-upper-perl/current/lib/Scope/Upper.pm (original)
+++ branches/upstream/libscope-upper-perl/current/lib/Scope/Upper.pm Tue Dec 21 09:56:06 2010
@@ -9,13 +9,13 @@
 
 =head1 VERSION
 
-Version 0.12
+Version 0.13
 
 =cut
 
 our $VERSION;
 BEGIN {
- $VERSION = '0.12';
+ $VERSION = '0.13';
 }
 
 =head1 SYNOPSIS

Modified: branches/upstream/libscope-upper-perl/current/t/59-unwind-threads.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libscope-upper-perl/current/t/59-unwind-threads.t?rev=66054&op=diff
==============================================================================
--- branches/upstream/libscope-upper-perl/current/t/59-unwind-threads.t (original)
+++ branches/upstream/libscope-upper-perl/current/t/59-unwind-threads.t Tue Dec 21 09:56:06 2010
@@ -12,9 +12,14 @@
 use Config qw/%Config/;
 
 BEGIN {
+ my $force = $ENV{PERL_SCOPE_UPPER_TEST_THREADS} ? 1 : !1;
+ my $t_v   = $force ? '0' : '1.67';
  skipall 'This perl wasn\'t built to support threads'
                                                     unless $Config{useithreads};
- skipall 'threads required to test thread safety' unless eval "use threads; 1";
+ skipall 'perl 5.13.4 required to test thread safety'
+                                                unless $force or $] >= 5.013004;
+ skipall "threads $t_v required to test thread safety"
+                                              unless eval "use threads $t_v; 1";
 }
 
 use Test::More;




More information about the Pkg-perl-cvs-commits mailing list