it seems to me that it would still be possible to overflow buffers when sending multiple top-level forms, if uLisp takes long enough to execute one of them.
In general yes, but the most important case to solve is when the forms are either defun or defvar.
it seems almost wasteful to add a symbol to control this
Yes, I agree. I’ve tried to think about whether it would be possible to do it automatically. Some ideas:
-
Turn off echo if a comment is encountered, since you don’t normally type comments in the REPL.
-
Turn echo back on automatically if there is no activity on the serial port for some time interval, such as a second.