Il semble que pour installer Clojure dans chaque nouvel IDE, je dois le réinstaller complètement et en créer une copie. Et l'exécution du REPL semble être en cours d'exécution d'un programme Java. Je viens d'un arrière-plan Ruby, où les programmes Ruby sont exécutés par ruby program.rb
, et le ruby étant un programme exécuté d'un endroit, sur le fichier (je suis conscient que cela est similaire à comment cela fonctionne pour Java, python, etc.).Comment les programmes/compilateurs/interprètes de clojure fonctionnent-ils réellement?
Est-ce que le "interpréteur" de clojure est simplement un fichier Java compilé qui prend le fichier .clj comme argument, et fait des choses dessus?
Lorsque vous chargez un fichier .clj dans 'clojure.main', qu'arrive-t-il au fichier réel? Vous mentionnez qu'il est "compilé" dans le bytecode JVM ... est-ce à un point où ce code JVM est sorti en tant que fichier supplémentaire, et ce fichier est exécuté par la JVM elle-même? –
Normalement, aucun fichier '.class' n'est produit, mais vous pouvez le demander si vous le souhaitez (voir' (doc compile) 'et' (doc * compile-files *) '). Il n'y a aucune raison de s'inquiéter à ce sujet la plupart du temps. Notez que ce mode de fonctionnement n'est pas particulier à Clojure; Python fait la même chose, en compilant des fichiers '.py' en bytecode Python, puis en l'exécutant. Une différence est que Python sort les modules compilés en tant que fichiers '.pyc' par défaut, mais cela n'est même pas toujours possible (par exemple en raison de problèmes de permission) et n'a aucune incidence sur la façon dont le code est exécuté. –
Si je crée un fichier '.class' et que je le passe à Bob, serait-il capable de l'exécuter sans installer clojure? –