[slime-devel] Emacs command for loading Slime and application
Nicolas Neuss
Nicolas.Neuss at iwr.uni-heidelberg.de
Tue Sep 28 14:20:06 UTC 2004
Helmut Eller <e9626484 at stud3.tuwien.ac.at> writes:
> Nicolas Neuss <Nicolas.Neuss at iwr.uni-heidelberg.de> writes:
>
>> CL-USER> *READ-DEFAULT-FLOAT-FORMAT*
>> SINGLE-FLOAT
>>
>> When I then set the default format manually in the REPL, it is reset by
>> `M-x slime'.
>
> That could be a bug or a feature depending on your expectations.
>
> Changing *READ-DEFAULT-FLOAT-FORMAT* globally is rather hard in SBCL.
> SBCL's native top level loop is executed within with-rebound-io-syntax,
> i.e. most reader variables have a non-toplevel binding in the initial
> thread and all our threads are spawned from that thread. In SBCL, a new
> threads inherits (all?) the dynamic bindings of the parent thread and so,
> if you change *READ-DEFAULT-FLOAT-FORMAT* in one thread, the change it
> will not be visible in other threads. M-x slime also creates a new
> threads and the bindings are those from the initial thread.
>
> I've heard that SBCL's inheriting semantics for dynamic variables are
> an ongoing debate, maybe they change it.
>
> Helmut.
Thank you for the explanation. Hmm, maybe I should allow my application to
operate also with SINGLE-FLOAT. I fear, however, that the accuracy will
usually not be sufficient such that this would put a burden on the user to
set *READ-DEFAULT-FLOAT-FORMAT* to DOUBLE-FLOAT when starting up his/her
Lisp. (This should be sufficient, I hope.)
At the moment, I simply do not use 'M-x slime' for bringing up the REPL,
but this function:
(defun show-repl-maybe-start-slime ()
(interactive)
(if (slime-connected-p)
(slime-display-output-buffer)
(slime)))
(global-set-key [f9] 'show-repl-maybe-start-slime)
This works for CMUCL (no threads). For SBCL, I guess that I will set
*READ-DEFAULT-FLOAT-FORMAT* also in my .sbclrc file.
Thanks again, Nicolas.
More information about the slime-devel
mailing list