Comment recharger une clojure fichier dans REPL

Quel est le meilleur moyen de recharger les fonctions définies dans un Clojure fichier sans avoir à redémarrer le REPL. Dès maintenant, afin d'utiliser le fichier mis à jour j'ai:

  • modifier src/foo/bar.clj
  • fermer le REPL
  • ouvrir le REPL
  • (load-file "src/foo/bar.clj")
  • (use 'foo.bar)

En outre, (use 'foo.bar :reload-all) ne résulte pas en effet requis, qui est de l'évaluation de la modification des corps de fonctions et de retour, de nouvelles valeurs, au lieu de se comporter en tant que la source n'ont pas changé.

  • (use 'foo.bar :reload-all) a toujours fonctionné pour moi. Aussi, (load-file) ne devrait jamais être nécessaire si vous avez votre classpath mis en place. Qu'est-ce que "l'effet" vous n'obtenez pas?
  • Oui, qu'est-ce que le "effet"? Poster un échantillon bar.clj de détails sur le "effet".
  • En effet je voulais dire que si j'avais une fonction (defn f [] 1) et j'ai changé sa définition de (defn f [] 2), il me semblait que lorsque j'question (use 'foo.bar :reload-all) et d'appeler la f la fonction doit retourner 2, pas 1. Malheureusement, il ne fonctionne pas comme cela pour moi et chaque fois que je change le corps de la fonction, j'ai redémarrer le REPL.
  • Vous devez avoir un autre problème dans votre configuration... :reload ou :reload-all devrait à la fois de travail.
InformationsquelleAutor pkaleta | 2011-10-05