Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package fplll for openSUSE:Factory checked 
in at 2023-01-06 17:05:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fplll (Old)
 and      /work/SRC/openSUSE:Factory/.fplll.new.1563 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fplll"

Fri Jan  6 17:05:40 2023 rev:13 rq:1056249 version:5.4.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/fplll/fplll.changes      2022-12-21 
16:06:44.198585571 +0100
+++ /work/SRC/openSUSE:Factory/.fplll.new.1563/fplll.changes    2023-01-06 
17:06:29.240495294 +0100
@@ -1,0 +2,6 @@
+Thu Jan  5 17:40:57 UTC 2023 - Jan Engelhardt <[email protected]>
+
+- Update to release 5.4.4
+  * Make Babai test more robust for PPC
+
+-------------------------------------------------------------------

Old:
----
  fplll-5.4.3.tar.gz

New:
----
  fplll-5.4.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fplll.spec ++++++
--- /var/tmp/diff_new_pack.nJchNG/_old  2023-01-06 17:06:30.320501358 +0100
+++ /var/tmp/diff_new_pack.nJchNG/_new  2023-01-06 17:06:30.324501381 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package fplll
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,8 +17,8 @@
 
 
 Name:           fplll
-%define lname   libfplll7
-Version:        5.4.3
+%define lname   libfplll8
+Version:        5.4.4
 Release:        0
 Summary:        Lenstra-Lovász Lattice Basis Reduction Algorithm Library
 License:        LGPL-2.1-or-later
@@ -60,7 +60,7 @@
 Obsoletes:      libfplll-devel < %version-%release
 Provides:       libfplll-devel = %version-%release
 
-%description -n fplll-devel
+%description devel
 fplll contains several algorithms on lattices that rely on
 floating-point computations. This includes implementations of the
 floating-point LLL reduction algorithm, offering different
@@ -72,7 +72,7 @@
 applications that want to make use of libfplll.
 
 %prep
-%setup -q
+%autosetup
 
 %build
 %limit_build -m 1700
@@ -96,7 +96,7 @@
 %files -n %lname
 %_libdir/libfplll.so.*
 
-%files -n fplll-devel
+%files devel
 %_includedir/fplll*
 %_libdir/libfplll.so
 %_libdir/pkgconfig/*.pc

++++++ fplll-5.4.3.tar.gz -> fplll-5.4.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fplll-5.4.3/README.md new/fplll-5.4.4/README.md
--- old/fplll-5.4.3/README.md   2022-12-20 22:23:09.000000000 +0100
+++ new/fplll-5.4.4/README.md   2023-01-05 16:04:12.000000000 +0100
@@ -17,8 +17,8 @@
 
        @unpublished{fplll,
            author = {The {FPLLL} development team},
-           title = {{fplll}, a lattice reduction library, {Version}: 5.4.3},
-           year = 2022,
+           title = {{fplll}, a lattice reduction library, {Version}: 5.4.4},
+           year = 2023,
            note = {Available at \url{https://github.com/fplll/fplll}},
            url = {https://github.com/fplll/fplll}
        }
@@ -198,7 +198,7 @@
 * `s` `d` `b` `b2` : generates a d x d matrix of a form similar to that is 
involved when trying to find rational approximations to reals with the same 
small denominator (see, e.g., [[LLL82](#LLL82)]): the first vector starts with 
a random integer of bit-length <=b2 and continues with d-1 independent integers 
of bit-lengths <=b; the i-th vector for i>1 is the i-th canonical unit vector 
scaled by a factor 2^b.
 * `u` `d` `b` : generates a d x d matrix whose entries are independent 
integers of bit-lengths <=b.
 * `n` `d` `b` `c` : generates an ntru-like matrix. If char is 'b', then it 
first samples an integer q of bit-length <=b, whereas if char is 'q', then it 
sets q to the provided value. Then it samples a uniform h in the ring 
Z_q[x]/(x^n-1). It finally returns the 2 x 2 block matrix [[I, Rot(h)], [0, 
q*I]], where each block is d x d, the first row of Rot(h) is the coefficient 
vector of h, and the i-th row of Rot(h) is the shift of the (i-1)-th (with last 
entry put back in first position), for all i>1. Warning: this does not produce 
a genuine ntru lattice with h a genuine public key (see [[HPS98](#HPS98)]).
-* `N` `d` `b` `c` : as the previous option, except that the contructed matrix 
is [[q*I, 0], [Rot(h), I]]. 
+* `N` `d` `b` `c` : as the previous option, except that the constructed matrix 
is [[q*I, 0], [Rot(h), I]]. 
 * `q` `d` `k` `b` `c` : generates a q-ary matrix. If char is 'b', then it 
first samples an integer q of bit-length <=b; if char is 'p', it does the same 
and updates q to the smallest (probabilistic) prime that is greater; if char is 
'q', then it sets q to the provided value. It returns a 2 x 2 block matrix [[I, 
H], [0, q*I]], where H is (d-k) x k and uniformly random modulo q. These bases 
correspond to the SIS/LWE q-ary lattices (see [[MR09](#MR09)]). Goldstein-Mayer 
lattices correspond to k=1 and q prime (see [[GM03](#GM03)]).
 * `t` `d` `f` : generates a d x d lower-triangular matrix B with B_ii = 
2^(d-i+1)^f for all i, and B_ij is uniform between -B_jj/2 and B_jj/2 for all 
j<i.
 * `T` `d` : also takes as input a d-dimensional vector vec read from a file. 
It generates a d x d lower-triangular matrix B with B_ii = vec[i] for all i and 
B_ij is uniform between -B_jj/2 and B_jj/2 for all j<i.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fplll-5.4.3/configure new/fplll-5.4.4/configure
--- old/fplll-5.4.3/configure   2022-12-20 22:23:24.000000000 +0100
+++ new/fplll-5.4.4/configure   2023-01-05 16:04:29.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for fplll 5.4.3.
+# Generated by GNU Autoconf 2.71 for fplll 5.4.4.
 #
 #
 # Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,
@@ -618,8 +618,8 @@
 # Identity of this package.
 PACKAGE_NAME='fplll'
 PACKAGE_TARNAME='fplll'
-PACKAGE_VERSION='5.4.3'
-PACKAGE_STRING='fplll 5.4.3'
+PACKAGE_VERSION='5.4.4'
+PACKAGE_STRING='fplll 5.4.4'
 PACKAGE_BUGREPORT=''
 PACKAGE_URL=''
 
@@ -1402,7 +1402,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures fplll 5.4.3 to adapt to many kinds of systems.
+\`configure' configures fplll 5.4.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1474,7 +1474,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of fplll 5.4.3:";;
+     short | recursive ) echo "Configuration of fplll 5.4.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1619,7 +1619,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-fplll configure 5.4.3
+fplll configure 5.4.4
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2194,7 +2194,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by fplll $as_me 5.4.3, which was
+It was created by fplll $as_me 5.4.4, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -3310,9 +3310,9 @@
 # cf http://comments.gmane.org/gmane.comp.sysutils.autoconf.general/15737
 
 # First extract pieces from the version number string
-FPLLL_MAJOR_VERSION=`echo 5.4.3 | awk -F. '{print $1}'`
-FPLLL_MINOR_VERSION=`echo 5.4.3 | awk -F. '{print $2}'`
-FPLLL_MICRO_VERSION=`echo 5.4.3 | awk -F. '{print $3}'`
+FPLLL_MAJOR_VERSION=`echo 5.4.4 | awk -F. '{print $1}'`
+FPLLL_MINOR_VERSION=`echo 5.4.4 | awk -F. '{print $2}'`
+FPLLL_MICRO_VERSION=`echo 5.4.4 | awk -F. '{print $3}'`
 
FPLLL_VERSION=$FPLLL_MAJOR_VERSION.$FPLLL_MINOR_VERSION.$FPLLL_MICRO_VERSION$FPLLL_MICRO_VERSION_SUFFIX
 FPLLL_VERSION_NUMBER=`expr $FPLLL_MAJOR_VERSION \* 1000000 + 
$FPLLL_MINOR_VERSION \* 1000 + $FPLLL_MICRO_VERSION`
 
@@ -3830,7 +3830,7 @@
 
 # Define the identity of the package.
  PACKAGE='fplll'
- VERSION='5.4.3'
+ VERSION='5.4.4'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -13223,7 +13223,7 @@
 
 FPLLL_LT_CURRENT=8
 FPLLL_LT_REVISION=0
-FPLLL_LT_AGE=1
+FPLLL_LT_AGE=0
 
 
 
@@ -21162,7 +21162,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by fplll $as_me 5.4.3, which was
+This file was extended by fplll $as_me 5.4.4, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -21230,7 +21230,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-fplll config.status 5.4.3
+fplll config.status 5.4.4
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fplll-5.4.3/configure.ac new/fplll-5.4.4/configure.ac
--- old/fplll-5.4.3/configure.ac        2022-12-20 22:23:09.000000000 +0100
+++ new/fplll-5.4.4/configure.ac        2023-01-05 16:04:12.000000000 +0100
@@ -2,7 +2,7 @@
 # Process this file with autoconf to produce a configure script.
 
 AC_PREREQ([2.69])
-AC_INIT([fplll],[5.4.3])
+AC_INIT([fplll],[5.4.4])
 AC_CONFIG_SRCDIR([fplll/fplll.cpp])
 AM_MAINTAINER_MODE([enable])
 AC_CANONICAL_TARGET
@@ -42,7 +42,7 @@
 
 FPLLL_LT_CURRENT=8
 FPLLL_LT_REVISION=0
-FPLLL_LT_AGE=1
+FPLLL_LT_AGE=0
 
 AC_SUBST(FPLLL_LT_CURRENT)
 AC_SUBST(FPLLL_LT_REVISION)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fplll-5.4.3/fplll/gso.h new/fplll-5.4.4/fplll/gso.h
--- old/fplll-5.4.3/fplll/gso.h 2022-12-20 22:23:09.000000000 +0100
+++ new/fplll-5.4.4/fplll/gso.h 2023-01-05 16:04:12.000000000 +0100
@@ -230,7 +230,7 @@
    * @param gso       if true then input `v` is considered to be expressed wrt 
`B*`
    */
 
-  void virtual babai(vector<ZT> &w, const vector<FT> &v, int start = 0, int 
dimension = 1,
+  void virtual babai(vector<ZT> &w, const vector<FT> &v, int start = 0, int 
dimension = -1,
                      bool gso = false);
 
 private:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/fplll-5.4.3/tests/test_babai.cpp 
new/fplll-5.4.4/tests/test_babai.cpp
--- old/fplll-5.4.3/tests/test_babai.cpp        2022-12-20 22:23:09.000000000 
+0100
+++ new/fplll-5.4.4/tests/test_babai.cpp        2023-01-05 16:04:12.000000000 
+0100
@@ -16,6 +16,8 @@
 #include "fplll/fplll.h"
 #include <vector>
 
+#include <cfloat>  // Needed for precision macros.
+
 using namespace fplll;
 
 template <class ZT, class FT>
@@ -68,8 +70,9 @@
   }
   else
   {
-    std::cerr << "n:" << n << ", bits: " << bits << std::endl;
-    std::cerr << w << std::endl;
+    std::cerr << "n:" << n << ", bits: " << bits << ", shouldfail:" << 
shouldfail << std::endl;
+    std::cerr << "t:" << t << std::endl;
+    std::cerr << "w:" << w << std::endl;
     return 1;
   }
 }
@@ -83,15 +86,39 @@
   status += test_intrel<mpz_t, double>(10, 40);
   status += test_intrel<mpz_t, double>(10, 50);
   status += test_intrel<mpz_t, double>(10, 60, true);
-  status += test_intrel<mpz_t, long double>(10, 60);
+
 #ifdef FPLLL_WITH_LONG_DOUBLE
-  status += test_intrel<mpz_t, long double>(10, 70, true);
+  // long double has various types of platform and compiler specific behaviour.
+  // This makes this test case platform specific.
+  // These cases are (at least):
+  // (1) Some platforms have sizeof(double) == sizeof(long double), because 
the C standard
+  //     only requires long double to be at least as big as double. This means 
that
+  //     in some situations long double may simply alias double (e.g MSVC).
+  // (2) Some platforms make long double an alias for IEEE quadruple precision 
types. This
+  //     may mean that long double is actually rather accurate (more than, 
say, 60 bits of
+  //     precision).
+  // (3) On x86-64, some compilers may treat long double as the 80-bit 
extended precision
+  //     x87 type. This means that there's more precision than a regular 
double. In this situation,
+  //     the compiler may also make sizeof(long double) == 16, meaning that we 
cannot detect this
+  //     easily based on the size of long double alone.
+  //
+  // To circumvent these issues, we check how many elements are in the 
mantissa of long double,
+  // using LDBL_MANT_DIG. Specifically, if LDBL_MANT_DIG == DBL_MANT_DIG, then 
we are in case (1).
+  // If they are different, then if LDBL_MANT_DIG < 70 then the second test 
should also fail.
+  status += test_intrel<mpz_t, long double>(10, 60, LDBL_MANT_DIG == 
DBL_MANT_DIG);
+  status += test_intrel<mpz_t, long double>(10, 70, LDBL_MANT_DIG < 70);
 #endif
 #ifdef FPLLL_WITH_QD
+  // QD needs to have the round-to-double flag set on x86 systems. This 
function
+  // does nothing on non-x86 machines (see the readme for the QD library for 
more).
+  // This is also already done in the wrapper.
+  unsigned old_cw;
+  fpu_fix_start(&old_cw);
   status += test_intrel<mpz_t, dd_real>(10, 110);
   status += test_intrel<mpz_t, dd_real>(10, 120, true);
   // status += test_intrel<mpz_t, qd_real>(10, 100);
   // status += test_intrel<mpz_t, qd_real>(10, 230, true);
+  fpu_fix_end(&old_cw);
 #endif
   FP_NR<mpfr_t>::set_prec(100);
   status += test_intrel<mpz_t, mpfr_t>(10, 100);

Reply via email to