Commit graph

7551 commits

Author SHA1 Message Date
Exaybachay
bea1413ccf Revert "fix header argument names for C++ compilation"
This reverts commit 878ec343a0.
2018-11-02 17:28:17 +08:00
Exaybachay
878ec343a0 fix header argument names for C++ compilation 2018-11-02 17:16:02 +08:00
Exaybachay
eaea424f7c Revert "fix header argument names for C++ compilation"
This reverts commit 1ab9f00744.
2018-11-02 17:09:56 +08:00
Exaybachay
1ab9f00744 fix header argument names for C++ compilation 2018-11-02 13:32:35 +08:00
Exaybachay
d125ad2fac Merge remote-tracking branch 'upstream/develop' into develop 2018-11-01 16:16:18 +08:00
Marius Gerbershagen
ba573abf9e defstruct: don't use eval in define-structure 2018-10-30 11:58:19 +01:00
Yuguo Zhang
26eb34f16a Merge remote-tracking branch 'upstream/develop' into develop 2018-10-30 08:53:40 +08:00
Marius Gerbershagen
e3cda73965 Merge branch 'develop' into 'develop'
Fix ECL_LINEFEED_MODE test with -Werror=format-security

See merge request embeddable-common-lisp/ecl!124
2018-10-29 19:40:33 +01:00
Sébastien Villemot
2ef5d11cf9 Fix ECL_LINEFEED_MODE test with -Werror=format-security
In Debian, the -Werror=format-security flag is now passed by default to gcc.
This makes the ECL_LINEFEED_MODE test fail.

The fix is to replace the call to fprintf() by fputs().
2018-10-29 19:38:17 +01:00
Marius Gerbershagen
8a1e7f5c92 cmp: don't mark all lexical variables as crossing function boundaries
The compiler refactor of commit
    7ec2f4a939 introduced an error where
    all lexical variables where marked to cross function boundaries,
    leading them to be stored in volatile variables on the stack.
2018-10-29 19:15:49 +01:00
Yuguo Zhang
e3943cb88b Merge remote-tracking branch 'upstream/develop' into develop 2018-10-29 08:52:56 +08:00
Marius Gerbershagen
57a0346a52 doc: document behaviour of declaim and proclaim 2018-10-28 16:32:55 +01:00
Marius Gerbershagen
892e21012a cmp: make behaviour of declaim inline more sensible
ECL needs the definition of a function to inline it. Previously,
    this definition would only be saved in the file local environment
    (*cmp-env-root*) but not in the global environment used by
    proclaim. Hence, ECL could only inline functions in the same file.
    Now, we also put the definition of inline functions in the global
    environment during load time. This leads to a behaviour of declaim
    for inline functions, which is consistent with other declarations
    (meaning that the declarations stay only in force during
    compilation, but are proclaimed again at load time of the compiled
    file).
    Fixes #451.
2018-10-28 16:32:55 +01:00
Marius Gerbershagen
8812ba2189 doc: fix various typos and remove use of legacy names in examples 2018-10-26 17:54:08 +02:00
Marius Gerbershagen
cd86ac5019 doc: use category name for @defvar 2018-10-23 21:14:50 +02:00
Marius Gerbershagen
3df0a69785 doc: document floating point exceptions and infinity/NaN 2018-10-23 21:12:46 +02:00
Marius Gerbershagen
2a9084b105 prevent floating point exception signals if ECL_OPT_TRAP_SIGFPE is false
Fixes #347.
2018-10-23 21:11:02 +02:00
Yuguo Zhang
612f73a7b6 Merge remote-tracking branch 'upstream/develop' into develop 2018-10-18 09:47:34 +08:00
Marius Gerbershagen
7ff23cbb92 cmp: fix inline definition for mp:lock-count 2018-10-17 22:07:53 +02:00
Marius Gerbershagen
8676abe519 cmp: add proclamations for multithreading functions 2018-10-17 22:07:19 +02:00
Marius Gerbershagen
8ad10cec50 doc: fix some typos and errors in the multithreading documentation 2018-10-17 21:52:19 +02:00
Exaybachay
8c37117fcc Merge remote-tracking branch 'upstream/develop' into develop 2018-10-16 08:45:54 +08:00
Daniel Kochmański
4021fbdcf8 Merge branch 'atomic-ops' into 'develop'
Add support for atomic operations

Closes #278

See merge request embeddable-common-lisp/ecl!122
2018-10-15 19:23:52 +00:00
Marius Gerbershagen
46d74c5a66 cosmetic changes in assignment.d and clos/instance.d 2018-10-15 19:55:39 +02:00
Marius Gerbershagen
c45098e17a doc: add documentation for atomic operations 2018-10-15 19:55:39 +02:00
Marius Gerbershagen
239a2aa4f1 threading: add support for atomic operations
We support both compare-and-swap and fetch-and-add (via
    atomic-incf/decf) on the most common places and define an
    extension interface for compare-and-swap similiar to the one in
    SBCL.

    These changes introduce new dependencies on the libatomic_ops
    macros AO_fetch_compare_and_swap and AO_fetch_and_add.
2018-10-15 19:55:39 +02:00
Yuguo Zhang
a1c5d01868 Merge branch 'develop' of https://gitlab.com/Exaybachay/ecl into develop 2018-10-07 10:34:31 +08:00
Marius Gerbershagen
7272aff008 Merge branch 'stream-fixes' into 'develop'
ansi: file-string-length and broadcast-stream fies

Closes #452

See merge request embeddable-common-lisp/ecl!121
2018-10-01 19:12:41 +00:00
Daniel Kochmanski
b22dcd5e3e file-string-length: revert behavior change for string-output-stream.
We signal an error if the stream is not a file stream (like before). We provide
note in the tests that this is an undefined behavior.
2018-10-01 20:46:50 +02:00
Daniel Kochmanski
30c4120b15 tests: improve ansi.21-2.last-component test 2018-09-23 17:27:55 +02:00
Daniel Kochmanski
23753207aa defpackage: standard mandates error if :SIZE is passed twice
While we do ignore it for all practical purposes it is explicitly said in
standard that we should signal error. Also :SIZE  is not an extension (but may
be not used since it is just a hint).
2018-09-23 17:26:32 +02:00
Daniel Kochmański
c9ea2b151d Merge branch 'develop' into 'develop'
build system: suppress some logo(copyright) information for msvc toolchains.

See merge request embeddable-common-lisp/ecl!120
2018-09-23 13:41:22 +00:00
ZhangYuguo
5eeae0d823 build system: suppress some logo(copyright) information for msvc toolchains. 2018-09-23 13:41:22 +00:00
Daniel Kochmanski
a1875da85a ansi: return NIL for file-string-length if can't determine it.
Previously we returned error for streams which are not file streams. We could
try to loose this test for ECL_ANSI_STREAM_P, but that would require confirming,
that all ECL's ANSI streams have string encoders defined.
2018-09-23 15:28:34 +02:00
Daniel Kochmanski
e10802b5e8 broadcast-stream: delegate file-* functions to the last component.
Fixes #452.
2018-09-23 15:28:34 +02:00
Daniel Kochmanski
3f8a78ca63 tests: add regression test for broadcast stream and file-* functions 2018-09-23 15:28:34 +02:00
Yuguo Zhang
81de340982 Merge remote-tracking branch 'upstream/develop' into develop 2018-09-19 08:47:04 +08:00
Marius Gerbershagen
a19cf59cd6 re-add lost CHANGELOG entry
somehow the entry got deleted by commit 703771fc3d
2018-09-18 21:02:27 +02:00
Marius Gerbershagen
02b501e5a6 doc: fix typos and errors in ffi documentation 2018-09-18 19:59:40 +02:00
Marius Gerbershagen
2192e63e59 ffi: protect with-foreign-string and with-foreign-object against interrupts 2018-09-18 18:47:01 +02:00
Marius Gerbershagen
a34b6d0ca4 threading: proctect with-rwlock against interrupts 2018-09-18 18:45:41 +02:00
Yuguo Zhang
bdfbee0fb8 build system: suppress some logo(copyright) information for msvc toolchains. 2018-09-18 12:07:49 +08:00
Daniel Kochmański
c301009424 Merge branch 'revert-cleanup-up' into 'develop'
Revert "cmp: execute cleanup forms of unwind-protect with interrupts disabled"

See merge request embeddable-common-lisp/ecl!119
2018-09-17 15:20:20 +00:00
Marius Gerbershagen
3824e1b6da doc: fix documentation for mp:without-interrupts 2018-09-15 19:59:06 +02:00
Marius Gerbershagen
198f051369 export with-restored-interrupts from mp package 2018-09-15 19:54:51 +02:00
Marius Gerbershagen
95b0523bfe top.lsp: make with-grabbed-console interrupt safe 2018-09-15 19:53:42 +02:00
Marius Gerbershagen
b5194ca774 threading: fix interrupt safety of out_of_memory function
This function used writes in the thread local environment while
    interrupts where disabled with the env->disable_interrupts
    mechanism, which causes problems with the mprotect() mechanism for
    fast interrupt dispatch.
2018-09-09 17:06:32 +02:00
Marius Gerbershagen
57f6637902 threading: introduce thread safe ECL_UNWIND_PROTECT macro and use where needed
Disabling interrupts during execution of cleanup forms of
    unwind-protect caused problems in some cases. Hence only do this
    where needed, i.e. for freeing resources (such as locks or files)
    shared between multiple threads or processes.
2018-09-09 17:00:38 +02:00
Marius Gerbershagen
dfd24e45c5 Revert "threading: block interrupts during execution of cleanup forms in unwind-protect"
This reverts commit 24e4c13d58.
2018-09-08 17:46:55 +02:00
Daniel Kochmanski
703771fc3d Revert "cmp: execute cleanup forms of unwind-protect with interrupts disabled"
This reverts commit b8df7a777c.
2018-09-04 17:53:30 +02:00