Problem
The current ClojureScript REPL is tied heavily to the use of Java's embedded Rhino. We lack the set of abstractions and tools that would allow us to:
- plug any JavaScript VM in as the "E" in our REPL, the advantages of which include:
- faster development on alternate JSVMs
- ease of comparing how the same ClojureScript evaluates on multiple JSVMs
- the potential to evaluate the same code on multiple JSVMs simultaneously for compatibility testing
- protocolization of the evaluation component's communication model, allowing for either in-process or remote evaluators
- support for multiple user interfaces: IDE, CLI; the "R" and "P"
- via nrepl
- via command line
- ability of third parties to implement browser-based REPL without depending on compiler details (an inevitability?)
Labels: