On Apr 1, 2010, at 2:10 PM, Helmut Eller wrote:
- Patrick May [2010-04-01 19:59+0200] writes:
Interesting. I tried this with SBCL and it worked. Why would ccl64 behave differently? (Code below.)
Probably because *readtable* is a only modified in the per-thread binding in CCL and if you only change it in the repl thread other threads don't see that.
Thanks for the explanation. The problem seems to be with my mental model of how Slime is working.
My mental model was that when I evaluate forms in the code buffer, the evaluation takes place in the REPL, since that's where I see the results (except for those displayed in the minibuffer).
Since that model was clearly incorrect, I did the unthinkable and read the manual. Sure enough, section 3.1.3 discusses swank:*default-worker-thread-bindings* and even mentions issues with printer and reader behavior. Section 6.2.1 touches on similar issues with swank:*communication-style*.
My goal is to have my development and testing in Slime reflect exactly what will happen when I run the same code in the same file from the command line. I see three possible ways of achieving this:
1) Configure Clozure to behave more like SBCL, if possible. 2) Use swank:*default-worker-thread-bindings* externally to the file somehow. 3) Set swank:*communication-style* to :fd-handler.
Are there other solutions? What is my best option? What are the drawbacks to using :fd-handler?
Thanks,
Patrick