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 multiple user interfaces: IDE, CLI; the "R" and "P"
- we provide a protocol
- for network REPLs, build nrepl server on top of what we provide
- for in-process REPLs, build CLI on top of what we provide
- we provide a protocol
Labels: