[flexi-streams-devel] New release 0.11.1
Edi Weitz
edi at agharta.de
Fri Apr 27 10:20:23 UTC 2007
Hi Anton,
sorry for the delay. I have to think about this a bit more, but
here's some preliminary feedback:
On Sat, 21 Apr 2007 22:33:02 +0400, Vodonosov Anton <vodonosov at mail.ru> wrote:
> Edi, as far as I understand external format with multibyte encodings
> and cr-lf style newlines are not optimized because its difficult to
> predict number of characters that will fit into buffer.
>
> We can solve it if we will always have few reserved bytes in
> buffer. 20 will be sufficient for any encoding. I.e. loop while we
> have at least 20 free bytes in buffer.
>
> This solution is implemented in the attached patch (against 0.11.2).
Thanks. The win for UTF-8 is impressive, but I'm a bit concerned that
you'll lose a lot of performance for 8-bit encodings. I think it'd be
better to leave the 8-bit version in there and only use your code for
other strings.
> The patch also contains some additions in tests. As for separate
> tests for READ-SEQUENCE/WRITE-SEQUENCE, maybe thay are useless - I
> noticed that, at least in CLISP, WRITE-LINE is implemented using
> WRITE-SEQUENCE. So in case of errors in WRITE-SEQUENCE both
> WRITE-LINE and WRITE-SEQUENCE tests fail.
Thanks, more tests are always good.
> In regard to the way I reused existing WRITE-CHAR code in
> STREAM-WRITE-SEQUENCE. I do not like mach working throught temporary
> stream, for example we have redundant slot access in
> WRITE-BYTE*. I've tried to keep changes small and not disturb other
> code. Maybe with some refactoring it will be possible to have more
> clean and efficient code.
Yes, the more we optimize for performance, the more of a mess it
becomes... :(
> BTW, I've started changing STREAM-WRITE-SEQUENCE with the version
> provided below. It is more efficient, but it isn't thread safe.
Hmmm...
A I said, I have to ponder this a bit more, but unfortunately I'm too
busy right now. More later.
Cheers,
Edi.
More information about the Flexi-streams-devel
mailing list