mirror of
git://git.code.sf.net/p/sbcl/sbcl
synced 2026-09-10 07:26:40 -04:00
* Public interface changes
** proper thread objects instead of thread ids
** (MAKE-THREAD FN &KEY NAME) => THREAD
** (THREAD-NAME THREAD): threads have names (useful for debugging,
logging)
** (THREAD-ALIVE-P THREAD)
** *CURRENT-THREAD* special is bound in each thread
** (LIST-ALL-THREADS) returns a list of all active threads
* Notes
** thread-init moved earlier in cold-init and reinit
** the lisp side does not ever use os_thread_t (it was problematic due
to pthread_t being opaque) but struct thread *
** threads are reaped (i.e. the thread is pthread_joined and struct
thread* is freed) by the thread object's finalizer. This makes
it easy to implement resetting threads. Running threads are kept
in sb-thread::*all-threads*.
** threads block all blockable signals when going down:
interrupt-thread and others cannot catch it at an inappropriate
moment, for instance calling quit outside the catch %end-of-the-world
** target-thread.lisp renamed target-multithread.lisp,
target-thread.lisp now contains the generic thread support
** new file early-thread.lisp: define *current-thread*
** removed thread state STOPPING that was only used for assertions and
complicated matters
** renumbered thread states
** sb-thread::release-spinlock now releases the locks with
non-fixnum value, but is no longer safe to call multiple times
** much simplified locking for threads and gc
** fixed deadlocking bugs introduced by the pthread merge
|
||
|---|---|---|
| .. | ||
| .cvsignore | ||
| debug.lisp | ||
| inspect.lisp | ||
| Makefile | ||
| README | ||
| repl.lisp | ||
| sb-aclrepl.asd | ||
| sb-aclrepl.texinfo | ||
| tests.lisp | ||
| toplevel.lisp | ||
INTRODUCTION
============
The sb-aclrepl module offers an AllegroCL style Read-Eval-Print Loop for
SBCL. An AllegroCL style inspector is integrated. Adding an AllegroCL style
debugger is planned.
USAGE
=====
To start sb-aclrepl as your read-eval-print loop, put the form
(require 'sb-aclrepl)
in your ~/.sbclrc initialization file.
EXAMPLE ~/.sbclrc FILE
======================
(ignore-errors (require 'sb-aclrepl))
(when (find-package 'sb-aclrepl)
(push :aclrepl cl:*features*))
#+aclrepl
(progn
(setq sb-aclrepl:*max-history* 100)
(setf (sb-aclrepl:alias "asdc")
#'(lambda (sys) (asdf:operate 'asdf:compile-op sys)))
(sb-aclrepl:alias "l" (sys) (asdf:operate 'asdf:load-op sys))
(sb-aclrepl:alias "t" (sys) (asdf:operate 'asdf:test-op sys))
;; The 1 below means that two characaters ("up") are required
(sb-aclrepl:alias ("up" 1 "Use package") (package) (use-package package))
;; The 0 below means only the first letter ("r") is required, such as ":r base64"
(sb-aclrepl:alias ("require" 0 "Require module") (sys) (require sys))
(setq cl:*features* (delete :aclrepl cl:*features*)))
Questions, comments, or bug reports should be sent to Kevin Rosenberg
<kevin@rosenberg.net>.