Commit graph

9083 commits

Author SHA1 Message Date
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
Tarn W. Burton
dc70e6b9a8 Add generic pathname/truename 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
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
Daniel Kochmański
cee8e6fcd8 INSTALL: add an extra hint for emscripten re stack size
Fixes #726.
2024-03-10 14:48:12 +01:00
Tarn W. Burton
8f29b65e00 Allow empty string for EOF in read-line 2024-03-10 14:48:12 +01:00
Daniel Kochmański
9b36603bfc Merge branch 'ansi-test' into 'develop'
Add ansi-test to tests

See merge request embeddable-common-lisp/ecl!319
2024-03-10 14:48:12 +01:00
Tarn W. Burton
8ef19ee131 Update for gray:stream-file-string-length 2024-03-10 14:48:12 +01:00
Daniel Kochmański
321d51ae39 Merge branch 'update-license-to-lgpl-2.1-or-later' into 'develop'
cleanup: update license to lgpl-2.1+ in both headers and text

See merge request embeddable-common-lisp/ecl!317
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
83359fdea0 Merge branch 'stream-line-length' into 'develop'
Add gray:stream-line-length

See merge request embeddable-common-lisp/ecl!309
2024-03-10 14:48:11 +01:00
Daniel Kochmański
d31735ed3e core: argument checking in si:get-limit and si:set-limit
Previously we've falled through all cases and if none matched, we've used the
heap. That said our documentation clearly states, that the type for the heap is
EXT:HEAP-SIZE.
2024-03-10 14:48:11 +01:00
Daniel Kochmański
e799b2972b Update gray-streams.txi (fix typo) 2024-03-10 14:48:11 +01:00
Daniel Kochmański
8d2fb75ee1 manual: include the file gray-streams.txi 2024-03-10 14:48:11 +01:00
Tarn W. Burton
71c0ec4d5b Update docs for gray-streams changes 2024-03-10 14:48:11 +01:00
Daniel Kochmański
e628211be7 Merge branch 'fix-stream-terpri' into 'develop'
Return NIL from stream-terpri

See merge request embeddable-common-lisp/ecl!310
2024-03-10 14:48:11 +01:00
Tarn W. Burton
b212055687 Add gray:stream-line-length 2024-03-10 14:48:11 +01:00
Daniel Kochmański
124e3e793e Merge branch 'fix-typo' into 'develop'
Fix generic definition of stream-file-length

See merge request embeddable-common-lisp/ecl!308
2024-03-10 14:48:11 +01:00
Tarn W. Burton
052411eb9c Return NIL from stream-terpri 2024-03-10 14:48:11 +01:00
Daniel Kochmański
5ffb878705 Merge branch 'gray-file-length' into 'develop'
Add gray:stream-file-length

See merge request embeddable-common-lisp/ecl!307
2024-03-10 14:48:11 +01:00
Tarn W. Burton
1e2cb370c5 Fix generic definition of stream-file-length 2024-03-10 14:48:11 +01:00
Daniel Kochmański
918c389078 Merge branch 'gray-streams-module' into 'develop'
Add gray-streams module to avoid use of redefine-cl-functions

See merge request embeddable-common-lisp/ecl!306
2024-03-10 14:48:11 +01:00
Tarn W. Burton
45af71be53 Add gray:stream-file-length 2024-03-10 14:48:11 +01:00
Daniel Kochmański
26d95e8d4f Merge branch 'develop' into 'develop'
Don't enable GC fork() support on Windows

See merge request embeddable-common-lisp/ecl!305
2024-03-10 14:48:11 +01:00
Tarn W. Burton
239f329ee6 Add gray-streams module to avoid use of redefine-cl-functions 2024-03-10 14:48:11 +01:00
Daniel Kochmański
798e3469e3 Merge branch 'gc-handle-fork' into 'develop'
Enable handle fork by GC

Closes #718

See merge request embeddable-common-lisp/ecl!303
2024-03-10 14:48:11 +01:00
Mark Shroyer
3aab298147 Don't enable GC fork() support on Windows
A previous commit unconditionally configures Boehm GC to support fork.
This breaks the Windows MSVC build, producing an error dialog with the
message "Fatal error in GC: fork() handling unsupported".

This commit restricts the call to GC_set_handle_fork to non-Windows
hosts.
2024-03-10 14:48:11 +01:00
Marius Gerbershagen
13bb247fcf Merge branch 'environ_legacy' into 'develop'
Fix access to environ on Darwin

See merge request embeddable-common-lisp/ecl!301
2024-03-10 14:48:11 +01:00
Kirill A. Korinsky
aac7fa0ca6 Enable handle fork by GC 2024-03-10 14:48:11 +01:00
Daniel Kochmański
660538a843 cosmetic: fix indent 2024-03-10 14:48:11 +01:00
Kirill A. Korinsky
580fe0f092 Fix access to environ on Darwin 2024-03-10 14:48:11 +01:00
Daniel Kochmański
d626f591d0 build: move HAVE_POSIX_RWLOCK to exported config
This is b ecause we use this flag to decide whether the rwlock is implemented
from posix or whether we use our own structure. That influences the size and
offsets in cl_core. Without this commit using

(defun known-signals ()
  (ffi:c-inline nil nil :object "cl_core.known_signals"
                        :one-liner t :side-effects nil))

While HAVE_POSIX_RWLOCK was true during the build returns garbage. The same
applies to other members after the processes group.
2024-03-10 14:48:11 +01:00
Daniel Kochmański
142cb47f47 cosmetic: reindent file unixint.d 2024-03-10 14:48:11 +01:00
Daniel Kochmański
d3e4cb5442 main: fix ECL_OPT_SIGNAL_HANDLING_THREAD to be adequate
unixint ignores the flag that enables the signal handling thread when it can't
create one.
2024-03-10 14:48:11 +01:00
Marius Gerbershagen
d336b3053d implement faster function calls
The previous function call sequence for ordinary global functions
looked as follows.

1. check whether the function is defined, i.e. whether
   symbol->symbol.gfdef is not NULL
2. set the_env->function to symbol->symbol.gfdef
3. call the function pointer symbol->symbol.gfdef->cfun.entry

This commit implements a performance optimization that enables us to
skip the first step. The basic idea is to replace symbol->symbol.gfdef
with a closure that signals an undefined-function condition.

However, straightforwardly implementing this would have the
disadvantage that it would consume a larger amount of memory for each
symbol without a function definition. To get around this, we reorder
the fields of the ecl_symbol struct such that the symbol can serve as
the function object itself, introducing an entry point that is only
used for undefined functions.

Benchmarking shows an improvement of about 10% in thight loops
compared to the old method.
2024-03-03 18:26:47 +01:00