Commit graph

7606 commits

Author SHA1 Message Date
ZhangYuguo
913cab0bf9 enable long float support on windows msvc build.
since c99 is mandatory now, we should never consider msvc6 anymore.
2019-02-19 15:11:23 +08:00
Daniel Kochmański
60d19cd9ab numbers: don't assume ECL is always built with longfloat
Fixes regression with windows builds (and all buidls without longfloat).
2019-02-16 10:45:19 +01:00
Marius Gerbershagen
60870ae9b0 use correct unnormalized values for minimum float constants
Fixes #470.
2019-02-13 20:24:26 +01:00
Marius Gerbershagen
19c6635ff0 expt: use pow function for floating point numbers
Improves speed and accurracy.
2019-02-12 22:37:23 +01:00
Marius Gerbershagen
dff91be38c sysfun.lsp: clean up inline expansions for floating point numbers
Define all expansions also for long floats if available, use
    single float C functions when given a single float.
2019-02-12 22:30:57 +01:00
Marius Gerbershagen
fee1d49baa fix float-precision for long floats 2019-02-09 22:06:35 +01:00
Marius Gerbershagen
2b7d0bdb67 format: fix exponential floating point output
sys::scale-exponent was not working correctly and outputting
    numbers in the wrong range. Furthermore, using sys::scale-exponent
    for scaling the number to the correct range is flawed anyway,
    since it introduces rounding errors. Hence we replace
    sys::scale-exponent by the much simpler sys::exponent-in-base10
    function and fix the logic in format-exp-aux to scale using
    sys::flonum-to-string, which is rounding error free. Moreover,
    sys::flonum-to-string was buggy and not rounding numbers correctly
    when the 'd' parameter was given, which has also been fixed.
    Fixes #437.
2019-02-09 22:06:35 +01:00
Marius Gerbershagen
4902b9dee0 Merge branch 'defstruct-redefinition' into 'develop'
defstruct redefinition

Closes #457

See merge request embeddable-common-lisp/ecl!134
2019-02-08 20:27:55 +00:00
Daniel Kochmanski
a361055a3d defstruct: disallow defining structures of incompatible layouts
We signal an error if the structure is incompatible with an already defined
one. We concern ourself about slot names, their types, offset and number of
slots. Fixes #457.
2019-02-08 20:45:55 +01:00
Daniel Kochmanski
38f5dea0ca cas: ensure that package locks are honored 2019-02-07 13:59:55 +01:00
Daniel Kochmanski
13a42249e2 cas: add remcas operation for an expansion removal
It is a (fmakunbound (setf foo)) counterpart.
2019-02-07 13:29:03 +01:00
Daniel Kochmanski
9096514cff extensions: put ext:package-locked-p in core module. 2019-02-07 13:27:12 +01:00
Daniel Kochmański
2190974312 Merge branch 'loop-iteration-types' into 'develop'
loop: fix type declarations for iteration variables

Closes #455

See merge request embeddable-common-lisp/ecl!133
2019-01-31 10:41:53 +00:00
Marius Gerbershagen
c447fea04f doc: fix documentation of si_safe_eval 2019-01-30 21:23:16 +01:00
Marius Gerbershagen
689ac03a85 be more consistent w.r.t *print-level* when printing structures
Print empty structures without slots as "#" when *print-level* is
    0 (same as non-empty structures) and decrement *print-level* by 1
    for printing of structure elements.
    Fixes #454.
2019-01-30 21:00:59 +01:00
Marius Gerbershagen
7a06d9795e loop: fix type declarations for iteration variables
We only need to consider the types of start and step variables,
    since the limit value is never actually assigned to the iteration
    variable.
    Fixes #455.
2019-01-27 16:10:11 +01:00
Marius Gerbershagen
0ad38e2a3d fix return statement of si_copy_stream 2019-01-20 15:57:47 +01:00
Daniel Kochmański
2b92a7acd9 Merge branch 'android-new-bdwgc' into 'develop'
Fix compilation with recent Android NDKs and support ARM64 Android

See merge request embeddable-common-lisp/ecl!132
2019-01-20 10:41:46 +00:00
Marius Gerbershagen
8421225d9e gensym: check type of *gensym-counter* to be non-negative integer
Fixes #464.
2019-01-19 21:44:35 +01:00
Marius Gerbershagen
cf2fe46ddf fix with-restart-case for restarts with both :test and :interactive
Issue reported and fix provided by gitlab user Bicyclidine. Closes
    #450.
2019-01-19 21:18:59 +01:00
Marius Gerbershagen
0b6311b399 contrib: remove use of legacy names 2019-01-14 21:29:34 +01:00
Marius Gerbershagen
ca4eabea15 configure.ac: detect feenableexcept with AC_CHECK_DECL
On Android feenableexcept is only declared as a macro, but not
    present as a function.
2019-01-12 22:51:59 +01:00
Marius Gerbershagen
d0cf3c86e4 build libecl.so with soname on Android
Otherwise the linker on recent Android versions will not find
    libecl.so. For compatibility with existing Android apps which only
    distribute a libecl.so file, but not a libecl.so.16.x file, we
    don't use a version component in soname, since the linker on older
    Android versions only looks for libraries matching the exact
    soname.
2019-01-12 22:51:59 +01:00
Marius Gerbershagen
6090d9d201 update installation instructions for recent Android NDKs and support ARM64
Works for Android NDKs with unified headers (see https://android.googlesource.com/platform/ndk/+/ndk-release-r16/docs/UnifiedHeaders.md).
    Separate step of configuring a standalone toolchain is recommended
    by the Android docs. Explicitely setting CC to clang is useful,
    since gcc in Android NDK is deprecated and outright broken in NDK
    version 18. Using the bfd linker is needed for bdwgc to work
    correctly (see also https://github.com/ivmai/bdwgc/issues/259).
2019-01-12 22:51:17 +01:00
Marius Gerbershagen
06d6ffe158 android: do not compile with -D_FILE_OFFSET_BITS=64
Otherwise on NDK >= 16 fseeko and ftello are not declared in
    stdio.h for Android API versions smaller than 24 (See
    https://android-developers.googleblog.com/2017/09/introducing-android-native-development.html).
2019-01-12 20:21:19 +01:00
Marius Gerbershagen
736f50b864 bdwgc: Update library to version 7.6.8.
libatomic_ops is updated accordingly to version 7.6.6.
    Fixes build failures on android.
2019-01-12 20:21:19 +01:00
Daniel Kochmański
6982a805f1 Merge branch 'cleanup-string-building' into 'develop'
clean up functions creating base strings from C strings

Closes #462

See merge request embeddable-common-lisp/ecl!131
2019-01-07 19:55:49 +00:00
Marius Gerbershagen
24dcb778cf clean up functions creating base strings from C strings
Make functions behave as documented, remove use of legacy names.
    Fixes #462.
2019-01-07 18:43:55 +01:00
Marius Gerbershagen
089d30260c libffi: use unified assembler syntax to allow building libffi on arm with clang
The offending code has already been changed in libffi but no new
    release has been made yet.
2019-01-04 16:15:25 +01:00
Daniel Kochmański
2b7822769a Merge branch 'new-doc' into 'develop'
Use new doc as standard documentation

See merge request embeddable-common-lisp/ecl!129
2019-01-03 18:56:40 +00:00
Marius Gerbershagen
6005c030b6 doc: set new doc as standard documentation 2019-01-03 19:14:28 +01:00
Marius Gerbershagen
d07e110526 doc: document C equivalent of setf functions 2019-01-03 13:58:24 +01:00
Marius Gerbershagen
68b22e522c doc: cosmetic changes
Small improvements to css, correct indentation for examples.
2019-01-02 16:08:43 +01:00
Marius Gerbershagen
3c3a02ea7d doc: improvements to extensions section
Use consistent formatting, fix errors and typos.
2019-01-02 12:27:02 +01:00
Marius Gerbershagen
af2c152682 doc: improvements to standards section
Apply consistent formatting, fix all ANSI dictionary sections as
    well as other errors and typos.
2018-12-31 16:22:44 +01:00
Marius Gerbershagen
0b0c7594b4 doc: improvements to developer's guide
Document the defun preprocessor, remove use of deprecated names,
    fix errors and typos.
2018-12-29 23:41:17 +01:00
Daniel Kochmanski
2575218ccb printer: fix wrong string printed in write_condition_variable
it printed #<semaphore> while it should be #<condition-variable>.
2018-12-28 10:08:38 +01:00
Marius Gerbershagen
1553f4e70e ecl_equal: fix comparison of displaced bitvectors (this time for real)
The "fix" from commit d3420eb3d5 did
    not work properly for bitvectors with length > 8.

    Fixes #445
2018-12-23 13:37:23 +01:00
Marius Gerbershagen
317d8915cf ecl_equalp: improve efficiency of array comparison 2018-12-19 23:30:51 +01:00
Marius Gerbershagen
d3420eb3d5 ecl_equal: fix comparison of displaced bitvectors
Fixes #445
2018-12-19 23:30:51 +01:00
Daniel Kochmański
ed9ebb936b Merge branch 'serialization' into 'develop'
fix the broken serialization functions for externalizable objects

See merge request embeddable-common-lisp/ecl!128
2018-12-19 06:49:04 +00:00
Marius Gerbershagen
a6ff11c8fc cmp: prevent inlining of stale function definitions
If a function which was previously proclaimed inline by the
    native compiler was redefined by the bytecodes compiler, the
    native compiler would still continue to inline the old
    definition (see also commit 892e21012a).
2018-12-18 20:26:52 +01:00
Marius Gerbershagen
76941e25dc fix the broken serialization functions for externalizable objects 2018-12-10 18:14:01 +01:00
Marius Gerbershagen
846abed0f1 threading: signal better errors in get-cas-expansion
If mp:compare-and-swap was expanding from a place which was not a
    list, it would throw a bogus type error instead of the correct
    "Cannot get the compare-and-swap expansion" error.
2018-12-08 10:42:31 +01:00
Marius Gerbershagen
663f2fb301 delete unused files 2018-12-08 10:42:31 +01:00
Marius Gerbershagen
aa75969e33 printer: signal error in write-string if stream is not a character stream
Bug introduced in commit 5947970f6.
2018-11-28 21:44:28 +01:00
Marius Gerbershagen
52acffae4a ecl_make_symbol: call _ecl_intern with package name
This is slightly more efficient and prevents an error message like
    "There exists no package with name NIL". Instead of NIL, the
    actual name is printed.
2018-11-28 21:44:28 +01:00
Daniel Kochmański
6bb08c2d81 Merge branch 'fix-disassemble' into 'develop'
Fix #106

Closes #106

See merge request embeddable-common-lisp/ecl!127
2018-11-25 08:10:11 +00:00
Marius Gerbershagen
e7fe000400 doc: update outdated information and examples in the developers guide 2018-11-24 22:00:29 +01:00
Marius Gerbershagen
61650f8e1f doc: fix documentation for si:*keep-definitions*
The variable is set to t by default.
2018-11-24 19:35:31 +01:00