- 04 Dec, 2019 2 commits
-
-
Daniel Kochmański authored
si_complex_float_p and si_complex_float are referenced in tests, to allow clean compilation put them in externa.h.
-
Daniel Kochmański authored
Symbols must be associated with functions following an uniform naming scheme because si:mangle-name does not return pre-existing string. See #534 for details. This is a temporary solution.
-
- 17 Nov, 2019 1 commit
-
-
Marius Gerbershagen authored
C inline information is saved in +default-machine+, which was previously a constant. However, the value assigned to +default-machine+ is recomputed during load and compile time. Technically, assigning a constant a new value which is not eql to the old one is undefined behaviour in the ANSI standard. What ECL did was simply to reassign the constant when compiling cmpc-machine.lsp. However, this meant that the inline information which was added to +default-machine+ when loading sysfun.lsp was lost. Thus, all ECL source files compiled after cmpc-machine.lsp were compiled without inline information. We prevent this by using an ordinary variable *default-machine* instead of a constant.
-
- 31 Oct, 2019 1 commit
-
-
Marius Gerbershagen authored
Allowing e.g. (atomic-incf *foo*) instead of requiring (atomic-incf (symbol-value '*foo*)) makes the interface easier to use and more consistent with sbcl.
-
- 26 Oct, 2019 1 commit
-
-
Marius Gerbershagen authored
Previously we were only creating atomic accessors when explicitely told so, which is problematic for compatibility reasons, since it requires compatibility libraries to define their own versions of defstruct just for ECL. This change is backwards compatible.
-
- 25 Oct, 2019 1 commit
-
-
thijs authored
-
- 29 Sep, 2019 1 commit
-
-
Marius Gerbershagen authored
-expt of an integer and rational lead to a wrong type error in ecl_expt_float -type contagion of (expt 0 +y) did not work properly -there were several useless type checks in places where previous function calls already ensured that objects were numbers Fixes #526.
-
- 25 Aug, 2019 6 commits
-
-
Marius Gerbershagen authored
Fixes out of memory errors when creating lots of threads on windows, joining them and then again creating many threads (see e.g. the atomic-incf/decf tests).
-
Marius Gerbershagen authored
process.woken_up was not set to nil before calling condition. This could lead to threads not waiting correctly on barriers and consequently to mp:process-join returning earlier than it should.
-
Marius Gerbershagen authored
The file descriptor for the error output in the parent process was set to the wrong value.
-
Marius Gerbershagen authored
The nul file on windows can't be opened with O_TRUNC flag.
-
Marius Gerbershagen authored
This is not needed since windows includes feclearexcept. Furthermore, it leads to segmentation faults in the ieee-fp tests.
-
Marius Gerbershagen authored
-
- 20 Aug, 2019 3 commits
-
-
Marius Gerbershagen authored
linker-cc for other compilers includes the libpath in the linker options, therefore for consistency we need it here too.
-
Marius Gerbershagen authored
Instead we return an invalid value (-1 for ecl_file_column and nil for si_file_column). All users of these functions already deal correctly with invalid values. Fixes #309.
-
Marius Gerbershagen authored
-
- 19 Aug, 2019 3 commits
-
-
Marius Gerbershagen authored
-
Marius Gerbershagen authored
Statements such as (multiple-value-bind () :foo) returned :foo instead of nil (see the multiple-value-bind.11-13 tests in the ansi-test suite).
-
Marius Gerbershagen authored
Only add fill style newline for blanks that don't follow a ~ newline directive (see the format.logical-block.23 test in the ansi-test suite).
-
- 18 Aug, 2019 2 commits
-
-
Marius Gerbershagen authored
The previous implementation did not respect *print-circle*. Fixes #476.
-
Marius Gerbershagen authored
-
- 14 Aug, 2019 10 commits
-
-
Marius Gerbershagen authored
-
Marius Gerbershagen authored
-
Marius Gerbershagen authored
Works better for edge cases such as x + I*∞, which otherwise would lead to a complex with NaN real part.
-
Marius Gerbershagen authored
-
Marius Gerbershagen authored
-
Marius Gerbershagen authored
ext:float-infinity-p returned true for NaNs and ext:float-nan-p was slower than necessary.
-
Marius Gerbershagen authored
As for the C functions fmin/fmax, we ignore NaNs
-
Marius Gerbershagen authored
Old approach doesn't work reliably on x86_64. See e.g. > (eql (+ ext:double-float-negative-infinity ext:double-float-positive-infinity) (ext:nan)) NIL
-
Marius Gerbershagen authored
All comparisons with NaN should return NIL for consistency with the IEEE standard.
-
Marius Gerbershagen authored
-
- 06 Aug, 2019 3 commits
-
-
Marius Gerbershagen authored
We used the next argument instead of the current one. Bug identified and fixed by Christoph Buck. Fixes #523.
-
Marius Gerbershagen authored
Fixes #522.
-
zyg authored
-
- 30 Jul, 2019 1 commit
-
-
Exaybachay authored
-
- 24 Jul, 2019 1 commit
-
-
Marius Gerbershagen authored
It can happen for example in (subtypep t '(CONS (AND STANDARD-CHAR (MEMBER #\@)) REAL)) that in subtypep and type= the second call to safe-canonical-type fails and returns the error from +canonical-type-failure+ instead of a valid tag. This leads to type-errors in logandc2 or = which expect an integer. Fixes #519.
-
- 23 Jul, 2019 2 commits
-
-
Marius Gerbershagen authored
-
Marius Gerbershagen authored
Previously, we assumed that all stack frames were lying at the top of the lisp stack. This is not always true due to e.g. multiple-value-prog1 pushing onto the lisp stack.
-
- 22 Jul, 2019 1 commit
-
-
Exaybachay authored
-
- 20 Jul, 2019 1 commit
-
-
The magic number was wrong anyway.
-