[Ecls-list] Megapatch ahead
Tobias C. Rittweiler
tcr at freebits.de
Wed Sep 23 22:43:09 UTC 2009
Juan Jose Garcia-Ripoll writes:
> Hi, a warning for everybody: stay with your current sources if you do
> not want to play with new features or help me with the changes I will
> be listing below.
> I am now uploading my latest developments in the field of signals,
> interrupts, exceptions, threads and the like. It is a mess of things
> that are fixed by these changes but basically it consists on the
> - ECL now implements a more clear model of handling unexpected events,
> which includes
> + Hardware and software generated errors (floating point
> exceptions, page faults...)
> + Externally generated interrupts and events
> + Interrupts sent from one thread to another.
> - For events generated in the thread itself, the dispatch is normally
> local and it amounts to the thread being interrupted and signalling an
> error. When this happens may be controlled with the macros
> ext:without-interrupts, ext:with-interrupts, etc.
> - For events generated from the "outside", the detection and
> processing of such events _may_ happen in a separate thread. This is
> both safer and unavoidable in most operating systems. For instance,
> Windows executes the handler for Ctrl-C in a separate thread.
> I have tried to minimize the impact of these changes, but there will
> be unavoidable changes in the interface. For instance, when going
> multithreaded and pressing Ctrl-C in ECL, the environment will try to
> suspend all threads and launch a debugger session in a SEPARATE
> thread. This debugger will be able to interrupt other threads or
> continue execution as usual. It is unavoidable to query INTERACTIVELY
> the user which process should be interrupted or how.
Trying to build from git, ecl_min gets stuck at
;;; Welcome to bare.lsp. Let's bring this instance up!
;;; About to load lsp/load.lsp
;;; Loading src:lsp;export.lsp
;;; Loading src:lsp;defmacro.lsp
;;; Loading src:lsp;helpfile.lsp
;;; Loading src:lsp;evalmacros.lsp
;;; Loading src:lsp;cmuutil.lsp
;;; Loading src:lsp;autoload.lsp
;;; Loading src:lsp;setf.lsp
;;; Loading src:lsp;predlib.lsp
Attaching strace on the process yields
futex(0x81483e4, 0x80 /* FUTEX_??? */, 0
Even C-c'ing is blocked. This is Linux-x86-32.
I'm on commit
Author: Juan Jose Garcia Ripoll <jjgarcia at jjgr-2.local>
Date: Wed Sep 23 23:52:47 2009 +0200
More information about the ecl-devel