Although I haven't tried to put the pieces together to do this, I _think_ the pieces are:
1. It's easy to make a "REPL server". Following the early sections of the tutorial from https://docs.racket-lang.org/more/index.html you could something like the following. (For production you might want to go further into the tutorial and e.g. use custodians.) #lang racket/base (require racket/tcp) (define (serve port) (define listener (tcp-listen port 5 #t)) (let loop () (accept-and-handle listener) (loop))) (define (accept-and-handle listener) (define-values (in out) (tcp-accept listener)) (parameterize ([current-input-port in] [current-output-port out]) (read-eval-print-loop)) (close-input-port in) (close-output-port out)) 2. When you connect to that REPL server, at its prompt you could use `dynamic-rerequire` to (re)load your code. https://docs.racket-lang.org/reference/interactive.html#%28def._%28%28lib._racket%2Frerequire..rkt%29._dynamic-rerequire%29%29 As I mentioned on IRC last night before I had to run, one example of wrapping up dynamic-rerequire is the racket-reloadable package: https://github.com/tonyg/racket-reloadable I hope this helps a little? If not hopefully someone with more hands-on experience could chime in. (I love the idea of live-coding music and games! But how I actually use Racket, my comfort zone is "version-controlled source files are the single source of recreatable truth". So, I don't have a lot of mileage with this.) -- You received this message because you are subscribed to the Google Groups "Racket Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.

