(module vandusen-remote () (import chicken scheme extras srfi-13) (require-library regex) (import irregex) (use vandusen tcp srfi-18) (plugin 'remote (lambda () (let ((listener (tcp-listen ($ 'remote-port)))) (add-finalizer (lambda () (debug "finalizing remote listener") (tcp-close listener))) (thread-start! (lambda () (let loop () (receive (in out) (tcp-accept listener) (thread-start! (lambda () (and-let* ((match (irregex-match '(seq (submatch (+ (~ space))) " " (submatch (+ any))) (read-line in)))) (say (string-trim (irregex-match-substring match 2)) (irregex-match-substring match 1))) (close-input-port in) (close-output-port out))) (loop)))))))))