[Ecls-list] Important changes ahead

Juan Jose Garcia-Ripoll jjgarcia at users.sourceforge.net
Thu Nov 23 17:06:10 UTC 2006


Hi,

I have been working on a new implementation of streams which separates
the character and byte translation issues from the actual I/O to the
file, socket or whatever device.

The result is a new lisp object EXT:DEVICE, which is used to actually
implement files or windows sockets, and which is expected to have
octed based I/O operations. On top of this I built streams with
optional support for buffering on the lisp level (not yet finished)
and expect to be able to have external formats using libiconf and some
code I found out there to do it.

The design is tentative. Please comment it. I have set up a Mercurial
(*) repository where you can inspect the code. The repository is at
http://ecls.sourceforge.net/cgi-bin/hgwebdir.cgi/ecl and for instance here
http://ecls.sourceforge.net/cgi-bin/hgwebdir.cgi/ecl/file/9875b83c27ff/src/h/object.h
you will see the definition of the ecl_device object and here
http://ecls.sourceforge.net/cgi-bin/hgwebdir.cgi/ecl/file/9875b83c27ff/src/c/device.d
the actual implementation.

I await your comments. The code might or might not compile on all
platforms. That, and the need of feedback on the design are the
reasons why I will wait some time before committing these changes.

Regards,

Juanjo

(*) Mercurial is a portable, lightweight, distributed version control
system with support for web publishing of repositories. I prefer it
over Darcs and have been using it for some time. You find binaries for
Windows/OSX here http://www.selenic.com/mercurial/




More information about the ecl-devel mailing list