We have, at some point in time, used the following tools:
- Clojure (using leiningen as a platform/dependency manager)
- Morse (data visualizer, can run code, and can be quite customizable) Morse has the ability to customize views, using JavaFX as a GUI platform, that allows for user controlled dispay of information in an environment.
- Transcriptor: This is a 3rd party library designed to run files and log output and process the forms and the environment of the file.
- nREPL: This is a more customizable version of REPL that is more extensible and customizable, though it is a bit of a legacy tool, and we want to move away from using it. Leiningen uses an nREPL environment by default.
- Clojure subrepls (via clojure.main/repl): This is a core language feature that allows for the instantiation of a new REPL in the current environment, but exposes various function hooks for customizing the behavior of the REPL environment. As of this point (9/26/24), we are trying to remove the utilization of nREPL, transcriptor, which we have for the most part been able to accomplish. Additionally, the current iteration of the tool does not use the transcriptor either, since it is built on top of the existing clojure.main/repl function to extend the REPL environment. The transcriptor, instead, is used to load a file into the transcriptor.
This is for taking the babel project and packaging it into a jar for using as a dependency of other projects.
- From the babel project, in the main directory, run the following commmands
lein pomThis updates the pom file for the project.lein jarThis packages the project into a jar file for running.lein installThis installs the project locally so that it can be used as a dependency in other projects.
- At this point, the package should be installed locally on the computer, and so to use it in another project,
you can load this into the project, in the
project.cljof the new project add the following::dependencies [babel2 "0.1.0-SNAPSHOT"].
- Make sure that babel is loaded into the project.
- Run a REPL environment in the project folder with
lein repl - Load the namespace with
(require '[babel2.core :as babel])as a standalone line. This will give an execution error, but it is necessary, and everything else will eventually work. - Now, a babel REPL can be run with
(babel/run-in-repl)will load a babel environment.
When we eventually want to deploy Bable to Clojars, the following links/tutorials should be helpful.