Dirk Gerrits wrote:
I was told by Brian Mastenbrook that it required threading, and that some work on it had been done. Raymond Toy replied that threads were not strictly necessary, and that ILISP did it by interrupting the current computation, performing the requested action, and then resuming the computation again.
I would like to point out some dangers associated with both multiple threads and interrupting the current computation, performing the requested action, and then resuming the computation again.
The problem is that the "background process" muts be written to be thread-safe. This means that any globally accessable "objects" that might be undergoing modification by the "background process" must be locked in some manner and the computation performed by the REPL process must respect those locks.
I am providing this information based on my experiences with the Lisp Machine "mouse process" and the care that was required to insure global objects were not modified in an unsafe manner.
Lots of "random" bugs can be caused by ignoring thread safety.