]> www.ginac.de Git - cln.git/log
cln.git
13 years agoFix compilation with clang.
Richard Kreckel [Wed, 2 Feb 2011 08:39:05 +0000 (09:39 +0100)]
Fix compilation with clang.

This resolves some depending names that GCC generously accepts.

Thanks to Pawel Worach <pawel.worach@gmail.com>.

13 years agoConfigure: be more cross-compilation friendly.
Alexei Sheplyakov [Tue, 1 Jun 2010 07:45:08 +0000 (09:45 +0200)]
Configure: be more cross-compilation friendly.

Rewrite CL_GMP_SET_UINTD so it works for cross-compilation too.

13 years agoFix the documentation build failure (wrong texinfo).
Alexei Sheplyakov [Tue, 1 Jun 2010 07:42:45 +0000 (09:42 +0200)]
Fix the documentation build failure (wrong texinfo).

Building PDF, PostScript, and DVI versions of the documentation fails
with the following error message(s):
../../doc/cln.texi:1170: Argument of @asis has an extra }.
<inserted text>
                @par
<to be read again>
                   }
According to texinfo maintainer @itemize @asis is illegal, one should
use @itemize @w{} instead.
See <http://lists.gnu.org/archive/html/bug-texinfo/2009-03/msg00016.html>.

13 years agoRemove 'auto' keyword used as storage specifier.
Richard Kreckel [Mon, 10 May 2010 06:59:44 +0000 (08:59 +0200)]
Remove 'auto' keyword used as storage specifier.

That obsolete keyword is being rededicated in C++-0x to another use.

14 years agoFinalize CLN 1.3.1 release. cln_1-3-1
Richard Kreckel [Thu, 24 Sep 2009 07:48:03 +0000 (09:48 +0200)]
Finalize CLN 1.3.1 release.

14 years agoRemove cl_null_string defintion.
Richard Kreckel [Fri, 11 Sep 2009 22:05:29 +0000 (00:05 +0200)]
Remove cl_null_string defintion.

It's been unused since the last release.

14 years agoAdd support for Renesas SH CPU (sh4).
Richard Kreckel [Fri, 11 Sep 2009 21:07:25 +0000 (23:07 +0200)]
Add support for Renesas SH CPU (sh4).

This defines cl_word_alignment for sh4.
Thanks to Nobuhiro Iwamatsu <iwamatsu@nigauri.org>.

14 years agoFix double_approx(const cl_RA& x) on 64-Bit platforms.
Richard Kreckel [Fri, 11 Sep 2009 20:54:27 +0000 (22:54 +0200)]
Fix double_approx(const cl_RA& x) on 64-Bit platforms.

When we extended immediate types on 64-bit platforms back for CLN
1.2.0, we broke the assumption that integers 2^53..2^55-1 are
bignums. This lead to segfaults when approximating a non-integer cl_RA
to double, as reported by Igor Khavkine <igor.kh@gmail.com>.

14 years agoFinalize release 1.3.0. cln_1-3-0
Richard Kreckel [Tue, 30 Jun 2009 21:58:30 +0000 (23:58 +0200)]
Finalize release 1.3.0.

14 years agoFix build breakage on Sparc.
Richard Kreckel [Mon, 22 Jun 2009 21:12:46 +0000 (23:12 +0200)]
Fix build breakage on Sparc.

With 7da4d3ae46279298acd5d65637499caab7b57071, the code that sed-converted
the $ to # in all the Sparc assembler files was removed. Let's hope that
we won't need it again.

14 years agoMake the pi teaser program install.
Richard Kreckel [Sun, 10 May 2009 20:39:04 +0000 (22:39 +0200)]
Make the pi teaser program install.

14 years agoCorrectly forward-declare cl_print_* helpers.
Richard Kreckel [Sun, 10 May 2009 20:38:23 +0000 (22:38 +0200)]
Correctly forward-declare cl_print_* helpers.

cl_print_flags and friends were declared class in cln/io.h but class
elsewhere. Some compilers didn't like it.

15 years agoPrepare for CLN 1.3.0 release.
Richard Kreckel [Mon, 16 Feb 2009 22:08:41 +0000 (23:08 +0100)]
Prepare for CLN 1.3.0 release.

Set version number and update copyright strings.

15 years agoPrefer GMP's multiplication routine (if GMP version >= 4.0).
Richard Kreckel [Sun, 15 Feb 2009 21:16:11 +0000 (22:16 +0100)]
Prefer GMP's multiplication routine (if GMP version >= 4.0).

Recent GMP multiplication routines (mpn_mul) are somewhat faster than CLN's.
For huge operands, this is due to better tuned FFT. For medium-sized operands
it's due to more algorithms (Toom 3-way.) For small operands, I couldn't find
a difference. Let's just use mpn_mul if it's available.

For huge binsplit sums, this can half the runtimes, on amd64.

15 years agoGit-ify some documentation.
Richard B. Kreckel [Thu, 29 Jan 2009 07:44:09 +0000 (08:44 +0100)]
Git-ify some documentation.

We don't need that ChangeLog any more, since git already provides a patchset view.

15 years agoOverride automake's DEFAULT_INCLUDES.
Richard B. Kreckel [Sat, 24 Jan 2009 21:27:54 +0000 (22:27 +0100)]
Override automake's DEFAULT_INCLUDES.

Automake adds all kinds of subdirectories to -I, the list of directories
to be searched for header files. However, CLN's header files are not
supposed to be included without the cln/ subdirectory, so adding
-Iinclude/cln can lead to conflicts with other header files. (The
problem at hand was a conflict between CLN's string.h and the C
library's string.h).

15 years agoFix compilation with GCC 4.4.
Richard B. Kreckel [Sun, 21 Dec 2008 19:10:23 +0000 (20:10 +0100)]
Fix compilation with GCC 4.4.

Use std::iostream functions instead of EOF and cl_EOF macros.
This enables us to get rid of the freadchar and funreadchar functions.
While at it, removed the extra signatures introduced for CLN-1.2.0
compatibilty. After all, the soname has been bumped.

Also updated largest known Mersenne prime in examples/perfnum.cc.

15 years ago[build] Added some files to DISTCLEANFILES to please `make distcheck'.
Alexei Sheplyakov [Mon, 10 Nov 2008 09:12:31 +0000 (12:12 +0300)]
[build] Added some files to DISTCLEANFILES to please `make distcheck'.

15 years ago[build] Correctly set CLN version for auto* tools.
Alexei Sheplyakov [Mon, 10 Nov 2008 08:55:27 +0000 (11:55 +0300)]
[build] Correctly set CLN version for auto* tools.

The only effect of this change is correct tarball name. There's no actual
code changes.

15 years agoList all source files so CLN builds from tarballs produced by 'make dist'.
Alexei Sheplyakov [Mon, 10 Nov 2008 08:50:53 +0000 (11:50 +0300)]
List all source files so CLN builds from tarballs produced by 'make dist'.

15 years agobuild scripts: automatically set proper rpath for linking with GMP.
Alexei Sheplyakov [Sat, 8 Nov 2008 16:29:33 +0000 (19:29 +0300)]
build scripts: automatically set proper rpath for linking with GMP.

15 years agocl_asm_GF2.cc: fix compilation error on SPARC.
Alexei Sheplyakov [Tue, 23 Sep 2008 12:42:38 +0000 (16:42 +0400)]
cl_asm_GF2.cc: fix compilation error on SPARC.

The code itself seems to be broken, so probably I should remove it...

15 years agobuild: require automake version at least 1.10
Alexei Sheplyakov [Tue, 23 Sep 2008 12:38:15 +0000 (16:38 +0400)]
build: require automake version at least 1.10

Previous versions don't define MKDIR_P and some other useful things. Since
automake 1.10 was released 2+ years ago this requirment is reasonable.

15 years ago[BUGFIX] cln/config.h: fix include guard.
Alexei Sheplyakov [Sun, 21 Sep 2008 13:37:21 +0000 (17:37 +0400)]
[BUGFIX] cln/config.h: fix include guard.

15 years ago[BUGFIX]: cl_asm_.cc: fix include paths.
Alexei Sheplyakov [Sun, 21 Sep 2008 13:38:52 +0000 (17:38 +0400)]
[BUGFIX]: cl_asm_.cc: fix include paths.

Proper fix would be to remove that file. YMMV, but on "modern" CPUs (k7,
pentium[234], k8) gcc generated code works 1.5 -- 2 times faster.

15 years agocl_{GV,SV}: use std::size_t for size of vectors (instead of obscure uintC).
Alexei Sheplyakov [Mon, 22 Sep 2008 08:55:01 +0000 (12:55 +0400)]
cl_{GV,SV}: use std::size_t for size of vectors (instead of obscure uintC).

15 years agoEquip vectors (cl_[SG]V_*) with STL-alike size() method.
Alexei Sheplyakov [Mon, 15 Sep 2008 21:26:08 +0000 (01:26 +0400)]
Equip vectors (cl_[SG]V_*) with STL-alike size() method.

15 years agobuild: define EXTRA_PROGRAMS to shut up automake warnings.
Alexei Sheplyakov [Sun, 7 Sep 2008 16:17:27 +0000 (20:17 +0400)]
build: define EXTRA_PROGRAMS to shut up automake warnings.

15 years agoFix programs for timing 2-adic operations: tests/time{div,recip}2adic.cc
Alexei Sheplyakov [Sun, 7 Sep 2008 16:14:55 +0000 (20:14 +0400)]
Fix programs for timing 2-adic operations: tests/time{div,recip}2adic.cc

At least they compile and run now. TODO: deobfuscate the code and provide
helpful usage messages.

15 years ago[bugfix] Actually compile in version info into the library.
Alexei Sheplyakov [Sun, 7 Sep 2008 15:33:11 +0000 (19:33 +0400)]
[bugfix] Actually compile in version info into the library.

src/base/cl_version.cc: don't #include "cl_sysdep.h", so the version info
actually gets compiled into the library.

Due to the changes introduced in 7da4d3ae ("build: switch to ordinary auto*
tools system") including "cln/version.h" after "cl_config.h" is no-op (yes,
this is intended).

15 years ago[bugfix] build: generate cl_config.h properly.
Alexei Sheplyakov [Sun, 7 Sep 2008 13:18:04 +0000 (17:18 +0400)]
[bugfix] build: generate cl_config.h properly.

cl_config.h file was useless due to stupid typo (#ifdef instead of #ifndef,
introduced in 7da4d3ae). Fix it.

15 years agobenchmarks: time{catalan,euler,exp1,zeta3}.cc actually compile and work now.
Alexei Sheplyakov [Sun, 7 Sep 2008 14:39:54 +0000 (18:39 +0400)]
benchmarks: time{catalan,euler,exp1,zeta3}.cc actually compile and work now.

These benchmarks use internal CLN functions. Even worse -- they expect to
find these functions in the global namespace. Declare internal CLN functions
in the namespace cln.

15 years ago[bugfix] Public headers need GMP_DEMANDS_UINTD_* macros.
Alexei Sheplyakov [Sun, 7 Sep 2008 07:56:58 +0000 (11:56 +0400)]
[bugfix] Public headers need GMP_DEMANDS_UINTD_* macros.

Put them back into cln/config.h.in (until a better solution is found).

15 years agoImprove installation instructions.
Alexei Sheplyakov [Wed, 27 Aug 2008 12:19:03 +0000 (16:19 +0400)]
Improve installation instructions.

15 years ago[bugfix] install intparam.h (auto-generated) header.
Alexei Sheplyakov [Wed, 27 Aug 2008 06:28:14 +0000 (10:28 +0400)]
[bugfix] install intparam.h (auto-generated) header.

Actually it's a bad idea to expose those defines to user, but CLN public
headers depend on them.

15 years agoRemove libtool bits from the repository.
Alexei Sheplyakov [Wed, 27 Aug 2008 06:12:17 +0000 (10:12 +0400)]
Remove libtool bits from the repository.

This makes packagers' life a bit easier.

15 years agodon't expose configure generated headers to users.
Alexei Sheplyakov [Wed, 27 Aug 2008 05:51:35 +0000 (09:51 +0400)]
don't expose configure generated headers to users.

Those HAVE_FOO collide with #define's introduced by a package which uses
CLN. The result is very funny (debugging this is not, though).

15 years agocln.texi: display copyright information in the info file, ...
Alexei Sheplyakov [Tue, 27 May 2008 06:35:54 +0000 (10:35 +0400)]
cln.texi: display copyright information in the info file, ...

... use @ifnottex instead of @ifinfo so relevant pages are included into
the HTML version of the manual.

15 years agotests: test_I_io: ignore read_integer() failures on woe32.
Alexei Sheplyakov [Tue, 27 May 2008 13:39:19 +0000 (17:39 +0400)]
tests: test_I_io: ignore read_integer() failures on woe32.

The test always fail on woe32, so ignore errors (but print relevant info).

15 years agobuild: compile benchmark programs too.
Alexei Sheplyakov [Tue, 26 Aug 2008 16:59:31 +0000 (20:59 +0400)]
build: compile benchmark programs too.

15 years agobuild: switch to ordinary auto* tools system.
Alexei Sheplyakov [Sat, 23 Aug 2008 18:33:09 +0000 (22:33 +0400)]
build: switch to ordinary auto* tools system.

Benefits:

1. If a header file gets modified, all dependent stuff gets rebuilt.
   No need for 'make clean' after each header modification, no more
   spurious errors, no more spurious rebuilds.
2. No more errors due to redefined preprocessor, compiler, and linker
   FLAGS.
3. Build scripts don't try to build every *.cc file which happen to
   lurk in the source directory.

15 years agotests: #include <iostream> and using namespace std; for std::cout and std::endl
Alexei Sheplyakov [Sat, 23 Aug 2008 18:22:56 +0000 (22:22 +0400)]
tests: #include <iostream> and using namespace std; for std::cout and std::endl

Otherwise timing programs fail to compile.

15 years agoFix header paths braindamage in the tests directory too.
Alexei Sheplyakov [Sat, 23 Aug 2008 16:09:17 +0000 (20:09 +0400)]
Fix header paths braindamage in the tests directory too.

15 years agobuild: don't insist on turning on optimization.
Alexei Sheplyakov [Sat, 23 Aug 2008 15:11:28 +0000 (19:11 +0400)]
build: don't insist on turning on optimization.

Since there's no CL_REQUIRE/CL_PROVIDE junk any more, optimization is
not mandatory.

15 years agoUse paths relative the `src' directory in the #include directives.
Alexei Sheplyakov [Sat, 23 Aug 2008 14:49:10 +0000 (18:49 +0400)]
Use paths relative the `src' directory in the #include directives.

Typical CLN source file starts with

 // General includes.
 #include "cl_sysdep.h"

 // Specification.
 #include "cl_2DS.h"

 // Implementation.

 #include "cl_2D.h"
 #include "cl_DS.h"

It takes a while to figure out which files are included. So, use paths relative
to the `src' directory, like this:

 // General includes.
 #include "base/cl_sysdep.h"

 // Specification.
 #include "src/base/digitseq/cl_2DS.h"

 // Implementation.

 #include "base/digit/cl_2D.h"
 #include "base/digitseq/cl_DS.h"

This makes CLN less hacker hostile.

15 years agobump library version, since CLN doesn't export global object ctors any more.
Alexei Sheplyakov [Thu, 21 Aug 2008 19:50:07 +0000 (23:50 +0400)]
bump library version, since CLN doesn't export global object ctors any more.

Those cl_module__blah__firstglobalfun functions don't even exist any more.

15 years agoremove CL_REQUIRE/CL_PROVIDE macro and associated autoconf tests.
Alexei Sheplyakov [Thu, 21 Aug 2008 18:44:01 +0000 (22:44 +0400)]
remove CL_REQUIRE/CL_PROVIDE macro and associated autoconf tests.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_UP) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 16:01:23 +0000 (20:01 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_UP) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_UP_no_ring) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 15:51:59 +0000 (19:51 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_UP_no_ring) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_UP_named) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 15:49:28 +0000 (19:49 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_UP_named) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_UP_unnamed) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 15:32:14 +0000 (19:32 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_UP_unnamed) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoGet rid CL_REQUIRE/CL_PROVIDE(cl_F_epsneg), it is not really necessary.
Alexei Sheplyakov [Thu, 21 Aug 2008 12:06:02 +0000 (16:06 +0400)]
Get rid CL_REQUIRE/CL_PROVIDE(cl_F_epsneg), it is not really necessary.

Move static variables [SFDL]F_negative_epsilon into LF_negative_epsilon()
function (which is the only user of those variables) in order to avoid
possible static order initialization problems. While at it, make
LF_negative_epsilon() function static.

15 years agoGet rid CL_REQUIRE/CL_PROVIDE(cl_F_epspos), it is not really necessary.
Alexei Sheplyakov [Thu, 21 Aug 2008 12:06:02 +0000 (16:06 +0400)]
Get rid CL_REQUIRE/CL_PROVIDE(cl_F_epspos), it is not really necessary.

Move static variables [SFDL]F_epsilon into LF_epsilon() function (which
is the only user of those variables) in order to avoid possible static
order initialization problems. While at it, make LF_epsilon() function
static.

15 years agoGet rid CL_REQUIRE/CL_PROVIDE(cl_F_leastneg), it is not really necessary.
Alexei Sheplyakov [Thu, 21 Aug 2008 12:06:02 +0000 (16:06 +0400)]
Get rid CL_REQUIRE/CL_PROVIDE(cl_F_leastneg), it is not really necessary.

Move static variables least_negative_[SFDL]F into least_negative_LF() function
(which is the only user of those variables) in order to avoid possible static
order initialization problems. While at it, make least_negative_LF() function
static.

15 years agoGet rid CL_REQUIRE/CL_PROVIDE(cl_F_leastpos), it is not really necessary.
Alexei Sheplyakov [Thu, 21 Aug 2008 12:06:02 +0000 (16:06 +0400)]
Get rid CL_REQUIRE/CL_PROVIDE(cl_F_leastpos), it is not really necessary.

Move static variables least_positive_[SFDL]F into least_positive_LF() function
(which is the only user of those variables) in order to avoid possible static
order initialization problems. While at it, make least_positive_LF() function
static.

15 years agoGet rid CL_REQUIRE/CL_PROVIDE(cl_F_mostneg), it is not really necessary.
Alexei Sheplyakov [Thu, 21 Aug 2008 12:06:02 +0000 (16:06 +0400)]
Get rid CL_REQUIRE/CL_PROVIDE(cl_F_mostneg), it is not really necessary.

Move static variables most_negative_[SFDL]F into most_negative_LF() function
(which is the only user of those variables) in order to avoid possible static
order initialization problems. While at it, make most_negative_LF() function
static.

15 years agoGet rid CL_REQUIRE/CL_PROVIDE(cl_F_mostpos), it is not really necessary.
Alexei Sheplyakov [Thu, 21 Aug 2008 12:06:02 +0000 (16:06 +0400)]
Get rid CL_REQUIRE/CL_PROVIDE(cl_F_mostpos), it is not really necessary.

Move static variables most_positive_[SFDL]F into most_positive_LF() function
(which is the only user of those variables) in order to avoid possible static
order initialization problems. While at it, make most_positive_LF() function
static.

15 years agoGet rid of CL_REQUIRE/CL_PROVIDE(cl_fmt_floatstring)...
Alexei Sheplyakov [Thu, 21 Aug 2008 14:34:06 +0000 (18:34 +0400)]
Get rid of CL_REQUIRE/CL_PROVIDE(cl_fmt_floatstring)...

The code doesn't seem to initialize any static objects at all.

15 years agoGet rid of CL_REQUIRE/CL_PROVIDE(cl_F_catalanconst_var).
Alexei Sheplyakov [Thu, 21 Aug 2008 16:44:33 +0000 (20:44 +0400)]
Get rid of CL_REQUIRE/CL_PROVIDE(cl_F_catalanconst_var).

Turn cl_[SDFL]F_catalanconst global variables into functions (which return
a reference to the static value) in order to avoid static initialization
order problems.

15 years agoGet rid of CL_REQUIRE/CL_PROVIDE(cl_F_eulerconst_var).
Alexei Sheplyakov [Thu, 21 Aug 2008 16:27:17 +0000 (20:27 +0400)]
Get rid of CL_REQUIRE/CL_PROVIDE(cl_F_eulerconst_var).

Turn cl_[SDFL]F_eulerconst global variables into functions (which return
a reference to the static value) in order to avoid static initialization
order problems.

15 years agoGet rid of CL_REQUIRE/CL_PROVIDE(cl_F_exp1_var).
Alexei Sheplyakov [Thu, 21 Aug 2008 14:16:31 +0000 (18:16 +0400)]
Get rid of CL_REQUIRE/CL_PROVIDE(cl_F_exp1_var).

Turn cl_[SDFL]F_exp1 global variables into functions (which return a reference
to the static value) in order to avoid static initialization order problems.

15 years agoGet rid of CL_REQUIRE/CL_PROVIDE(cl_F_ln10_var).
Alexei Sheplyakov [Thu, 21 Aug 2008 14:14:24 +0000 (18:14 +0400)]
Get rid of CL_REQUIRE/CL_PROVIDE(cl_F_ln10_var).

Turn cl_[SDFL]F_ln10 global variables into functions (which return a constant
reference to the static value) in order to avoid static initialization order
problems.

15 years agoGet rid of CL_REQUIRE/CL_PROVIDE(cl_F_ln2_var).
Alexei Sheplyakov [Thu, 21 Aug 2008 14:12:39 +0000 (18:12 +0400)]
Get rid of CL_REQUIRE/CL_PROVIDE(cl_F_ln2_var).

Turn cl_[SDFL]F_ln2 global variables into functions (which return a constant
reference to the static value) in order to avoid static initialization order
problems.

15 years agoGet rid of CL_REQUIRE/CL_PROVIDE(cl_F_pi_var).
Alexei Sheplyakov [Thu, 21 Aug 2008 14:08:01 +0000 (18:08 +0400)]
Get rid of CL_REQUIRE/CL_PROVIDE(cl_F_pi_var).

Turn cl_[SDFL]F_pi global variables into functions (which return a constant
reference to the static value) in order to avoid static initialization order
problems.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_GV_I) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 17:20:54 +0000 (21:20 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_GV_I) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_GV_number) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 17:18:57 +0000 (21:18 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_GV_number) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_SV_number) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 17:18:11 +0000 (21:18 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_SV_number) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_SV_ringelt) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 17:16:50 +0000 (21:16 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_SV_ringelt) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoGet rid CL_REQUIRE/CL_PROVIDE(cl_fmt_scaleexp), it is not necessary.
Alexei Sheplyakov [Thu, 21 Aug 2008 12:06:02 +0000 (16:06 +0400)]
Get rid CL_REQUIRE/CL_PROVIDE(cl_fmt_scaleexp), it is not necessary.

Move a bunch of static objects (tenth, SF_zero, FF_zero, etc) into
the function get_float_params (which is the only user of those variables)
in order to avoid possible static order initialization problems.

15 years agoRemove CL_REQUIRE/CL_PROVIDE(cl_I_doublefactorial) as it's unnecessary.
Alexei Sheplyakov [Thu, 21 Aug 2008 12:02:59 +0000 (16:02 +0400)]
Remove CL_REQUIRE/CL_PROVIDE(cl_I_doublefactorial) as it's unnecessary.

The only user of doublefakul_table array is doublefactorial function, so
put that array inside it in order to avoid possible static initialization
order problems.

15 years agoRemove CL_REQUIRE/CL_PROVIDE(cl_I_factorial) as it's not really necessary.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:58:06 +0000 (15:58 +0400)]
Remove CL_REQUIRE/CL_PROVIDE(cl_I_factorial) as it's not really necessary.

factorial() is the only function which uses fakul_table[] array, so move
it into that function in order to avoid possible static initialization
order problems.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_MI) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:56:43 +0000 (15:56 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_MI) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_RA_ring) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:55:45 +0000 (15:55 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_RA_ring) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_I_ring) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:55:11 +0000 (15:55 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_I_ring) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_R_ring) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:54:46 +0000 (15:54 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_R_ring) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_LF_globals) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:46:29 +0000 (15:46 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_LF_globals) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_FF_globals) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:46:16 +0000 (15:46 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_FF_globals) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoGet rid of CL_REQUIRE/CL_PROVIDE(cl_ieee).
Alexei Sheplyakov [Thu, 21 Aug 2008 18:00:49 +0000 (22:00 +0400)]
Get rid of CL_REQUIRE/CL_PROVIDE(cl_ieee).

While at it, remove work around for ancient (fixed in 8+ years) glibc/Linux
bug (the kernel and/or libc was initializing FPU into non-IEEE mode, so division
by 0 resulted in SIGFPE instead of NaN).

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_DF_globals) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:24:30 +0000 (15:24 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_DF_globals) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_C_ring) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:18:34 +0000 (15:18 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_C_ring) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_symbol) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:17:50 +0000 (15:17 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_symbol) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_st_null) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:17:06 +0000 (15:17 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_st_null) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_no_ring) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:15:09 +0000 (15:15 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_no_ring) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_random_def) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 11:11:08 +0000 (15:11 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_random_def) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoReplace CL_REQUIRE/CL_PROVIDE(cl_prin_globals) with portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 09:56:15 +0000 (13:56 +0400)]
Replace CL_REQUIRE/CL_PROVIDE(cl_prin_globals) with portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoreplace CL_REQUIRE/CL_PROVIDE(cl_0_ring) with (more) portable code.
Alexei Sheplyakov [Thu, 21 Aug 2008 09:05:39 +0000 (13:05 +0400)]
replace CL_REQUIRE/CL_PROVIDE(cl_0_ring) with (more) portable code.

The order of initialization of non-local objects in different compilation units
is not specified in C++. Hence special care should be taken to avoid static
initialization order fiasco. CLN solved the problem with some evil (GCC
specific, and even GCC-version-specific) hack. Replace it with a technique
similar to one used in STL to initialize std::cout and friends.

15 years agoCorrect typo in definition of binomial.
Richard Kreckel [Mon, 2 Jun 2008 20:29:42 +0000 (20:29 +0000)]
Correct typo in definition of binomial.

(Reported by Warren Weckesser.)

15 years agoRemove support for K&R C compilers.
Bruno Haible [Sun, 25 May 2008 08:12:47 +0000 (08:12 +0000)]
Remove support for K&R C compilers.

16 years agoFix sparc64 build with -DNO_ASM and reduce compiler warnings.
Richard Kreckel [Mon, 21 Apr 2008 20:56:29 +0000 (20:56 +0000)]
Fix sparc64 build with -DNO_ASM and reduce compiler warnings.

16 years agoFix last ChangeLog entry.
Bruno Haible [Sat, 19 Apr 2008 01:41:10 +0000 (01:41 +0000)]
Fix last ChangeLog entry.

16 years agoFix a bug in FN_to_NDS in configurations where intDsize < intPsize.
Bruno Haible [Fri, 18 Apr 2008 23:56:32 +0000 (23:56 +0000)]
Fix a bug in FN_to_NDS in configurations where intDsize < intPsize.

16 years agoFix VPATH build [Alexei Sheplyakov].
Richard Kreckel [Mon, 7 Apr 2008 21:32:02 +0000 (21:32 +0000)]
Fix VPATH build [Alexei Sheplyakov].

16 years agoRe-esatblish 1.2.0 ABI, broken 2008-02-22 [Alexei Sheplyakov].
Richard Kreckel [Mon, 7 Apr 2008 21:30:53 +0000 (21:30 +0000)]
Re-esatblish 1.2.0 ABI, broken 2008-02-22 [Alexei Sheplyakov].

* src/float/input/cl_F_readparsed.cc: Add obsolete signature with index
args uintL.
* src/integer/input/cl_I_readparsed.cc: Likewise.
* src/rational/input/cl_RA_readparsed.cc: Likewise.

16 years agoFinalize release 1.2.2. cln_1-2-2
Richard Kreckel [Sat, 5 Apr 2008 21:03:28 +0000 (21:03 +0000)]
Finalize release 1.2.2.

16 years agoPrepare for Release 1.2.2.
Richard Kreckel [Fri, 4 Apr 2008 22:34:55 +0000 (22:34 +0000)]
Prepare for Release 1.2.2.

16 years agoRe-establish ABI, broken 2008-01-20.
Richard Kreckel [Fri, 4 Apr 2008 22:09:56 +0000 (22:09 +0000)]
Re-establish ABI, broken 2008-01-20.

* src/float/ffloat/conv/cl_FF_from_float.cc: Add obsolete signature of
cl_float_to_FF_pointer.
* src/float/dfloat/conv/cl_DF_from_double.cc: Add obsolete signature of
cl_double_to_DF_pointer.

16 years agoFix hack from 2008-01-20 that broke on ARM.
Bruno Haible [Tue, 1 Apr 2008 00:51:50 +0000 (00:51 +0000)]
Fix hack from 2008-01-20 that broke on ARM.

16 years agoFinalize release 1.2.1. cln_1-2-1
Richard Kreckel [Mon, 24 Mar 2008 21:55:10 +0000 (21:55 +0000)]
Finalize release 1.2.1.

16 years agoNew file, for recreating the build prerequisites after a CVS checkout.
Bruno Haible [Mon, 24 Mar 2008 02:05:40 +0000 (02:05 +0000)]
New file, for recreating the build prerequisites after a CVS checkout.

16 years agoFix bug introduced on 2008-02-23.
Bruno Haible [Mon, 24 Mar 2008 02:03:41 +0000 (02:03 +0000)]
Fix bug introduced on 2008-02-23.