Fixes bug for building a standalone executables :) full list of changes between 16.0.0 and 16.1.2:
* 16.1.2 changes since 16.0.0
** API changes
- =si:do-defsetf= accepts optional parameter stores.\\
New lambda-list:\\
=(access-fn function &optional (stores-no 1))=.\\
This change is backward compatible.
- 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++.
- =GRAY:CLOSE= isn't specialized on =T= to preserve compatibility with some
libraries.
** Enhancements:
- Added code walker (present in =*features*= as =:walker=)
- Testing framework initial 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 the android platform
- Added Clang-specific pragmas to disable return type, unused value and
excessive parentheses warnings, which are fairly harmless, but annoying
and clutter user output.
** 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:
- 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=.
- 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
Fixes bug for building a standalone executables :) full list of changes between 16.0.0 and 16.1.2:
* 16.1.2 changes since 16.0.0
** API changes
- =si:do-defsetf= accepts optional parameter stores.\\
New lambda-list:\\
=(access-fn function &optional (stores-no 1))=.\\
This change is backward compatible.
- New MP functions:\\ with-rwlock= \\ try-get- semaphore= (non-blocking)\\ mailbox- try-read= (non-blocking)\\ mailbox- try-send= (non-blocking)
=mp:
=mp:
=mp:
=mp:
- Added back removed C interfaces\\ import_ current_ thread= \\ release_ current_ thread=
=ecl_
=ecl_
- When =cl-truename= encounters a broken symlink, it returns its path
instead of signalling a file-error
- Deprecated variables has been removed :*suppress- compiler- warnings* =, =c::*suppress- compiler- notes*=
=c:
- 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++.
- =GRAY:CLOSE= isn't specialized on =T= to preserve compatibility with some
libraries.
** Enhancements:
- Added code walker (present in =*features*= as =:walker=)
- Testing framework initial 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 the android platform
- Add android build target (official android support)
- Added Clang-specific pragmas to disable return type, unused value and
excessive parentheses warnings, which are fairly harmless, but annoying
and clutter user output.
** 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:
#+BEGIN_SRC lisp
(defsetf gah (x) (y z) `(list ,x ,y ,z))
(setf (gah 3) (values 3 4))
#+END_SRC
- Building with single-threaded boehm works if ECL threads are disabled
- Using labels works with sharp-S-reader
#+BEGIN_SRC lisp
(read-from- string
"(#1=\ "Hello\ " #S(sharp- s-reader. 1.example- struct :A #1#))")
#+END_SRC
- 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 FIXNUM_ BITS=.
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_
- =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