[slime-devel] other "lisps" support?

Helmut Eller e9626484 at stud3.tuwien.ac.at
Sun Jan 30 09:02:32 UTC 2005


tom <scrawler at gmail.com> writes:

> Hi guys,
>
> how easily can slime be modified to support non-common-lisp languages?
>  I have one in mind that I'd love to use with slime...

Below is some code to use SLIME with Scheme48.  You can start it with
M-x slime48.

Only a few things work: evaluation, inspecting, apropos (a bit),
backtraces.
     
Interrupting doesn't work.  This could be implemented with threads,
but would have been painful in 0.57. They changed the threading
interface in the latest version (i think 0.57.1). It might be easier
there.

Currently, everything is evaluated in the SWANK package/module.  It
might be a good idea to have something like a current interaction
environment.

M-. (find-definition) is also missing.  AFAICT, Scheme48 doesn't keep
enough information around for a reliable M-. command.  It's probably
possible to find the package (module) for a definition and the default
file for that package.  ISTR, that Scheme48 can be configured
differently, so that all interface/structure/package information is
accessible in a central place.  That might be a good idea.  (In the
default configuration, the information about modules is distributed,
more or less randomly, in many different environments.)

The Swank code will very likely break if you grab a continuation and
return to the Swank code a second time.

I haven't use the scheme48 stuff in anger but there are obvious
limitations. If you want to use Scheme seriously, it might be easier
to start from scratch, i.e., reimplement the Emacs Lisp side.

Helmut.


(defun slime48 ()
  (interactive)
  (require 'slime)
  (let ((proc (slime-start-lisp 
	       "s48" (get-buffer-create "*s48*")
	       (concat ",config\n"
		       ",load " slime-path"swank-scheme48.scm\n"
		       ",in swank\n"
		       (format "(start-swank %S)" (slime-swank-port-file))
		       "\n"))))
    (slime-read-port-and-connect proc nil)))


-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: swank-scheme48.scm
URL: <https://mailman.common-lisp.net/pipermail/slime-devel/attachments/20050130/f51b5260/attachment.ksh>


More information about the slime-devel mailing list