2646edd528
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 |
||
---|---|---|
.. | ||
buildlink3.mk | ||
DESCR | ||
distinfo | ||
Makefile | ||
options.mk | ||
PLIST | ||
PLIST.threads |