ecl.git
15 years agosrc/h/ecl.h: in Windows, refuse to build ECL without threads. ECL.9.10.2
Juan Jose Garcia Ripoll [Fri, 9 Oct 2009 16:38:06 +0000 (18:38 +0200)]
src/h/ecl.h: in Windows, refuse to build ECL without threads.

15 years agoRemoved unused code.
Juan Jose Garcia Ripoll [Fri, 9 Oct 2009 15:22:49 +0000 (17:22 +0200)]
Removed unused code.

15 years agosrc/h/ecl.h: include windows.h also for non-threaded builds.
Juan Jose Garcia Ripoll [Fri, 9 Oct 2009 15:10:47 +0000 (17:10 +0200)]
src/h/ecl.h: include windows.h also for non-threaded builds.

15 years agoImprove the explanation of certain changes in CHANGELOG.
Juan Jose Garcia Ripoll [Fri, 9 Oct 2009 12:14:13 +0000 (14:14 +0200)]
Improve the explanation of certain changes in CHANGELOG.

15 years agosrc/aclocal.m4: fake -rpath in OSX using -install_name.
Juan Jose Garcia Ripoll [Fri, 9 Oct 2009 10:23:11 +0000 (12:23 +0200)]
src/aclocal.m4: fake -rpath in OSX using -install_name.

15 years agoNote latest change in src/clx/dependent.lisp
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 18:54:24 +0000 (20:54 +0200)]
Note latest change in src/clx/dependent.lisp

15 years agosrc/clx/dependent.lisp: the definition of holding-lock was not protected by an unwind...
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 18:29:17 +0000 (20:29 +0200)]
src/clx/dependent.lisp: the definition of holding-lock was not protected by an unwind-protect.

15 years agosrc/clx/dependent.lisp: fixed typo in the definition for make-process-lock.
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 18:27:54 +0000 (20:27 +0200)]
src/clx/dependent.lisp: fixed typo in the definition for make-process-lock.

15 years agosrc/c/unixint.d, src/c/stacks.d: we cannot execute signal handlers in separate stacks...
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 18:19:28 +0000 (20:19 +0200)]
src/c/unixint.d, src/c/stacks.d: we cannot execute signal handlers in separate stacks, because it confuses the lisp environment. Instead when detecting stack overflows we just jump out.

15 years agosrc/c/unixint.d: ignore floating point point exceptions which are not marked as trapp...
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 18:10:04 +0000 (20:10 +0200)]
src/c/unixint.d: ignore floating point point exceptions which are not marked as trappable.

15 years agoUsing feenableexcept() does not really work on linux: it is broken and makes the...
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 18:09:36 +0000 (20:09 +0200)]
Using feenableexcept() does not really work on linux: it is broken and makes the signal handler be ignored.

15 years agoRestore the lines for building the replacement module sb-bsd-sockets.lisp.
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 16:22:08 +0000 (18:22 +0200)]
Restore the lines for building the replacement module sb-bsd-sockets.lisp.

15 years agosrc/c/main.d, src/c/all_symbols.d, src/h/external.h: the package MP is created also...
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 16:13:56 +0000 (18:13 +0200)]
src/c/main.d, src/c/all_symbols.d, src/h/external.h: the package MP is created also in single-threaded versions.

15 years agoTag new release.
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 12:19:32 +0000 (14:19 +0200)]
Tag new release.

15 years agoMake ANNOUNCEMENT independent of the release.
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 12:18:42 +0000 (14:18 +0200)]
Make ANNOUNCEMENT independent of the release.

15 years agosrc/aclocal.m4: changed the detection of processor so that it works under Snow Leopar...
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 12:17:25 +0000 (14:17 +0200)]
src/aclocal.m4: changed the detection of processor so that it works under Snow Leopard / 64bits mode.

15 years agosrc/c/unixint.d: fixed typo that only affects the single-threaded builds.
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 12:15:12 +0000 (14:15 +0200)]
src/c/unixint.d: fixed typo that only affects the single-threaded builds.

15 years agoForgot to change release number as well.
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 09:48:46 +0000 (11:48 +0200)]
Forgot to change release number as well.

15 years agoForgot to change revision number in ANNOUNCEMENT.
Juan Jose Garcia Ripoll [Thu, 8 Oct 2009 09:43:46 +0000 (11:43 +0200)]
Forgot to change revision number in ANNOUNCEMENT.

15 years agosrc/lsp/top.lsp: ECL.9.10.1
Juan Jose Garcia Ripoll [Wed, 7 Oct 2009 13:40:18 +0000 (15:40 +0200)]
src/lsp/top.lsp:
* When pressing Ctrl-C (SIGINT, interrupt, etc), if there is only one thread running
  that thread is interrupted.
* The list of process that can be interrupted is filtered, changing the interfaces of
  si::query-process and si::show-processes.

15 years agoWhen returning from a signal handler, ECL left a sigmask in which all signals were...
Juan Jose Garcia Ripoll [Wed, 7 Oct 2009 13:39:23 +0000 (15:39 +0200)]
When returning from a signal handler, ECL left a sigmask in which all signals were allowed. Now we just restore the default sigmask.

15 years agosrc/c/unixint.d:
Juan Jose Garcia Ripoll [Wed, 7 Oct 2009 09:25:43 +0000 (11:25 +0200)]
src/c/unixint.d:
* Install the synchronous signal handlers before calling GC_init()
  so that they can be overwritten.
* Under Linux, access to mprotect'ed memory causes SIGSEGV, not SIGBUS.

15 years agosrc/lsp/top.lsp: (continue) did not work from within the interrupt handler.
Juan Jose Garcia Ripoll [Wed, 7 Oct 2009 09:24:26 +0000 (11:24 +0200)]
src/lsp/top.lsp: (continue) did not work from within the interrupt handler.

15 years agosrc/CHANGELOG: note last fix of si_process_declarations
Juan Jose Garcia Ripoll [Tue, 6 Oct 2009 12:26:40 +0000 (14:26 +0200)]
src/CHANGELOG: note last fix of si_process_declarations

15 years agosi::process-declarations did not identify extended strings as documentation.
Juan Jose Garcia Ripoll [Tue, 6 Oct 2009 12:24:58 +0000 (14:24 +0200)]
si::process-declarations did not identify extended strings as documentation.

15 years agoThe value of *print-level* has to be reset when printing a structure.
Juan Jose Garcia Ripoll [Mon, 5 Oct 2009 19:54:59 +0000 (21:54 +0200)]
The value of *print-level* has to be reset when printing a structure.

15 years agosrc/h/config.h.in: define only GC_THREADS. Supposedly the garbage collector with...
Juan Jose Garcia Ripoll [Mon, 5 Oct 2009 16:31:25 +0000 (18:31 +0200)]
src/h/config.h.in: define only GC_THREADS. Supposedly the garbage collector with define GC_PTHREADS, GC_WIN32_THREADS, etc, depending on the compiler and platform.

15 years agosrc/cmp/cmpmain.lsp: clean up the files we create (*.c, *.h) before writing onto...
Juan Jose Garcia Ripoll [Mon, 5 Oct 2009 13:54:46 +0000 (15:54 +0200)]
src/cmp/cmpmain.lsp: clean up the files we create (*.c, *.h) before writing onto them.

15 years agosrc/h/config.h.in: in Darwin we have to define GC_DARWIN_THREADS because the garbage
Juan Jose Garcia Ripoll [Mon, 5 Oct 2009 12:41:31 +0000 (14:41 +0200)]
src/h/config.h.in: in Darwin we have to define GC_DARWIN_THREADS because the garbage
    does not store its settings.

15 years agoMark the new release number
Juan Jose Garcia Ripoll [Mon, 5 Oct 2009 12:13:35 +0000 (14:13 +0200)]
Mark the new release number

15 years agosrc/cmp/cmpmain.lsp: silence the program "mt" that embeds the manifest in a Windows...
Juan Jose Garcia Ripoll [Mon, 5 Oct 2009 10:12:05 +0000 (12:12 +0200)]
src/cmp/cmpmain.lsp: silence the program "mt" that embeds the manifest in a Windows executable.

15 years agosrc/c/unixint.d: define _WIN32_WINNT=0x400 to get QueueUserAPC
Juan Jose Garcia Ripoll [Mon, 5 Oct 2009 10:07:18 +0000 (12:07 +0200)]
src/c/unixint.d: define _WIN32_WINNT=0x400 to get QueueUserAPC

15 years agosrc/CHANGELOG: note down the latest changes in the Windows port.
Juanjo [Mon, 21 Sep 2009 09:22:21 +0000 (11:22 +0200)]
src/CHANGELOG: note down the latest changes in the Windows port.

15 years agosrc/cmp/cmpmain.lsp: in Windows, embed the manifest file into the executable, dll...
Juanjo [Mon, 21 Sep 2009 09:22:03 +0000 (11:22 +0200)]
src/cmp/cmpmain.lsp: in Windows, embed the manifest file into the executable, dll or fasl, and delete any other automatically generated files (*.exp, *.lib, etc).

15 years agosrc/compile.lsp.in: removed unused statements that conflict with the real ones for...
Juanjo [Mon, 21 Sep 2009 09:21:18 +0000 (11:21 +0200)]
src/compile.lsp.in: removed unused statements that conflict with the real ones for building sb-bsd-sockets.

15 years agomsvc/Makefile, msvc/c/Makefile: hard-code the value of ECL_UNICODE and add new flags...
Juanjo [Mon, 21 Sep 2009 09:20:43 +0000 (11:20 +0200)]
msvc/Makefile, msvc/c/Makefile: hard-code the value of ECL_UNICODE and add new flags to prevent incremental linking.

15 years agomsvc/ecl/confg.h.msvc6: the value of UNICODE is now hardcoded in the header file...
Juanjo [Mon, 21 Sep 2009 09:19:34 +0000 (11:19 +0200)]
msvc/ecl/confg.h.msvc6: the value of UNICODE is now hardcoded in the header file, just like in other ports.

15 years agocontrib/sockets/sockets.lisp: remove unused conditionalization.
Juanjo [Mon, 21 Sep 2009 09:18:13 +0000 (11:18 +0200)]
contrib/sockets/sockets.lisp: remove unused conditionalization.

15 years agosrc/c/dpp.c: change label names to prevent conflicts with some macros.
Juanjo [Mon, 21 Sep 2009 09:17:42 +0000 (11:17 +0200)]
src/c/dpp.c: change label names to prevent conflicts with some macros.

15 years agosrc/c/load.d: windows fasls were not marked as self-destructing.
Juanjo [Mon, 21 Sep 2009 09:17:05 +0000 (11:17 +0200)]
src/c/load.d: windows fasls were not marked as self-destructing.

15 years agosrc/h/ecl-cmp.h: define _WINSOCKAPI_ to avoid that windows.h includes winsock.h....
Juanjo [Mon, 21 Sep 2009 09:16:26 +0000 (11:16 +0200)]
src/h/ecl-cmp.h: define _WINSOCKAPI_ to avoid that windows.h includes winsock.h. Needed to build sb-bsd-sockets.

15 years agothreads.d: fixed two typos in the error checks for condition variables.
Juan Jose Garcia Ripoll [Fri, 2 Oct 2009 08:02:05 +0000 (10:02 +0200)]
threads.d: fixed two typos in the error checks for condition variables.

15 years ago* msvc/ecl/config.msvc6: export ECL_WINDOWS_THREADS macro
Juan Jose Garcia Ripoll [Thu, 1 Oct 2009 14:04:13 +0000 (16:04 +0200)]
* msvc/ecl/config.msvc6: export ECL_WINDOWS_THREADS macro
* src/h/config.h: define GC_THREADS when using the garbage collector and threads.

15 years agothreads_mutex.d: fixed wait duration in mp_get_lock_wait().
Juan Jose Garcia Ripoll [Thu, 1 Oct 2009 13:55:31 +0000 (15:55 +0200)]
threads_mutex.d: fixed wait duration in mp_get_lock_wait().

15 years agosrc/c/hash.d: conditionalize another use of hash.lock.
Juan Jose Garcia Ripoll [Thu, 1 Oct 2009 10:48:02 +0000 (12:48 +0200)]
src/c/hash.d: conditionalize another use of hash.lock.

15 years agoThe gc library does not remember its settings: we have to define GC_PTHREADS or GC_WI...
Juan Jose Garcia Ripoll [Thu, 1 Oct 2009 10:01:26 +0000 (12:01 +0200)]
The gc library does not remember its settings: we have to define GC_PTHREADS or GC_WIN32_THREADS before including the gc.h header.

15 years agosrc/c/threads.d: we cannot create locks until the environment is set up
Juan Jose Garcia Ripoll [Thu, 1 Oct 2009 09:36:34 +0000 (11:36 +0200)]
src/c/threads.d: we cannot create locks until the environment is set up

15 years agoNote the last change in the configuration process, related to the detection of GC_reg...
Juan Jose Garcia Ripoll [Thu, 1 Oct 2009 08:27:31 +0000 (10:27 +0200)]
Note the last change in the configuration process, related to the detection of GC_register_my_thread.

15 years agoThe test for an existing Boehm-Weiser garbage collector must include function GC_regi...
Juan Jose Garcia Ripoll [Thu, 1 Oct 2009 08:20:21 +0000 (10:20 +0200)]
The test for an existing Boehm-Weiser garbage collector must include function GC_register_my_thread

15 years agoFunctions returning "void" can not use "return something" in Sun's compiler, even...
Juan Jose Garcia Ripoll [Tue, 29 Sep 2009 19:31:02 +0000 (21:31 +0200)]
Functions returning "void" can not use "return something" in Sun's compiler, even if that something is (void).

15 years agosrc/c/package.d: field hash.lock is not defined in single-threaded versions
Juan Jose Garcia Ripoll [Tue, 29 Sep 2009 15:04:34 +0000 (17:04 +0200)]
src/c/package.d: field hash.lock is not defined in single-threaded versions

15 years agoChange needed for OS X 10.6 Leopard: ucontext.h is deprecated and produces an error.
Juan Jose Garcia Ripoll [Tue, 29 Sep 2009 15:04:11 +0000 (17:04 +0200)]
Change needed for OS X 10.6 Leopard: ucontext.h is deprecated and produces an error.

15 years agothreads_mutex.d was not added in the previous commit
Juan Jose Garcia Ripoll [Sun, 27 Sep 2009 19:52:04 +0000 (21:52 +0200)]
threads_mutex.d was not added in the previous commit

15 years agoSplit the code for mutexes into a separate file and use these lock objects in cl_core...
Juan Jose Garcia Ripoll [Sun, 27 Sep 2009 19:20:01 +0000 (21:20 +0200)]
Split the code for mutexes into a separate file and use these lock objects in cl_core, instead of the raw versions.

15 years agoSometimes file_listen() returns that there exist characters, but actually there is...
Juan Jose Garcia Ripoll [Sun, 27 Sep 2009 19:19:16 +0000 (21:19 +0200)]
Sometimes file_listen() returns that there exist characters, but actually there is an EOF.

15 years agoFollowing SBCL, use a single global lock for packages, instead of one lock per package.
Juan Jose Garcia Ripoll [Sun, 27 Sep 2009 11:19:30 +0000 (13:19 +0200)]
Following SBCL, use a single global lock for packages, instead of one lock per package.

15 years agoecl_extend_hashtable() now does not destructively modify a package hash table. Instea...
Juan Jose Garcia Ripoll [Sun, 27 Sep 2009 08:46:54 +0000 (10:46 +0200)]
ecl_extend_hashtable() now does not destructively modify a package hash table. Instead, it returns a new object. This affects ecl_sethash() and all package functions that modify the package tables.

15 years agoReorganize the list of latest changes.
Juan Jose Garcia Ripoll [Sun, 27 Sep 2009 08:44:25 +0000 (10:44 +0200)]
Reorganize the list of latest changes.

15 years agoWhen we are using an alternative stack for processing SIGSEGV, we cannot execute...
Juan Jose Garcia Ripoll [Fri, 25 Sep 2009 16:44:15 +0000 (18:44 +0200)]
When we are using an alternative stack for processing SIGSEGV, we cannot execute arbitrary lisp code there -- instead, jump to the outermost prompt.

15 years agoStack overflows now jump to the outermost toplevel.
Juan Jose Garcia Ripoll [Fri, 25 Sep 2009 15:45:34 +0000 (17:45 +0200)]
Stack overflows now jump to the outermost toplevel.

15 years agoRemove debug statements from last commit
Juan Jose Garcia Ripoll [Fri, 25 Sep 2009 14:59:36 +0000 (16:59 +0200)]
Remove debug statements from last commit

15 years agoSIGSEGV and SIGBUS must be handled synchronously.
Juan Jose Garcia Ripoll [Fri, 25 Sep 2009 14:58:55 +0000 (16:58 +0200)]
SIGSEGV and SIGBUS must be handled synchronously.

15 years ago_ecl_win32_... has to be declared as using WINAPI.
Juan Jose Garcia Ripoll [Fri, 25 Sep 2009 06:58:34 +0000 (08:58 +0200)]
_ecl_win32_... has to be declared as using WINAPI.

15 years agoExport ECL_THREADS configuration flag when processing msvc/ecl/config.h.msvc6
Juan Jose Garcia Ripoll [Fri, 25 Sep 2009 06:49:04 +0000 (08:49 +0200)]
Export ECL_THREADS configuration flag when processing msvc/ecl/config.h.msvc6

15 years agoWe have to export _ecl_w32_exception_filter() for users of CL_CATCH_ALL.
Juan Jose Garcia Ripoll [Fri, 25 Sep 2009 06:42:20 +0000 (08:42 +0200)]
We have to export _ecl_w32_exception_filter() for users of CL_CATCH_ALL.

15 years agoWe can only wait for the signals that have been blocked, not for SIGUSR1, SIGUSR2...
Juan Jose Garcia Ripoll [Thu, 24 Sep 2009 17:45:12 +0000 (19:45 +0200)]
We can only wait for the signals that have been blocked, not for SIGUSR1, SIGUSR2, etc.

15 years agoInitial version of semaphores both for POSIX and Windows. Includes test that detects...
Juan Jose Garcia Ripoll [Wed, 23 Sep 2009 21:52:47 +0000 (23:52 +0200)]
Initial version of semaphores both for POSIX and Windows. Includes test that detects failure of unnamed semaphores under Darwin. The whole code is still inactive.

15 years agoAdded two new functions mp:lock-mine-p and mp:lock-count-mine which are used to imple...
Juan Jose Garcia Ripoll [Wed, 23 Sep 2009 20:25:57 +0000 (22:25 +0200)]
Added two new functions mp:lock-mine-p and mp:lock-count-mine which are used to implement mp:with-lock

15 years agowakeup_function() only has to be defined under Windows.
Juan Jose Garcia Ripoll [Wed, 23 Sep 2009 20:19:40 +0000 (22:19 +0200)]
wakeup_function() only has to be defined under Windows.

15 years agoThe lock count by itself is not enough a guarantee that we acquired the lock
Juan Jose Garcia Ripoll [Tue, 22 Sep 2009 20:37:23 +0000 (22:37 +0200)]
The lock count by itself is not enough a guarantee that we acquired the lock
(A. Gavrilov)

15 years agoThe routines that wait on condition variables should verify that the
Juan Jose Garcia Ripoll [Tue, 22 Sep 2009 20:32:09 +0000 (22:32 +0200)]
The routines that wait on condition variables should verify that the
calling thread owns the lock and then mark it as released, at least
for the duration of pthread_count_timedwait().

15 years agoIn cl_get_lock(), compute own_process early, so that we do not cause an interrupt
Juan Jose Garcia Ripoll [Tue, 22 Sep 2009 20:18:22 +0000 (22:18 +0200)]
In cl_get_lock(), compute own_process early, so that we do not cause an interrupt
by accessing ecl_env (A. Gavrilov).

15 years agoCode to implement mp:interrupt-process in Windows:
Juan Jose Garcia Ripoll [Tue, 22 Sep 2009 18:13:23 +0000 (20:13 +0200)]
Code to implement mp:interrupt-process in Windows:
* unixint.d: capture exceptions caused by page guards.
* unixint.d: to interrupt a Windows thread, set up a page guard onto the
  ECL environment and in addition queue an APC call that accesses the
  environment to trigger that exception.
* stacks.h: CL_CATCH_ALL uses _try/_except to enforce ECL's exception
  handler. Without it, Windows behaves randomly and sometimes uses the
  default handler and sometimes it simply aborts.
* threads.d: we use ordinary handlers to identify threads.
* time.d: SLEEP now uses Windows' SleepEx, leaving the thread in an
  alertable state -- that is, it can be interrupted.
* top.lsp: fixed and improved the code that handles console interrupts,
  by first using ordinary conditions and then using an interactive
  query function to decide which process to interrupt.

15 years agoSolved some problem with the queueing of signals and added preliminary code for MP...
Juan Jose Garcia Ripoll [Sun, 20 Sep 2009 19:53:02 +0000 (21:53 +0200)]
Solved some problem with the queueing of signals and added preliminary code for MP:INTERRUPT-PROCESS using Windows page guards.

15 years agoFixed a few typos in the implementation of Windows interrupts.
Juan Jose Garcia Ripoll [Fri, 18 Sep 2009 22:48:17 +0000 (00:48 +0200)]
Fixed a few typos in the implementation of Windows interrupts.

15 years agoNew interrupt handling model:
Juan Jose Garcia Ripoll [Fri, 18 Sep 2009 21:02:56 +0000 (23:02 +0200)]
New interrupt handling model:
* threads.d: New code to suspend and resume processes.
* threads.d: Threads are created detached with more robust code to wait
  for completion.
* top.lsp: New code for handling console interrupt (Ctrl-C) allows
  selectively interrupting one or more processes or continuing.
* file.d: Console streams are created in non-locking mode when needed.
* load.lsp.in: mp.lsp is always loaded.
* mp.lsp, symbols_list*: without-interrupts and the like belong in EXT
  not in MP package.

15 years agoDocument the rationale behind how we handle interrupts.
Juan Jose Garcia Ripoll [Wed, 16 Sep 2009 20:30:59 +0000 (22:30 +0200)]
Document the rationale behind how we handle interrupts.

15 years agoImplement ecl_clear_interrupts[_env]() as described in the manual.
Juan Jose Garcia Ripoll [Wed, 16 Sep 2009 20:30:40 +0000 (22:30 +0200)]
Implement ecl_clear_interrupts[_env]() as described in the manual.

15 years agoImplement missing EXT:WITH-INTERRUPTS
Juan Jose Garcia Ripoll [Wed, 16 Sep 2009 20:30:16 +0000 (22:30 +0200)]
Implement missing EXT:WITH-INTERRUPTS

15 years agoWe have to restore the signal before jump_to_sigsegv_handler()
Juan Jose Garcia Ripoll [Wed, 16 Sep 2009 18:45:15 +0000 (20:45 +0200)]
We have to restore the signal before jump_to_sigsegv_handler()

15 years agounixint.d:
Juan Jose Garcia Ripoll [Tue, 15 Sep 2009 21:45:51 +0000 (23:45 +0200)]
unixint.d:
* The code that decides whether to process or queue a signal is factored into
  handle_or_queue. This code is now used by both Linux and Windows handlers.
* Each Linux or Windows handler translates the signal into a lisp object that
  is passed to handle_or_queue. This allows for simpler, platform independent
  queueing, and in particular it enables Windows to discriminate FPE errors.

15 years agounixint.d:
Juan Jose Garcia Ripoll [Tue, 15 Sep 2009 19:59:58 +0000 (21:59 +0200)]
unixint.d:
* The routine handle_fpe_signal() is embedded in the lisp_signal_handler
* The Windows signal handler falls back to the previously installed handler
  for exceptions that are not to be handled.

15 years agounixfsys.d: removed a debug statement that prints the DLL location.
Juan Jose Garcia Ripoll [Tue, 15 Sep 2009 14:11:51 +0000 (16:11 +0200)]
unixfsys.d: removed a debug statement that prints the DLL location.

15 years agoQUIT now unwinds all forms before exiting. In addition it can kill all existing threads.
Juan Jose Garcia Ripoll [Sun, 13 Sep 2009 18:46:21 +0000 (20:46 +0200)]
QUIT now unwinds all forms before exiting. In addition it can kill all existing threads.

15 years agoWhen rebasing the latest changes, the code for with-lock got corrupt.
Juan Jose Garcia Ripoll [Sun, 13 Sep 2009 18:43:40 +0000 (20:43 +0200)]
When rebasing the latest changes, the code for with-lock got corrupt.

15 years agoBack to using locking streams for I/O in multithreaded environments.
Juan Jose Garcia Ripoll [Sun, 30 Aug 2009 21:16:44 +0000 (23:16 +0200)]
Back to using locking streams for I/O in multithreaded environments.

15 years agoImplemented code to allow multiple toplevels sharing the same console and switching...
Juan Jose Garcia Ripoll [Sun, 30 Aug 2009 21:15:53 +0000 (23:15 +0200)]
Implemented code to allow multiple toplevels sharing the same console and switching from one another. This simplifies the debugger, as the process switching facility and locking is out of that code.

15 years agoAvoid using C streams for the standard input when using threads.
Juan Jose Garcia Ripoll [Sun, 30 Aug 2009 00:13:37 +0000 (02:13 +0200)]
Avoid using C streams for the standard input when using threads.

15 years agotop.lsp: the loop in with-grabbed-console was wrong, for after getting the signal...
Juan Jose Garcia Ripoll [Sun, 30 Aug 2009 00:11:48 +0000 (02:11 +0200)]
top.lsp: the loop in with-grabbed-console was wrong, for after getting the signal from the condition variable one has to start over again.

15 years agoThe console is now protected by a global lock, so that toplevels from different threa...
Juan Jose Garcia Ripoll [Sat, 29 Aug 2009 23:21:53 +0000 (01:21 +0200)]
The console is now protected by a global lock, so that toplevels from different threads do not interfere each other.

15 years agothreads.d: fixed typos in the definition of mp_restore_signals.
Juan Jose Garcia Ripoll [Sat, 29 Aug 2009 23:21:44 +0000 (01:21 +0200)]
threads.d: fixed typos in the definition of mp_restore_signals.

15 years agoNew functions MP:BLOCK/RESTORE-SIGNALS block signals in a thread-local fashion whenev...
Juan Jose Garcia Ripoll [Sat, 29 Aug 2009 22:34:10 +0000 (00:34 +0200)]
New functions MP:BLOCK/RESTORE-SIGNALS block signals in a thread-local fashion whenever possible.

15 years agostacks.h: fixed typo in the definition of CL_CATCH_END
Juan Jose Garcia Ripoll [Sat, 29 Aug 2009 21:55:57 +0000 (23:55 +0200)]
stacks.h: fixed typo in the definition of CL_CATCH_END

15 years agosrc/configure.in: detect existence of gmp.h or gmp/gmp.h and signal error when using...
Juan Jose Garcia Ripoll [Wed, 9 Sep 2009 12:52:14 +0000 (14:52 +0200)]
src/configure.in: detect existence of gmp.h or gmp/gmp.h and signal error when using system libraries without finding the header.

15 years agoMP:PROCESS-JOIN was defined also in not threaded builds
Juan Jose Garcia Ripoll [Wed, 9 Sep 2009 09:58:57 +0000 (11:58 +0200)]
MP:PROCESS-JOIN was defined also in not threaded builds

15 years agoPass the ABI parameter to GMP, in case we configure it ourselves.
Juan Jose Garcia Ripoll [Wed, 9 Sep 2009 07:39:27 +0000 (09:39 +0200)]
Pass the ABI parameter to GMP, in case we configure it ourselves.

15 years agoconfig.h.in: autoconf screws an explicit #undef ECL_SIGNED_ZERO that is intended...
Juan Jose Garcia Ripoll [Wed, 9 Sep 2009 07:33:48 +0000 (09:33 +0200)]
config.h.in: autoconf screws an explicit #undef ECL_SIGNED_ZERO that is intended to be used as such.

15 years agoCreate threads in a joinable state (Unix pthread) and let it detach itself before...
Juan Jose Garcia Ripoll [Tue, 8 Sep 2009 13:32:30 +0000 (15:32 +0200)]
Create threads in a joinable state (Unix pthread) and let it detach itself before exiting.

15 years agoThe function mp_process_join() now also works with Windows.
Juan Jose Garcia Ripoll [Tue, 8 Sep 2009 12:46:42 +0000 (14:46 +0200)]
The function mp_process_join() now also works with Windows.

15 years agoNew function MP:PROCESS-JOIN, waits for a thread to terminate (J.C.Beaudoin)
Juan Jose Garcia Ripoll [Tue, 8 Sep 2009 12:32:49 +0000 (14:32 +0200)]
New function MP:PROCESS-JOIN, waits for a thread to terminate (J.C.Beaudoin)