Commit graph

431 commits

Author SHA1 Message Date
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
Marius Gerbershagen
da558a9480 doc: css: use white background for images in dark mode 2021-04-09 16:49:58 +02:00
Marius Gerbershagen
aad1edbfa0 Merge branch 'file-stream-improvements' into 'develop'
File stream improvements

Closes #511

See merge request embeddable-common-lisp/ecl!245
2021-03-12 18:44:08 +00:00
Marius Gerbershagen
e74f2935f4 doc: fix typo 2021-02-27 19:21:57 +01:00
Marius Gerbershagen
da26facffa file.d: introduce :nonblock and :close-on-exec options for open
Maps directly to flags for open syscall. Ignored on Windows. We now
let the user decide whether to open fifos in nonblocking mode or not.
Manual has been extended to document the new extensions and slightly
rearranged to put the important information first.
2021-02-10 20:06:57 +01:00
Marius Gerbershagen
4460a8c7f1 doc: fix argument order for ecl_alloc_simple_vector 2020-12-27 18:53:22 +01:00
Daniel Kochmański
7908ba8003 refactor: remove the file symbols_list2.h
The file symbols_list2.h was automatically generated from the file
symbols_list.h for dpp. This commit unifies said structure definition and
removes a step for generating symbols_list2.h.

From now on at runtime the structurecl_symbol_initializer has an additional
element storing the function name. That will help solving #543.
2020-12-23 12:08:33 +01:00
Marius Gerbershagen
cdb602e40d fpe: prevent spurious floating point exceptions in WITH_LISP_FPE
feenableexcept may generate a SIGFPE signal if exception status flags
are not cleared beforehand. Happens for example on powerpc platforms.

Fixes #612.
2020-10-31 11:36:52 +01:00
Christopher Chavez
0f3d6e08d1 Fix spelling 2020-09-11 02:11:26 +00:00