anton_nazarov: (Default)
Поставил свежую версию slime из cvs, оказалось там теперь есть backend для mit-scheme, а ещё существует backend для clojure.
Про его установку и настройку здесь.
Clojure - это относительно новый диалект lisp, работающий на платформе java. В нём реализован интересный подход к многопоточности и сделан упор на функциональное программирование без побочных эффектов.

Так что теперь у меня работает sbcl, clojure и mit-scheme.



Чтобы использовать slime с этими языками надо в .emacs написать следующее:
(setq inferior-lisp-program "/usr/bin/sbcl") ; <-- insert your path
(add-to-list 'load-path "/home/anton/local/share/emacs/slime") ; <-- insert your path
(add-to-list 'load-path "/home/anton/local/share/emacs/slime/contrib") ; <-- insert your path
(require 'slime)
(require 'slime-autoloads)
(slime-setup '(slime-fancy slime-scratch slime-editing-commands slime-fuzzy slime-presentations slime-scheme))

(setq slime-net-coding-system 'utf-8-unix)
(setq common-lisp-hyperspec-root "/home/anton/programing/doc/lisp/HyperSpec/"); <-- insert your path

(setq slime-lisp-implementations
	     '((mit-scheme ("mit-scheme") :init mit-scheme-init)))

(add-to-list 'slime-lisp-implementations '(sbcl ("sbcl" "--core" "/home/anton/local/share/sbcl.core-for-slime")))

(defun mit-scheme-init (file encoding)
  (setq slime-protocol-version 'ignore)
  (format "%S\n\n"
	  `(begin
	    (load-option 'format)
	    (load-option 'sos)
	    (eval 
	     '(construct-normal-package-from-description
	       (make-package-description '(swank) '(()) 
					 (vector) (vector) (vector) false))
	     (->environment '(package)))
	    (load ,(expand-file-name 
		    "/home/anton/local/share/emacs/slime/contrib/swank-mit-scheme.scm" ; <-- insert your path
		    slime-path)
		  (->environment '(swank)))
	    (eval '(start-swank ,file) (->environment '(swank))))))

(defun mit-scheme ()
  (interactive)
  (slime 'mit-scheme))

(defun find-mit-scheme-package ()
  (save-excursion
    (let ((case-fold-search t))
      (and (re-search-backward "^[;]+ package: \\((.+)\\).*$" nil t)
	   (match-string-no-properties 1)))))

(setq slime-find-buffer-package-function 'find-mit-scheme-package)

(add-to-list 'load-path "~/local/share/clojure-mode"); <-- insert your path
(require 'clojure-auto) 
(setq swank-clojure-binary "/home/anton/bin/clojure") ; <-- insert your path
(add-to-list 'load-path "~/local/share/swank-clojure") ; <-- insert your path
(require 'swank-clojure-autoload) 

Profile

anton_nazarov: (Default)
anton_nazarov

September 2014

S M T W T F S
 123456
78910111213
14 151617181920
21222324252627
282930    

Syndicate

RSS Atom

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Aug. 21st, 2025 06:58 pm
Powered by Dreamwidth Studios