Changes since previous package:
2009-06-30, version 1.3.0
* Use the GNU autotools as build system.
* Implemented a more portable module dependency mechanism.
2008-04-05, version 1.2.2
* Re-establish CLN-1.2.0 ABI and fix ARM build, both inadvertently broken in
the previous release.
2008-03-24, version 1.2.1
* Fixed some bugs in the output of numbers larger than 2^32 decimal digits.
* Modifying C/C++ operators like +=, ++, etc. are now enabled by default.
2008-01-19, version 1.2.0
* Save big amounts of memory in computation of some functions and constants by:
- Avoiding pre-computation of series terms and instead computing them in a
streamed way.
- Avoiding computation with excess precision in binary splitting algorithm
by coercion of intermediate integer values to floating-point as early as
possible.
* Added support for huge numbers:
- intC used for all counter loops.
- intE is now a 64-bit type on all 64-bit platforms and even on selected
32-bit platforms.
* CLN now uses C++ exceptions for error handling. The cl_abort() hook is not
supported any more. Please refer to the documentation to learn about existing
exception types.
* Fixed a bug on i386 where comparing Z/2Z ring zeros returnd random results.
* Removed cl_boolean. Use built-in C++ bool instead.
* Dropped the cln-config script. Please use pkg-config instead.
* Updated infrastructure to that of libtool-1.5.24.
* Changed encoding of all files to UTF-8.
* Fix compilation issues with GCC-4.3.
* Fix linking issues on platforms that don't feature weak symbols (like win32).
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.
* Compilation fixes for 64-bit brokenness introduced in last release.
Changes 1.1.12:
* Fix rare assertion when printing quite large floats.
* Compilation fixes for several platforms: *BSD, Intel Mac, and MinGW.
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
set OVERRIDE_DIRDEPTH to find any libtool scripts deeper in the WRKSRC
tree unless they're named something other than "libtool".
SHLIBTOOL_OVERRIDE generally doesn't need to be specified either -- just
define it to the empty list and shlibtool-override will look for libtool
scripts.
Algorithmic changes
* Considerably improved performance of number input.
Changes 1.1.10:
Implementation changes
* Removed the vptr of modular integer and univariate polynomial
classes in order to fix some crashes in that sector of CLN. Code
using this needs to be recompiled.
* Many more operator signatures make the integration of CLN types with
float/double easier.
Other changes
* Several compilation fixes.
* Made it possible to cross-compile CLN.
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).
file's sole purpose was to provide a dependency on pkg-config and set
some environment variables. Instead, turn pkg-config into a "tool"
in the tools framework, where the pkg-config wrapper automatically
adds PKG_CONFIG_LIBDIR to the environment before invoking the real
pkg-config.
For all package Makefiles that included pkg-config/buildlink3.mk, remove
that inclusion and replace it with USE_TOOLS+=pkg-config.
Algorithmic changes
* Input of numbers in bases 2, 4, 8, 16 and 32 is now done in linear bit
complexity as opposed to O(N^2). Useful for all kinds of persistency.
Implementation changes
* Fixed several bugs in the integer input and output routines that could be
blamed for random crashes in the following cases: output in base 32 for
quite large numbers, input in base 2 for fixnums and input in base 3 for
fixnums on a 64 bit target.
* Fixed crash when radix specifiers were used in input streams.
* Speed up on x86_64 and ia64 by adding some inline assembly.
Other changes
* Fixes for compilation on MacOS X and little endian Mips.
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".
features:
* Rich set of number classes
* Elementary, logical, transcendental functions
* C++ as implementation language brings efficiency, type safety,
and algebraic syntax
* Memory efficiency
* Speed efficiency
* Interoperability