[Ecls-list] Latest changes

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Fri Aug 28 20:44:05 UTC 2009

* Visible changes:

 - When embedded, ECL may coexist with code that uses the GMP library in
   different ways, and sometimes that code may use different memory allocation
   routines. In order to solve this problem ECL introduces a new option,
   ECL_OPT_SET_GMP_MEMORY_FUNCTIONS, which determines whether GMP will use the
   Boehm-Weiser garbage collector to allocate memory or not.

 - The previous change also implies that ECL must do all bignum computations
   using GMP-allocated numbers that are then automatically freed. More
   precisely, this is done using big_register[0-2]_get() and
   big_register_normalize() everywhere and operating destructively on those
   numbers. These functions have been made aware of the fact that GMP may
   use other allocation routines and always call mpz_clear() to free memory.

 - The internal functions dealing with bignums have been renamed with the usual
   prefix "_ecl", and some of them have been turned into macros. Do not use
   those functions if possible.

 - A new compiler macro ECL_NO_LEGACY can be defined to remove all deprecated
   macros and functions. Have a look at the end of src/h/external.h to see
   what functions are deprecated on each release -- typically they are functions
   that have been renamed with one of the prefixes, ecl_, cl_, si_,
ext_ or _ecl.

Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)

More information about the ecl-devel mailing list