/ / Quel est exactement le REPL Clojure? Quelle est la technologie derrière cela? - clojure

Quelle est exactement la Clojure REPL? Quelle est la technologie derrière cela? - clojure

Je sais ce que le Clojure Repl Est-ce que et en quoi cela est utile, mais je n’ai aucune information sur son fonctionnement interne. Est-ce un programme en cours d'exécution dans la machine virtuelle Java? Comment fonctionne le fonctionnement interne d'un repl?

Réponses:

8 pour la réponse № 1

La technologie derrière elle:

  1. le minuscule point d'entrée Java:

    https://github.com/clojure/clojure/blob/clojure-1.7.0/src/jvm/clojure/main.java

  2. l'implémentation réelle du REPL écrit en Clojure:

    https://github.com/clojure/clojure/blob/clojure-1.7.0/src/clj/clojure/main.clj

Les liens renvoient aux versions 1.7.0 des fichiers, il s’agit de la version stable la plus récente au moment de l’écriture.

Pour résumer ce qu'ils font, clojure.main est une petite classe Java avec un main méthode qui sert de point d’entrée au REPL. (Donc, c’est juste un programme Java standard.) main méthode accepte tous les arguments et les transfère à une fonction du clojure.main Clojure namespace (en utilisant quelques appels simples aux méthodes de la clojure.lang.RT classe qui implémente certains détails de base de laClojure runtime pour obtenir la fonction en question - bien, à proprement parler le Var qui détient la fonction). Ensuite, la fonction en question appelle le code qui lit réellement l’entrée de l’utilisateur, l’évalue, imprime le résultat et boucle à nouveau l’entrée de lecture plus, jusqu’à ce qu’elle se termine par CD ou une autre méthode, avec diverses complications telles que la configuration de certaines liaisons Var et autres (pour permettre à l’utilisateur de contrôler certains aspects du fonctionnement de REPL et de certains paramètres du compilateur).