/ / Was genau ist die Clojure REPL? Was ist die Technologie dahinter? - clojure

Was genau ist die Clojure REPL? Was ist die Technologie dahinter? - clojure

Ich weiß, was die Clojure Repl tut und wie es nützlich ist, aber ich habe keine Informationen darüber, wie die Interna davon funktionieren. Ist es ein Programm, das in der JVM läuft? Wie funktionieren die Interna eines Replikats?

Antworten:

8 für die Antwort № 1

Die Technologie dahinter:

  1. der kleine Java Einstiegspunkt:

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

  2. die tatsächliche Implementierung der in Clojure geschriebenen REPL:

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

Die Links beziehen sich auf die 1.7.0-Versionen der Dateien, die zum Zeitpunkt des Schreibens die letzte stabile Version waren.

Um zusammenzufassen, was diese tun, clojure.main ist eine kleine Java - Klasse mit einem main Methode, die als Einstiegspunkt für die REPL dient. (Also, es ist nur ein Standard-Java-Programm.) Das main Methode akzeptiert alle Argumente und übergibt sie an eine Funktion in der clojure.main Clojure - Namespace (mit ein paar einfachen Methodenaufrufen in der clojure.lang.RT Klasse, die einige Kerndetails derClojure-Laufzeit, um auf die fragliche Funktion zu kommen - naja, streng genommen der Var, der die Funktion hält. Dann ruft die genannte Funktion einen Code auf, der tatsächlich Benutzereingaben liest, ihn auswertet, das Ergebnis ausgibt und um den gelesenen Eingang herumläuft, bis er beendet wird CD oder eine andere Methode, mit verschiedenen Komplikationen wie dem Einrichten einiger Var-Bindungen und so (um dem Benutzer die Kontrolle über einige Aspekte der REPL-Operation und bestimmte Compiler-Einstellungen zu erlauben).