Commit graph

8769 commits

Author SHA1 Message Date
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
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
Marius Gerbershagen
dc286efb66 cmp: faster function calls for C compatible variadic dispatch
For C compatible variadic dispatch, the compiler now generates two
entrypoints for variadic functions. An entrypoint with specialized
signature that is used for direct C calls from the same file and an
entrypoint with generic signature that implements the variadic to
variadic dispatch, i.e. checking the number of arguments and then
calling the specialized entrypoint.

This approach is faster than using the wrapper functions in
variadic_dispatch_table. The reasons are threefold: we save a call to
ecl_process_env(), we don't need a call through a function pointer but
instead use a direct call to the specialized entrypoint and we emit
better code to deal with required arguments since the number of those
are known.

Moreover, for functions with optional arguments the new approach is
less stack hungry since we can allocate an array of size smaller than
ECL_C_ARGUMENTS_LIMIT to store the arguments.
2024-03-24 18:08:34 +01:00
Marius Gerbershagen
bbc8b30478 cmp: faster function calls for functions with fixed number of arguments
We now generate entrypoints for both fixed and variable number of
arguments. The entrypoint with fixed number of arguments is used for
direct C calls from the same file while the one with variable number
of arguments for indirect calls from other files or via funcall.

This approach is faster than using the wrapper functions in
fixed_dispatch_table as we did previously for two reasons. First, it
does not require a call to ecl_process_env() and second, it can use a
direct jump to the fixed entrypoint once the number of arguments have
been checked instead of an indirect call through a function pointer.
2024-03-24 14:39:38 +01:00
Marius Gerbershagen
9756360b3c pathname: fix bug in handling streams
ecl_stream_pathname returns a string and not a pathname, so we have to
check for that again.
2024-03-10 19:29:22 +01:00
Marius Gerbershagen
4ddfd0c5e3 bytecmp: fix bugs in handling output-file option for compile-file
Always load the output file with the bytecodes loader and (as
specified) return the truename of the output-file.
2024-03-10 19:29:22 +01:00
Marius Gerbershagen
9e7d981b56 update changelog for the upcoming release 2024-03-10 19:29:21 +01:00
Marius Gerbershagen
7d695eae76 pathname: fix bug in handling streams
ecl_stream_pathname returns a string and not a pathname, so we have to
check for that again.
2024-03-10 19:19:56 +01:00
Marius Gerbershagen
3d6880b075 bytecmp: fix bugs in handling output-file option for compile-file
Always load the output file with the bytecodes loader and (as
specified) return the truename of the output-file.
2024-03-10 19:19:52 +01:00
Marius Gerbershagen
3b6c2bf399 Merge branch 'partmedia/manual' into 'develop'
Improve examples in the manual

See merge request embeddable-common-lisp/ecl!323
2024-03-10 14:48:12 +01:00
Daniel Kochmański
1621f57cd9 Merge branch 'emscripten-shared-library-build' into 'develop'
Improvements for emscripten target

See merge request embeddable-common-lisp/ecl!321
2024-03-10 14:48:12 +01:00
Kevin Zheng
f180c617b7 Improve examples in the manual 2024-03-10 14:48:12 +01:00
Daniel Kochmański
c27c16d8ee Merge branch 'win-scripts-update' into 'develop'
Fix Windows scripts (quotes missing)

See merge request embeddable-common-lisp/ecl!322
2024-03-10 14:48:12 +01:00
Marius Gerbershagen
6c7f8be6a9 use flatinstall as install target for emscripten 2024-03-10 14:48:12 +01:00
Daniel Kochmański
cedf45a779 manual: fix typo 2024-03-10 14:48:12 +01:00
Dmitry Solomennikov
12bf1a5243 Fix Windows scripts (quotes missing)
Signed-off-by: Dmitry Solomennikov <dmitrys99@mail.ru>
2024-03-10 14:48:12 +01:00
Marius Gerbershagen
7bde88e813 Makefile: allow both install and flatinstall targets 2024-03-10 14:48:12 +01:00
Daniel Kochmański
43b51a985f manual: rewrite confusing section in the documentation 2024-03-10 14:48:12 +01:00
Marius Gerbershagen
f6083876fd support shared libraries for the emscripten target 2024-03-10 14:48:12 +01:00
Marius Gerbershagen
34ecb5c313 ecl_homedir_pathname: fix error message for unknown user
Fixes #724
2024-03-10 14:48:12 +01:00
Daniel Kochmański
089f4c25d8 tests: make ansi-test a separate target not triggered by make check 2024-03-10 14:48:12 +01:00
Daniel Kochmański
14b96b3b9c Merge branch 'gray-path' into 'develop'
Add generic PATHNAME and TRUENAME

See merge request embeddable-common-lisp/ecl!320
2024-03-10 14:48:12 +01:00
Daniel Kochmański
b3d3a4e31c cleanup: update license to lgpl-2.1+ in both headers and text 2024-03-10 14:48:12 +01:00
Tarn W. Burton
6d667b940b Update changelog for generic pathname/truename 2024-03-10 14:48:12 +01:00
Daniel Kochmański
482d46ac92 Merge branch 'read-line' into 'develop'
Fix stream-read-line return

See merge request embeddable-common-lisp/ecl!312
2024-03-10 14:48:12 +01:00