Hello community,
here is the log from the commit of package perl-Cpanel-JSON-XS for
openSUSE:Factory checked in at 2019-11-08 15:27:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/perl-Cpanel-JSON-XS (Old)
and /work/SRC/openSUSE:Factory/.perl-Cpanel-JSON-XS.new.2990 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Cpanel-JSON-XS"
Fri Nov 8 15:27:43 2019 rev:23 rq:746491 version:4.17
Changes:
--------
--- /work/SRC/openSUSE:Factory/perl-Cpanel-JSON-XS/perl-Cpanel-JSON-XS.changes
2019-10-25 18:43:10.767957261 +0200
+++
/work/SRC/openSUSE:Factory/.perl-Cpanel-JSON-XS.new.2990/perl-Cpanel-JSON-XS.changes
2019-11-08 15:27:45.831127220 +0100
@@ -1,0 +2,15 @@
+Wed Nov 6 10:01:34 UTC 2019 - <[email protected]>
+
+- updated to 4.17
+ see /usr/share/doc/packages/perl-Cpanel-JSON-XS/Changes
+
+ 4.17 2019-11-04 (rurban)
+ - Add Changes tests and fixups (see #155)
+
+ 4.16 2019-11-04 (rurban)
+ - Use Perl_strtod instead of self-made atof (via pow), to
+ minimize differences from core string-to-float conversions.
+ (#154). Fixes float representation regressions (in the 1e-6
+ to 1e-16 range) since 5.22.
+
+-------------------------------------------------------------------
Old:
----
Cpanel-JSON-XS-4.15.tar.gz
New:
----
Cpanel-JSON-XS-4.17.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Cpanel-JSON-XS.spec ++++++
--- /var/tmp/diff_new_pack.VMnQru/_old 2019-11-08 15:27:46.451127917 +0100
+++ /var/tmp/diff_new_pack.VMnQru/_new 2019-11-08 15:27:46.455127922 +0100
@@ -17,7 +17,7 @@
Name: perl-Cpanel-JSON-XS
-Version: 4.15
+Version: 4.17
Release: 0
%define cpan_name Cpanel-JSON-XS
Summary: CPanel fork of JSON::XS, fast and correct serializing
@@ -49,7 +49,7 @@
%prep
%setup -q -n %{cpan_name}-%{version}
-find . -type f ! -path "*/t/*" ! -name "*.pl" ! -name "*.sh" -print0 | xargs
-0 chmod 644
+find . -type f ! -path "*/t/*" ! -name "*.pl" ! -name "*.sh" ! -path "*/bin/*"
! -path "*/script/*" ! -name "configure" -print0 | xargs -0 chmod 644
%build
perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}"
++++++ Cpanel-JSON-XS-4.15.tar.gz -> Cpanel-JSON-XS-4.17.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/.appveyor.yml
new/Cpanel-JSON-XS-4.17/.appveyor.yml
--- old/Cpanel-JSON-XS-4.15/.appveyor.yml 2019-06-10 15:18:43.000000000
+0200
+++ new/Cpanel-JSON-XS-4.17/.appveyor.yml 2019-11-04 16:54:24.000000000
+0100
@@ -38,8 +38,8 @@
- set BITS=64
- if "%PLATFORM%" == "x86" set BITS=32
- if "%STRAWBERRY%" == "1" cinst strawberryperl -i
- - if "%MSVC_CPERL%" == "1" cinst -y curl
- - if "%MSVC_CPERL%" == "1" curl -O
https://github.com/perl11/cperl/releases/download/cperl-5.26.0/cperl-5.26.0-win%BITS%.exe
+ - if "%MSVC_CPERL%" == "1" cinst -y wget
+ - if "%MSVC_CPERL%" == "1" wget -q
https://github.com/perl11/cperl/releases/download/cperl-5.26.0/cperl-5.26.0-win%BITS%.exe
- if "%MSVC_CPERL%" == "1" .\cperl-5.26.0-win%BITS%.exe -y -o"C:\"
build: off
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/Changes
new/Cpanel-JSON-XS-4.17/Changes
--- old/Cpanel-JSON-XS-4.15/Changes 2019-10-22 08:59:31.000000000 +0200
+++ new/Cpanel-JSON-XS-4.17/Changes 2019-11-05 14:02:50.000000000 +0100
@@ -2,6 +2,15 @@
TODO: http://stevehanov.ca/blog/index.php?id=104 compression
+4.17 2019-11-04 (rurban)
+ - Add Changes tests and fixups (see #155)
+
+4.16 2019-11-04 (rurban)
+ - Use Perl_strtod instead of self-made atof (via pow), to
+ minimize differences from core string-to-float conversions.
+ (#154). Fixes float representation regressions (in the 1e-6
+ to 1e-16 range) since 5.22.
+
4.15 2019-10-21 (rurban)
- Fix more tests for nvtype long double
@@ -561,21 +570,21 @@
2.33_01 2012-08-08 16:29:52 (rurban)
- merge with JSON-XS-2.33
-2.33 Wed Aug 1 21:03:52 CEST 2012
+2.33 2012-08-01 21:03:52 2012
- internal encode/decode XS wrappers did not expect stack
moves caused by callbacks (analyzed and testcase by Jesse Luehrs).
- add bencode as to/from option in bin/json_xs.
- add -e option to json_xs, and none and string in/out formats.
-2.32_02 Wed Jun 27 19:59:18 2012 (rurban)
+2.32_02 2012-06-27 19:59:18 (rurban)
- forked from JSON-XS-2.32
- Cpanel perl-5.6.2 support
- prefix with Cpanel
-2.32 Thu Aug 11 19:06:38 CEST 2011
+2.32 2011-08-11 19:06:38
- fix a bug in the initial whitespace accumulation.
-2.31 Wed Jul 27 17:53:05 CEST 2011
+2.31 2011-07-27 17:53:05
- don't accumulate initial whitespace in the incremental buffer
(this can be useful to allow whitespace-keepalive on a tcp
connection without triggering the max_size limit).
@@ -583,19 +592,19 @@
(e.g. undef) when trying to decode a json text (reported
and analyzed by Goro Fuji).
-2.3 Wed Aug 18 01:26:47 CEST 2010
+2.3 2010-08-18 01:26:47
- make sure decoder doesn't change the decoding in the incremental
parser (testcase provided by Hendrik Schumacher).
- applied patch by DaTa for Data::Dumper support in json_xs.
- added -t dump support to json_xs, using Data::Dump.
- added -f eval support to json_xs.
-2.29 Wed Mar 17 02:39:12 CET 2010
+2.29 2010-03-17 02:39:12
- fix a memory leak when callbacks set using filter_json_object
or filter_json_single_key_object were called (great testcase
by Eric Wilhelm).
-2.28 Thu Mar 11 20:30:46 CET 2010
+2.28 2010-03-11 20:30:46
- implement our own atof function - perl's can be orders of
magnitudes slower than even the system one. on the positive
side, ours seems to be more exact in general than perl's.
@@ -604,24 +613,24 @@
- update jpsykes csrf article url.
- updated benchmark section - JSON::PP became much faster!
-2.27 Thu Jan 7 07:35:08 CET 2010
+2.27 2010-01-07 07:35:08
- support relaxed option inside the incremental parser
(testcase provided by IKEGAMI via Makamaka).
-2.26 Sat Oct 10 03:26:19 CEST 2009
+2.26 2009-10-10 03:26:19
- big integers could become truncated (based on patch
by Strobl Anton).
- output format change: indent now adds a final newline, which is
more expected and more true to the documentation.
-2.25 Sat Aug 8 12:04:41 CEST 2009
+2.25 2009-08-08 12:04:41
- the perl debugger completely breaks lvalue subs - try to work
around the issue.
- ignore RMAGICAL hashes w.r.t. CANONICAL.
- try to work around a possible char signedness issue on aix.
- require common sense.
-2.24 Sat May 30 08:25:45 CEST 2009
+2.24 2009-05-30 08:25:45
- the incremental parser did not update its parse offset
pointer correctly when parsing utf8-strings (nicely
debugged by Martin Evans).
@@ -629,55 +638,55 @@
in utf8 mode failed to upgrade the string.
- wording of parse error messages has been improved.
-2.232 Sun Feb 22 11:12:25 CET 2009
+2.232 2009-02-22 11:12:25
- use an exponential algorithm to extend strings, to
help platforms with bad or abysmal==windows memory
allocater performance, at the expense of some memory
wastage (use shrink to recover this extra memory).
(nicely analysed by Dmitry Karasik).
-2.2311 Thu Feb 19 02:12:54 CET 2009
+2.2311 2009-02-19 02:12:54
- add a section "JSON and ECMAscript" to explain some
incompatibilities between the two (problem was noted by
various people).
- add t/20_faihu.t.
-2.231 Thu Nov 20 04:59:08 CET 2008
+2.231 2008-11-20 04:59:08
- work around 5.10.0 magic bugs where manipulating magic values
(such as $1) would permanently damage them as perl would
ignore the magicalness, by making a full copy of the string,
reported by Dmitry Karasik.
- work around spurious warnings under older perl 5.8's.
-2.23 Mon Sep 29 05:08:29 CEST 2008
+2.23 2008-09-29 05:08:29
- fix a compilation problem when perl is not using char * as, well,
char *.
- use PL_hexdigit in favour of rolling our own.
-2.2222 Sun Jul 20 18:49:00 CEST 2008
+2.2222 2008-07-20 18:49:00
- same game again, broken 5.10 finds yet another assertion
failure, and the workaround causes additional runtime warnings.
Work around the next assertion AND the warning. 5.10 seriously
needs to adjust it's attitude against working code.
-2.222 Sat Jul 19 06:15:34 CEST 2008
+2.222 2008-07-19 06:15:34
- you work around one -DDEBUGGING assertion bug in perl 5.10
just to hit the next one. work around this one, too.
-2.22 Tue Jul 15 13:26:51 CEST 2008
+2.22 2008-07-15 13:26:51
- allow higher nesting levels in incremental parser.
- error out earlier in some cases in the incremental parser
(as suggested by Yuval Kogman).
- improve incr-parser test (Yuval Kogman).
-2.21 Tue Jun 3 08:43:23 CEST 2008
+2.21 2008-06-03 08:43:23
- (hopefully) work around a perl 5.10 bug with -DDEBUGGING.
- remove the experimental status of the incremental parser interface.
- move =encoding around again, to avoid bugs with search.cpan.org.
when can we finally have utf-8 in pod???
- add ->incr_reset method.
-2.2 Wed Apr 16 20:37:25 CEST 2008
+2.2 2008-04-16 20:37:25
- lifted the log2 rounding restriction of max_depth and max_size.
- make booleans mutable by creating a copy instead of handing out
the same scalar (reported by pasha sadri).
@@ -691,7 +700,7 @@
- removed documentation section on other modules, it became somewhat
outdated and is nowadays mostly of historical interest.
-2.1 Wed Mar 19 23:23:18 CET 2008
+2.1 2008-03-19 23:23:18
- update documentation here and there: add a large section
about utf8/latin1/ascii flags, add a security consideration
and extend and clarify the JSON and YAML section.
@@ -705,13 +714,13 @@
- published the yahoo locals search result used in benchmarks as the
original url changes so comparison is impossible.
-2.01 Wed Dec 5 11:40:28 CET 2007
+2.01 2007-12-05 11:40:28
- INCOMPATIBLE API CHANGE: to_json and from_json have been
renamed to encode_json/decode_json for JSON.pm compatibility.
The old functions croak and might be replaced by JSON.pm
comaptible versions in some later release.
-2.0 Tue Dec 4 11:30:46 CET 2007
+2.0 2007-12-04 11:30:46
- this is supposed to be the first version of JSON::XS
compatible with version 2.0+ of the JSON module.
Using the JSON module as frontend to JSON::XS should be
@@ -720,15 +729,15 @@
- added get_* methods for all "simple" options.
- make JSON::XS subclassable.
-1.53 Tue Nov 13 23:58:33 CET 2007
+1.53 2007-11-13 23:58:33
- minor doc clarifications.
- fixed many doc typos (patch by Thomas L. Shinnick).
-1.52 Mon Oct 15 03:22:06 CEST 2007
+1.52 2007-10-15 03:22:06
- remove =encoding pod directive again, it confuses too many pod
parsers :/.
-1.51 Sat Oct 13 03:55:56 CEST 2007
+1.51 2007-10-13 03:55:56
- encode empty arrays/hashes in a compact way when pretty is enabled.
- apparently JSON::XS was used to find some bugs in the
JSON_checker testsuite, so add (the corrected) JSON_checker tests to
@@ -736,25 +745,25 @@
- quite a bit of doc updates/extension.
- require 5.8.2, as this seems to be the first unicode-stable version.
-1.5 Tue Aug 28 04:05:38 CEST 2007
+1.5 2007-08-28 04:05:38
- add support for tied hashes, based on ideas and testcase by
Marcus Holland-Moritz.
- implemented relaxed parsing mode where some extensions are being
accepted. generation is still JSON-only.
-1.44 Wed Aug 22 01:02:44 CEST 2007
+1.44 2007-08-22 01:02:44
- very experimental process-emulation support, slowing everything down.
the horribly broken perl threads are still not supported - YMMV.
-1.43 Thu Jul 26 13:26:37 CEST 2007
+1.43 2007-07-26 13:26:37
- convert big json numbers exclusively consisting of digits to NV
only when there is no loss of precision, otherwise to string.
-1.42 Tue Jul 24 00:51:18 CEST 2007
+1.42 2007-07-24 00:51:18
- fix a crash caused by not handling missing array elements
(report and testcase by Jay Kuri).
-1.41 Tue Jul 10 18:21:44 CEST 2007
+1.41 2007-07-10 18:21:44
- fix compilation with NDEBUG (assert side-effect),
affects convert_blessed only.
- fix a bug in decode filters calling ENTER; SAVETMPS;
@@ -763,7 +772,7 @@
- antique-ised XS.xs again to work with outdated
C compilers (windows...).
-1.4 Mon Jul 2 10:06:30 CEST 2007
+1.4 2007-07-02 10:06:30
- add convert_blessed setting.
- encode did not catch all blessed objects, encoding their
contents in most cases. This has been fixed by introducing
@@ -786,7 +795,7 @@
- unbundle JSON::XS::Boolean into own pm file so Storable
and similar modules can resolve the overloading when thawing.
-1.3 Sun Jun 24 01:55:02 CEST 2007
+1.3 2007-06-24 01:55:02
- make JSON::XS::true and false special overloaded objects
and return those instead of 1 and 0 for those json atoms
(JSON::PP compatibility is NOT achieved yet).
@@ -798,7 +807,7 @@
Also try to be more compatible with slightly older versions,
which are not recommended (because they are buggy).
-1.24 Mon Jun 11 05:40:49 CEST 2007
+1.24 2007-06-11 05:40:49
- added informative section on JSON-as-YAML.
- get rid of some c99-isms again.
- localise dec->cur in decode_str, speeding up
@@ -807,20 +816,20 @@
usually plenty, and this actually saves memory
when !shrinking as short strings will fit perfectly.
-1.23 Wed Jun 6 20:13:06 CEST 2007
+1.23 2007-06-06 20:13:06
- greatly improved small integer encoding and decoding speed.
- implement a number of µ-optimisations.
- updated benchmarks.
-1.22 Thu May 24 00:07:25 CEST 2007
+1.22 2007-05-24 00:07:25
- require 5.8.8 explicitly as older perls do not seem to offer
the required macros.
- possibly made it compile on so-called C compilers by microsoft.
-1.21 Wed May 9 18:40:32 CEST 2007
+1.21 2007-05-09 18:40:32
- character offset reported for trailing garbage was random.
-1.2 Wed May 9 18:35:01 CEST 2007
+1.2 2007-05-09 18:35:01
- decode did not work with magical scalars (doh!).
- added latin1 flag to produce JSON texts in the latin1 subset
of unicode.
@@ -831,7 +840,7 @@
as pointed out by Glenn Linderman.
- fixed typoe reported by YAMASHINA Hio.
-1.11 Mon Apr 9 07:05:49 CEST 2007
+1.11 2007-04-09 07:05:49
- properly 0-terminate sv's returned by encode to help
C libraries that expect that 0 to be there.
- partially "port" JSON from C to microsofts fucking broken
@@ -839,7 +848,7 @@
on standards. And I should be stoned for even trying to
support this filthy excuse for a c compiler.
-1.1 Wed Apr 4 01:45:00 CEST 2007
+1.1 2007-04-04 01:45:00
- clarify documentation (pointed out by Quinn Weaver).
- decode_utf8 sometimes did not correctly flag errors,
leading to segfaults.
@@ -851,12 +860,12 @@
- renamed json => JSON in error messages.
- corrected the character offset in some error messages.
-1.01 Sat Mar 31 16:15:40 CEST 2007
+1.01 2007-03-31 16:15:40
- do not segfault when from_json/decode gets passed
a non-string object (reported by Florian Ragwitz).
This has no effect on normal operation.
-1.0 Thu Mar 29 04:43:34 CEST 2007
+1.0 2007-03-29 04:43:34
- the long awaited (by me) 1.0 version.
- add \0 (JSON::XS::false) and \1 (JSON::XS::true) mappings to JSON
true and false.
@@ -866,7 +875,7 @@
work on Freebsd (unfortunately, the cpan tester did not
send me his report, so I cannot ask about the stack limit on fbsd).
-0.8 Mon Mar 26 00:10:48 CEST 2007
+0.8 2007-03-26 00:10:48
- fix a memleak when decoding hashes.
- export jsonToBj and objToJson as aliases
to to_json and from_json, to reduce incompatibilities
@@ -874,7 +883,7 @@
- implement a maximum nesting depth for both en- and de-coding.
- added a security considerations sections.
-0.7 Sun Mar 25 01:46:30 CET 2007
+0.7 2007-03-25 01:46:30
- code cleanup.
- fix a memory overflow bug when indenting.
- pretty-printing now up to 15% faster.
@@ -884,7 +893,7 @@
lots of \u escapes.
- improve utf8 decoding speed for U+80 .. U+7FF.
-0.5 Sat Mar 24 20:41:51 CET 2007
+0.5 2007-03-24 20:41:51
- added the UTF-16 encoding example hinted at in previous
versions.
- minor documentation fixes.
@@ -893,12 +902,12 @@
- remove a subtest that breaks with bleadperl (reported
by Andreas König).
-0.31 Sat Mar 24 02:14:34 CET 2007
+0.31 2007-03-24 02:14:34
- documentation updates.
- do some casting to hopefully fix Andreas' problem.
- nuke bogus json rpc stuff.
-0.3 Fri Mar 23 19:33:21 CET 2007
+0.3 2007-03-23 19:33:21
- remove spurious PApp::Util reference (John McNamara).
- adapted lots of tests from other json modules
(idea by Chris Carline).
@@ -920,7 +929,7 @@
- croak when encoding to ascii and an out-of-range
(non-unicode) codepoint is encountered.
-0.2 Fri Mar 23 00:23:34 CET 2007
+0.2 2007-03-23 00:23:34
- the "could not sleep without debugging release".
it should basically work now, with many bugs as
no production tests have been run yet.
@@ -936,10 +945,10 @@
- fix parsing of empty array/hashes
- silence warnings when we prepare the croak message.
-0.1 Thu Mar 22 22:13:43 CET 2007
+0.1 2007-03-22 22:13:43
- first release, very untested, basically just to claim
the namespace.
-0.01 Thu Mar 22 06:08:12 CET 2007
+0.01 2007-03-22 06:08:12
- original version; cloned from Convert-Scalar
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/MANIFEST
new/Cpanel-JSON-XS-4.17/MANIFEST
--- old/Cpanel-JSON-XS-4.15/MANIFEST 2019-10-22 09:00:24.000000000 +0200
+++ new/Cpanel-JSON-XS-4.17/MANIFEST 2019-11-05 14:29:27.000000000 +0100
@@ -410,6 +410,8 @@
t/test_transform/string_with_escaped_NULL.json
t/zero-mojibake.t
typemap
+xt/changes.t
+xt/checkchanges.t
xt/gh70-asan.t
xt/kwalitee.t
xt/leaktrace.t
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/META.json
new/Cpanel-JSON-XS-4.17/META.json
--- old/Cpanel-JSON-XS-4.15/META.json 2019-10-22 09:00:24.000000000 +0200
+++ new/Cpanel-JSON-XS-4.17/META.json 2019-11-05 14:29:27.000000000 +0100
@@ -72,7 +72,7 @@
"url" : "https://github.com/rurban/Cpanel-JSON-XS"
}
},
- "version" : "4.15",
+ "version" : "4.17",
"x_contributors" : [
"Ashley Willis <[email protected]>",
"Chip Salzenberg <[email protected]>",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/META.yml
new/Cpanel-JSON-XS-4.17/META.yml
--- old/Cpanel-JSON-XS-4.15/META.yml 2019-10-22 09:00:24.000000000 +0200
+++ new/Cpanel-JSON-XS-4.17/META.yml 2019-11-05 14:29:27.000000000 +0100
@@ -43,7 +43,7 @@
bugtracker: https://github.com/rurban/Cpanel-JSON-XS/issues
license: http://dev.perl.org/licenses/
repository: https://github.com/rurban/Cpanel-JSON-XS
-version: '4.15'
+version: '4.17'
x_contributors:
- 'Ashley Willis <[email protected]>'
- 'Chip Salzenberg <[email protected]>'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/Makefile.PL
new/Cpanel-JSON-XS-4.17/Makefile.PL
--- old/Cpanel-JSON-XS-4.15/Makefile.PL 2019-10-18 13:24:16.000000000 +0200
+++ new/Cpanel-JSON-XS-4.17/Makefile.PL 2019-11-05 14:02:50.000000000 +0100
@@ -111,6 +111,14 @@
'Test::CPAN::Meta' => '0.12',
'Test::Pod' => '1.00',
'Test::Pod::Coverage' => '1.04',
+ 'Test::Spelling' => 0,
+ 'Pod::Spell::CommonMistakes' => 0,
+ 'Test::CPAN::Changes' => '0.40',
+ 'Test::CheckChanges' => '1.14',
+ 'Class::XSAccessor' => 0,
+ 'Text::CSV_XS' => 0,
+ 'List::MoreUtils' => 0,
+ 'Test::Kwalitee' => 0,
}
}
},
@@ -173,8 +181,8 @@
README : \$(VERSION_FROM)
pod2text \$(VERSION_FROM) > README
-release : dist
- -git tag \$(VERSION)
+release : xtest dist
+ -git tag -f \$(VERSION)
cpan-upload \$(DISTVNAME).tar\$(SUFFIX)
git push
git push --tags
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/README
new/Cpanel-JSON-XS-4.17/README
--- old/Cpanel-JSON-XS-4.15/README 2019-10-22 09:00:26.000000000 +0200
+++ new/Cpanel-JSON-XS-4.17/README 2019-11-05 14:29:28.000000000 +0100
@@ -27,6 +27,9 @@
# and do the same things, except that you have a pure-perl fallback now.
+ Note that this module will be replaced by a new JSON::Safe module soon,
+ with the same API just guaranteed safe defaults.
+
DESCRIPTION
This module converts Perl data structures to JSON and vice versa. Its
primary goal is to be *correct* and its secondary goal is to be *fast*.
@@ -160,6 +163,8 @@
- #96 locale-insensitive numeric conversion
+ - #154 numeric conversion fixed since 5.22, using the same strtold as
perl5.
+
- public maintenance and bugtracker
- use ppport.h, sanify XS.xs comment styles, harness C coding style
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/SIGNATURE
new/Cpanel-JSON-XS-4.17/SIGNATURE
--- old/Cpanel-JSON-XS-4.15/SIGNATURE 2019-10-22 09:00:26.000000000 +0200
+++ new/Cpanel-JSON-XS-4.17/SIGNATURE 2019-11-05 14:29:28.000000000 +0100
@@ -14,19 +14,19 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
-SHA256 91299da398f097b15d5de71747cc2352811c2f0e1c0a5022e3572a5bd12cd998
.appveyor.yml
+SHA256 aac2b4bbaa7b93eaf72300f60e167a17e05adcd721087f735ba55d2900f31490
.appveyor.yml
SHA256 082201a3cbd62a55f2e58ffbb991c4b2bb806de0009bc9497ffcc07202f60855
.github/FUNDING.yml
SHA256 fb7ff638c0af0c5dde7148f2b00836ca1afd14fdde99f874922b98b08725af36
.travis.yml
SHA256 c3f2a1a4f66382f796f71a571946722edba53cf3238152b26fd325f4c2f1a20f
.whitesource
SHA256 8de3540a3cd7ecc9a9dcb48975fe852c082fe17d4462f87bb72aa7cc47f083ad COPYING
-SHA256 7d7ff7118be1258e1471cad691413c862728e8c46eafdada5f3b8c04ea69be77 Changes
-SHA256 4643190d59c6aa9f3ae61cfc1a3d8899f72c1759cdc23ce6d23258d964f4245c
MANIFEST
-SHA256 4ca3a8472da4164f0c40c674e187ea09ffb7881004a0472a67d2c2b918b162dc
META.json
-SHA256 8ed7a7b594f91d9c308fb90c8272b7631b4e1d46356e1947245b0d33c40cd680
META.yml
-SHA256 8b294fe4b791297d24ff18cf2cb1b9857bccce8ea7611fdf4aaa0d2332527881
Makefile.PL
-SHA256 3f2aea6c904237766823c0b0a631910a5e2589fef7a816a152cb42abfe2ce748 README
-SHA256 0715392ab89f748e2030b3a4ec813d50279271667bd21c006bbcb0a3c1295f01 XS.pm
-SHA256 2565ff8aa5455abf0810d6f2298982a5c5f74c8777424185353a86731aa9b90e XS.xs
+SHA256 58ca6acc48780bd72a9163a95d6119f89f719292588612258c025814e04d1fd2 Changes
+SHA256 1a2ec479500e3582ac2b9ed76a4c116f07cc77b4ad9af2dee5eb1a5af6737ebb
MANIFEST
+SHA256 729d7112f66bb707191aa5a0b593e35f806d92f7ff22c41cb5102341bd43d242
META.json
+SHA256 f448b2b58cde97cfebd20b0d0a5dd87d7b9620a7ffaca88767fb8fb751c3d19f
META.yml
+SHA256 997ce707680f64c4a628aa604819b33ee484aab950e1c165965973f128dcb0ee
Makefile.PL
+SHA256 5047896b50e641c9b78b1013f145762b223223a20b0991102c450dedb3054e7a README
+SHA256 0dbd533f55dcce6ef93268f3c70c9ea050971fd3a52669fc8b0957fa731f29d7 XS.pm
+SHA256 2d0eed72b7eb67c68f8f54c160f3022cda2fb62372fcbc8f4966872f6456f4a1 XS.xs
SHA256 c95e4b970183cbd6d1ec9c88c37a80f12bd2b66ed6be3c008ffd578d2f622c01
XS/Boolean.pm
SHA256 ca0447b652d5547206091e8de2799308ffffbe5b5f00a9195641580070573149
XS/Type.pm
SHA256 2f34a530b7ce981b0df9aacd2b6944ccf74c4a7f8bb49fde57b342663e7feb26
bin/cpanel_json_xs
@@ -42,7 +42,7 @@
SHA256 96001d4b9c784e7f353c4ddbe673846a463166b7d6450d917003d12eaeee0eaf
t/07_pc_esc.t
SHA256 152905d54a0522b2a0b5da857ce79464f681a41bd44631449f8a054e1479d17c
t/08_pc_base.t
SHA256 a1f1a89222f579fa314afe34709cd6c948cc97581eedda63041bf66a71ad03d2
t/08_pc_base_nv.t
-SHA256 45fd7c92c586004a3d2fb975582e8cdcb4ab1d18e296b5aeee4fc2dafe02121c
t/09_pc_extra_number.t
+SHA256 e88b03d3c8c5c85d4fc2c086848efd7d0fd7b69f839cf0936a698af77a7a59b8
t/09_pc_extra_number.t
SHA256 f177821982876d02403298d44ffe4e2193fdcd70b76da252b055f3eab8dd3cdf
t/104_sortby.t
SHA256 e8bf435b08bfd00e6ab7f278c6ce68ef8691011b80615fa372961f2d807f5c76
t/105_esc_slash.t
SHA256 11a3b561ac5904abc84fee0003b9fb40425c29ae8eea7a69bc945e5b565af116
t/106_allow_barekey.t
@@ -428,6 +428,8 @@
SHA256 229aba86ef5f6db75a1433f33c3c9c1e7e8978ed5161cf5135fa61c703e28bc8
t/test_transform/string_with_escaped_NULL.json
SHA256 3e18d8914dc41eed22b366375440bd57b0c8e81c6a710d9e4fe5ff14d499e94b
t/zero-mojibake.t
SHA256 5d2a2d9cf2cf8f5b2f89f6572f003994fc95bc9190425b30b1cb777c9650e8e0 typemap
+SHA256 77b5bd227562c24336c1979a521c0b5721c06b012cf7e7fb21610208f0520357
xt/changes.t
+SHA256 c32dc76195cae85cc51b2ee14d6999e2a1fd791162fcd3b0495e1ccdf1ecfd69
xt/checkchanges.t
SHA256 250be3b1b5ce2836369eaf375e9b2b2ad47516bcc1d01b77d79d31b7479007a0
xt/gh70-asan.t
SHA256 eb0b56e3aef114ff2da8547597f5e94228341891a2f82475d9568f9468a540c7
xt/kwalitee.t
SHA256 6b0825520e8a66e1be3f320beffffce7a14e2c49f61af61fe24d9807cb41fcee
xt/leaktrace.t
@@ -440,12 +442,12 @@
SHA256 aca6f846869ab2e4881e807739086e1535b1438bd0e23d7a021360742736a6a9
xt/pod.t
-----BEGIN PGP SIGNATURE-----
-iQEzBAEBCgAdFiEEKJWogdNCcPq/6PdHtPYzOeZdZBQFAl2uqQkACgkQtPYzOeZd
-ZBQ5vAgAgtaJWbAA+rvfom9D2oCvqpzo6M5c1Ee7INXotKJ1hBwtO//oEqr2uJK5
-ImDYSt4zv2ajWSASZj4KpH4YwGINYEAMJ2PCw19VKhKWH8eS8uoYPg1fOxzyMpPC
-HaOzXYMMAnuj0n//V2SrLxF8APKTPniDK6lYmp9RJibYpJ9Pdh5UksxEvxDdNyEJ
-VE3WO4Wtfrewlh1eTT0Joye2xa7TnPtvDAt7w3oZstieJ8FIlEIWtfQ2SDWhHjnt
-riRUDR9RQ9U5WLR+UvgQFqdNv/ZvH/fkEgc85/qmyqvd21K2W1ToF/H9LRXZE/JC
-8+RgD511W8YgX8MK4vUlCnnRq2jLGQ==
-=dN01
+iQEzBAEBCgAdFiEEKJWogdNCcPq/6PdHtPYzOeZdZBQFAl3BeTgACgkQtPYzOeZd
+ZBQwOQgAg4L/B9/KLLQqYGQSjUqa02TZAHNAIXasyH7s9MmWzWTCo91dzSlPP8V+
+CJimu8G4+lVm1ob5SUc2UfIAczGpAXl4LUs2KCJiqxxxcBBN8eX06rvj9x7Hv/Az
+z85MI48ysJIHSU04UDNS1D7AXQ6b6ptY/d7gjWpSJQNggbi0JTnWOX3WRpzWT/rd
+8TiEKTx73lkHbk2mlpDOgWKqPd9Qb9vYPK5+q9XBgiJjvFUOaCleolkubbXFeSuX
+Hf62AiaHk3jUyduGNbrKOugl+gklK1TMvK1qvvFaf+MhGcJNFSOhqo5Ok6OTaj6M
+eTy8W97nl0t44yOB1DFB01ea7gUbAw==
+=I9ui
-----END PGP SIGNATURE-----
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/XS.pm
new/Cpanel-JSON-XS-4.17/XS.pm
--- old/Cpanel-JSON-XS-4.15/XS.pm 2019-10-22 08:59:31.000000000 +0200
+++ new/Cpanel-JSON-XS-4.17/XS.pm 2019-11-05 14:02:50.000000000 +0100
@@ -1,5 +1,5 @@
package Cpanel::JSON::XS;
-our $VERSION = '4.15';
+our $VERSION = '4.17';
our $XS_VERSION = $VERSION;
# $VERSION = eval $VERSION;
@@ -36,6 +36,9 @@
# and do the same things, except that you have a pure-perl fallback now.
+ Note that this module will be replaced by a new JSON::Safe module soon,
+ with the same API just guaranteed safe defaults.
+
=head1 DESCRIPTION
This module converts Perl data structures to JSON and vice versa. Its
@@ -173,6 +176,8 @@
- #96 locale-insensitive numeric conversion
+ - #154 numeric conversion fixed since 5.22, using the same strtold as perl5.
+
- public maintenance and bugtracker
- use ppport.h, sanify XS.xs comment styles, harness C coding style
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/XS.xs
new/Cpanel-JSON-XS-4.17/XS.xs
--- old/Cpanel-JSON-XS-4.15/XS.xs 2019-10-18 13:24:16.000000000 +0200
+++ new/Cpanel-JSON-XS-4.17/XS.xs 2019-11-04 16:54:24.000000000 +0100
@@ -625,6 +625,7 @@
}
#endif
+#ifndef Perl_strtod
/* scan a group of digits, and a trailing exponent */
static void
json_atof_scan1 (const char *s, NV *accum, int *expo, int postdp, int maxdepth)
@@ -693,7 +694,7 @@
}
}
- /* this relies greatly on the quality of the pow () */
+ /* This relies greatly on the quality of the pow () */
/* implementation of the platform, but a good */
/* implementation is hard to beat. */
/* (IEEE 754 conformant ones are required to be exact) */
@@ -707,12 +708,15 @@
*expo += eaccum;
#endif
}
+#endif
static NV
json_atof (const char *s)
{
NV accum = 0.;
+#ifndef Perl_strtod
int expo = 0;
+#endif
int neg = 0;
if (*s == '-')
@@ -721,8 +725,17 @@
neg = 1;
}
+ /* Fix accuracy mismatches compared to perl (using strtod).
+ Available since v5.21.4, but see perl5
af5a4640bf25a62438c05f73a87c1d6be6096b02.
+ Resets LC_NUMERIC only since v5.29.10. (dot, not comma)
+ See GH #154, where the pow method may return a different result than
strtod.
+ */
+#ifdef Perl_strtod
+ accum = Perl_strtod (s, NULL);
+#else
/* a recursion depth of ten gives us >>500 bits */
json_atof_scan1 (s, &accum, &expo, 0, 10);
+#endif
return neg ? -accum : accum;
}
@@ -3773,7 +3786,7 @@
if (typesv)
{
value_typesv = newSV (0);
- hv_store (typehv, key, len, value_typesv, 0);
+ (void)hv_store (typehv, key, len, value_typesv, 0);
}
value = decode_sv (aTHX_ dec, value_typesv);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/t/09_pc_extra_number.t
new/Cpanel-JSON-XS-4.17/t/09_pc_extra_number.t
--- old/Cpanel-JSON-XS-4.15/t/09_pc_extra_number.t 2015-01-31
20:57:23.000000000 +0100
+++ new/Cpanel-JSON-XS-4.17/t/09_pc_extra_number.t 2019-11-04
16:54:24.000000000 +0100
@@ -2,7 +2,7 @@
use Test::More;
use strict;
-BEGIN { plan tests => 6 };
+BEGIN { plan tests => 8 };
use Cpanel::JSON::XS;
use utf8;
@@ -33,3 +33,11 @@
is($obj->{foo},0, "normal 0");
is($obj->{bar},0.1,"normal 0.1");
+# GH 154
+$obj = $pc->decode(q([0.3]));
+TODO: {
+ local $TODO = "strtold vs json_atof_scan1, GH #154" if $] < 5.021004;
+ is($obj->[0] - 0.3, 0.0, "normal 0.3");
+}
+ok(abs($obj->[0] - 0.3) < 1e-16, "numeric epsilon <1E-16");
+
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/xt/changes.t
new/Cpanel-JSON-XS-4.17/xt/changes.t
--- old/Cpanel-JSON-XS-4.15/xt/changes.t 1970-01-01 01:00:00.000000000
+0100
+++ new/Cpanel-JSON-XS-4.17/xt/changes.t 2019-11-05 11:28:45.000000000
+0100
@@ -0,0 +1,4 @@
+use Test::More;
+eval 'use Test::CPAN::Changes';
+plan skip_all => 'Test::CPAN::Changes required for this test' if $@;
+changes_ok();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/Cpanel-JSON-XS-4.15/xt/checkchanges.t
new/Cpanel-JSON-XS-4.17/xt/checkchanges.t
--- old/Cpanel-JSON-XS-4.15/xt/checkchanges.t 1970-01-01 01:00:00.000000000
+0100
+++ new/Cpanel-JSON-XS-4.17/xt/checkchanges.t 2019-11-05 11:50:20.000000000
+0100
@@ -0,0 +1,6 @@
+use Test::More;
+eval { require Test::CheckChanges };
+if ($@) {
+ plan skip_all => 'Test::CheckChanges required for testing the Changes
file';
+}
+Test::CheckChanges::ok_changes();