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
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
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
cf7c195018
Release 24.5.10
2024-05-10 13:13:21 +02: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
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
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
Kevin Zheng
f180c617b7
Improve examples in the manual
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
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
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
Tarn W. Burton
dc70e6b9a8
Add generic pathname/truename
2024-03-10 14:48:12 +01:00
Daniel Kochmański
1a6ad463cd
Merge branch 'gray-string-length' into 'develop'
...
Add Gray extension for file-string-length
See merge request embeddable-common-lisp/ecl!318
2024-03-10 14:48:12 +01:00
Tarn W. Burton
33ffa5e53c
Add ansi-test to tests
2024-03-10 14:48:12 +01:00
Tarn W. Burton
e001df1589
Add support for gray:stream-file-string-length
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
Daniel Kochmański
b3d3a4e31c
cleanup: update license to lgpl-2.1+ in both headers and text
2024-03-10 14:48:12 +01:00
Daniel Kochmański
00826e5017
seqmacros: do-sublist: fix an invalid declaration
...
ECL declared the argument %sublist as CONS while it may be either CONS or NIL.
Reported by Alex Wood from Clasp.
2024-03-10 14:48:12 +01:00
Tarn W. Burton
b797070f5f
Add tests for Gray read-line
2024-03-10 14:48:12 +01:00