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.
This files shouldn't be copied. They are big, duplicate binaries in fas
files and are no use without the gcc compiler on the target system.
Also clean assets directory on the clean target and use a symblink
`ecl-libdir' to access the libraries directory.
Move the ASDF cache initialization below it's inclusion and don't be so
noisy with swank.
Also add the function sysinit which downloads and installs the Quicklisp
and replaces it's interpreted gunzip with our precompiled deflate.
Don't statically link with the ECL. Use libecl.so instead. Thanks to
that we don't have to link explicitly with each module we want to use
and the whole process is simpler.
Separate different directories for the resources.
#P"SYS:" -> #P"lisp/lib" - ECLDIR with the modules
$HOME -> lisp/home - user provided files, quicklisp, 3rd party contribs
lisp/etc - init scripts and the configuration
`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.