Commit graph

414 commits

Author SHA1 Message Date
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
Marius Gerbershagen
a7baf701f9 doc: fix documentation of print options for trace macro 2020-08-21 20:23:13 +02:00
Daniel Kochmański
39b3e78314 documentation: add an email with early ecl history 2020-08-17 18:37:19 +02:00
Daniel Kochmański
d14cbc4150 documentation: document barriers 2020-08-17 18:37:19 +02:00
Daniel Kochmański
9615103e30 documentation: update history chapter
Professor Giuseppe Attardi was kind enough to elaborate on the history of
ECL. I've rewritten the history chapter to include more precise dates and
elaborate on other implementations. Also updated inheritance graphs to
indicate, that ECL is a descendant of DELPHI Common Lisp and that there is no
cross-pollination between ECoLisp and AKCL.
2020-08-14 15:03:25 +02:00
Daniel Kochmański
9741147874 doc: add few annotations for multiprocessing primitives
Mailboxes, barriers and rwlocks are still missing. This is important
if we want to have hints in SLIME for arglists.
2020-06-15 12:34:10 +02:00
Daniel Kochmański
e7355ac1fc doc: mp: sem: fix a type with a function index 2020-06-15 12:34:10 +02:00
Marius Gerbershagen
1d7551c773 doc: document ECLDIR and ecl_import/release_current_thread
Also reorganize the embedding reference into two subsubsections.
2020-03-14 19:56:51 +01:00
Marius Gerbershagen
2155e354e4 doc: more detailed build instructions for MSVC 2020-03-01 18:49:49 +01:00
Marius Gerbershagen
4faac4dcb8 doc: replace legacy names by their new counterparts 2020-02-22 19:12:43 +01:00
Marius Gerbershagen
c530793d2b doc: cosmetic improvements
Consistent formatting and capitalization, clickable links to functions
defined in other parts of the manual, better looking css for html
output. Some small errors and typos have been corrected as well.
2020-02-07 21:43:11 +01:00
Marius Gerbershagen
56a75fec47 doc: document ext:with-backend
There's no perfect place to put this, I think it belongs next to
the documentation for the closely related ffi:defla.
2020-01-27 21:20:51 +01:00
Marius Gerbershagen
22ad495e26 ieee-fp: allow for infinity and NaN without floating point exceptions 2020-01-11 17:21:10 +01:00
Daniel Kochmański
d6b577233b Merge branch 'c-stack-size' into 'develop'
Change handling of C stack resizing

See merge request embeddable-common-lisp/ecl!173
2019-12-30 09:37:40 +00:00
Marius Gerbershagen
d7b2dfb722 Change handling of C stack size
Previously: unconditionally use the size from ECL_OPT_C_STACK_SIZE if
it is larger than the OS provided value and if possible resize the
stack at runtime.

Now: Use ECL_OPT_C_STACK_SIZE if provided. Otherwise, use a) the OS
provided value if we can resize the stack at runtime (for Unix) or b)
the new build option ECL_DEFAULT_C_STACK_SIZE (1 MB) if we can set the
stack size at link time (for Windows).
2019-12-26 19:13:31 +01:00
Daniel Kochmański
87a1c5faed doc: be less ambigous in man page about lisp-stack and frame-stack
More specific information is provided in the complete
documentation. Closes #543.
2019-12-23 14:10:35 +01:00
Marius Gerbershagen
0b33cdf6f6 doc: better explanation of ECL_OPT_C_STACK_SIZE boot option 2019-12-08 10:26:52 +01:00
Daniel Kochmański
714c8e7ed6 Merge branch 'cas-symbol' into 'develop'
Minor improvements to atomic operations

Closes #460

See merge request embeddable-common-lisp/ecl!165
2019-11-02 17:47:04 +00:00