Recently, Daniel Holtby improved the implementation of
racket/rerequire
, which, in turn, inspired me to improve
koyo's own code-reloading implementation. Version 0.9 (released today)
no longer restarts the application process on every change and, instead,
uses dynamic-rerequire
to only reload the modules that change as well
as any modules that depend on them. On Matchacha, which is about 11k
lines of Racket code (excluding whitespace), this improves reload times
by 5 to 10x, depending on the modules being reloaded.
Additionally, I added support for augmenting existing REPL
sessions with the functionality of raco koyo console
via
start-console-here
.
You can see the two changes in action in this short screencast.