[Ecls-list] Invalid octet sequence -> SIMPLE-ERROR

Matthew Mondor mm_lists at pulsar-zone.net
Wed Aug 5 22:06:08 UTC 2009


On Wed, 29 Jul 2009 21:41:08 -0400
Matthew Mondor <mm_lists at pulsar-zone.net> wrote:

> This is not directly related but I also noticed read(2)/write(2)
> syscalls being made for every byte when using a stream over a socket
> despite passing :buffering :line to socket-make-stream.  I've not
> looked at the internal code for this yet.

So after checking the related ECL code, it seems that unlike SBCL
make-socket-stream which expects:

:buffer with :none :line or :full

ECL make-socket-stream expects:

:buffering-mode with nil, :line-buffered and :fully-buffered.

This explains the buffering problems I was experiencing, as the only
documentation I had was for SBCL sockets, and since ECL implementation
was considered largely compatible I didn't expect this would be
different.

After modifying my code to use the argument ECL expects the buffering is
fine for socket I/O, although I noticed that I/O to slime/swank console
still uses a syscall per character (I didn't look into why yet).

I'm unsure if it's best to keep the current ECL parameters or if the
socket code really should be SBCL compatible.  If the later, I could
file a PR ticket and try to provide a diff against CVS HEAD in it on
request.

Thanks,
-- 
Matt




More information about the ecl-devel mailing list