James Long wrote:
The main problem, however, is that debugging isn't working. When any kind of error happens, it just hangs and the repl worker doesn't give me anything. Usually it opens up a new sub-repl, but I'm not exactly sure how this is different than the initial repl call
I think you're missing to set up an exception handler in the new (remote) thread. The default exception handler in a new thread just terminates the thread upon error and exits the thread with the exception object being stored in the thread's data structure (so that thread-join! will be able to throw it) (I don't know whether termite does it different, though).
I've once looked up (in _repl.scm I think) how Gambit sets up an exception handler for this; hm taking a quick look, I see:
(set! ##primordial-exception-handler-hook ##repl-exception-handler-hook)
probably you want to use this one.
Christian.