Do it for all packages that
* mention perl, or
* have a directory name starting with p5-*, or
* depend on a package starting with p5-
like last time, for 5.18, where this didn't lead to complaints.
Let me know if you have any this time.
a) refer 'perl' in their Makefile, or
b) have a directory name of p5-*, or
c) have any dependency on any p5-* package
Like last time, where this caused no complaints.
Differences from previous version (5.5.2):
2013.02.15: Changes between NTL 5.5.2 and 6.0
Replaced the old template-like macros for vectors, matrices, and pairs
with true template classes: Vec<T>, Mat<T>, and Pair<S,T>. For
backwards compatibilty, all the names that were used in previous
versions (e.g., vec_ZZ_p, mat_ZZ_p) have been replaced with
appropriate typedefs.
For many years, I resisted the temptation of using templates, because
compiler support was very inconsistent. But that no longer seems to
be the case.
This change, while rather sweeping, should create very few, if any,
incompatibilities with existing software. The biggest issue would be
for software that uses the old template-like macros: such macro
invocations can simply be replaced with appropriate typedefs.
Made the conversion interface more complete and uniform. Also, using
template notation, one can and should now write conv<ZZ>(a) instead of
to_ZZ(a) (for backward compatibility, all the old names to_XXX are
still there, but many new conversions are not available under these
old names). There are many new conversions provided. Moreover,
whenever there is a conversion from a ring R to a ring S, there is a
corresponding, coefficiet-wise conversion from the polynomial ring
R[X] to the polynomial ring R[X].
In addition, using the template mechanism, there are generic
conversions for vectors and matrices. For example, if there is a
conversion from S to T, then there is automatically a corresponding
component-wise conversion from Vec<S> to Vec<T>.
Introduced a more general mechanism for accessing GF2's in packed
structures via indexing (see the class ref_GF2 in the GF2 module).
Employed ideas from David Harvey to make the single-precision FFT
faster (about twice as fast in many cases). This speeds up many
higher-level operations.
Fixed all known bugs.
(Leaf package, so ok during freeze.)
Upstream changelog:
2009.08.14: Changes between NTL 5.5.1 and 5.5.2
New routines MulAddTo and MulSubFrom for computing x += a*b and x
-= a*b, where x and a are ZZ's and b is a ZZ or a long. In the case
where b is a long, this may be much faster than writing mul(t, a, b);
add(x, x, t). See ZZ.txt for details. These new routines are used in a
number of places in NTL to get faster algorithms (for example, the LLL
routine).
Fixed a relatively benign indexing bug in GF2EX discovered by
Berend-Benjamin Tams using the valgrind tool.
2009.05.05: Changes between NTL 5.5 and 5.5.1
If using GMP (via either NTL_GMP_LIP or NTL_GMP_HACK), then the
new version (4.3.0) of GMP implements the XGCD functionality
differently, so that the coefficients do not always agree with those
returned by the classical extended Euclidean algorithm. This version
of NTL corrects the coefficients, so that the "classical" coefficients
are always produced, regardless of GMP's implementation. This version
of NTL also works around a bug in GMP 4.3.0's XGCD code (although that
bug should be fixed in GMP 4.3.1).
The configure script has been slightly modified: there is a new
configuration variable DEF_PREFIX, whose value can be used to set
PREFIX, GMP_PREFIX, and GF2X_PREFIX in one stroke. Also, the (somewhat
esoteric) configure variables GMP_LIBDIR, GMP_INCDIR, GF2X_LIBDIR, and
GF2X_INCDIR have slightly different meanings now.
2009.04.08: Changes between NTL 5.4.2 and 5.5
Added the ability to generate a shared library (with help from Tim
Abbott). Details.
Fixed some standardization issues (with help from Tim Abbot):
default location of installed documentation files now conforms to
standards; use of EOF now conforms to standards.
Added a callback mechanism to NTL's error reporting function. See
ErrorCallback in tools.txt.
Added support for the gf2x library for speeding up arithmetic in
GF2X (with help from Emmanuel Thom?). Details.
In conjuction with the above, I also changed the GF2X so that it
works better with very large polynomials: large blocks of memory are
released, recursive HalfGCD algorithms are used for large polynomials.
Fixed a bug in void TraceMod(zz_p& x, const zz_pX& a, const
zz_pXModulus& F) (reported by Luca De Feo).
Fixed a performance issue in various versions of SetCoeff
(reported by Luca De Feo).
Fixed the declaration of mat_zz_p transpose(const mat_zz_p& a)
(reported by Benoit Lacelle).
2008.03.05: Changes between NTL 5.4.1 and 5.4.2
Fixed a bug in the sub(ZZ_pEX, ZZ_pE, ZZ_pEX) and sub(zz_pEX,
zz_pE, zz_pEX) routines (reported by Charanjit Jutla). Under certain
circumstances, these could outout wrong answers.
2007.05.09: Changes between NTL 5.4 and 5.4.1
Fixed rounding bug in expm1 (reported by Paul Zimmermann).
Fixed memory leak in several LLL routines (reported by Friedrich Bahr).
Fixed infinite loop in several LLL routines (this only occurred on
machines, like x86, with double rounding).
Improved GF2X timing tests (suggested by Paul Zimmermann).
2005.03.24: Changes between NTL 5.3.2 and 5.4
By default, NTL now compiles in ISO mode (using namespaces,
etc.). You can always revert to traditional mode by unsetting the flag
NTL_STD_CXX (either pass NTL_STD_CXX=off to the configure script, or
manually edit the config.h file).
Some bug fixes:
The sqrt and log1p routines for the RR class would produce
incorrectly rounded results in certain circumstances (although this
only affected the relative error of the result very marginally).
The SqrRootPrec routine for the RR class could not be called,
because it was defined incorrectly.
Thanks to Paul Zimmermann for finding (and fixing) these bugs!
Paul has also validated NTL's RR class by cross-checking it with the
MPFR library.
Some performance enhancements:
Added a new MulModPrecon inline function for computing (a * b)
% n for single precision numbers, when b and n are fixed for several
computations. On some platforms this can be twice as fast or more than
the old MulMod2 routine. This indirectly affects a lot of computations
that are done via homomorphic imaging (polynomial multiplication over
zz_p, ZZ_p, and ZZ, matrix computations over zz_p and ZZ).
Rewrote the small prime FFT to take advantage of the new
MulModPrecon, and to be more cache friendly.
Improved the performance of the GF2X multiplication
routine. On some platforms, it can be twice as fast as the old
one. Thanks (again) to Paul Zimmermann for suggesting some of these
improvements and supplying some of the code.
Miscellany:
Rewrote several of the installation scripts in Perl (the old
shell scripts were getting too messy to maintain). However, the syntax
for all of the command-line interfaces remains identical.
2004.05.21: Changes between NTL 5.3.1 and 5.3.2
Some bug fixes.
Re-wrote SqrRootMod to make it run faster.
This changes the buildlink3.mk files to use an include guard for the
recursive include. The use of BUILDLINK_DEPTH, BUILDLINK_DEPENDS,
BUILDLINK_PACKAGES and BUILDLINK_ORDER is handled by a single new
variable BUILDLINK_TREE. Each buildlink3.mk file adds a pair of
enter/exit marker, which can be used to reconstruct the tree and
to determine first level includes. Avoiding := for large variables
(BUILDLINK_ORDER) speeds up parse time as += has linear complexity.
The include guard reduces system time by avoiding reading files over and
over again. For complex packages this reduces both %user and %sys time to
half of the former time.
and add a new helper target and script, "show-buildlink3", that outputs
a listing of the buildlink3.mk files included as well as the depth at
which they are included.
For example, "make show-buildlink3" in fonts/Xft2 displays:
zlib
fontconfig
iconv
zlib
freetype2
expat
freetype2
Xrender
renderproto
RECOMMENDED is removed. It becomes ABI_DEPENDS.
BUILDLINK_RECOMMENDED.foo becomes BUILDLINK_ABI_DEPENDS.foo.
BUILDLINK_DEPENDS.foo becomes BUILDLINK_API_DEPENDS.foo.
BUILDLINK_DEPENDS does not change.
IGNORE_RECOMMENDED (which defaulted to "no") becomes USE_ABI_DEPENDS
which defaults to "yes".
Added to obsolete.mk checking for IGNORE_RECOMMENDED.
I did not manually go through and fix any aesthetic tab/spacing issues.
I have tested the above patch on DragonFly building and packaging
subversion and pkglint and their many dependencies.
I have also tested USE_ABI_DEPENDS=no on my NetBSD workstation (where I
have used IGNORE_RECOMMENDED for a long time). I have been an active user
of IGNORE_RECOMMENDED since it was available.
As suggested, I removed the documentation sentences suggesting bumping for
"security" issues.
As discussed on tech-pkg.
I will commit to revbump, pkglint, pkg_install, createbuildlink separately.
Note that if you use wip, it will fail! I will commit to pkgsrc-wip
later (within day).
developer is officially maintaining the package.
The rationale for changing this from "tech-pkg" to "pkgsrc-users" is
that it implies that any user can try to maintain the package (by
submitting patches to the mailing list). Since the folks most likely
to care about the package are the folks that want to use it or are
already using it, this would leverage the energy of users who aren't
developers.
in the process. (More information on tech-pkg.)
Bump PKGREVISION and BUILDLINK_DEPENDS of all packages using libtool and
installing .la files.
Bump PKGREVISION (only) of all packages depending directly on the above
via a buildlink3 include.
All library names listed by *.la files no longer need to be listed
in the PLIST, e.g., instead of:
lib/libfoo.a
lib/libfoo.la
lib/libfoo.so
lib/libfoo.so.0
lib/libfoo.so.0.1
one simply needs:
lib/libfoo.la
and bsd.pkg.mk will automatically ensure that the additional library
names are listed in the installed package +CONTENTS file.
Also make LIBTOOLIZE_PLIST default to "yes".
Changes between NTL 5.3 and 5.3.1
* Fixed a bug affecting the BuildIrred routines for ZZ_pEX and
zz_pEX.
Changes between NTL 5.2 and 5.3
* Minimized and isolated constructs that do not adhere to C/C++
standards, and added flags NTL_CLEAN_INT and NTL_CLEAN_PTR which
force stricter compliance with these standards.
* Added functions IsWhiteSpace, CharToIntVal, and IntValToChar to
the tools module.
* Added methods allocated, position1 to generic vector classes.
* Added method allocated to the class vec_GF2.
* Added conversion routines from unsigned int/long to int, long,
float, and double.
* Added routines AddPrec, SubPrec, etc., to the RR module, and
declared the practice of directly assigning to the variable
RR::prec obsolete.
* Fixed a number of minor bugs.
Changes between NTL 5.1a and 5.2
* Implemented Mark van Hoeij's new algorithm for factorining
polynomials with rational coefficients. This new algorithm is much
more efficient than the previous algorithm used by NTL, and is the
default (one can switch back to the old algorithm with a run-time
switch).
* Added routines LLL_plus that are just like the all-integer LLL
routines, except that they return the exact values of the squared
lengths of the Gramm-Schmidt basis vectors. This is useful in
implementing van Hoeij's algorithm.
* Made a small change to quad_float.c to make it compile under gcc
version 3.0 without errors. This is the one place in NTL where I
resort to just a little assmebly code (but only on x86/Linux
platforms), and wouldn't you know it, this is the one place where
gcc 3.0 had problems.
* Made a small change to the procedure for generating a
distribution, so that now all files in the "tar" file comprising
the distribution come without any annoyingly excessive access
control restrictions.
* Changed the version numbering scheme so that it is now closer to
"standard practice". This is version "5.2". Any small bug fixes to
this version will be named "5.2.1", "5.2.2", etc. Also, macros are
now defined so that the numerical components of the version number
are available to the programmer.
shared libraries.
Changes between NTL 5.0c and 5.1a
Some minor fixes and additions.
Completely backward compatible.
* Added a routine LatticeSolve() for finding integer solutions to
linear systems of integer equations.
* Modified the stragey used by the LLL() and image() routines in the
LLL package to deal with linear dependencies. The new strategy
guarantees better worst-case bounds on the sizes of intermediate
values. I'm not sure if it will have any serious practical impact,
though.
* Added some "partial ISO modes" so that one can use some of the
features of Standard C++, even if ones compiler does not yet
support all of the features.
* Bug fix: routine determnant() in mat_GF2.h was not visible to the
linker because of a typo in mat_GF2.c.
* Made a "smarter" script for selecting the GetTime() function. This
fixes an installation problem on Cygwin/Windows 95 platforms. I
hope it doesn't create more problems than it solves, though.
* Added some extra documentation for installation under Windows/MS
Visual C++.
* Changed some names like c_lip.c to c_lip_impl.h. This should avoid
some potential installation problems.
* Throw away first 256-bytes of arc4 streams to improve quality of
the pseudo-random number generator. This may change the precise
behavior of some programs.
* Other minor, internal modifications.
C++ library for doing number theory
NTL is a high-performance, portable C++ library providing data
structures and algorithms for arbitrary length integers; for vectors,
matrices, and polynomials over the integers and over finite fields;
and for arbitrary precision floating point arithmetic.
NTL provides high quality implementations of state-of-the-art algorithms for:
o arbitrary length integer arithmetic and arbitrary precision
floating point arithmetic;
o polynomial arithmetic over the integers and finite fields
including basic arithmetic, polynomial factorization,
irreducibility testing, computation of minimal polynomials,
traces, norms, and more;
o lattice basis reduction, including very robust and fast
implementations of Schnorr-Euchner, block Korkin-Zolotarev
reduction, and the new Schnorr-Horner pruning heuristic for block
Korkin-Zolotarev;
o basic linear algebra over the integers, finite fields, and
arbitrary precision floating point numbers.
NTL is free software, and may be used according to the terms of the
GNU General Public License.