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
Patch provided by drmeister. Test case:
(defstruct foo a)
(read-from-string
"(#1=\"Hello\" #S(FOO :A #1#))"))
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
First netbsd patch is partly applied (we have dragonfly platform), but
it drops solaris 10 support which we don't. Second is cosmetic and
applied right now. Fixes#144.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
ECL checked for GC_get_thr_restart_signal even if was built without
threads. This function is present in boehm only when it's build with
threads, but we don't need this functionality for single-threaded
builds. Fixes#146.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
MP:TRY-GET-SEMAPHORE
returns NIL if the semaphore could not be obtained, or the count
if it could be obtained
MP:MAILBOX-TRY-READ
returns a message if it's available, NIL if the queue is empty
MP:MAILBOX-TRY-SEND
returns the sent message if it could be queued, or NIL
(mailbox is full)
the message (the condition object holds important data which can be
used programmatically).
- Raise some *PRINT-LENGTH* limits in the debugger. Having a limit
is wise, but when it is too short the debugger can be rather
useless. Use 16 instead of the previous 2 or 4.
Installed spawning process was broken and unimportant. ECL ignores C-c
interrupt and passes forward all the others when build with
msvc. Fixes#8.
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>