While I was working on the blogpost about long Clojure start times I noticed that REPLy (which is used by Leiningen and Boot both) eats up a considerable percentage of total load time.
In particular, reply.parsing namespace, which transitively loads sjacket and other libraries, stood very distinctively. I saw it as an opportunity to defer the loading of this namespace until the user enters their very first form into the REPL. This pull request makes reply.parsing be loaded in background to wait less.
After the patch, I got a consistent ~2 seconds improvement when loading reply.main. E.g.:
While I was working on the blogpost about long Clojure start times I noticed that REPLy (which is used by Leiningen and Boot both) eats up a considerable percentage of total load time.
In particular,
reply.parsing
namespace, which transitively loads sjacket and other libraries, stood very distinctively. I saw it as an opportunity to defer the loading of this namespace until the user enters their very first form into the REPL. This pull request makesreply.parsing
be loaded in background to wait less.After the patch, I got a consistent ~2 seconds improvement when loading
reply.main
. E.g.: