[Ecls-list] Major changes (help wanted)

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Mon Jan 5 11:08:21 UTC 2009

On Sat, Jan 3, 2009 at 3:47 PM, Anton Vodonosov <avodonosov at yandex.ru> wrote:
> I think about the fact, that all the Lisp
> compilers implement the same thing again and again,
> but people create their own libraries for the task
> because of portability issues, once again reimplementing
> the same thing.

There is a difference between missing features and missing libraries.
Take for instance CLOS. An implementation may provide an incomplete
implementation of the metaobject protocol, as it is the case of ECL,
and originate the need for a library that completes that
implementation. A different class are utility libraries: defsystem,
cffi, etc.

The case of external formats in my opinion belongs to the first
family. It is something that should be provided by the implementation,
for I/O is such a frequent task that it should be fast and efficient.

AFAIK Flexi-streams exists not only to provide external formats, but
also to provide encapsulating streams, sequence streams, and functions
to convert strings between different formats. The actual external
format objects are, I would say, just 10% of the code, just like the
support for external formats is about 10% of the file that implements
streams. Furthermore, out of those external formats in flexi-streams,
ECL would only need the translation tables, so there is little room
for code reuse.

I believe that a more reasonable approach would be to factor support
for multibyte and multilingual lisps into three components:

- External formats and primitive encapsulating streams provided by the

- A higher level implementation such as flexi-streams that reuses what
the implementation provides or completes it when lacking. For
implementations that provide almost everything, such as CLISP and
perhaps ECL in the near future, it can indeed be a trivial layer.

- A library for handling the Unicode database, for tasks such as
normalization, upcasing, etc.

The real challenge is the last point.


Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28009 (Spain)

More information about the ecl-devel mailing list