These haven't been in use for a long time (if ever), but are now fully
deprecated: if you want to receive system output, see dill's %logs task
instead.
This should no longer go into dill, but instead be controlled by drum
directly, since that's where system output gets rendered now (in the
common/default case).
Dill's new %logs endpoint can be used to receive system output as $told
nouns. Dill no longer prints system output itself, leaving the display
of it up to terminal handlers (or the runtime). For now, to maintain the
status quo, drum subscribes to dill %logs, and prints them inline in the
default session.
Now that %logs exists, dill can delegate responsibility for printing
system output to outsiders (like the runtime, or the terminal handler
agent). Here, we remove dill's printing logic, which was still coupling
it to the default session and drum's expected semantics.
A dill %logs task can be used to open and close subscriptions to "system
output". Whenever dill receives a %text, %talk, or %crud task, it
considers this "system output", and passes it along to all %logs
subscribers.
Autoprop has a timer that checks whether we're on a new/different runtime
periodically. When we detect we are, we re-build the props, so that they may
be re-published under that new version identifier.
However, we weren't updating the cached runtime version we store in state,
causing every firing of this timer to re-build the props.
Here, we correctly update state if we detect a difference, so that subsequent
timers don't trigger redundant rebuilds.
Previously, if the pointer for a syntax error pointed to the end of the file
(and the file ended in a newline) the code snippet rendering would try to
display a line _beyond_ the end of the file, causing a crash.
Here, we detect that case, and display `<<end of file>>` instead.
(Originally merged through #5812, but got lost somewhere along the way.)
Fixes#6287.