Juan Jose Garcia Ripoll
d2fbd4da69
Mark the new release number
2009-10-05 14:13:35 +02:00
Juan Jose Garcia Ripoll
fe000b075a
src/cmp/cmpmain.lsp: silence the program "mt" that embeds the manifest in a Windows executable.
2009-10-05 12:12:05 +02:00
Juan Jose Garcia Ripoll
6d54621001
src/c/unixint.d: define _WIN32_WINNT=0x400 to get QueueUserAPC
2009-10-05 12:07:18 +02:00
Juanjo
70ae473d9b
src/CHANGELOG: note down the latest changes in the Windows port.
2009-10-05 11:01:01 +02:00
Juanjo
bedd620359
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).
2009-10-05 11:00:50 +02:00
Juanjo
c37757d262
src/compile.lsp.in: removed unused statements that conflict with the real ones for building sb-bsd-sockets.
2009-10-05 11:00:44 +02:00
Juanjo
8685d8beb7
msvc/Makefile, msvc/c/Makefile: hard-code the value of ECL_UNICODE and add new flags to prevent incremental linking.
2009-10-05 11:00:40 +02:00
Juanjo
1f74500b31
msvc/ecl/confg.h.msvc6: the value of UNICODE is now hardcoded in the header file, just like in other ports.
2009-10-05 11:00:36 +02:00
Juanjo
25c9b636e1
contrib/sockets/sockets.lisp: remove unused conditionalization.
2009-10-05 11:00:32 +02:00
Juanjo
f908de7ac0
src/c/dpp.c: change label names to prevent conflicts with some macros.
2009-10-05 11:00:27 +02:00
Juanjo
e39a9044ec
src/c/load.d: windows fasls were not marked as self-destructing.
2009-10-05 11:00:22 +02:00
Juanjo
2d639b4850
src/h/ecl-cmp.h: define _WINSOCKAPI_ to avoid that windows.h includes winsock.h. Needed to build sb-bsd-sockets.
2009-10-05 11:00:13 +02:00
Juan Jose Garcia Ripoll
d4e0d72e9d
threads.d: fixed two typos in the error checks for condition variables.
2009-10-02 10:02:05 +02:00
Juan Jose Garcia Ripoll
e3a8f6aec5
* msvc/ecl/config.msvc6: export ECL_WINDOWS_THREADS macro
...
* src/h/config.h: define GC_THREADS when using the garbage collector and threads.
2009-10-01 16:04:13 +02:00
Juan Jose Garcia Ripoll
5823093301
threads_mutex.d: fixed wait duration in mp_get_lock_wait().
2009-10-01 15:55:31 +02:00
Juan Jose Garcia Ripoll
511d3b1945
src/c/hash.d: conditionalize another use of hash.lock.
2009-10-01 12:48:02 +02:00
Juan Jose Garcia Ripoll
5ae1c96929
The gc library does not remember its settings: we have to define GC_PTHREADS or GC_WIN32_THREADS before including the gc.h header.
2009-10-01 12:01:26 +02:00
Juan Jose Garcia Ripoll
5618cc648b
src/c/threads.d: we cannot create locks until the environment is set up
2009-10-01 11:36:34 +02:00
Juan Jose Garcia Ripoll
2bee22b015
Note the last change in the configuration process, related to the detection of GC_register_my_thread.
2009-10-01 10:27:31 +02:00
Juan Jose Garcia Ripoll
5d2002432a
The test for an existing Boehm-Weiser garbage collector must include function GC_register_my_thread
2009-10-01 10:20:21 +02:00
Juan Jose Garcia Ripoll
3913c4464e
Functions returning "void" can not use "return something" in Sun's compiler, even if that something is (void).
2009-09-29 21:31:02 +02:00
Juan Jose Garcia Ripoll
d498548b07
src/c/package.d: field hash.lock is not defined in single-threaded versions
2009-09-29 17:04:34 +02:00
Juan Jose Garcia Ripoll
0e7563952e
Change needed for OS X 10.6 Leopard: ucontext.h is deprecated and produces an error.
2009-09-29 17:04:11 +02:00
Juan Jose Garcia Ripoll
04c7b4e67b
threads_mutex.d was not added in the previous commit
2009-09-27 21:52:04 +02:00
Juan Jose Garcia Ripoll
d3ce2ef931
Split the code for mutexes into a separate file and use these lock objects in cl_core, instead of the raw versions.
2009-09-27 21:20:01 +02:00
Juan Jose Garcia Ripoll
037cc67c48
Sometimes file_listen() returns that there exist characters, but actually there is an EOF.
2009-09-27 21:19:16 +02:00
Juan Jose Garcia Ripoll
500f324754
Following SBCL, use a single global lock for packages, instead of one lock per package.
2009-09-27 13:19:30 +02:00
Juan Jose Garcia Ripoll
dc6d0659b2
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.
2009-09-27 10:46:54 +02:00
Juan Jose Garcia Ripoll
ae9515ee2b
Reorganize the list of latest changes.
2009-09-27 10:44:25 +02:00
Juan Jose Garcia Ripoll
95f98db71c
When we are using an alternative stack for processing SIGSEGV, we cannot execute arbitrary lisp code there -- instead, jump to the outermost prompt.
2009-09-25 18:44:15 +02:00
Juan Jose Garcia Ripoll
c36eb22e73
Stack overflows now jump to the outermost toplevel.
2009-09-25 17:45:34 +02:00
Juan Jose Garcia Ripoll
5f2e473d36
Remove debug statements from last commit
2009-09-25 16:59:36 +02:00
Juan Jose Garcia Ripoll
f8817cda45
SIGSEGV and SIGBUS must be handled synchronously.
2009-09-25 16:58:55 +02:00
Juan Jose Garcia Ripoll
8082cd6010
_ecl_win32_... has to be declared as using WINAPI.
2009-09-25 08:58:34 +02:00
Juan Jose Garcia Ripoll
28f2f9f4ca
Export ECL_THREADS configuration flag when processing msvc/ecl/config.h.msvc6
2009-09-25 08:49:04 +02:00
Juan Jose Garcia Ripoll
8edb94230e
We have to export _ecl_w32_exception_filter() for users of CL_CATCH_ALL.
2009-09-25 08:42:20 +02:00
Juan Jose Garcia Ripoll
ac8b96db2b
We can only wait for the signals that have been blocked, not for SIGUSR1, SIGUSR2, etc.
2009-09-24 19:45:12 +02:00
Juan Jose Garcia Ripoll
bdf8d9d037
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.
2009-09-23 23:52:47 +02:00
Juan Jose Garcia Ripoll
cc052cb792
Added two new functions mp:lock-mine-p and mp:lock-count-mine which are used to implement mp:with-lock
2009-09-23 22:25:57 +02:00
Juan Jose Garcia Ripoll
9c416fbaa1
wakeup_function() only has to be defined under Windows.
2009-09-23 22:19:40 +02:00
Juan Jose Garcia Ripoll
8c7a40ffe0
The lock count by itself is not enough a guarantee that we acquired the lock
...
(A. Gavrilov)
2009-09-22 22:37:23 +02:00
Juan Jose Garcia Ripoll
1e12ead719
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().
2009-09-22 22:32:09 +02:00
Juan Jose Garcia Ripoll
a943df3c5f
In cl_get_lock(), compute own_process early, so that we do not cause an interrupt
...
by accessing ecl_env (A. Gavrilov).
2009-09-22 22:18:22 +02:00
Juan Jose Garcia Ripoll
78e9859bd2
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.
2009-09-22 20:13:23 +02:00
Juan Jose Garcia Ripoll
161926ac93
Solved some problem with the queueing of signals and added preliminary code for MP:INTERRUPT-PROCESS using Windows page guards.
2009-09-20 21:53:02 +02:00
Juan Jose Garcia Ripoll
80cf4ea148
Fixed a few typos in the implementation of Windows interrupts.
2009-09-19 00:48:17 +02:00
Juan Jose Garcia Ripoll
2661b663ae
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.
2009-09-18 23:02:56 +02:00
Juan Jose Garcia Ripoll
1bba5bab7c
Document the rationale behind how we handle interrupts.
2009-09-16 22:30:59 +02:00
Juan Jose Garcia Ripoll
b1ccedea3b
Implement ecl_clear_interrupts[_env]() as described in the manual.
2009-09-16 22:30:40 +02:00
Juan Jose Garcia Ripoll
70287ee9c5
Implement missing EXT:WITH-INTERRUPTS
2009-09-16 22:30:16 +02:00