pkgsrc/lang/ecl
asau 2646edd528 Update to ECL 16.1.2
Changes since 16.0.0

 * API changes

 - si:do-setf accepts optional parameter stores.  New lambda-list:
   (access-fn function &optional (stores `(,(gensym))))
   This change is backward compatible.

 - New MP functions:
   mp:with-rwlock
   mp:try-get-semaphore (non-blocking)
   mp:mailbox-try-read  (non-blocking)
   mp:mailbox-try-send  (non-blocking)

 - Added back removed C interfaces
   ecl_import_current_thread
   ecl_release_current_thread

 - When cl-truename encounters a broken symlink, it returns its path
   instead of signalling a file-error

 - Deprecated variables has been removed
   c::*suppress-compiler-warnings*, c::*suppress-compiler-notes*

 - Random state might be initialized by a random seed (truncated to
   32bit value) or by a precomputed array.

   Latter is designed to allow reading back the printed random state
   (when printed readably), not as an array to initialize the random
   state.

 - C99 supporting compiler is mandatory for C backend.

 - COMPILER::*cc_is_cxx*: New variable to switch the output extension of
   emitted compiler code to ".cxx" when configured with "--with-c++". This
   eliminates compiler warnings that compiling C++ with a ".c" extension is
   deprecated; this is seen mostly with Clang++.

 - Added Clang-specific pragmas to disable return type, unused value and
   excessive parentheses warnings, which are fairly harmless, but annoying
   and clutter user output.

 - GRAY:CLOSE isn't specialized on T to preserve compatibility with some
   libraries.

 * Enhancements:

 - Added code walker (present as *feature* :walker)

 - Testing framework cleanup

 - Format fallbacks to prin1 if infinity or NaN are passed to it

 - Annotations are added at runtime (better integration with SLIME)

 - Mersenne-Twister RNG has new 64 bit implementation for appropriate
   machines

 - Add sockets implementation for android platform

 - Add android build target (official android support)

 * Issues fixed:

 - si:open-unix-socket-stream accepts both string and base-string
   (automatic coercion is performed)

 - Long form of DEFSETF accepts multiple-values as a store forms:

   (defsetf gah (x) (y z) `(list ,x ,y ,z))
   (setf (gah 3) (values 3 4))

 - Building with single-threaded boehm works if ECL threads are disabled

 - Using labels works with sharp-S-reader

   (read-from-string
    "(#1=\"Hello\" #S(sharp-s-reader.1.example-struct :A #1#))")

 - Generated C code works well with IEEE 754 infinities
   (regression tests created)

 - User-defined heap sizes can now exceed the size of a fixnum on 32-bit

 - The heap size limit was intended to be 1GB on 32-bit or 4GB on 64-bit
   but inconsistency between ECL_FIXNUM_BITS and FIXNUM_BITS in the code
   prevented the heap to grow for 64-bit.  This now occurs, and a few
   other less visible bugs were fixed by restoring consistency to
   ECL_FIXNUM_BITS.

 - EXT:EXTERNAL-PROCESS-WAIT potential race condition fix

 - Building with object files not created by ECL works (CFFI wrappers)

 - Regression regarding initialization of build by ECL libraries from
   external code fixed. Static and shared libraries initialization
   funcitons has predetermined name while object files has randomized
   names.

 - Random state initial state generation was buggy and insecure (entropy
   from urandom was rejected)

 - Fix `listen' on streams when FILE_CNT isn't available (use read instad
   of fread)

 - `FIND' compiled with C compiler didn't respect `START' nor `END'
   arguments. Compiler macro is fixed now and should work as expected

 - `compute-applicable-methods-using-classes` bugfix
2016-03-11 20:32:30 +00:00
..
buildlink3.mk Update to ECL 16.0.0. 2015-12-09 21:00:47 +00:00
DESCR
distinfo Update to ECL 16.1.2 2016-03-11 20:32:30 +00:00
Makefile Update to ECL 16.1.2 2016-03-11 20:32:30 +00:00
options.mk Update to ECL 16.0.0. 2015-12-09 21:00:47 +00:00
PLIST Update to ECL 16.1.2 2016-03-11 20:32:30 +00:00
PLIST.threads Update to ECL 12.12.1 2012-12-08 13:29:45 +00:00