il clojure sostituisce emacs e melma


1

Ho configurato melma per emacs e posso eseguire molte diverse implementazioni di lisp comune. Che dire di usare una lingua come il clojure?

Ho provato questo modificando il mio .emacsfile:

(add-to-list 'load-path "~/slime/")  ; your SLIME directory                                                                                                                                                              
(setq slime-lisp-implementations
     `((sbcl ("/usr/bin/sbcl"))
       (clojure ("/usr/bin/clojure"))
       (ecl ("/usr/bin/ecl"))
      (clisp ("/usr/bin/clisp" "-q -I"))))
;(setq inferior-lisp-program "/usr/bin/sbcl") ; your Lisp system                                                                                                                                                         
(require 'slime)
(slime-setup '(slime-fancy))

Sembra funzionare ma c'è un'eccezione:

(progn (load "/home/d2b2/slime/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.19396"))

Inoltre ricevo uno strano messaggio nel mini-buffer:

polling "/tmp/slime2.4708" .. ddd (Abort with M-x 'slime-abort-connection'.)dove dddaumenta un timer in pochi secondi.

Clojure 1.1.0
user=> java.lang.Exception: Unable to resolve symbol: progn in this context (NO_SOURCE_FILE:1)
user=> user=> 

Ho deciso di eseguire un interprete commonlisp e confrontarlo. Questo è quello che ottengo dall'interpeter sbclprima di ricevere un prompt:

(progn (load "/home/d2b2/slime/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.19396"))

This is SBCL 1.0.55.0.debian, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
*
; loading #P"/home/d2b2/slime/swank-loader.lisp"
STYLE-WARNING: redefining EMACS-INSPECT (#<BUILT-IN-CLASS T>) in DEFMETHOD
STYLE-WARNING:
   Implicitly creating new generic function STREAM-READ-CHAR-WILL-HANG-P.
WARNING: These Swank interfaces are unimplemented:
 (DISASSEMBLE-FRAME SLDB-BREAK-AT-START SLDB-BREAK-ON-RETURN)
;; Swank started at port: 57199.
57199
* STYLE-WARNING:
   redefining THREAD-FOR-EVALUATION (#<STRUCTURE-CLASS
                                       MULTITHREADED-CONNECTION>
                                     #<SB-MOP:EQL-SPECIALIZER
                                       {1004A8CC43}>) in DEFMETHOD

Quindi viene visualizzato l'interprete lisp comune.

  1. Come configuro un clojure sostitu con melma o come posso risolvere il mio piccolo problema?

Risposte:


1

Esisteva un progetto di clokure per l'utilizzo di SLIME con Clojure ma ora è deprecato a favore di nrepl.el . La mia raccomandazione sarebbe di controllare nrepl.el.

nrepl è di fatto il sostituto di Clojure e con nrepl.el ha funzionalità simili a SLIME: esegui un REPL in Emacs, invii il codice dal tuo buffer (i), puoi saltare rapidamente alle definizioni, ottenere il completamento dinamico del codice, ecc. L'unico posto in cui l'ho trovato un po 'carente rispetto a SLIME è il debug, ma lo swank-clojure non supportava comunque il debugger di SLIME.


1

Per quanto ne so, clojure-swanknon viene più mantenuto; il modo preferito di interagire con Clojure di Emacs è attraverso nrepl .

Puoi controllare le nostre istruzioni di installazione per questo approccio qui ; sembrano estremamente semplici (anche se è vero, non li ho provati da quando non uso Clojure da un po ').

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.