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.
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.
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>
This results in twice as big array as we could use if uint32_t was
granted with C99 - half of the bytes on 64 bit platforms are filled
with 0. Despite that it's clean and portable solution without
immediate imposing dependency on C99.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
Array used for initialization is an array of the final values of
internal vector used to generate next randoms which should be a
product of initialization from a random seed.
This ability is required by CLHS to be able to read back the printed
random state. To print readable representation of random state
*print-readably* should be bound to T.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
We want this to be able to initialize random state from the fixnum and
from the array (following commits). This also simplifies code a
little.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>