Helmut Eller e9626484@stud3.tuwien.ac.at writes:
Nicolas Neuss Nicolas.Neuss@iwr.uni-heidelberg.de writes:
If Slime is not already running, the load command is not executed.
If Slime is already running, Femlisp is loaded, but the package is not
set.
Can someone tell me how I can achieve my goal?
Yes, this is bit more difficult because most of the commands work asynchronously. I changed slime-start-and-load a bit so that it should be usable for your needs.
Thank you, Helmut. This works fine. Femlisp loads, and I am left with an "APPLICATION>" prompt.
In general If you need commands of this sort, it's usually the easiest to write a small CL function for the job, so that Emacs can make a single RPC and doesn't need so much synchronization.
I tried to set the package in the file being loaded, but it did not work because *PACKAGE* is specially bound during LOAD.
PS: Another problem is that executing (slime) apparently sets back some variables, e.g. *READ-DEFAULT-FLOAT-FORMAT* which I have set to DOUBLE-FLOAT when loading Femlisp. Why is that?
Can't help you here without more details. Which Lisp are you using? Which communication style? Are threads involved? We don't set *READ-DEFAULT-FLOAT-FORMAT* explicit, but there's always the possibility for bug and that we used WITH-STANDARD-IO-SYNTAX in a wrong place.
I have tried it now again with CMUCL and I could not reproduce this error, i.e. when I do `M-x slime', *READ-DEFAULT-FLOAT-FORMAT* remains at 'DOUBLE-FLOAT. Fine. However, I see that the package of the REPL is reset to CL-USER. For me, it would be better if it remained FL.APPLICATION.
Or should I use a different function for bringing up the SLIME-REPL buffer?
Thank you very much,
Niko.