Hello community,
here is the log from the commit of package perl-Class-XSAccessor for
openSUSE:Factory
checked in at Mon Sep 19 21:15:56 CEST 2011.
--------
--- perl-Class-XSAccessor/perl-Class-XSAccessor.changes 2011-06-20
11:20:19.000000000 +0200
+++
/mounts/work_src_done/STABLE/perl-Class-XSAccessor/perl-Class-XSAccessor.changes
2011-09-19 17:28:04.000000000 +0200
@@ -1,0 +2,13 @@
+Mon Sep 19 15:22:14 UTC 2011 - [email protected]
+
+- updated to 1.12
+ - Reclaim compatibility with the most recent versions of
+ ExtUtils::ParseXS.
+ - Explicit tests for wrong-type invocants.
+
+-------------------------------------------------------------------
+Mon Sep 19 15:22:12 UTC 2011 - [email protected]
+
+- updated to 1.11
+
+-------------------------------------------------------------------
calling whatdependson for head-i586
Old:
----
Class-XSAccessor-1.11.tar.gz
_service:download_files:Class-XSAccessor-1.11.tar.gz
_service:download_files:Class-XSAccessor-1.11.tar.gz.1
_service:format_spec_file:perl-Class-XSAccessor.spec
New:
----
Class-XSAccessor-1.12.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Class-XSAccessor.spec ++++++
--- /var/tmp/diff_new_pack.VcXcQu/_old 2011-09-19 21:15:51.000000000 +0200
+++ /var/tmp/diff_new_pack.VcXcQu/_new 2011-09-19 21:15:51.000000000 +0200
@@ -18,59 +18,82 @@
Name: perl-Class-XSAccessor
-Version: 1.11
+Version: 1.12
Release: 1
+License: GPL+ or Artistic
+%define cpan_name Class-XSAccessor
Summary: Generate fast XS accessors without runtime compilation
-Source:
http://search.cpan.org/CPAN/authors/id/S/SM/SMUELLER/Class-XSAccessor-%{version}.tar.gz
-Url: http://search.cpan.org/dist/Class-XSAccessor
+Url: http://search.cpan.org/dist/Class-XSAccessor/
Group: Development/Libraries/Perl
-License: GPL+ or Artistic
+Source:
http://www.cpan.org/authors/id/S/SM/SMUELLER/%{cpan_name}-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-build
-Requires: perl = %{perl_version}
BuildRequires: perl
BuildRequires: perl-macros
-BuildRequires: make
-BuildRequires: gcc
-BuildRequires: perl(Test::More)
-BuildRequires: perl(ExtUtils::MakeMaker)
-BuildRequires: perl(XSLoader)
-Requires: perl(XSLoader)
+#BuildRequires: perl(Class::XSAccessor)
+#BuildRequires: perl(Class::XSAccessor::Array)
+#BuildRequires: perl(Class::XSAccessor::Heavy)
+#BuildRequires: perl(Modern::Perl)
+%{perl_requires}
%description
Class::XSAccessor implements fast read, write and read/write accessors in
-XS. Additionally, it can provide predicates such as "has_foo()" for
-testing whether the attribute "foo" is defined in the object. It only
-works with objects that are implemented as ordinary hashes.
-Class::XSAccessor::Array implements the same interface for objects that
-use arrays for their internal representation.
+XS. Additionally, it can provide predicates such as 'has_foo()' for testing
+whether the attribute 'foo' is defined in the object. It only works with
+objects that are implemented as ordinary hashes. the
+Class::XSAccessor::Array manpage implements the same interface for objects
+that use arrays for their internal representation.
+
+Since version 0.10, the module can also generate simple constructors
+(implemented in XS). Simply supply the 'constructor => 'constructor_name''
+option or the 'constructors => ['new', 'create', 'spawn']' option. These
+constructors do the equivalent of the following Perl code:
+
+ sub new {
+ my $class = shift;
+ return bless { @_ }, ref($class)||$class;
+ }
+
+That means they can be called on objects and classes but will not clone
+objects entirely. Parameters to 'new()' are added to the object.
+
+The XS accessor methods are between 3 and 4 times faster than typical
+pure-Perl accessors in some simple benchmarking. The lower factor applies
+to the potentially slightly obscure 'sub set_foo_pp {$_[0]->{foo} =
+$_[1]}', so if you usually write clear code, a factor of 3.5 speed-up is a
+good estimate. If in doubt, do your own benchmarking!
+
+The method names may be fully qualified. The example in the synopsis could
+have been written as 'MyClass::get_foo' instead of 'get_foo'. This way,
+methods can be installed in classes other than the current class. See also:
+the 'class' option below.
+
+By default, the setters return the new value that was set, and the
+accessors (mutators) do the same. This behaviour can be changed with the
+'chained' option - see below. The predicates return a boolean.
+
+Since version 1.01, 'Class::XSAccessor' can generate extremely simple
+methods which just return true or false (and always do so). If that seems
+like a really superfluous thing to you, then consider a large class
+hierarchy with interfaces such as the PPI manpage. These methods are
+provided by the 'true' and 'false' options - see the synopsis.
%prep
-%setup -q -n "Class-XSAccessor-%{version}"
-%__sed -i '/^auto_install/d' Makefile.PL
+%setup -q -n %{cpan_name}-%{version}
%build
-%__perl Makefile.PL PREFIX="%{_prefix}"
-%__make %{?jobs:-j%{jobs}} OPTIMIZE="%{optflags} -Wall"
+%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
+%{__make} %{?_smp_mflags}
+
+%check
+%{__make} test
%install
%perl_make_install
%perl_process_packlist
+%perl_gen_filelist
-%check
-%__make test
-
-%clean
-%{?buildroot:%__rm -rf "%{buildroot}"}
-
-%files
-%defattr(-,root,root)
-%doc Changes README
-%dir %{perl_vendorarch}/Class
-%{perl_vendorarch}/Class/XSAccessor.pm
-%{perl_vendorarch}/Class/XSAccessor
-%dir %{perl_vendorarch}/auto/Class
-%{perl_vendorarch}/auto/Class/XSAccessor
-%doc %{perl_man3dir}/Class::XSAccessor.%{perl_man3ext}%{ext_man}
-%doc %{perl_man3dir}/Class::XSAccessor::*.%{perl_man3ext}%{ext_man}
+%files -f %{name}.files
+%defattr(-,root,root,755)
+%doc Changes MYMETA.json MYMETA.yml README
%changelog
++++++ Class-XSAccessor-1.11.tar.gz -> Class-XSAccessor-1.12.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/Changes
new/Class-XSAccessor-1.12/Changes
--- old/Class-XSAccessor-1.11/Changes 2010-12-03 16:13:45.000000000 +0100
+++ new/Class-XSAccessor-1.12/Changes 2011-09-04 19:00:10.000000000 +0200
@@ -1,5 +1,10 @@
Revision history for Perl extension Class-XSAccessor.
+1.12 Fri Sep 4 19:00 2011
+ - Reclaim compatibility with the most recent versions of
+ ExtUtils::ParseXS.
+ - Explicit tests for wrong-type invocants.
+
1.11 Fri Dec 3 18:00 2010
- Fix assignment to lvalue accessors that
point at an uninitialized hash element.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/MANIFEST
new/Class-XSAccessor-1.12/MANIFEST
--- old/Class-XSAccessor-1.11/MANIFEST 2010-12-03 16:14:52.000000000 +0100
+++ new/Class-XSAccessor-1.12/MANIFEST 2011-09-04 19:04:30.000000000 +0200
@@ -11,6 +11,8 @@
Makefile.PL
MANIFEST This list of files
MurmurHashNeutral2.h
+MYMETA.json
+MYMETA.yml
ppport.h
README
t/01hash_basic.t
@@ -35,9 +37,11 @@
t/40hash_bad_call.t
t/41array_bad_call.t
t/50reentrant_goto_sigsegv.t
+t/70bad_arguments.t
t/80threadbomb.t
XS/Array.xs
XS/Hash.xs
XS/HashCACompat.xs
XSAccessor.xs
-META.yml Module meta-data (added by MakeMaker)
+META.yml Module YAML meta-data (added by
MakeMaker)
+META.json Module JSON meta-data (added by
MakeMaker)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/META.json
new/Class-XSAccessor-1.12/META.json
--- old/Class-XSAccessor-1.11/META.json 1970-01-01 01:00:00.000000000 +0100
+++ new/Class-XSAccessor-1.12/META.json 2011-09-04 19:04:30.000000000 +0200
@@ -0,0 +1,47 @@
+{
+ "abstract" : "Generate fast XS accessors without runtime compilation",
+ "author" : [
+ "Steffen Mueller <[email protected]>"
+ ],
+ "dynamic_config" : 1,
+ "generated_by" : "ExtUtils::MakeMaker version 6.58, CPAN::Meta::Converter
version 2.110930",
+ "license" : [
+ "perl_5"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Class-XSAccessor",
+ "no_index" : {
+ "directory" : [
+ "t",
+ "inc"
+ ]
+ },
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "Test::More" : 0
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : 0
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "XSLoader" : 0,
+ "perl" : "5.008"
+ }
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "repository" : {
+ "url" : "git://github.com/tsee/Class-XSAccessor.git"
+ }
+ },
+ "version" : "1.12"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/META.yml
new/Class-XSAccessor-1.12/META.yml
--- old/Class-XSAccessor-1.11/META.yml 2010-12-03 16:14:52.000000000 +0100
+++ new/Class-XSAccessor-1.12/META.yml 2011-09-04 19:04:30.000000000 +0200
@@ -1,25 +1,25 @@
---- #YAML:1.0
-name: Class-XSAccessor
-version: 1.11
-abstract: Generate fast XS accessors without runtime compilation
+---
+abstract: 'Generate fast XS accessors without runtime compilation'
author:
- - Steffen Mueller <[email protected]>
-license: perl
-distribution_type: module
-configure_requires:
- ExtUtils::MakeMaker: 0
+ - 'Steffen Mueller <[email protected]>'
build_requires:
- Test::More: 0
+ Test::More: 0
+configure_requires:
+ ExtUtils::MakeMaker: 0
+dynamic_config: 1
+generated_by: 'ExtUtils::MakeMaker version 6.58, CPAN::Meta::Converter version
2.110930'
+license: perl
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: Class-XSAccessor
+no_index:
+ directory:
+ - t
+ - inc
requires:
- perl: 5.008
- XSLoader: 0
+ XSLoader: 0
+ perl: 5.008
resources:
- repository: git://github.com/tsee/Class-XSAccessor.git
-no_index:
- directory:
- - t
- - inc
-generated_by: ExtUtils::MakeMaker version 6.56
-meta-spec:
- url: http://module-build.sourceforge.net/META-spec-v1.4.html
- version: 1.4
+ repository: git://github.com/tsee/Class-XSAccessor.git
+version: 1.12
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/MYMETA.json
new/Class-XSAccessor-1.12/MYMETA.json
--- old/Class-XSAccessor-1.11/MYMETA.json 1970-01-01 01:00:00.000000000
+0100
+++ new/Class-XSAccessor-1.12/MYMETA.json 2011-09-04 19:04:28.000000000
+0200
@@ -0,0 +1,47 @@
+{
+ "abstract" : "Generate fast XS accessors without runtime compilation",
+ "author" : [
+ "Steffen Mueller <[email protected]>"
+ ],
+ "dynamic_config" : 0,
+ "generated_by" : "ExtUtils::MakeMaker version 6.58, CPAN::Meta::Converter
version 2.110930",
+ "license" : [
+ "perl_5"
+ ],
+ "meta-spec" : {
+ "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec",
+ "version" : "2"
+ },
+ "name" : "Class-XSAccessor",
+ "no_index" : {
+ "directory" : [
+ "t",
+ "inc"
+ ]
+ },
+ "prereqs" : {
+ "build" : {
+ "requires" : {
+ "Test::More" : 0
+ }
+ },
+ "configure" : {
+ "requires" : {
+ "ExtUtils::MakeMaker" : 0
+ }
+ },
+ "runtime" : {
+ "requires" : {
+ "XSLoader" : 0,
+ "perl" : "5.008"
+ }
+ }
+ },
+ "release_status" : "stable",
+ "resources" : {
+ "repository" : {
+ "url" : "git://github.com/tsee/Class-XSAccessor.git"
+ }
+ },
+ "version" : "1.12"
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/MYMETA.yml
new/Class-XSAccessor-1.12/MYMETA.yml
--- old/Class-XSAccessor-1.11/MYMETA.yml 1970-01-01 01:00:00.000000000
+0100
+++ new/Class-XSAccessor-1.12/MYMETA.yml 2011-09-04 19:04:28.000000000
+0200
@@ -0,0 +1,25 @@
+---
+abstract: 'Generate fast XS accessors without runtime compilation'
+author:
+ - 'Steffen Mueller <[email protected]>'
+build_requires:
+ Test::More: 0
+configure_requires:
+ ExtUtils::MakeMaker: 0
+dynamic_config: 0
+generated_by: 'ExtUtils::MakeMaker version 6.58, CPAN::Meta::Converter version
2.110930'
+license: perl
+meta-spec:
+ url: http://module-build.sourceforge.net/META-spec-v1.4.html
+ version: 1.4
+name: Class-XSAccessor
+no_index:
+ directory:
+ - t
+ - inc
+requires:
+ XSLoader: 0
+ perl: 5.008
+resources:
+ repository: git://github.com/tsee/Class-XSAccessor.git
+version: 1.12
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/README
new/Class-XSAccessor-1.12/README
--- old/Class-XSAccessor-1.11/README 2010-12-01 20:44:36.000000000 +0100
+++ new/Class-XSAccessor-1.12/README 2011-09-04 19:04:15.000000000 +0200
@@ -171,7 +171,7 @@
chocolateboy <[email protected]>
COPYRIGHT AND LICENSE
- Copyright (C) 2008-2010 by Steffen Mueller
+ Copyright (C) 2008, 2009, 2010, 2011 by Steffen Mueller
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself, either Perl version 5.8 or, at your
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/XSAccessor.xs
new/Class-XSAccessor-1.12/XSAccessor.xs
--- old/Class-XSAccessor-1.11/XSAccessor.xs 2010-11-30 21:27:28.000000000
+0100
+++ new/Class-XSAccessor-1.12/XSAccessor.xs 2011-09-04 19:01:58.000000000
+0200
@@ -2,6 +2,13 @@
#define PERL_NO_GET_CONTEXT
#endif
+/* For versions of ExtUtils::ParseXS > 3.04_02, we need to
+ * explicitly enforce exporting of XSUBs since we want to
+ * refer to them using XS(). This isn't strictly necessary,
+ * but it's by far the simplest way to be backwards-compatible.
+ */
+#define PERL_EUPXS_ALWAYS_EXPORT
+
#include "EXTERN.h"
#include "perl.h"
@@ -71,10 +78,10 @@
* perls >= 5.10.0 have a new OP member called op_spare that gives us 3 whole
bits to play with!
*
* First, some preliminaries: a method call is performed as a subroutine call
at the OP
- * level. there's some additional work to look up the method CV and push the
invocant
+ * level. There's some additional work to look up the method CV and push the
invocant
* on the stack, but the current OP inside a method call is the subroutine
call OP, OP_ENTERSUB.
*
- * two distinct invocations of the same method will have two entersub OPs and
will receive
+ * Two distinct invocations of the same method will have two entersub OPs and
will receive
* the same CV on the stack:
*
* $foo->bar(...); # OP 1: CV 1
@@ -101,15 +108,15 @@
* if a call site proves to be dynamic e.g. if a method is redefined or the
method is
* called with multiple different CVs (see below).
*
- * in practice, this is rarely the case. the vast majority of method calls in
perl,
+ * In practice, this is rarely the case. the vast majority of method calls in
perl,
* and in most dynamic languages (cf. Google's v8), behave like method calls
in static
* languages. for instance, 97% of the call sites exercised by perl 5.10.0's
test suite are
- * monomorphic
+ * monomorphic.
*
* We only replace the op_ppaddr pointer of entersub OPs that use the default
pp_entersub.
* this ensures we don't interfere with any modules that assign a new
op_ppaddr e.g.
* Data::Alias, Faster. it also ensures we don't tread on our own toes and
repeatedly
- * re-assign the same optimized entersub
+ * re-assign the same optimized entersub.
*
* This module provides two XSUBs for each accessor e.g. two versions of the
getter/setter/predicate &c.
* XSUBs. The first version is called <accessor_type>_init (e.g.
"getter_init") and the second
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/lib/Class/XSAccessor/Array.pm
new/Class-XSAccessor-1.12/lib/Class/XSAccessor/Array.pm
--- old/Class-XSAccessor-1.11/lib/Class/XSAccessor/Array.pm 2010-12-03
16:14:07.000000000 +0100
+++ new/Class-XSAccessor-1.12/lib/Class/XSAccessor/Array.pm 2011-09-04
18:58:45.000000000 +0200
@@ -6,7 +6,7 @@
use Class::XSAccessor;
use Class::XSAccessor::Heavy;
-our $VERSION = '1.11';
+our $VERSION = '1.12';
sub import {
my $own_class = shift;
@@ -275,7 +275,7 @@
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2008-2010 by Steffen Mueller
+Copyright (C) 2008, 2009, 2010, 2011 by Steffen Mueller
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8 or,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/lib/Class/XSAccessor/Heavy.pm
new/Class-XSAccessor-1.12/lib/Class/XSAccessor/Heavy.pm
--- old/Class-XSAccessor-1.11/lib/Class/XSAccessor/Heavy.pm 2010-12-03
16:14:10.000000000 +0100
+++ new/Class-XSAccessor-1.12/lib/Class/XSAccessor/Heavy.pm 2011-09-04
18:59:14.000000000 +0200
@@ -6,7 +6,7 @@
use warnings;
use Carp;
-our $VERSION = '1.11';
+our $VERSION = '1.12';
our @CARP_NOT = qw(
Class::XSAccessor
Class::XSAccessor::Array
@@ -66,7 +66,7 @@
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2008-2010 by Steffen Mueller
+Copyright (C) 2008, 2009, 2010, 2011 by Steffen Mueller
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8 or,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/lib/Class/XSAccessor.pm
new/Class-XSAccessor-1.12/lib/Class/XSAccessor.pm
--- old/Class-XSAccessor-1.11/lib/Class/XSAccessor.pm 2010-12-03
16:14:04.000000000 +0100
+++ new/Class-XSAccessor-1.12/lib/Class/XSAccessor.pm 2011-09-04
18:58:29.000000000 +0200
@@ -6,7 +6,7 @@
use Class::XSAccessor::Heavy;
use XSLoader;
-our $VERSION = '1.11';
+our $VERSION = '1.12';
XSLoader::load('Class::XSAccessor', $VERSION);
@@ -299,7 +299,7 @@
=head1 COPYRIGHT AND LICENSE
-Copyright (C) 2008-2010 by Steffen Mueller
+Copyright (C) 2008, 2009, 2010, 2011 by Steffen Mueller
This library is free software; you can redistribute it and/or modify
it under the same terms as Perl itself, either Perl version 5.8 or,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Class-XSAccessor-1.11/t/70bad_arguments.t
new/Class-XSAccessor-1.12/t/70bad_arguments.t
--- old/Class-XSAccessor-1.11/t/70bad_arguments.t 1970-01-01
01:00:00.000000000 +0100
+++ new/Class-XSAccessor-1.12/t/70bad_arguments.t 2011-09-02
13:09:46.000000000 +0200
@@ -0,0 +1,74 @@
+use strict;
+use warnings;
+
+use Test::More tests => 3 + 6;
+BEGIN { use_ok('Class::XSAccessor') };
+BEGIN { use_ok('Class::XSAccessor::Array') };
+
+package FooHash;
+use Class::XSAccessor
+ getters => {
+ get_foo => 'foo',
+ };
+
+package FooArray;
+use Class::XSAccessor::Array
+ getters => {
+ get_foo => 0,
+ };
+
+package main;
+
+BEGIN {pass();}
+
+my ($foo, $bar);
+my @tests = (
+ {
+ name => 'Hash as Hash object',
+ expect => 'pass',
+ obj => bless({} => 'FooHash'),
+ },
+ {
+ name => 'Array as Hash object',
+ expect => 'fail',
+ obj => bless([] => 'FooHash'),
+ },
+ {
+ name => 'Scalar as Hash object',
+ expect => 'fail',
+ obj => bless(\$foo => 'FooHash'),
+ },
+ {
+ name => 'Hash as Array object',
+ expect => 'fail',
+ obj => bless({} => 'FooArray'),
+ },
+ {
+ name => 'Array as Array object',
+ expect => 'pass',
+ obj => bless([] => 'FooArray'),
+ },
+ {
+ name => 'Scalar as Array object',
+ expect => 'fail',
+ obj => bless(\$bar => 'FooArray'),
+ },
+);
+
+foreach my $test (sort {$a->{name} cmp $b->{name}} @tests) {
+ my ($expect, $name, $obj) = @{$test}{qw(expect name obj)};
+
+ my $okay = eval {
+ $obj->get_foo;
+ 1;
+ };
+ my $err = $@ || '';
+ chomp $err;
+ ok(
+ ($expect eq 'pass' && $okay)
+ || ($expect eq 'fail' && !$okay),
+ "$name (errmsg: $err)"
+ );
+}
+
+
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
--
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]