This behaviour makes more sense, since the ANSI standard mandates
that disassemble should compile an interpreted function before
displaying the output (our own documentation even says so).
Also fixes disassemble for closures.
The io-syntax forced all symbols except those in the COMMON-LISP
package to be written with a package prefix. However the symbols
could be read when the current package was shadowing symbols in
the COMMON-LISP package, leading to incorrectly interned symbols.
Problem reported by Gunter Königsmann on the ecl-devel mailing
list.
In Debian, the -Werror=format-security flag is now passed by default to gcc.
This makes the ECL_LINEFEED_MODE test fail.
The fix is to replace the call to fprintf() by fputs().
The compiler refactor of commit
7ec2f4a939 introduced an error where
all lexical variables where marked to cross function boundaries,
leading them to be stored in volatile variables on the stack.
ECL needs the definition of a function to inline it. Previously,
this definition would only be saved in the file local environment
(*cmp-env-root*) but not in the global environment used by
proclaim. Hence, ECL could only inline functions in the same file.
Now, we also put the definition of inline functions in the global
environment during load time. This leads to a behaviour of declaim
for inline functions, which is consistent with other declarations
(meaning that the declarations stay only in force during
compilation, but are proclaimed again at load time of the compiled
file).
Fixes#451.
We support both compare-and-swap and fetch-and-add (via
atomic-incf/decf) on the most common places and define an
extension interface for compare-and-swap similiar to the one in
SBCL.
These changes introduce new dependencies on the libatomic_ops
macros AO_fetch_compare_and_swap and AO_fetch_and_add.
While we do ignore it for all practical purposes it is explicitly said in
standard that we should signal error. Also :SIZE is not an extension (but may
be not used since it is just a hint).
Previously we returned error for streams which are not file streams. We could
try to loose this test for ECL_ANSI_STREAM_P, but that would require confirming,
that all ECL's ANSI streams have string encoders defined.