Package: libbson-perl / 1.12.2-3

Metadata

Package Version Patches format
libbson-perl 1.12.2-3 3.0 (quilt)

Patch series

view the series file
Patch File delta Description
BSON v1.12.2 Fix an operator preference.patch | (download)

lib/BSON.pm | 2 1 + 1 - 0 !
1 file changed, 1 insertion(+), 1 deletion(-)

 [patch] fix an operator preference
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Perl 5.42.0 started to warn:

    Possible precedence problem between ! and string eq at /home/test/fedora/perl-BSON/perl-BSON-1.12.2-build/BSON-v1.12.2/blib/lib/BSON.pm line 99.

That was indeed a bug in the expression.

Signed-off-by: Petr Psa <ppisar@redhat.com>

BSON v1.12.2 Adapt tests to perl 5.41.7.patch | (download)

t/mapping/double.t | 6 4 + 2 - 0 !
1 file changed, 4 insertions(+), 2 deletions(-)

 [patch 2/2] adapt tests to perl 5.41.7
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

t/mapping/double.t faileded with perl 5.42.0:

    #   Failed test 'Inf as double->double'
    #   at t/mapping/double.t line 55.
    #          got: 'NV'
    #     expected: 'PVNV'

    #   Failed test '-Inf as double->double'
    #   at t/mapping/double.t line 55.
    #          got: 'NV'
    #     expected: 'PVNV'

    #   Failed test 'NaN as double->double'
    #   at t/mapping/double.t line 55.
    #          got: 'NV'
    #     expected: 'PVNV'

    #   Failed test 'Inf as BSON::Double->BSON::Double'
    #   at t/mapping/double.t line 69.
    #          got: 'NV'
    #     expected: 'PVNV'

    #   Failed test '-Inf as BSON::Double->BSON::Double'
    #   at t/mapping/double.t line 69.
    #          got: 'NV'
    #     expected: 'PVNV'

    #   Failed test 'NaN as BSON::Double->BSON::Double'
    #   at t/mapping/double.t line 69.
    #          got: 'NV'
    #     expected: 'PVNV'
    # Looks like you failed 6 tests of 39.
    t/mapping/double.t ...............
    Dubious, test returned 6 (wstat 1536, 0x600)
    Failed 6/39 subtests

The is caused by an optimiziation in 5.41.7:

    When assigning from an SVt_IV into a SVt_NV (or vice versa),
    providing that both are "bodyless" types, Perl_sv_setsv_flags will
    now just change the destination type to match the source type.
    Previously, an SVt_IV would have been upgraded to a SVt_PVNV to
    store an NV, and an SVt_NV would have been upgraded to a SVt_PVIV to
    store an IV. This change prevents the need to allocate - and later
    free - the relevant body struct.

The new behavior is more consistent because
decode(encode({A => 3.14159})) now has both input and output NV. Users
who want the old behvior are advised to call "decode(, wrap_numbers
=> 1)" as documented in BSON.

https://bugzilla.redhat.com/show_bug.cgi?id=2380086
Signed-off-by: Petr Psa <ppisar@redhat.com>