<meta http-equiv="content-type" content="text/html; charset=utf-8"><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; ">(Sorry, I had forgotten to CC).</span></div>
<div><span class="Apple-style-span" style="font-family: arial, sans-serif; font-size: 13px; border-collapse: collapse; "><br></span></div>Hello, James,<div><br></div><div>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.</div>
<div><br></div><div>Gustavo.</div><div><span class="Apple-style-span" style="border-collapse: separate; font-size: small;"><span class="Apple-style-span" style="border-collapse: collapse;"><br></span></span></div></span><div class="gmail_quote">
2010/9/4 james anderson <span dir="ltr"><<a href="mailto:james.anderson@setf.de">james.anderson@setf.de</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
re:<br>
<br>
(defvar *default-special-bindings* nil<br>
   "This variable holds an alist associating special variable symbols<br>
   to forms to evaluate. Special variables named in this list will<br>
   be locally bound in the new thread before it begins executing user<br>
code.<br>
<br>
   This variable may be rebound around calls to MAKE-THREAD to<br>
   add/alter default bindings. The effect of mutating this list is<br>
   undefined, but earlier forms take precedence over later forms for<br>
   the same symbol, so defaults may be overridden by consing to the<br>
   head of the list.")<br>
<br>
at least for sbcl and clozure, one needs to append to the list.<br>
does the spec say something else somewhere?<br>
<br>
<br>
* (progv '(a s a) '(1 2 3) a)<br>
<br>
; in: LAMBDA NIL<br>
;     (PROGV '(A S A) '(1 2 3) A)<br>
; --> LET UNWIND-PROTECT FLET BLOCK MULTIPLE-VALUE-BIND MULTIPLE-<br>
VALUE-CALL<br>
; --> BLOCK SB-C::%WITHIN-CLEANUP RETURN-FROM<br>
; ==><br>
;   (PROGN<br>
;    (LABELS ((#:UNBIND1 (SB-C::VARS)<br>
;               (DECLARE #)<br>
;               (LET #<br>
;                 #))<br>
;             (#:BIND0 (SB-C::VARS SB-C::VALS)<br>
;               (DECLARE #)<br>
;               (COND # # #)))<br>
;      (#:BIND0 '(A S A) '(1 2 3)))<br>
;    NIL<br>
;    A)<br>
;<br>
; caught WARNING:<br>
;   undefined variable: A<br>
;<br>
; compilation unit finished<br>
;   Undefined variable:<br>
;     A<br>
;   caught 1 WARNING condition<br>
<br>
3<br>
*<br>
<br>
<br>
_______________________________________________<br>
Bordeaux-threads-devel mailing list<br>
<a href="mailto:Bordeaux-threads-devel@common-lisp.net">Bordeaux-threads-devel@common-lisp.net</a><br>
<a href="http://common-lisp.net/cgi-bin/mailman/listinfo/bordeaux-threads-devel" target="_blank">http://common-lisp.net/cgi-bin/mailman/listinfo/bordeaux-threads-devel</a><br>
</blockquote></div><br>