Add progress bar and interruptibility to loading up interpreted code
Motivation
When I load my project into cabal new-repl
, running main :: IO ()
doesn't do anything for around 3 minutes, with no progress bar and ignoring keyboard interrupts. It then works just fine after those 3 minutes. Subsequent reloads take less time, but still a few dozen seconds.
This is rather confusing and frustrating behavior, that at first led to me to assume it just didn't work at all, until I eventually left it running for long enough for it to boot up.
Proposal
It would be great if running interpreted code had some form of progress bar, or even just some sort of "loading..." indicator that disappears when it's loaded, if estimating progress is not practical. Likewise it would also be great if I could interrupt it early using ctrl-c
.