A Tour of NTL: Summary of Changes
[Previous] [Up] [Next]

A Tour of NTL: Summary of Changes


Changes between NTL 5.2 and 5.3


Changes between NTL 5.1a and 5.2


Changes between NTL 5.0c and 5.1a

Some minor fixes and additions.

Completely backward compatible.


Changes between NTL 5.0b and 5.0c

Fixed a naming problem in the Windows distribution. The Unix distribution is unaffected.


Changes between NTL 5.0a and 5.0b

Fixed a typo in vec_ulong.c that causes a compile error on some platforms.


Changes between NTL 4.3a and 5.0a


Changes between NTL 4.2a and 4.3a

This is backward compatible with previous versions.


Changes between NTL 4.1a and 4.2a

This is backward compatible with previous versions.


Changes between NTL 4.0a and 4.1a

This is backward compatible with previous versions.


Changes between NTL 3.9b and 4.0a

This is backward compatible with previous version.


Changes between NTL 3.9a and 3.9b

This is a minor revision of 3.9a.


Changes between NTL 3.8b and 3.9a

This is backward compatible with previous versions.


Changes between NTL 3.8a and 3.8b

This is a minor revision of 3.8a.


Changes between NTL 3.7a and 3.8a

This is backward compatible with previous versions.


Changes between NTL 3.6b and 3.7a

This is backward compatible with previous versions.


Changes between NTL 3.6a and 3.6b

Bug fixes.


Changes between NTL 3.5a and 3.6a

This version is backward compatible with 3.5a.


Changes between NTL 3.1b and 3.5a

Please note. This version is NOT completely backward compatible.

Summary of changes:

Renamed Macros. I renamed many macros defined in NTL header files.

The reason is that I want to minimize namespace pollution. Someday, NTL will be wrapped in a namespace, and when that happens the only remaining namespace pollution problems will be caused by macros. Eliminating all macros from NTL is not feasible. Instead, all NTL defined macros now begin with the prefix "NTL_", which reduces the namespace pollution to an ecceptable level. You will probably not be affected by this, unless you do some low level hacking using a macro like ZZ_NBITS (now called NTL_NBITS), or unless you create your own NTL vectors using a macro like ntl_vector_decl (now called NTL_vector_decl).

For a complete list of affected names, see names.txt.

Adapting to this name change should be painless, as there is a program to translate source files from the old naming convention to the new. The file "newnames.c", can be compiled as either a C or C++ program. The program is a "filter" that copies its input to its output, replacing all the old macro names by the new macro names.

In the WinNTL distribibution, "newnames.c" is called "newnames.cpp" and is located in the directory "newnames".

Renamed header files. The names of header files themeselves pollute another (extra-linguitsic) namespace. To alleviate this problem, the header files have been renamed. Instead of

   #include "foo.h"
one now should write
   #include <NTL/foo.h>
The only exceptions are the old header files "ntl_vector.h", "ntl_matrix.h", and "ntl_pair.h", which are now called <NTL/vector.h>, <NTL/matrix.h>, and <NTL/pair.h>.

Installation procedure. Now all NTL flags like NTL_LONG_LONG, NTL_AVOID_FLOAT, etc., can now be set by editing the special file "include/NTL/config.h". See details in that file. The reason for this change is that this allows all of these settings to be made when NTL is configured and built. Clients of NTL will then automatically use consistent settings. One should not set these flags on the compiler command line as previously.

Pentium/Linux people should no longer have to worry about the NTL_X86_FIX flag. NTL now psychically deduces the "right thing to do", although if its psychic abilities fail, you can override it with flags in "include/NTL/config.h".

The "packaging" in the Unix distribution is slightly different, but hopefully nicer. Among other things, the tar file now unpacks into a sub-directory of the current directory. See the unix installation section for more details. The Windows zip file now also unpacks into sub-directory.

My apologies. Although these changes are minor, they will cause some NTL users some inconvenience. I apologize for this. I really, really hope there are no more changes like this (see my roadmap of NTL's future).


Changes between NTL 3.1a and 3.1b

Defined functions div(GF2X,GF2X,GF2) and div(GF2X,GF2X,long), which had not been defined in earlier versions. Affected file: GF2X.c. Most programs never use this, and most linkers do not complain if these are missing (but some do).


Changes between NTL 3.0f and 3.1a

This version is backward compatible with previous versions.


Changes between NTL 3.0e and 3.0f


Changes between NTL 3.0 and 3.0e


Changes between NTL 2.0 and 3.0

Compatibility

Here is a detailed list of the changes to the programming interface.

Tips on making the transition


Changes between NTL 1.7 and 2.0


Changes between NTL 1.5 and NTL 1.7


Changes between NTL 1.0 and NTL 1.5

[Previous] [Up] [Next]