On Mon, Sep 12, 2016 at 5:53 PM, Joerg Schilling <schily(a)schily.net> wrote:
Doug McIlroy <doug(a)cs.dartmouth.edu> wrote:
> Interesting, but then nobody did run a
modern shell on one of these
machines or
> everybody did type slowly, so the character
lossage problem did not
occur.
I'm afraid I don't get the point, apparently something about the
relative performance of stream- and non-stream tty drivers. How
do shells get into the act? And didn't uucp, which was certainly
not a slow typist, appear like any dial-up connection and thus
use /dev/ttyxx? (I cannot recollect, though, when dial-up uucp
finally ceased.)
In 1982, I created a conceptional implementation and in 1984, I integrated
a
cursor editable history into my shell.
As a result, this shell needed to switch the tty between raw and cooked
mode.
With the traditional UNIX tty driver, this was no problem, but with the
unfixed
AT&T strams based tty driver, this causes character loss.
With such a shell, the conceptional bug in the original AT&T streams caused
character loss when you type fast while the last command is going to
terminate
and the shell takes the input while switching the tty into raw mode.
With the fix from Sun from around 1989, there is a new streams message that
informs the lower side of the stream about how many characters re going to
be
read in raw mode. This permits to keep the other caracters in the edit
buffer
and avoids the character loss seen with the original AT&T streams driver
concept.
AT&T STREAMS and research streams (note difference in case and specificity
of origin) were two separate things. v8 would have had the latter; you are
presumably referring to systems using the former. It is unsurprising that
bugs in the two would, in many cases, be disjoint: that is, the bug you are
referring to in AT&T STREAMS quite possibly wasn't in the research streams.
All modern shells use such an integrated history editor....
There is considerable difference on the meaning of "modern" with respect to
this facility in recent shells, but this isn't the place for a holy war.
- Dan C.