Both shared and static libraries might be linked from C code and names
of the initialization functions has to be known without parsing the
file. Related to #177 and #74. FWIW it doesn't introduce regression on
ADSF bundles (#74) and solves initialization problem (#177).
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
Sometimes we want to build with objects from CFFI (like
wrappers). These doesn't have entry point and initialization
function. If we'll encounter such an object just attach it without
adding it to the initialization queue. Fixes#174.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
directories: don't break on broken symlinks
ECL when asked for a truename of a broken symbolic link signalled an
`file-error'. This isn't non-conformity, because spec doesn't specify
such situation, but lead to annoying errors with DIRECTORIES when even
irrelevant files were broken symlinks.
New behavior is as follows - broken symlinks are treated as regular
files (of :LINK kind) and no error is signalled. They aren't ignored
due to a few corner cases related to PROBE-FILE, OPEN and such.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
See merge request !13
reader: fix backquote reader if the input is incomplete
This makes behaviour consistent with single-quote reader. Fixes#159.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
See merge request !12
ECL when asked for a truename of a broken symbolic link signalled an
`file-error'. This isn't non-conformity, because spec doesn't specify
such situation, but lead to annoying errors with DIRECTORIES when even
irrelevant files were broken symlinks.
New behavior is as follows - broken symlinks are treated as regular
files (of :LINK kind) and no error is signalled. They aren't ignored
due to a few corner cases related to PROBE-FILE, OPEN and such.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
Each key used in core environment has to be declared beforehand in
`symbols_list.h'. Fixes#166. Fixes#149.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
Heap related fixes
- User-defined heap sizes can now exceed the size of a fixnum on 32-bit
Fixes issue #140
- The heap size limit was intended to be 1GB on 32-bit or 4GB on 64-bit
but inconsistency between ECL_FIXNUM_BITS and FIXNUM_BITS in the code
prevented the heap to grow for 64-bit. This now occurs, and a few
other less visible bugs were fixed by restoring consistency to
ECL_FIXNUM_BITS.
See merge request !11
Fixes issue #140
- The heap size limit was intended to be 1GB on 32-bit or 4GB on 64-bit
but inconsistency between ECL_FIXNUM_BITS and FIXNUM_BITS in the code
prevented the heap to grow for 64-bit. This now occurs, and a few
other less visible bugs were fixed by restoring consistency to
ECL_FIXNUM_BITS.
This was disabled from outside of ecl-min (not sure why). Achieved
with bounding ext::*register-with-pde-hook* to already defined
Works ok with swank for both macros and functions.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
and "-INFINITY" for negative infinity. These corner-cases lead to
compilation error, so no regression will be imposed even against
non-c99 compilers.
INFINITY and NAN macros are introduced by C99 standard, so such code
requires C-backend to support this math extension. Fixes#156.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
"style" temporary branch
The ECL code no longer uses tabulator characters, they were replaced
by spaces.
A custom script was used to insert/replace Emacs and ViM per-file editor
settings according to their type and the new ECL coding style.
See merge request !8
CLOS printer uses normal strings while float_to_string.d calls
push_base_string to cache printable form of infinity (and nan). Coerce
clos strings to base-string. Fixes#153. Related to #114.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
Cleanup testing
Separated tests from auxiliary tools, merged tests into files corresponding to interface (aspects are separated with ^L, navigable with C-x [ and C-x ]), renamed "bugs" to "regressions" - what these tests really are.
TODO (in indefinete future):
- some tests have auxiliary functions, these should be moved to auxiliary/ directory and loaded from there, so test files contain only tests
- add back ansi-tests suite as git subtree (to keep in sync with upstream on demand)
- add mop-features suite (subtree)
- modify deftest macro to "remember" file, from which test was load and report that back
- keep test suites / interfaces in separate packages
- make running tests possible without installing ECL (not tests thing though, rather buildsystem)
See merge request !7