I agree in principle, but my response is the same as before: I don't want to have to implement this SRFI from scratch, and this change would break backward compatibility with R6RS.  (We added string->vector and vector->string to R7RS-small to encourage the use of a mutable vector to build up strings.)

On Thu, Mar 5, 2020 at 4:19 AM Shiro Kawai <xxxxxx@gmail.com> wrote:
Regarding make-custom-textual-input-port:  It uses a string as a buffer, which doesn't play well with the implementations that uses quasi-immutable strings; by which I mean, a string is a pointer to an immutable string body or a structure consists of immutable chunks, and mutating a part of it involves more than just filling an array of characters.
I forgot how I argued during r6rs process (I'm too lazy to dig mail archive) but I should've opposed to it unless I overlooked it.

The string passed to read! is actually just an intermediate buffer from which port's reader reads one character at a time.  A vector of characters is sufficient for that purpose, plus it is guaranteed to be O(1) reference and mutation, while strings are not.

Using a string as a mutable buffer is a terrible custom that should go away.

So I propose to make it a vector of characters.