Commit graph

292 commits

Author SHA1 Message Date
Marius Gerbershagen
fc5a9ad58c tests: add regression test for issue #577 2020-05-01 20:47:47 +02:00
Moritz Petersen
d5eafde045 Add a regression test for the bug described in #576
Merge a test for with-output-to-string with the one for
with-input-input-from-string to ensure both close their streams.

Remove check for stream-var being a stream outside of w-i-f-s &
w-o-t-s. According to the specification, the streams' extent ends with the
respective providing form. If the stream was indeed not acccessible anymore, the
test would not pass. In that case open-stream-p should signal a type-error,
causing the test to crash. However in ECL we can assume that the stream is still
intact.
2020-04-24 11:42:46 +02:00
Daniel Kochmański
735d49bfd1 tests: improve some tests
- extend tests for make-instances-obsolete
- add a metastability test for the standard-method finalization
- fix tests which assume that metaclasses are finalized eagerly
2020-04-19 14:34:23 +02:00
Daniel Kochmański
1fe88da7f1 Merge branch 'close-with-input-from-string-stream' into 'develop'
Always close stream in with-input-from-string

See merge request embeddable-common-lisp/ecl!197
2020-04-18 15:59:26 +00:00
Moritz Petersen
17f183873d Add a regression test for the bug described in !197 2020-04-18 17:49:46 +02:00
Daniel Kochmański
958a1c9f38 tests: add a regression test for #572 2020-04-11 20:02:00 +02:00
Marius Gerbershagen
abe2a2811f Merge branch 'fix-571' into 'develop'
Fix 571

Closes #571

See merge request embeddable-common-lisp/ecl!195
2020-04-09 16:51:47 +00:00
Daniel Kochmański
b64da63efd tests: add a test for the change in congruent-lambda-p 2020-04-08 22:19:25 +02:00
Daniel Kochmański
b41b60e7bf tests: add a regression test for #571 2020-04-08 22:02:25 +02:00
Daniel Kochmański
aa34ab7119 compiler: rewrite clos::need-to-make-load-form-p
Function is rewritten in C in compiler.d to remove a dependency
between the bytecodes compiler and the clos module. It may be more
performant thanks to more precise type handing, however we use a list
instead of a hashtable, so it may be slower with lookup. To assess
that we should run some benchmarks against real code -- rewriting C
code to work with a hash table should be trivial.

clos::need-to-make-load-form-p is now si::need-to-make-load-form-p and
may be called from C code as si_need_to_make_load_form_p.
2020-04-08 22:01:16 +02:00
Daniel Kochmański
cdf55007a4 tests: add a regression test for the issue #568
- also fix test which assumed constant unreadable representation of
  the object of class compiler-test-class
2020-04-05 15:13:59 +02:00
Marius Gerbershagen
320d3acdfd tests: don't pollute commonly used variables in the global environment in cmp.0030.make-load-form 2020-03-27 20:54:32 +01:00
Daniel Kochmański
dcdb53f29e tests: add tests for #562 and #565 2020-03-27 11:33:53 +01:00
Marius Gerbershagen
a9065d1d8e cmp: fix closure type for local functions calling closures
When a local function calls a closure it has to be a closure too. Thus
when updating the closure type for a function f, we have to possibly
update also all functions referencing f.

Fixes #545.
2020-03-18 22:00:57 +01:00
Marius Gerbershagen
313d553918 tests: fix embedding tests on cygwin 2020-03-01 18:49:50 +01:00
Marius Gerbershagen
fd7b4c6f85 tests: add test for ecl_import_current_thread 2020-03-01 18:49:50 +01:00
Marius Gerbershagen
6dce405b2a tests: stop compilers from complaining about division by zero in emb.0003.with-lisp-fpe 2020-03-01 18:49:49 +01:00
Marius Gerbershagen
3267bf7f62 tests: fix output-streams test from the run-program testsuite
The test was failing because it was detecting an output of

"

Hello stdoutHello stderr"

instead of the expected

"
Hello stdout
Hello stderr"

The reason for this is that the buffers of the
streams *standard-output* and *error-output* may be distinct, even if
the ouput send to both streams ends up in the same place. Thus, we
need to explicitely force-output in print-test. The error manifested
itself only in builds without thread support, because otherwise ECL
uses write instead of fwrite, avoiding any buffering.
2020-01-19 20:06:55 +01:00
Marius Gerbershagen
fdbfb8b81b Merge branch 'fix-550' into 'develop'
Fix 550

Closes #550

See merge request embeddable-common-lisp/ecl!178
2020-01-13 18:55:52 +00:00
Marius Gerbershagen
793e2e9375 tests: add test for ECL_WITH_LISP_FPE macro 2020-01-12 18:53:48 +01:00
Daniel Kochmański
e399d33fc6 tests: add regression test for 550 2020-01-12 11:18:23 +01:00
Marius Gerbershagen
22ad495e26 ieee-fp: allow for infinity and NaN without floating point exceptions 2020-01-11 17:21:10 +01:00
Daniel Kochmański
bbd3c2d6d0 expt: add a case for complex-float ^ integer.
Lack of this switch branch lead to unrecoverable error. Fixes #547.
2019-12-30 22:04:11 +01:00
Daniel Kochmański
78138b65dc tests: add regression test for 547
Also add complex tests to the make-check test suite. that was a clear omission.
2019-12-30 22:04:07 +01:00
Marius Gerbershagen
cb2cc7a81a tests: Add stack overflow test 2019-12-26 19:14:21 +01:00
Daniel Kochmański
b8dfd2784c tests: ffi: add a smoke test for complex float handling 2019-12-16 11:47:36 +01:00
Daniel Kochmański
cb269ce407 tests: run-program: add some conditionals for cygwin 2019-12-05 12:01:07 +01:00
Marius Gerbershagen
5ea9cdf8a4 tests: fix some failing tests on windows 2019-08-25 21:03:38 +02:00
Daniel Kochmański
df339485eb Merge branch 'infinity-NaN-numeric-functions' into 'develop'
Make all numeric functions return sensible values for infinity/NaN

Closes #477

See merge request embeddable-common-lisp/ecl!160
2019-08-16 18:52:23 +00:00
Marius Gerbershagen
3c2105fe3d ieee-fp: add tests for numeric functions with infinity/NaN 2019-08-14 20:51:40 +02:00
Daniel Kochmański
faca0641f9 tests: add regression test for #513 2019-07-19 14:21:03 +02:00
Marius Gerbershagen
6163466a7b tests: extend external-format tests
We now also test random combinations of read and write functions.
2019-06-15 20:33:17 +02:00
Daniel Kochmański
58da0f8713 weak hash tables: fix regression with gethash
while fixing problem in sethash I've introduced another one in
gethash. A comment is added to prevent such mistakes.
2019-05-28 09:26:16 +02:00
Daniel Kochmański
6e5016dcb8 hash-table: add extension for generic predicates
Added:
- implementation
- test
- documentaiton entries

Additionally:
- remove #if 0 code branches (unused clutter)
- bring up-to-date help.lsp file for hints in slime
- wrap synchronized access in unwind protect
- write_ugly did not carry extensions in the printer
2019-05-25 09:56:08 +02:00
Daniel Kochmański
aa985f566f make-load-form-saving-slots: structures: refrence slot by an offset
At least one library (adt) redefines structures with slot names being
uninterned symbols. That means that we lose slot offset if we
reference it by name what leads to load errors if
make-load-form-saving-slots was called. We fix that by handling
structure-object's separately.

allocate-instance is another oddball in the spec when taken with
structure-classes (and it is used in make-load-form-saving-slots). If
there are *some* slots saved then rest must be initialized so object
could be used - we put there NIL without checking for a type. SBCL
tries to find a constructor for a structure (custom protocol) or
errors while CCL initializes slots to NIL. We follow the latter.
2019-05-25 09:56:08 +02:00
Daniel Kochmański
ea87100a06 long-float: remove conditionalization
Many parts of the source code were bent backward to support builds
without long floats which are always present given we depend expect
c99 compiler.

The corresponding C macros (ECL_LONG_FLOAT) and the *feature*
entry (:long-float) are marked as deprecated in the documentation.
2019-05-24 21:04:59 +00:00
Daniel Kochmański
05f94fc730 complex-float: add serializer definitions 2019-05-15 16:35:16 +02:00
Daniel Kochmański
41afa2da35 complex-float: add some tests
Most of things is covered in ANSI-TESTS anway, these are just smoke
tests for some functionality and taking into account internal
implementation details.
2019-05-15 16:35:16 +02:00
Daniel Kochmański
0fcf21b4a7 tests: compiler: add regression test for constant folding. 2019-05-05 10:38:02 +02:00
Daniel Kochmański
22865f0c55 tests: improve signals macro to allow description 2019-04-20 22:31:21 +02:00
Daniel Kochmański
155ccac218 tests: add regression test for typep and subtypep and complex.
Fixes #493.
2019-04-20 17:14:19 +02: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
Marius Gerbershagen
76941e25dc fix the broken serialization functions for externalizable objects 2018-12-10 18:14:01 +01:00
Daniel Kochmański
4021fbdcf8 Merge branch 'atomic-ops' into 'develop'
Add support for atomic operations

Closes #278

See merge request embeddable-common-lisp/ecl!122
2018-10-15 19:23:52 +00:00
Marius Gerbershagen
239a2aa4f1 threading: add support for atomic operations
We support both compare-and-swap and fetch-and-add (via
    atomic-incf/decf) on the most common places and define an
    extension interface for compare-and-swap similiar to the one in
    SBCL.

    These changes introduce new dependencies on the libatomic_ops
    macros AO_fetch_compare_and_swap and AO_fetch_and_add.
2018-10-15 19:55:39 +02:00
Daniel Kochmanski
b22dcd5e3e file-string-length: revert behavior change for string-output-stream.
We signal an error if the stream is not a file stream (like before). We provide
note in the tests that this is an undefined behavior.
2018-10-01 20:46:50 +02:00
Daniel Kochmanski
30c4120b15 tests: improve ansi.21-2.last-component test 2018-09-23 17:27:55 +02:00
Daniel Kochmanski
3f8a78ca63 tests: add regression test for broadcast stream and file-* functions 2018-09-23 15:28:34 +02:00