Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package perl-Sereal-Encoder for openSUSE:Factory checked in at 2022-08-16 17:08:28 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Sereal-Encoder (Old) and /work/SRC/openSUSE:Factory/.perl-Sereal-Encoder.new.1521 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Sereal-Encoder" Tue Aug 16 17:08:28 2022 rev:12 rq:997341 version:4.025 Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Sereal-Encoder/perl-Sereal-Encoder.changes 2022-02-24 18:24:43.466638620 +0100 +++ /work/SRC/openSUSE:Factory/.perl-Sereal-Encoder.new.1521/perl-Sereal-Encoder.changes 2022-08-16 17:08:33.692024838 +0200 @@ -1,0 +2,19 @@ +Fri Jul 29 03:09:42 UTC 2022 - Tina M??ller <timueller+p...@suse.de> + +- updated to 4.025 + see /usr/share/doc/packages/perl-Sereal-Encoder/Changes + + 4.025 Thr Jul 28, 2022 + * Release with build fixes for the Decoder under threaded + perls and MANIFEST update. + + 4.024 Wed Jul 27, 2022 + * Changes to the FREEZE/THAW mechanism. Remove the part that + says that FREEZE cannot return a list. It can, and we have + supported it for a very long time, although I have not checked + how far back this support goes. If you use the FREEZE/THAW + API's you should upgrade to this version. + * Test fixes for t/020_sort_keys.t hanging on some perls + which do not come bundled with Hash::Util. + +------------------------------------------------------------------- Old: ---- Sereal-Encoder-4.023.tar.gz New: ---- Sereal-Encoder-4.025.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Sereal-Encoder.spec ++++++ --- /var/tmp/diff_new_pack.Punq9N/_old 2022-08-16 17:08:34.252026512 +0200 +++ /var/tmp/diff_new_pack.Punq9N/_new 2022-08-16 17:08:34.256026525 +0200 @@ -18,7 +18,7 @@ %define cpan_name Sereal-Encoder Name: perl-Sereal-Encoder -Version: 4.023 +Version: 4.025 Release: 0 License: Artistic-1.0 OR GPL-1.0-or-later Summary: Binary serialization module for Perl (encoder part) ++++++ Sereal-Encoder-4.023.tar.gz -> Sereal-Encoder-4.025.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-Encoder-4.023/Changes new/Sereal-Encoder-4.025/Changes --- old/Sereal-Encoder-4.023/Changes 2022-02-20 05:05:20.000000000 +0100 +++ new/Sereal-Encoder-4.025/Changes 2022-07-28 13:57:13.000000000 +0200 @@ -5,6 +5,19 @@ * of the decoder before upgrading to version 4 of the * * encoder! * **************************************************************** +4.025 Thr Jul 28, 2022 + * Release with build fixes for the Decoder under threaded + perls and MANIFEST update. + +4.024 Wed Jul 27, 2022 + * Changes to the FREEZE/THAW mechanism. Remove the part that + says that FREEZE cannot return a list. It can, and we have + supported it for a very long time, although I have not checked + how far back this support goes. If you use the FREEZE/THAW + API's you should upgrade to this version. + * Test fixes for t/020_sort_keys.t hanging on some perls + which do not come bundled with Hash::Util. + 4.023 Sun Feb 20, 2022 * Make it possible to upgrade with passing tests when using Sereal::Decoder 4.015 - 4.019 on threaded debugging perls. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-Encoder-4.023/META.json new/Sereal-Encoder-4.025/META.json --- old/Sereal-Encoder-4.023/META.json 2022-02-20 05:13:14.000000000 +0100 +++ new/Sereal-Encoder-4.025/META.json 2022-07-28 14:05:01.000000000 +0200 @@ -4,7 +4,7 @@ "Steffen Mueller <smuel...@cpan.org>, Yves Orton <y...@cpan.org>" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.38, CPAN::Meta::Converter version 2.150010", + "generated_by" : "ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter version 2.150010", "license" : [ "perl_5" ], @@ -27,6 +27,7 @@ "File::Find" : "0", "File::Path" : "0", "File::Spec" : "0", + "Hash::Util" : "0", "Scalar::Util" : "0", "Test::Deep" : "0", "Test::Differences" : "0", @@ -50,6 +51,7 @@ "requires" : { "Data::Dumper" : "0", "File::Spec" : "0", + "Hash::Util" : "0", "Scalar::Util" : "0", "Sereal::Decoder" : "4.002", "Test::Deep" : "0", @@ -70,6 +72,6 @@ "url" : "git://github.com/Sereal/Sereal.git" } }, - "version" : "4.023", - "x_serialization_backend" : "JSON::PP version 4.04" + "version" : "4.025", + "x_serialization_backend" : "JSON::PP version 4.07" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-Encoder-4.023/META.yml new/Sereal-Encoder-4.025/META.yml --- old/Sereal-Encoder-4.023/META.yml 2022-02-20 05:13:14.000000000 +0100 +++ new/Sereal-Encoder-4.025/META.yml 2022-07-28 14:05:01.000000000 +0200 @@ -8,6 +8,7 @@ File::Find: '0' File::Path: '0' File::Spec: '0' + Hash::Util: '0' Scalar::Util: '0' Sereal::Decoder: '4.002' Test::Deep: '0' @@ -18,7 +19,7 @@ configure_requires: ExtUtils::MakeMaker: '7.0' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.38, CPAN::Meta::Converter version 2.150010' +generated_by: 'ExtUtils::MakeMaker version 7.64, CPAN::Meta::Converter version 2.150010' license: perl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -34,5 +35,5 @@ resources: bugtracker: https://github.com/Sereal/Sereal/issues repository: git://github.com/Sereal/Sereal.git -version: '4.023' +version: '4.025' x_serialization_backend: 'CPAN::Meta::YAML version 0.018' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-Encoder-4.023/Makefile.PL new/Sereal-Encoder-4.025/Makefile.PL --- old/Sereal-Encoder-4.023/Makefile.PL 2022-02-20 05:05:20.000000000 +0100 +++ new/Sereal-Encoder-4.025/Makefile.PL 2022-07-28 13:04:56.000000000 +0200 @@ -64,6 +64,7 @@ TEST_REQUIRES => { 'Data::Dumper' => '0', 'File::Spec' => '0', + 'Hash::Util' => '0', 'Scalar::Util' => '0', 'Sereal::Decoder' => '4.002', 'Test::Deep' => '0', @@ -78,6 +79,7 @@ 'File::Find' => '0', 'File::Path' => '0', 'File::Spec' => '0', + 'Hash::Util' => '0', 'Scalar::Util' => '0', 'Test::Deep' => '0', 'Test::Differences' => '0', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-Encoder-4.023/lib/Sereal/Encoder/Constants.pm new/Sereal-Encoder-4.025/lib/Sereal/Encoder/Constants.pm --- old/Sereal-Encoder-4.023/lib/Sereal/Encoder/Constants.pm 2022-02-20 05:06:44.000000000 +0100 +++ new/Sereal-Encoder-4.025/lib/Sereal/Encoder/Constants.pm 2022-07-28 13:57:13.000000000 +0200 @@ -4,7 +4,7 @@ require Exporter; our @ISA= qw(Exporter); -our $VERSION= '4.023'; # Don't forget to update the TestCompat set for testing against installed encoders! +our $VERSION= '4.025'; # Don't forget to update the TestCompat set for testing against installed encoders! our ( @EXPORT_OK, %DEFINE, %TAG_INFO_HASH, @TAG_INFO_ARRAY ); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-Encoder-4.023/lib/Sereal/Encoder.pm new/Sereal-Encoder-4.025/lib/Sereal/Encoder.pm --- old/Sereal-Encoder-4.023/lib/Sereal/Encoder.pm 2022-02-20 05:06:44.000000000 +0100 +++ new/Sereal-Encoder-4.025/lib/Sereal/Encoder.pm 2022-07-28 13:57:13.000000000 +0200 @@ -5,7 +5,7 @@ use Carp qw/croak/; use XSLoader; -our $VERSION= '4.023'; # Don't forget to update the TestCompat set for testing against installed decoders! +our $VERSION= '4.025'; # Don't forget to update the TestCompat set for testing against installed decoders! our $XS_VERSION= $VERSION; $VERSION= eval $VERSION; # not for public consumption, just for testing. @@ -534,19 +534,20 @@ =head1 FREEZE/THAW CALLBACK MECHANISM +Some objects do not lend themselves naturally to naive perl +datastructure level serialization. For instance XS code might use a +hidden structure that would not get serialized, or an object may contain +volatile data like a filehandle that would not be reconstituted +properly. To support cases like this C<Sereal> supports a FREEZE and +THAW api. When objects are serialized their FREEZE method is asked for a +replacement representation, and when objects are deserialized their THAW +method is asked to convert that replacement back to something useful. + This mechanism is enabled using the C<freeze_callbacks> option of the encoder. -It is inspired by the equivalent mechanism in L<CBOR::XS> and differs only -in one minor detail, explained below. The general mechanism is documented -in the I<A GENERIC OBJECT SERIALIATION PROTOCOL> section of L<Types::Serialiser>. -Similar to CBOR using C<CBOR>, Sereal uses the string C<Sereal> as a serializer -identifier for the callbacks. - -The one difference to the mechanism as supported by CBOR is that in Sereal, -the C<FREEZE> callback must return a single value. That value can be any -data structure supported by Sereal (hopefully without causing infinite recursion -by including the original object). But C<FREEZE> can't return a list as with CBOR. -This should not be any practical limitation whatsoever. Just return an array -reference instead of a list. +It is inspired by the equivalent mechanism in L<CBOR::XS>. The general mechanism +is documented in the I<A GENERIC OBJECT SERIALIATION PROTOCOL> section of +L<Types::Serialiser>. Similar to CBOR using C<CBOR>, Sereal uses the string +C<Sereal> as a serializer identifier for the callbacks. Here is a contrived example of a class implementing the C<FREEZE> / C<THAW> mechanism. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-Encoder-4.023/ptable.h new/Sereal-Encoder-4.025/ptable.h --- old/Sereal-Encoder-4.023/ptable.h 2017-10-03 19:46:10.000000000 +0200 +++ new/Sereal-Encoder-4.025/ptable.h 2022-07-28 13:04:56.000000000 +0200 @@ -70,7 +70,6 @@ struct PTABLE_entry *cur_entry; }; -/* SRL_STATIC_INLINE PTABLE_t * PTABLE_new(void); SRL_STATIC_INLINE PTABLE_t * PTABLE_new_size(const U8 size_base2_exponent); SRL_STATIC_INLINE PTABLE_ENTRY_t * PTABLE_find(PTABLE_t *tbl, const void *key); @@ -84,9 +83,9 @@ SRL_STATIC_INLINE PTABLE_ITER_t * PTABLE_iter_new(PTABLE_t *tbl); SRL_STATIC_INLINE PTABLE_ITER_t * PTABLE_iter_new_flags(PTABLE_t *tbl, int flags); +SRL_STATIC_INLINE PTABLE_ITER_t * PTABLE_iter_reset(PTABLE_ITER_t *iter); SRL_STATIC_INLINE PTABLE_ENTRY_t * PTABLE_iter_next(PTABLE_ITER_t *iter); SRL_STATIC_INLINE void PTABLE_iter_free(PTABLE_ITER_t *iter); -*/ /* create a new pointer => pointer table */ SRL_STATIC_INLINE PTABLE_t * @@ -302,11 +301,20 @@ PTABLE_ITER_t *iter; Newx(iter, 1, PTABLE_ITER_t); iter->table = tbl; - iter->bucket_num = 0; - iter->cur_entry = NULL; if (flags & PTABLE_FLAG_AUTOCLEAN) tbl->cur_iter = iter; + return PTABLE_iter_reset(iter); +} + +/* setup or reset new iterator object */ +SRL_STATIC_INLINE PTABLE_ITER_t * +PTABLE_iter_reset(PTABLE_ITER_t *iter) +{ + PTABLE_t *tbl = iter->table; + iter->bucket_num = 0; + iter->cur_entry = NULL; + if (tbl->tbl_items == 0) { /* Prevent hash bucket scanning. * This can be a significant optimization on large, empty hashes. */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Sereal-Encoder-4.023/t/020_sort_keys.t new/Sereal-Encoder-4.025/t/020_sort_keys.t --- old/Sereal-Encoder-4.023/t/020_sort_keys.t 2022-02-18 05:14:23.000000000 +0100 +++ new/Sereal-Encoder-4.025/t/020_sort_keys.t 2022-07-28 13:04:56.000000000 +0200 @@ -14,9 +14,21 @@ use Test::More; BEGIN { - eval "use Hash::Util 'num_buckets'; 1" - or eval "sub num_buckets(\\%) { (split( m!/!, scalar %{\$_[0]}))[-1] } 1" - or die "Failed to set up num_buckets: $@"; + if (!eval "use Hash::Util 'num_buckets'; 1") { + my %hash= ( test => 1); + my $scalar= scalar(%hash); + if ($scalar=~m!/!) { + eval "sub num_buckets(\\%) { (split( m!/!, scalar %{\$_[0]}))[-1] } 1" + } else { + plan skip_all => "Hash::Util not installed, this is perl $], scalar(%h)='$scalar'"; + } + } +} + +my %test= ( foo => 1, bar => 2); +my $num_buckets= num_buckets(%test); +if ($num_buckets < 8) { + plan skip_all => "num_buckets() not working as expected."; } # This logic needs to be revisted... @@ -52,7 +64,7 @@ my $copy_keys= join "", keys %copy; my %bigger= %hash; -keys(%bigger)= $max++ while num_buckets(%bigger) eq num_buckets(%hash); +keys(%bigger)= 1024; my %shuffled; $shuffled{$_}= $hash{$_} for shuffle keys %hash; @@ -88,4 +100,3 @@ } } } -