[Ecls-list] Problems with slime

Ram Krishnan kriyative at gmail.com
Mon Feb 8 16:05:03 UTC 2010


Hi Juan,

In the absence of a :fd-handler, or :spawn communication style support 
in a SWANK backend, SLIME resorts to a continuous loop waiting for user 
input. I have hacked together a set of patches to get both :fd-handler 
and :spawn support in the SWANK backend implementation for ECL. I have 
only tested it on a Mac OS/Darwin system, but it should work on Linux 
systems as well. I have no idea about getting it to work on Win32.

Anyway, if anyone's interested the patches are available at:

http://github.com/kriyative/ecl-iphone-builder/blob/master/swank-ecl-patches.txt

Applying this file will change the default communication style (in 
swank-ecl.lisp) to :spawn, which requires multiprocessing.

Cheers,

-ram

Juan Jose Garcia-Ripoll wrote:
> Slime gets my computer at 100% activity because it has some strange 
> way of waiting for input: this is a loop over streams, inifite, using 
> read-char-no-hang without ever waiting. I am sure there are better 
> ways of doing this. This is in swank-backend.lisp -- do all 
> implementations have this problem?
>
> (defun wait-for-streams (streams timeout)
>   (loop
>    (when (check-slime-interrupts) (return :interrupt))
>    (let ((ready (remove-if-not #'stream-readable-p streams)))
>      (when ready (return ready)))
>    (when timeout (return nil))
>    (sleep 0.1)))
>
>
> -- 
> Instituto de Física Fundamental, CSIC
> c/ Serrano, 113b, Madrid 28006 (Spain)
> http://juanjose.garciaripoll.googlepages.com




More information about the ecl-devel mailing list