2010-11-28 25 views
0

Je les éléments suivants de la rempl de boue (aucune fonction de clojure.contib trouvée):clojure.contrib de bitume et inférieure question-Lisp-programme

M-X slime 
user=> (:require 'clojure.contrib.string) 
nil 
user=> (doc clojure.contrib.string/blank?) 
java.lang.Exception: Unable to resolve var: clojure.contrib.string/blank? in this context (NO_SOURCE_FILE:10) 

Et ce qui suit lors du démarrage clojure de la console (mais ici tout est trouvé OK):

[email protected]~/clojure/cloj-1.2$ java -cp /home/adr/clojure/cloj-1.2/clojure.jar:/home/adr/clojure/cloj-1.2/clojure-contrib.jar -server clojure.main 
user=> (:require 'clojure.contrib.string) 
nil 
user=> (doc clojure.contrib.string/blank?) 
------------------------- 
clojure.contrib.string/blank? 
([s]) 
    True if s is nil, empty, or contains only whitespace. 
nil 

Dans mes emacs je les suivantes:

(setq inferior-lisp-program "java -cp /home/adr/clojure/cloj-1.2/clojure.jar:/home/adr/clojure/cloj-1.2/clojure-contrib.jar -server clojure.main") 

Mes pots de Clojure (1 .2) se trouvent dans '/home/adr/clojure/cloj-1.2'.

Je suis un débutant avec emacs, suivi quelques tutoriels. Depuis quelque temps, j'essaie d'utiliser la bibliothèque clojure.contrib d'Emacs, mais "M-X slime" ne trouve pas de clojure.contrib. S'il vous plaît, aidez-

Modifier: si cela pouvait aider, maintenant je l'ai vu que lorsque vous utilisez la boue MX il y a un message:

(progn (load "/home/adr/.emacs.d/elpa/slime-20100404/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.4493" :coding-system "iso-latin-1-unix")) 

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

Edit2: Mais il n'y a pas de message d'erreur si j'utilise MX slime-connect après avoir démarré un "lein swank" dans un répertoire (même en commençant par "MX slime-connect" il n'y a pas de bibliothèques clojure-contrib trouvées dans le REPL (bien qu'elles soient téléchargées par leiningen comme dépendance)).

Répondre

1

Il me semble que j'utilisais la mauvaise façon de « exiger » des bibliothèques du REPL (en raison de mon manque d'expérience avec clojure); lorsque vous utilisez une syntaxe telle que:

user=> (require 'clojure.contrib.string) 
nil 
user=> (clojure.contrib.string/blank? "asd") 
false 

toutes les bibliothèques sont trouvés OK (peu importe si vous utilisez "slime M-X" pour un non-Swank REPL ou "boue-connexion M-X" pour un serveur Swank). Donc, c'était entièrement mon erreur (j'ai trouvé des indications sur mon erreur à cette réponse stackoverflow: Why do I get an error when I run (use 'clojure.contrib.repl-utils)?)

1

Cette ligne:

(progn (load "/home/adr/.emacs.d/elpa/slime-20100404/swank-loader.lisp" :verbose t) (funcall (read-from-string "swank-loader:init")) (funcall (read-from-string "swank:start-server") "/tmp/slime.4493" :coding-system "iso-latin-1-unix")) 

est Common Lisp, pas Clojure, mais puisque vous définissez inferior-lisp-program à Clojure, slime ne peut pas démarrer un serveur swank.

Voir les sections suivantes swank-clojure project:

  • Connexion avec BOUE
  • Intégration
  • Swank-clojure.el

La fonctionnalité que vous voulez est probablement swank-clojure.el, mais il est n'est plus recommandé.

Comme vous utilisez déjà ELPA:

add-to-list 'package-archives 
     '("technomancy" . "http://repo.technomancy.us/emacs/") t) 

M-x package-install ;(slime-repl) 
M-x slime-connect 
+0

Merci; Je ne suis pas sûr d'où vient cette ligne, comme dans mes .emacs il n'y a rien de semblable. J'ai tout installé en utilisant ELPA (je ne sais pas si c'est pertinent). – aeter

+0

Merci; Je l'ai essayé, mais il ne cessait de se plaindre que le paquet 'archives-paquet' était vide. – aeter

+0

Je vais essayer avec certains des tutoriels sur le net; ça devrait être quelque chose de très simple qui me manque ici. Merci beaucoup pour votre temps à essayer de m'aider. – aeter