Commit graph

8792 commits

Author SHA1 Message Date
Daniel Kochmański
7e25107779 repl: always call clear-input when SERIOUS-CONDITION is encountered
Consider the following input from string: #j :r1

First the reader signals a condition that there is no dispatch character macro
for #j, and then we select the first restart. That's clearly undesireable.
2024-10-31 17:54:41 +01:00
Daniel Kochmański
4a49130ad5 tpl: repl and debugger use only *query-io* and *debug-io* 2024-10-31 17:54:40 +01:00
Daniel Kochmański
5b5e52601d Update changelog. 2024-10-29 10:07:12 +01:00
Daniel Kochmański
271166a5b0 hash-table: fix a potential deadlock while rehashing
Closes #760.
2024-10-29 10:05:45 +01:00
Daniel Kochmański
c67ec1aba5 cosmetic: fix indent 2024-10-28 21:11:30 +01:00
Daniel Kochmański
24f5a3bb8f makunbound: use ECL_SETQ and not ECL_SET
The specification says that it makes the symbol unbound; that paired with the
definition of BOUNDP indicates, that what is meant is the binding in the dynamic
environment (and for consistency we want to make it behave as a pair to BOUNDP).

Note that this behavioral change matches implementations like CCL and SBCL, so
this change improves the compatibility.

The issue with interpretation comes from the subheader "Side Effects" in the
standard that states: "The value cell of symbol is modified", it should state
that "The value cell of symbol might be modified".
2024-10-25 09:29:00 +02:00
Daniel Kochmański
c235a57ded Small compatibility fixes
- add a new character name alias Formfeed (for Page) -- sometimes used in the wild
- export asdf:registered-system (exported upstream, some systems use it)
2024-10-07 07:42:22 +02:00
Daniel Kochmański
fee658a580 Merge branch 'cosmopolitan' into 'develop'
initial port of cosmopolitan libc

See merge request embeddable-common-lisp/ecl!329
2024-09-09 08:15:57 +00:00
Daniel Kochmański
19a3b97eee bdwgc: add appropriate definition for cosmopolitan libc 2024-09-09 10:14:19 +02:00
Daniel Kochmański
f585847506 initial port to cosmopolitan libc 2024-09-09 10:14:17 +02:00
Daniel Kochmański
8952725847 process: don't call cl_sleep on a variable declared static
We call ecl_musleep that avoids the hassle of converting values back and forth
between lisp and c world.

The change is prompted by a potential bug in cosmopolitan libc, where the value
stored in a static variable can't be passed to a function in a different
compilation unit. Unmodified code lead to a segmentation fault with cosmocc.
2024-09-09 10:11:44 +02:00
Daniel Kochmański
e79971ced7 asdf: bump to version 3.1.8.9 2024-09-09 10:11:44 +02:00
Daniel Kochmański
379e0fdd91 Merge branch 'emscripten-build-flags' into 'develop'
emscripten: add linker flag to allow bdwgc to work correctly

See merge request embeddable-common-lisp/ecl!331
2024-09-09 08:09:55 +00:00
Marius Gerbershagen
c0d0f2f891 restore ability to compile without --disable-shared on emscripten
SHARED_LDFLAGS, BUNDLE_LDFLAGS and PROGRAM_LDFLAGS are ignored with
--disable-shared.
2024-08-17 13:11:53 +02:00
Marius Gerbershagen
003a7edd6b emscripten: add linker flag to allow bdwgc to work correctly
See https://github.com/ivmai/bdwgc/issues/650 for more discussion.
2024-08-17 12:43:02 +02:00
Daniel Kochmański
4f0fed4698 ffi: fix size-of-foreign-type when called on structore with no slots
Fixes #752.
2024-06-21 21:43:43 +02:00
Daniel Kochmański
f5e3de23fd Merge branch 'faster-function-calls-fix' into 'develop'
Fixes for the faster function call branch

Closes #737

See merge request embeddable-common-lisp/ecl!327
2024-06-18 05:59:16 +00:00
Daniel Kochmański
ac2b53d66a emscripten: don't enable shared in the configure script 2024-06-16 17:55:50 +02:00
Daniel Kochmański
366a77a013 cmpopt-sequence: fix a regression with loop 2024-06-16 17:54:37 +02:00
Marius Gerbershagen
6c2afada2f INSTALL: revert back to -disable-shared for emscripten build instructions
Closes #746
2024-06-15 13:34:11 +02:00
Daniel Kochmański
f0147072a2 loop: barf on nonconformant loop detection
The specification says that the simple loop is determined when all forms are
compound. Fixes #748.
2024-06-06 08:10:41 +02:00
Marius Gerbershagen
1a0aa0a52e gray streams: add missing default method for stream-interactive-p
According to the documentation we should always return nil.
2024-05-18 13:30:49 +02:00
Marius Gerbershagen
4cf8f90d4a Merge branch 'fix-742' into 'develop'
reader: read_number is assumed to read part of a composite token

Closes #742

See merge request embeddable-common-lisp/ecl!328
2024-05-18 11:09:17 +00:00
Marius Gerbershagen
ecce6e7a7f INSTALL: fix build instructions for how to link to libecl.so with emscripten
Closes #744.
2024-05-18 12:55:39 +02:00
Marius Gerbershagen
97b13d4712 cmp: don't generate variadic entrypoints for functions with variable number of arguments
These are badly optimized by C compilers (even single use static
functions are not inlined by both gcc and clang), so instead of
generating a separate variadic entrypoint just generate one single
entrypoint with C compatible signature.
2024-05-18 12:43:43 +02:00
Marius Gerbershagen
dd4687772d cmp: don't mark function arguments as volatile in variadic entrypoints
The presence of setjmp calls in function bodies means that some
function arguments have to be volatile. However, this doesn't apply to
variadic entrypoints which never include setjmp calls. Thus,
set *volatile* to be empty before writing out the header.
2024-05-18 12:43:17 +02:00
Marius Gerbershagen
9d99e2bd2a cmp: emit simpler code for variadic entrypoints for functions with no arguments
We don't need to do anything here other than check that we got the
right number of arguments.
2024-05-18 12:43:17 +02:00
Daniel Kochmański
9f184db224 tests: add a regression test for #742. 2024-05-12 18:32:03 +02:00
Daniel Kochmański
be0a6cc941 reader: read_number is assumed to read part of a composite token
Fixes #742.
2024-05-12 18:32:01 +02:00
Marius Gerbershagen
b32ccc3d8f cosmetic: fix some warnings
These prevent ECL from compiling on mingw with gcc 14, which has
stricter defaults for -Werror.
2024-05-11 21:39:54 +02:00
Marius Gerbershagen
c6a47b2299 make sure that bindir, libdir, etc. are correct for flatinstall target
Fixes #318
2024-05-11 21:39:28 +02:00
Daniel Kochmański
d83c0f07cf Merge branch 'master' into develop 2024-05-10 13:40:20 +02:00
Daniel Kochmański
e4269ea51f Merge branch '24.x.x-rc' 2024-05-10 13:13:55 +02:00
Daniel Kochmański
cf7c195018 Release 24.5.10 2024-05-10 13:13:21 +02:00
Daniel Kochmański
2918293e7e Merge branch 'fix-encode-buffer' into 'develop'
Fix encode buffer in UCS-4

See merge request embeddable-common-lisp/ecl!326
2024-05-10 11:01:02 +00:00
Tarn W. Burton
fe6a9c306d
Update changelog 2024-05-10 06:40:51 -04:00
Tarn W. Burton
e439bb5fdd
Add test for buffer overun in encoding buffer 2024-05-10 06:38:21 -04:00
Tarn W. Burton
f106f8b8ad
Increase size of encoding buffer 2024-05-10 06:37:52 -04:00
Daniel Kochmański
f477a3efa9 make_this_symbol: mark the symbol object as volatile
Fixes #738.
2024-04-24 07:58:02 +02:00
Daniel Kochmański
b577de1495 alloc: add missing field from ecl_symbol to the type descriptor 2024-04-23 19:50:00 +02:00
Daniel Kochmański
0fb78da52f cosmetic: simplify further the function mangle name 2024-04-20 12:59:16 +02:00
Daniel Kochmański
74b94e8f4e cosmetic: mangle name uses ecl_getf instead of opencoding it 2024-04-20 08:51:15 +02:00
Daniel Kochmański
78c2a5aee3 cosmetic: rewrite harden-command
formatting of this piece of code was daunting
2024-04-14 12:55:43 +02:00
Daniel Kochmański
4874f41cf7 Merge branch 'faster-function-calls' into 'develop'
Reduce function call overhead

See merge request embeddable-common-lisp/ecl!325
2024-04-03 06:06:49 +00:00
Marius Gerbershagen
0777eae75c util/webserver.lisp: make sure the file runs on other lisps than ECL 2024-03-24 18:08:49 +01:00
Marius Gerbershagen
5ec9e02f6d apply.d: fix deprecation warnings for function calls without prototypes 2024-03-24 18:08:49 +01:00
Marius Gerbershagen
61ac434c2f update changelog 2024-03-24 18:08:49 +01:00
Marius Gerbershagen
5b4e9c4bbd cfun_dispatch.d: remove unneeded variadic dispatch function 2024-03-24 18:08:49 +01:00
Marius Gerbershagen
da4c49cd2f cmp: make sure that setf functions are found in the vv in the second pass
Only applies for COMPILE calls where the name of a setf function
definition will not be equal under the EQ test to the name of the same
function at a later call. Thus, we have to use EQUAL to find those
names in the vv array.
2024-03-24 18:08:49 +01:00
Marius Gerbershagen
3c75b5b4d8 cmp: fix typo
Introduced by the refactor in commit 2304da9a83.
2024-03-24 18:08:49 +01:00