Commit graph

209 commits

Author SHA1 Message Date
Matthew Mondor
c5c606cc01 - User-defined heap sizes can now exceed the size of a fixnum on 32-bit
Fixes issue #140

- The heap size limit was intended to be 1GB on 32-bit or 4GB on 64-bit
  but inconsistency between ECL_FIXNUM_BITS and FIXNUM_BITS in the code
  prevented the heap to grow for 64-bit.  This now occurs, and a few
  other less visible bugs were fixed by restoring consistency to
  ECL_FIXNUM_BITS.
2015-09-11 16:54:18 -04: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
7a29be4337 CLOS: remove dead code and conditionals for non-clos builds
Builds without CLOS weren't possible for long time, yet a lot of dead
code for non-clos builds was spread across sources. This commit
removes all ifdefs and dead blocks from codebase.

Signed-off-by: Daniel Kochmański <dkochmanski@turtle-solutions.eu>
2015-07-01 16:56:17 +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
Roger Sen
cddb87313d Updated GC api to remove deprecated methods 2015-04-12 11:47:43 +02:00
Philipp Marek
3e9f5cafe1 Fix declaration that was activated by commit 285eb318,
"fixes for the detection of GC_start_call_back"
2014-02-27 20:47:53 +01:00
D Herring
285eb31812 fixes for the detection of GC_start_call_back
- HAVE_GC_SET_START_CALLBACK was defined unconditionally
- there was no AC_DEFINE if system_boehm was false
- there was a typo in one usage site of this macro

see 6b754564f1
2014-02-27 09:43:21 +01:00
Juanjo Garcia-Ripoll
f0e31ded05 Fixed declaration of GC_start_call_back 2013-10-06 22:39:11 +02:00
Juanjo Garcia-Ripoll
6b754564f1 GC_start_call_back disappeared in recent versions of the GC library 2013-10-06 17:01:01 +02:00
Juan Jose Garcia Ripoll
99b1e54eb0 GC_allow_register_threads is only provided in recent versions of the collector. 2012-11-01 21:53:55 +01:00
Juan Jose Garcia Ripoll
2e3ca61015 We have to inform the library that we want to register threads 2012-10-30 22:50:12 +01:00
Juanjo Garcia-Ripoll
d6b3e9ff67 Fixed typos (R.J.Alcantara) 2012-08-23 11:24:44 +02:00
Juan Jose Garcia Ripoll
1112bb12fb Add prototypes for functions in gc/private/gc_priv.h which are needed by ECL. 2012-08-15 20:14:18 +02:00
Juan Jose Garcia Ripoll
14d2960135 Use a spinlock for a thread wait until its process structure is completed by its parent. Rename waiting_for to woken_up for the real application it has. 2012-07-30 22:11:50 +02:00
Juan Jose Garcia Ripoll
469c8a520f Save the errors caused by the dynamic linker in the codeblock object 2012-07-23 22:48:00 +02:00
Juan Jose Garcia Ripoll
9287a516ff Yet another iteration for condition variables: now the lock is only released only once the thread has been added to the queue. 2012-07-13 21:35:38 +02:00
Juan Jose Garcia Ripoll
595f3dbe58 The previous implementation of condition variables was wrong: it assumed that the signaling thread did not own the lock. 2012-07-11 00:06:33 +02:00
Juan Jose Garcia Ripoll
e54d9a6173 Rename type_of -> ecl_t_of 2012-07-05 23:07:34 +02:00
Juan Jose Garcia Ripoll
825fc8cbd3 Cnil and Ct are now part of legacy 2012-06-30 23:01:40 +02:00
Juan Jose Garcia-Ripoll
efadef99dc Prefix the block creation macros, ECL_BLOCK_*, etc 2012-06-30 12:01:44 +02:00
Juan Jose Garcia Ripoll
235a587cc6 Rename sf(), df(), and the bignum suffixes big_size, big_dim and big_limbs. Old versions moved to legacy.h 2012-06-06 21:08:47 +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
e950fc51bb Detect the codepage in Windows. 2012-05-19 10:07:48 +02:00
Juan Jose Garcia Ripoll
ad49125681 Implemented a first prototype of mailbox 2012-04-07 00:55:14 +02:00
Juan Jose Garcia Ripoll
9ee80d0396 Sometimes the environment of a process might be NULL -- in that case, avoid marking. 2012-04-06 11:47:58 +02:00
Juan Jose Garcia Ripoll
a5eb54dd27 Implemented mp:barrier and fixed unixsys.d to use spinlocks and not real locks. 2012-04-06 00:18:29 +02:00
Juan Jose Garcia Ripoll
1a9789f271 Directly access the option values array and only block the process interrupt in ecl_wait_on(). 2012-03-29 22:11:29 +02:00
Juan Jose Garcia Ripoll
5b1007c787 Change field names and introduce the spinlock in the lock structure 2012-03-29 17:43:27 +02:00
Juan Jose Garcia Ripoll
4cf99dce0b Reuse the cons that is used for adding a process to a wait queue. 2012-03-29 15:25:59 +02:00
Juan Jose Garcia Ripoll
bc738ccae8 The lock.waiter field was not marked during GC 2012-03-19 00:59:51 +01:00
Juan Jose Garcia Ripoll
141b2f909b Implemented a first version of userspace condition variables. 2012-03-17 20:56:58 +01:00
Juan Jose Garcia Ripoll
fad8ebefae Fixed unbalanced parenthesis in alloc_2.d 2012-03-17 19:34:48 +01:00
Juan Jose Garcia Ripoll
67002663ae Creation/destruction of global variable identifiers does not require a lock. 2012-02-19 22:56:10 +01:00
Juan Jose Garcia Ripoll
ce73d0a60a Implemented a wait queue for locks and other events. 2012-02-19 01:23:06 +01:00
Juan Jose Garcia Ripoll
9707940125 The process list is now an array 2012-02-18 20:16:06 +01:00
Juan Jose Garcia Ripoll
0e1d0226b2 Explicitly mark the current thread environment, just in case it was not properly installed in cl_core.processes (this happens when registering external threads). 2012-02-18 10:48:48 +01:00
Juan Jose Garcia Ripoll
d5296f2563 Implement mutexes using CAS. Deactivate condition variables temporarily. 2012-02-12 23:31:29 +01:00
Juan Jose Garcia Ripoll
d2f740b9af Fixed comment on gather_statistics() 2011-12-30 12:40:06 +01:00
Juan Jose Garcia Ripoll
5a22fc4b36 In the precise garbage collector, removed a reference to an inexistent field hash.lock. 2011-08-28 17:04:43 +02:00
Juan Jose Garcia Ripoll
da11b861eb Nested TIME calls do not reset the GC counters. This requires reimplementing GC-STATS to have a special input value mean 'resetting the counters'. 2011-02-08 23:54:14 +01:00
Juan Jose Garcia Ripoll
a86bbd3605 Fixed various warnings to allow compiling ECL with CLang 2011-01-23 16:06:47 +01:00
Juan Jose Garcia Ripoll
9a4ae70bed Read/write lock fixes: typos, C prototypes and a new keyword used in compiled code (J. James) 2011-01-19 22:22:19 +01:00
Juan Jose Garcia Ripoll
be3e31abb0 Fixed marking of read-write locks 2010-12-10 22:53:56 +01:00
Juan Jose Garcia Ripoll
3b92fb53f0 Removed the possibility of building ECL without bignums 2010-11-06 16:42:39 +01:00
Juan Jose Garcia Ripoll
c86c8bd5c0 Move packages to read/write locks 2010-10-24 17:53:44 +02:00
Juan Jose Garcia Ripoll
1e3eb5b62a Global locking is done through three different locks, cl_core.global_lock, error_lock and package_lock. 2010-10-24 17:53:29 +02:00
Juan Jose Garcia Ripoll
8c42f280c8 Added support for POSIX read/write locks 2010-10-23 23:03:02 +02:00
Juan Jose Garcia Ripoll
6e90253faf Fixed compiler warnings 2010-08-24 17:32:22 +02:00
Juan Jose Garcia Ripoll
d429aa28f3 windows.h is needed also for mingw in alloc_2.d 2010-08-22 23:15:20 +02:00
Juan Jose Garcia Ripoll
5c63cd8345 When compiling for the Windows API, define ECL_MS_WINDOWS_HOST instead of checking for mingw or _MSC_VER separately (Gabriel Dos Reis) 2010-08-22 22:29:21 +02:00