OK, I take it back. I'm persuaded that (read stream) should consume any and ALL whitespace that might be there following a read object. That is, upon finishing reading something, consume all whitespace until (listen stream) returns false or until the start of a new object is reached. Unfortunately, the spec seems to leave this open and implementations seem to consume one whitespace character (when present). Since (read-preserving-whitespace) is available when needed, (read) should consistently consume all whitespace leaving the read-pointer at the end of the stream or at the next item.
Is there a rationale for consuming only one whitespace character? The different behaviors of different implementations while reading from socket streams is making life interesting.
OK, I take it back. I'm persuaded that (read stream) should consume any and ALL whitespace that might be there following a read object. That is, upon finishing reading something, consume all whitespace until (listen stream) returns false or until the start of a new object is reached. Unfortunately, the spec seems to leave this open and implementations seem to consume one whitespace character (when present). Since (read-preservin g-whitespace) is available when needed, (read) should consistently consume all whitespace leaving the read-pointer at the end of the stream or at the next item.
Is there a rationale for consuming only one whitespace character? The different behaviors of different implementations while reading from socket streams is making life interesting.