ECL uses libffi for a long time and these code isn't even
compiled. ECL_DYNAMIC_FFI supported only limited number of x86 and
x86_64 bit platforms (transcended by libffi) and was basically dead. Not
sure if it would even compile even fater changing the scripts.
This changes were pretty straightforward, since the code was nicely
isolated with the appropriate ifdefs, but some testing is necessary
here.
Carry STORES to do-setf-method-expansion in order to fix bug with long
form of DEFSETF (using multiple values as assignment variables is
legal). Change is backwards compatible.
Old implementation of `asynchronous_signal_servicing_thread' was
reimplemented long time ago. Old implementation was still present in
sources surrounded with `#if 0 ... #endif'. Remove it.
Windows doesn't have `sys/utsname.h' and uname in current form can't
be used. It was carefully foreseen by a previous maintainer and works
OK, but the problem emerges when cross-compiling from linux. Fixes
Also add symbol with-clean-symbols to the symbols list. This utilities
are used all across the sources and it's easier to navigate and
understand ECL sources if all the utilities it uses are available.
Use ECL_ARRAYP instead of testing for a specific types of array. It's
worth to keep in mind, that STRING will be an array of integers, while
BASE-STRING will be an array of the ordinary chars. Fixes#142.
Some libraries somewhat abuse the CLOSE method specializing it on their
own stuff which isn't a stream. Calling the NEXT-METHOD triggers the
condition. For pragmatic reasons we'll honor this and will specialize
only on the streams.
Macroexpanding DEFMETHOD creates a partially initialized GF (not the
greatest idea in itself). function-lambda-list then croaks on the
LAMBDA-LIST slot being unbound.
Instead of occupying two vector elements (one for the actual value and
one for a bit indicating whether it's an eql-specializer) store cons
cells containing eql specializer values from
CLOS::GENERIC-FUNCTION-SPEC-LIST.
`fread' may buffer some input and `listen' will return an incorrect
value. This is mainly the case when we cross-compile and user is too
lazy to check his `stdio.h' file. Fixes#185.
Don't use C99 specific syntax for `for' loop and use functions
lib_init_* instead of main_lib_init_* which aren't exported.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>