with "test" being filename in the current directory, containing e.g. string "123456";
It works well in other lisp implementations I've tested, though it pretends end of file for all SBCL versions I've tried (incl. current git version); calling e.g. (read cs) works well, thus it seems to be just the "read-char-no-hang" issue. And when both parts of the concatenated stream are created by make-string-input-stream, it works well even for read-char-no-hang calls.
Notice that this way (that is using concatenated stream based on a string and a file stream, with calling read-char-no-hang) is used e.g. in Maxima (for batches including ?-based calls to lisp), and it breaks on it there. Thus it is important for a nontrivial amount of users to have this fixed.
The bug is still present, try e.g.
(with-open-file (s "test") ted-stream (make-string- input-stream "?") s)))
(let ((cs (make-concatena
(read-char-no-hang cs)
(read-char-no-hang cs)
(read-char-no-hang cs)
(read-char-no-hang cs)
))
with "test" being filename in the current directory, containing e.g. string "123456";
It works well in other lisp implementations I've tested, though it pretends end of file for all SBCL versions I've tried (incl. current git version); calling e.g. (read cs) works well, thus it seems to be just the "read-char-no-hang" issue. And when both parts of the concatenated stream are created by make-string- input-stream, it works well even for read-char-no-hang calls.
Notice that this way (that is using concatenated stream based on a string and a file stream, with calling read-char-no-hang) is used e.g. in Maxima (for batches including ?-based calls to lisp), and it breaks on it there. Thus it is important for a nontrivial amount of users to have this fixed.