[Bordeaux-threads-devel] *default-special-bindings* docstring in 0-8-8-dev

james anderson james.anderson at setf.de
Sat Sep 4 09:23:56 UTC 2010


re:

(defvar *default-special-bindings* nil
   "This variable holds an alist associating special variable symbols
   to forms to evaluate. Special variables named in this list will
   be locally bound in the new thread before it begins executing user  
code.

   This variable may be rebound around calls to MAKE-THREAD to
   add/alter default bindings. The effect of mutating this list is
   undefined, but earlier forms take precedence over later forms for
   the same symbol, so defaults may be overridden by consing to the
   head of the list.")

at least for sbcl and clozure, one needs to append to the list.
does the spec say something else somewhere?


* (progv '(a s a) '(1 2 3) a)

; in: LAMBDA NIL
;     (PROGV '(A S A) '(1 2 3) A)
; --> LET UNWIND-PROTECT FLET BLOCK MULTIPLE-VALUE-BIND MULTIPLE- 
VALUE-CALL
; --> BLOCK SB-C::%WITHIN-CLEANUP RETURN-FROM
; ==>
;   (PROGN
;    (LABELS ((#:UNBIND1 (SB-C::VARS)
;               (DECLARE #)
;               (LET #
;                 #))
;             (#:BIND0 (SB-C::VARS SB-C::VALS)
;               (DECLARE #)
;               (COND # # #)))
;      (#:BIND0 '(A S A) '(1 2 3)))
;    NIL
;    A)
;
; caught WARNING:
;   undefined variable: A
;
; compilation unit finished
;   Undefined variable:
;     A
;   caught 1 WARNING condition

3
*





More information about the bordeaux-threads-devel mailing list