r64475 - in /branches/upstream/libclass-xsaccessor-perl/current: Changes MANIFEST META.yml lib/Class/XSAccessor.pm lib/Class/XSAccessor/Array.pm lib/Class/XSAccessor/Heavy.pm t/03hash_predicate.t t/50reentrant_goto_sigsegv.t

periapt-guest at users.alioth.debian.org periapt-guest at users.alioth.debian.org
Mon Nov 1 21:34:53 UTC 2010


Author: periapt-guest
Date: Mon Nov  1 21:34:23 2010
New Revision: 64475

URL: http://svn.debian.org/wsvn/pkg-perl/?sc=1&rev=64475
Log:
[svn-upgrade] new version libclass-xsaccessor-perl (1.09)

Added:
    branches/upstream/libclass-xsaccessor-perl/current/t/50reentrant_goto_sigsegv.t
Modified:
    branches/upstream/libclass-xsaccessor-perl/current/Changes
    branches/upstream/libclass-xsaccessor-perl/current/MANIFEST
    branches/upstream/libclass-xsaccessor-perl/current/META.yml
    branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor.pm
    branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor/Array.pm
    branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor/Heavy.pm
    branches/upstream/libclass-xsaccessor-perl/current/t/03hash_predicate.t

Modified: branches/upstream/libclass-xsaccessor-perl/current/Changes
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-xsaccessor-perl/current/Changes?rev=64475&op=diff
==============================================================================
--- branches/upstream/libclass-xsaccessor-perl/current/Changes (original)
+++ branches/upstream/libclass-xsaccessor-perl/current/Changes Mon Nov  1 21:34:23 2010
@@ -1,4 +1,10 @@
 Revision history for Perl extension Class-XSAccessor.
+
+1.09  Sun Oct 31 12:45 2010
+  - Fix #62531: Predicates return value, not bool (SJOHNSTON)
+  - TODO test for perl-crashing bug (in perl) that can happen
+    on (arcane) XSUB aliasing on perl's < 5.8.9 (Peter Rabbitson)
+    We're open for work-around patches.
 
 1.08  Fri Sep 17 20:30 2010
   - Promote latest development release to a stable release.

Modified: branches/upstream/libclass-xsaccessor-perl/current/MANIFEST
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-xsaccessor-perl/current/MANIFEST?rev=64475&op=diff
==============================================================================
--- branches/upstream/libclass-xsaccessor-perl/current/MANIFEST (original)
+++ branches/upstream/libclass-xsaccessor-perl/current/MANIFEST Mon Nov  1 21:34:23 2010
@@ -34,6 +34,7 @@
 t/39array_lvalue.t
 t/40hash_bad_call.t
 t/41array_bad_call.t
+t/50reentrant_goto_sigsegv.t
 t/80threadbomb.t
 XS/Array.xs
 XS/Hash.xs

Modified: branches/upstream/libclass-xsaccessor-perl/current/META.yml
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-xsaccessor-perl/current/META.yml?rev=64475&op=diff
==============================================================================
--- branches/upstream/libclass-xsaccessor-perl/current/META.yml (original)
+++ branches/upstream/libclass-xsaccessor-perl/current/META.yml Mon Nov  1 21:34:23 2010
@@ -1,6 +1,6 @@
 --- #YAML:1.0
 name:               Class-XSAccessor
-version:            1.08
+version:            1.09
 abstract:           Generate fast XS accessors without runtime compilation
 author:
     - Steffen Mueller <smueller at cpan.org>

Modified: branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor.pm?rev=64475&op=diff
==============================================================================
--- branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor.pm (original)
+++ branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor.pm Mon Nov  1 21:34:23 2010
@@ -6,7 +6,7 @@
 use Class::XSAccessor::Heavy;
 use XSLoader;
 
-our $VERSION = '1.08';
+our $VERSION = '1.09';
 
 XSLoader::load('Class::XSAccessor', $VERSION);
 
@@ -49,7 +49,7 @@
                         ["accessor", $acc_subs],
                         ["lvalue_accessor", $lvacc_subs],
                         ["test", $test_subs],
-                        ["pred_subs", $pred_subs] )
+                        ["predicate", $pred_subs] )
   {
     my $subs = $subtype->[1];
     foreach my $subname (keys %$subs) {

Modified: branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor/Array.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor/Array.pm?rev=64475&op=diff
==============================================================================
--- branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor/Array.pm (original)
+++ branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor/Array.pm Mon Nov  1 21:34:23 2010
@@ -6,7 +6,7 @@
 use Class::XSAccessor;
 use Class::XSAccessor::Heavy;
 
-our $VERSION = '1.08';
+our $VERSION = '1.09';
 
 sub import {
   my $own_class = shift;

Modified: branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor/Heavy.pm
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor/Heavy.pm?rev=64475&op=diff
==============================================================================
--- branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor/Heavy.pm (original)
+++ branches/upstream/libclass-xsaccessor-perl/current/lib/Class/XSAccessor/Heavy.pm Mon Nov  1 21:34:23 2010
@@ -6,7 +6,7 @@
 use warnings;
 use Carp;
 
-our $VERSION  = '1.08';
+our $VERSION  = '1.09';
 our @CARP_NOT = qw(
         Class::XSAccessor
         Class::XSAccessor::Array

Modified: branches/upstream/libclass-xsaccessor-perl/current/t/03hash_predicate.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-xsaccessor-perl/current/t/03hash_predicate.t?rev=64475&op=diff
==============================================================================
--- branches/upstream/libclass-xsaccessor-perl/current/t/03hash_predicate.t (original)
+++ branches/upstream/libclass-xsaccessor-perl/current/t/03hash_predicate.t Mon Nov  1 21:34:23 2010
@@ -5,9 +5,9 @@
 
 use Class::XSAccessor
   accessors  => { bar => 'bar' },
-  getters    => { get_foo => 'foo' },
+  getters    => { get_foo => 'foo', get_zero => 'zero' },
   setters    => { set_foo => 'foo' },
-  predicates => { has_foo => 'foo', has_bar => 'bar' };
+  predicates => { has_foo => 'foo', has_bar => 'bar', has_zero => 'zero' };
 
 use Class::XSAccessor
   predicates => 'single';
@@ -16,12 +16,12 @@
 
 sub new {
   my $class = shift;
-  bless { bar => 'baz' }, $class;
+  bless { bar => 'baz', zero => 0 }, $class;
 }
 
 package main;
 
-use Test::More tests => 18;
+use Test::More tests => 20;
 
 my $obj = Class::XSAccessor::Test->new();
 
@@ -43,6 +43,9 @@
 ok(!$obj->has_foo());
 ok(!$obj->has_bar());
 
+is($obj->get_zero, 0);
+ok($obj->has_zero);
+
 ok(!$obj->single);
 ok(!$obj->mult);
 ok(!$obj->iple);

Added: branches/upstream/libclass-xsaccessor-perl/current/t/50reentrant_goto_sigsegv.t
URL: http://svn.debian.org/wsvn/pkg-perl/branches/upstream/libclass-xsaccessor-perl/current/t/50reentrant_goto_sigsegv.t?rev=64475&op=file
==============================================================================
--- branches/upstream/libclass-xsaccessor-perl/current/t/50reentrant_goto_sigsegv.t (added)
+++ branches/upstream/libclass-xsaccessor-perl/current/t/50reentrant_goto_sigsegv.t Mon Nov  1 21:34:23 2010
@@ -1,0 +1,59 @@
+# segfault bug in perls < 5.8.9 (a perl bug)
+# patches welcome
+# see http://github.com/tsee/Class-XSAccessor/commit/8fe9c128027cc49c8e2d89c442c77285598b12d3
+
+use strict;
+use warnings;
+
+use Class::XSAccessor;
+use Test::More tests => 14;
+
+my $shim_calls;
+
+sub install_accessor_with_shim {
+  my ($class, $name, $field) = @_;
+
+  $field = $name if not defined $field;
+
+  Class::XSAccessor->import ({
+    class => $class,
+    getters => { $name => $field },
+    replace => 1,
+  });
+
+  my $xs_cref = $class->can ($name);
+
+  no strict 'refs';
+  no warnings 'redefine';
+
+  *{"${class}::${name}"} = sub {
+    $shim_calls++;
+    goto $xs_cref;
+  };
+}
+
+TODO: {
+    todo_skip 'bug in perls < 5.8.9', 14, $] < 5.008009;
+
+    for my $name (qw/bar baz/) {
+      for my $pass (1..2) {
+
+        $shim_calls = 0;
+
+        install_accessor_with_shim ('Foo', $name);
+        my $obj = bless ({ $name => 'a'}, 'Foo');
+
+        is ($shim_calls, 0, "Reset number of calls ($name pass $pass)" );
+        is ($obj->$name, 'a', "Accessor read works ($name pass $pass)" );
+        is ($shim_calls, 1, "Shim called ($name pass $pass)" );
+
+        eval { $obj->$name ('ack!') };
+        ok ($@ =~ /Usage\: $name\(self\)/, "Exception from R/O accessor thrown ($name pass $pass)" );
+        is ($shim_calls, 2, "Shim called anyway ($name pass $pass)" );
+
+        eval { $obj->$name ('ick!') };
+        ok ($@ =~ /Usage\: $name\(self\)/, "Exception from R/O accessor thrown once again ($name pass $pass)" );
+        is ($shim_calls, 3, "Shim called again ($name pass $pass)" );
+      }
+    }
+}




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