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.
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>
emit_cxx_source_if_cxx
Emit ".cxx" source files instead of ".c" source if configured "--with-cxx". This noticeably reduces the amount of whining from the Clang compiler, which considers compiling ".c" as C++ a significant
deprecation. (Note: Need to update the install instructions somewhere to show Mac OS X-ers how to compile ecl with clang/clang++).
Also add pragmas to ecl-cmp.h to reduce Clang warnings (better fix: fix the compiler to not produce the kind of code that triggers the warnings, but this works for the time being.)
See merge request !16
Add pragmas to ecl-cmp.h to reduce Clang warnings (better fix: fix the
compiler to not produce the kind of code that triggers the warnings, but
this works for the time being.)
Emit ".cxx" source files instead of ".c" source if configured
"--with-cxx". This noticeably reduces the amount of whining from the
Clang compiler, which considered compiling ".c" as C++ a significant
deprecation.
Randomized init funciton name is used internally and prevents symbol
clashes which lead to bugs when loading systems of the same name
(bundles for instance).
On the other hand wrapper provides a way to initialize library from
the C code. In this case it is programmer responsibility to name his
system uniquely. It will initialize it's submodules fine.
Fixes#74. Fixes#177.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>