Commit graph

117 commits

Author SHA1 Message Date
Daniel Kochmański
63ff85ef7f install: add build instructions for emscripten 2023-06-13 22:07:12 +02:00
Marius Gerbershagen
de5d56b4c6 multithreading: replace various synchronization objects by native mutexes
- Spinlocks have been replaced by ordinary locks. Without access to
  the underyling scheduler, spinlocks provide no performace benefit
  and may even be harmful in case of high contention.
- Synchronization of process creation and exiting has been simplified.
  Instead of a spinlock, a barrier and atomic operations we now use
  only a single lock protecting the shared process state and a
  condition variable for implementing process joins.
- Some locks which were implemented using Lisp objects now directly
  use a native mutex.
- Our own mutex implementation has been removed as it is now unused.
2021-08-29 17:23:20 +02:00
Marius Gerbershagen
0f737b6ba6 multithreading: implement mutexes and condition variables using OS primitives
Replace slow homegrown mutex implementation by standard OS functions.

We try our best to be interrupt safe, however a completely safe
implementation is impossible (unless one completely removes the ability
to interrupt a thread waiting on a mutex). There is always a window
after the OS specific function has returned, but before we can set
the owner, in which interrupts will see an inconsistent state of the
mutex with regards to owner and count.

Condition variables are now based on OS functions as well. Timed
waiting on condition variables has also been implemented.
2021-08-29 17:23:19 +02:00
Marius Gerbershagen
9176710d96 src/util: add script to run the testsuite on android 2021-01-30 15:41:45 +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
Daniel Kochmański
a67d16bbc2 utils: add the utility to help parsing/generating symbols_list.h 2020-12-23 12:03:36 +01:00
Marius Gerbershagen
9137c681a8 iOS-arm64.cross_config: fix long long bits 2020-06-12 20:50:35 +02:00
Marius Gerbershagen
4f8b4fab8b update CHANGELOG, INSTALL and cross config for iOS 2019-12-08 10:26:52 +01:00
Marius Gerbershagen
6090d9d201 update installation instructions for recent Android NDKs and support ARM64
Works for Android NDKs with unified headers (see https://android.googlesource.com/platform/ndk/+/ndk-release-r16/docs/UnifiedHeaders.md).
    Separate step of configuring a standalone toolchain is recommended
    by the Android docs. Explicitely setting CC to clang is useful,
    since gcc in Android NDK is deprecated and outright broken in NDK
    version 18. Using the bfd linker is needed for bdwgc to work
    correctly (see also https://github.com/ivmai/bdwgc/issues/259).
2019-01-12 22:51:17 +01: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
Marcin Kolenda
f9b371ddbf rm rsym from util Makefile -- rsym.c doesn't exist
Checked with ack-grep if it isn't mentioned in other places - it isn't.

Looked in repo history what is rsym.c - haven't found anything
2018-08-10 07:53:25 +02:00
Daniel Kochmański
915b40ce03 cleanup: move C/CXX part of CLOS to src/c/clos/ directory
instance.d and gfun.d were in the top C source directory.
2017-05-06 18:27:34 +02:00
Daniel Kochmański
1398fd381a cleanup: purge clx 2016-09-07 14:58:50 +02:00
Daniel Kochmański
6ff5d20417 unify: remove obsolete interface 2016-03-11 16:06:45 +01:00
Daniel Kochmański
61500316b7 gbc: remove obsolete (non-functional) GC
I would like to bring it back to life in the future, but we have to
clean the interfaces first.
2016-03-11 16:06:45 +01:00
Daniel Kochmański
562b30dff0 ms-dos: remove lingering references 2016-03-11 16:06:45 +01:00
Daniel Kochmański
edfc2ba785 earith: remove obsolete bignum arith 2016-03-11 16:06:45 +01:00
Daniel Kochmański
7517b55c08 loop: rename symbolics LOOP loop2.lsp to loop.lsp 2016-03-11 16:06:45 +01:00
Daniel Kochmański
b81b8fc17b util.lsp: delete not referenced file
This file also references non-existant files in the CMP package.
2016-03-11 16:06:45 +01:00
Daniel Kochmański
645b29992b loop: remove obsolete MIT loop system 2016-03-11 16:06:45 +01:00
Daniel Kochmanski
7ffa9b2990 windows-nsi: fix the nmake target 2016-02-25 08:28:30 +01:00
Daniel Kochmański
a3a609ac42 android: move android.cross_config to src/util 2015-10-28 19:57:35 +01:00
Matthew Mondor
8f07cd58d8 The ECL code no longer uses tabulator characters, they were replaced
by spaces.

A custom script was used to insert/replace Emacs and ViM per-file editor
settings according to their type and the new ECL coding style.
2015-09-03 07:35:47 -04:00
Daniel Kochmański
3117bc2e7d util: gdbinit ignores GC signals
Signed-off-by: Daniel Kochmański <daniel@turtleware.eu>
2015-08-19 09:15:11 +02:00
Daniel Kochmański
4d19a27424 cosmetic: untabify
Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-06-21 14:38:20 +02:00
Philipp Marek
1e2fc6ed3b Fix ecl_eval to not have quotes by default.
When "$arg0 $arg1 ..." is specified, GDB requires that many arguments;
and with "$arg0" it's not possible to give expressions that include
spaces, because they get cut _before_ ecl_eval sees them.
(And having "$arg0" _and_ giving quotes doesn't work as we'd like to, too.)
2014-02-27 20:33:11 +01:00
Philipp Marek
3afe5932f4 Fix ecl_print, and new GDB function ecl_eval.
Used like this:
    (gdb) ecl_eval cl::*package*
2014-02-27 16:35:22 +01:00
Philipp Marek
e3348dafe5 GDB: Don't print an object if the type is 0 (cl_start) - that seems unsafe. 2014-02-26 21:37:51 +01:00
Philipp Marek
efdf97e1ad Convenience function for printing "cl_object"s from GDB. 2014-02-26 21:15:05 +01:00
Juan Jose Garcia Ripoll
9ffb48f149 Remove unused files from emacs.el 2012-11-30 23:41:29 +01:00
Juan Jose Garcia Ripoll
e06ff1f414 Remove inexistent files from emacs.el 2012-11-11 01:12:13 +01:00
Juan Jose Garcia Ripoll
d9693e1d06 New list of sources in emacs.el 2012-10-11 20:08:05 +02:00
Juan Jose Garcia Ripoll
a2fe30393f Prefix the function argument limits 2012-06-22 23:47:45 +02:00
Juan Jose Garcia Ripoll
f062b726cc New function to search & replace through the ECL project using regexp. 2012-06-07 23:50:58 +02:00
Juan Jose Garcia Ripoll
64a9168434 CHARACTERP, BASE_CHAR_P, BASE_CHAR_CODE_P, CODE_CHAR, CHAR_CODE, REAL_TYPE, IMMEDIATE, IMMEDIATE_TAG, FIXNUM_TAG, FIXNUM_MINUSP, FIXNUM_PLUSP, FIXNUMP and fix get the ecl_ prefix 2012-06-06 11:19:55 +02:00
Juan Jose Garcia Ripoll
44fbe27453 List new thread files in emacs.el 2012-04-05 01:11:03 +02:00
Juan Jose Garcia Ripoll
f8f67f0fbf Update list of files for Emacs 2012-03-18 01:19:42 +01:00
Juan Jose Garcia Ripoll
9ffc5b1f6e Remove unused files from src/util/emacs.el 2011-12-10 00:00:47 +01:00
Juan Jose Garcia Ripoll
de3349b677 Moved macros from eval.h to cons.h 2011-12-03 22:13:35 +01:00
Juan Jose Garcia Ripoll
b857c4836d Use the new functions [_]ecl_c[ad]+r() functions in the Lisp2C compiler 2011-12-03 21:08:34 +01:00
Juan Jose Garcia Ripoll
d5f090e81e Added a header and a separate object file for C[AD]+R operation, automatically generated from src/util/gen-code.lsp 2011-12-03 20:16:45 +01:00
Juan Jose Garcia Ripoll
2a1de25e39 Updated the list of files in emacs.el 2011-06-30 11:08:02 +02:00
Juan Jose Garcia Ripoll
6274f755a6 Normalize paths in Windows (cut.exe) 2011-06-28 22:30:08 +02:00
Juan Jose Garcia Ripoll
e02cd6d502 Add the possibility of installing redistributable files from Microsoft 2011-01-06 21:59:44 +01:00
Juan Jose Garcia Ripoll
98048aba28 ECL now ships a Windows icon which is added to the executable at build time. 2010-12-30 09:04:40 +01:00
Juan Jose Garcia Ripoll
fb2c950202 Use GMP_CPPFLAGS in src/util/ecl-config 2010-08-22 22:29:18 +02:00
Juan Jose Garcia Ripoll
8abce51390 Fix emacs.el to load the old compiler 2010-06-27 10:11:34 +02:00
Juan Jose Garcia Ripoll
2863a7cf2e Not all values were properly substituted in 'ecl-config' 2010-03-11 00:19:34 +01:00
Juan Jose Garcia Ripoll
de14b01c7c Update the compiler list of files. 2009-12-31 11:42:34 +01:00
Juan Jose Garcia Ripoll
7a59afb68d Add missing compiler files to the list of sources loaded by Emacs. 2009-12-28 14:47:27 +01:00