On 9-Jan-09, at 8:50 AM, Helmut Eller wrote:
The debugger is globally installed, and the io streams are globally redirected from within SWANK threads, aren't they?
Yes.
Are you implying that threads created with :use-standard-initial-bindings=nil can modify ccl::standard-initial-bindings (and hence the bindings for the threads created by the webserver) simply by setting *standard-output*? That could be.
Helmut.
Here is Gary's reply on openmcl-devel on how to set the initial or `static' bindings of such variables rather than the thread-local binding. Perhaps this is enough to obtain the desired behavior?
Gary Byers wrote:
"If I understand the question correctly, the answer is that
(CCL::%SET-SYM-GLOBAL-VALUE sym value)
behaves like CL:SET, only it ignores any thread-local/dynamic bindings of the variable and modifies the global/static binding.
The standard stream variables (*TERMINAL-IO*, etc.) are bound in each thread (well, each thread that's created by the lisp); the initial values of these bindings are the static values of the variables. So, setting the global/static value of *TERMINAL-IO* would affect the value of *TERMINAL-IO* in any subsequently-created threads."
- Scott