Je suis heureux d'utiliser swank-clojure, installé via elpa. Mais j'aimerais travailler avec deftype, defprotocol, etc., qui ne sont pas disponibles dans clojure 1.1.Puis-je utiliser swank-clojure avec la branche master clojure 1.2?
Pour utiliser mes propres chemins de classe, j'utilise l'excellente suggestion de Rick Moynihan dans le stackoverflow question about setting custom classpaths, qui devait mettre en place un script comme:
#!/bin/bash
java -server -cp "./lib/*":./src clojure.main -e "(do (require 'swank.swank) (swank.swank/start-repl))"
Et cela fonctionne à merveille si le fichier jar clojure lib est 1.1, mais avec 1,2, il explose:
Exception in thread "main" java.lang.NoSuchMethodError: clojure.lang.RestFn.<init>(I)V (macroexpand.clj:1)
at clojure.lang.Compiler.eval(Compiler.java:5274)
at clojure.lang.Compiler.load(Compiler.java:5663)
at clojure.lang.RT.loadResourceScript(RT.java:330)
at clojure.lang.RT.loadResourceScript(RT.java:321)
at clojure.lang.RT.load(RT.java:399)
at clojure.lang.RT.load(RT.java:371)
at clojure.core$load__5663$fn__5671.invoke(core.clj:4255)
at clojure.core$load__5663.doInvoke(core.clj:4254)
at clojure.lang.RestFn.invoke(RestFn.java:409)
...and many, many more
Ainsi est-il une incantation magique pour faire ce travail, ou la compatibilité clojure 1.2 pas encore là?
C'est bon. Avez-vous testé cela avec un projet vide? (Un répertoire 'lib /' avec Clojure et swank et au plus un squelette d'un espace de nommage dans le répertoire 'src /'.) Aussi, au cas où quelque chose est en fait le problème avec votre projet et/ou configuration swank, ça pourrait être utile pour voir toute la trace de la pile ... –
@ Michał Marczyk: Merci, ça m'a aidé à me débrouiller. –