Re: macho 0.4 released

Peter Seibel <[email protected]> 10 Nov 2003 15:25:09 -0800
Newsgroups gmane.lisp.clump
Message-ID <[email protected]>
Miles Egan <[email protected]> writes:

> On Mon, 2003-11-10 at 15:10, Klaus Weidner wrote:
> > On Mon, Nov 10, 2003 at 02:49:34PM -0800, Jan Rychter wrote:
> > > If we do this, let's get this right -- the breakage associated with most
> > > US programs assuming that the world is ASCII and most European ones
> > > assuming that the world is ISO-8859-1 has already been around way too
> > > long.
> > [...]
> > > I'm afraid Unicode is the only way out here. I don't think the solution
> > > you have proposed is any more "correct" than just leaving everything
> > > unexpanded and pretending that only ASCII exists...
> > 
> > That's why I changed my mind and described in my other mail how Macho
> > could be enhanced with Unicode *output* support with little effort.
> 
> So what is the status of Unicode support in CL?  Is it purely up to the
> implementation?  The string handling functions seems to be abstracted
> over character type but I don't see anything in the hyperspec explicitly
> about Unicode.

It's up to the impl. I know CLISP and Allegro support it. I seem to
recall SBCL does not. The good news for Lisp is that character is a
proper abstraction, not just some weird kind of number. Thus Lisp will
be able to deal with the ever exanding number of bits required to
represent Unicode code points. (Compare to Java--the Java designers
thought they were doing the right thing when they went ahead and made
char a 16-bit quantity so they could be natural Unicode characters.
Unfortunately the Unicode consortium has since decided that they need
24-bits worth of code points. (I believe they've sworn a mickle oath
to never use more than 32 bits. But you know what they say about
never.) So Java is now in the same position as C--each char may
represent a single code point or may be part of a multi-char encoding
of a single code-point. Blech.)

That said, if you really wanted to, I think you could output UTF-8, or
whatever you want, by doing the translation from whatever you've got
to UTF-8 encoding yourself. But that might be a bit of a pain.

-Peter

-- 
Peter Seibel                                      [email protected]

         Lisp is the red pill. -- John Fraser, comp.lang.lisp