Commit graph

439 commits

Author SHA1 Message Date
Marius Gerbershagen
872622bd0c doc: document the cross compilation feature 2025-11-22 16:25:42 +01:00
Daniel Kochmański
a726cdf879 streams: get rid of last_code slot in the structure
It was used to store bytes for unread, but we are going to change how unread
works, and we still can simply test for newline and encode behavior directly in
unread-char for newlines.
2025-08-11 10:01:40 +02:00
Daniel Kochmański
c7f534771a streams: sequence input stream follows the vector length
This is to allow working with sequence streams where the vector may change after
the stream has been created.

When the user specifies :END to be some fixed value, then we upkeep that
promise, but when :END is NIL, then we always consult the vector fillp.
2025-08-11 10:01:40 +02:00
Daniel Kochmański
37c3955180 manual: add documentation for new binary stream interfaces 2025-08-11 10:01:38 +02:00
Daniel Kochmański
77ceb401f9 doc: man: stack sizes are specified in bytes not kilobytes
Fixes #788.
2025-08-10 22:29:16 +02:00
Marius Gerbershagen
b77a0bbf06 update compilation instructions for iOS and emscripten
We don't need a separate host compiler anymore.
2025-07-19 16:33:22 +02:00
Marius Gerbershagen
f0ef267ce7 update compilation instructions for android
With recent versions of the android NDK, there is no need to create a
separate toolchain anymore. Moreover, the LDFLAGS and CPPFLAGS are
obsolete. Also, we can't call the C compiler with a `-Dandroid`
argument as we used to since that conflicts with uses of the `android`
identifier within the header files of the android C standard library.
Therefore, we change from `thehost=android` to `thehost=ANDROID` in
uppercase. Finally, make the test script run more reliably by starting
an adb server before we change TMPDIR.
2025-07-19 16:33:22 +02:00
Daniel Kochmański
71763174ef doc: clarify wording for :INITIAL-BINDINGS in MAKE-PROCESS 2025-05-26 09:28:10 +02:00
Daniel Kochmański
8d34f874d0 DESCRIBE prints arguments and source information for operators
After this commit DESCRIBE prints two additional pieces of information below the
docstring. To avoid duplication, corresponding arg piece in doc/help.lsp has
been removed. Fixes #711.
2025-01-28 09:22:08 +01:00
Daniel Kochmański
f73d4babbd Revert "Merge branch 'remove-small-cons' into 'develop'" 2024-12-15 10:01:30 +00:00
Daniel Kochmański
31fdffa6ab core: remove the "small-cons" feature and build flag 2024-12-06 13:04:34 +00: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
Kevin Zheng
a0e02e81ba Improve examples in the manual 2024-02-28 11:10:27 -08:00
Daniel Kochmański
58658ddb22 manual: fix typo 2024-02-01 20:13:21 +01:00
Daniel Kochmański
bcc8bf1769 manual: rewrite confusing section in the documentation 2024-02-01 20:05:15 +01:00
Daniel Kochmański
3e37843a33 cleanup: update license to lgpl-2.1+ in both headers and text 2024-01-14 12:22:27 +01:00
Daniel Kochmański
01322dc986 Update gray-streams.txi (fix typo) 2023-11-22 20:05:27 +00:00
Tarn W. Burton
e0aa99c610
Update docs for gray-streams changes 2023-11-20 15:21:35 -05:00
Daniel Kochmański
931853d186 manual: include the file gray-streams.txi 2023-11-20 16:38:41 +01:00
Dmitry Solomennikov
aa2a4a1f97 ECL man page clarification
This changes clarify ECL man page, synchronize it with current command
line parameter list and cleanup manual page source format.

Signed-off-by: Dmitry Solomennikov <dmitrys99@mail.ru>
2023-08-03 12:24:50 +03:00
Marius Gerbershagen
f400d2ae5e document the return values for all thread synchronization functions 2023-07-08 15:38:48 +02:00
Marius Gerbershagen
889f93fc08 mp:get-wait: fix return value
Should be `t` according to the documentation while we were returning
the lock itself.
2023-07-08 15:22:39 +02:00
Marius Gerbershagen
0c09ded44d doc: be more precise about error cases for ext:terminate-process 2023-03-12 16:07:42 +01:00
Daniel Kochmański
eb580f4084 doc: fix a spelling mistake s/:signalled/:signaled/ for the status 2023-03-07 17:13:03 +01:00
Daniel Kochmański
08c48b5346 doc: describe calling terminate-process on a finished process
Consequences of such action are undefined. This is prompted by the fact that
windows will signal an error in this case.
2023-03-07 17:01:14 +01:00
Marius Gerbershagen
5b4e0d6417 documentation: add iOS build steps to the manual 2023-01-05 17:22:25 +01:00
Daniel Kochmański
6c2cca684a cleanup: remove lingering references to the old garbage collector 2022-11-24 19:47:26 +01:00
Marius Gerbershagen
826cc92983 cmp: introduce new variables for linker flags
Split up the options into additional flags for the linker and
additional libraries.

Quoting from issue #636:

> Here's an example, attempting to link one object file named
  example.o into an executable named example. Libcrypto here is
  superfluous and should be removed by --as-needed:

```
LDFLAGS="-Wl,--as-needed"
LIBS="-lcrypto"
gcc ${LDFLAGS} ${LIBS} example.o -o example # doesn't link libcrypto!
gcc example.o ${LDFLAGS} ${LIBS} -o example # doesn't honor --as-needed!
gcc ${LDFLAGS} example.o ${LIBS} -o example # works great!
```

> In short, the placement of your -l<foo> flags differs from that of
  all the other linker flags. Since ECL is only providing one big
  variable ld-flags for all of the linker flags, there's no correct
  way to pass in options like --as-needed and -l<foo> at the same
  time.

Fixes #636.
2022-08-24 16:38:20 +02:00
Daniel Kochmański
b3d1a3e343 trap-fpe: signal an error when invalid condition is supplied
We've allowed any symbol to be supplied as a condition, when it was not
recognized then we've not changed bits (they remained 0). From now on we signal
an error if the condition can't be signaled.

Since user reported the error with keywords used instead of cl symbols, we also
make the manual more clear regarding the package of condition symbols.
Appropriate smoke tests are added too.

Fixes #681.
2022-07-28 21:08:31 +02:00
Daniel Kochmański
fe27ab8600 core: add a new utility 'si_adjust_vector' to arrays.d
This function is added to avoid using in the core the f unction CL:ADJUST-ARRAY,
that is not defined during bootstrapping.
2022-04-27 13:50:17 +02:00
Daniel Kochmański
19112f0c95 Merge branch 'branch-cuts' into 'develop'
numbers: be consistent with branch cuts and signed zero

Closes #661

See merge request embeddable-common-lisp/ecl!266
2022-02-04 20:09:05 +00:00
Marius Gerbershagen
8da3475b02 numbers: be consistent with branch cuts and signed zero
Let the sign of zero determine from which side branch cuts are
approached, no matter whether we use C99 complex numbers or not.

Disable the (acosh -∞) test. This test fails with the new code, but
was supposed to be commented out anyway. In general, we don't
guarantee anything about infinity if complex numbers are involved.

Closes #661.
2022-01-09 15:01:04 +01:00
Daniel Kochmański
0660996c37 mp: semaphores: add tests and the documentation
Functions wait-on-semaphore and try-get-semaphore are deprecated in
favour of the new function.
2022-01-06 09:32:49 +01:00
Daniel Kochmański
e83f278f17 doc: fix typos 2021-12-23 10:42:59 +01:00
Kevin Zheng
4cb2b51dfe manual: document the exported ffi ecl_ functions
Fixes #611.

Co-authored-by: Daniel Kochmański <daniel@turtleware.eu>
2021-11-22 08:45:42 +01:00
Marius Gerbershagen
5f65deea5b multithreading: implement optional timeout for mp:get-lock 2021-08-29 17:25:21 +02:00
Marius Gerbershagen
806336ed2e multithreading: read-write-lock improvements
Read-write locks are always provided; if no operating system
primitives exist, emulate them using ordinary locks. Also provide a
Windows implementation.
2021-08-29 17:25:21 +02:00
Marius Gerbershagen
2dce0dabdb doc: multithreading: clarify restrictions for mutex functions 2021-08-29 17:23:19 +02:00
Daniel Kochmański
25495bce6c Merge branch 'develop' into 'develop'
doc: cosmetic fixes

See merge request embeddable-common-lisp/ecl!256
2021-08-20 10:45:22 +00:00
Daniel Kochmański
89fd8c53f4 Merge branch 'string-extensions' into 'develop'
Extend API for converting strings to and from different encodings

See merge request embeddable-common-lisp/ecl!257
2021-08-20 10:34:56 +00:00
Marius Gerbershagen
57f1597d86 doc: document ext:*default-external-format* 2021-08-19 13:51:55 +02:00
Marius Gerbershagen
a488595241 add convenience methods for de-/encoding strings and wide-strings from C 2021-08-19 13:51:55 +02:00
Marius Gerbershagen
55af7bae85 strings: add functions to encode/decode strings into byte sequences
API copied from sbcl.
2021-08-19 13:51:55 +02:00
Yuguo Zhang
4b2437947b doc: cosmetic fixes 2021-08-16 12:31:57 +08:00
Marius Gerbershagen
b9a3d859e9 doc: fix ecl_symbol_value declaration 2021-08-09 15:29:04 +02:00
Daniel Kochmański
31a515a16d doc: fix a typo in enumarated symbol names
:*int??-t was misspelled as :*int??_t.
2021-07-26 12:57:33 +02:00
Daniel Kochmański
e68e682784 Merge branch 'add-ed-hooks' into 'develop'
Add ed hooks

See merge request embeddable-common-lisp/ecl!253
2021-07-01 16:17:45 +00:00
Tarn W. Burton
cb750d37d6 Add tests and documentation for ed hooks 2021-07-01 11:17:08 -04:00
Dima Pasechnik
a58106e207 more details added, and examples adjusted 2021-06-10 14:33:08 +01:00
Dima Pasechnik
5e99481bd3 modern macOS does not need libm.dylib, nor has it 2021-06-10 13:41:56 +01:00