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

Gustavo gugamilare at gmail.com
Sat Sep 4 13:57:35 UTC 2010


(Sorry, I had forgotten to CC).

Hello, James,

I'm not a bordeaux-threads maintainer, but I can answer your question.
Duplicates are explicitly removed from the list *default-special-bindings*
before passing it's value to progv. Take a look the function
bt::binding-default-specials.

Gustavo.

2010/9/4 james anderson <james.anderson at setf.de>

> 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
> *
>
>
> _______________________________________________
> Bordeaux-threads-devel mailing list
> Bordeaux-threads-devel at common-lisp.net
> http://common-lisp.net/cgi-bin/mailman/listinfo/bordeaux-threads-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/bordeaux-threads-devel/attachments/20100904/8b7ca61b/attachment.html>


More information about the bordeaux-threads-devel mailing list