[elephant-devel] Fix for Unicode2 serializer
Robert L. Read
read at robertlread.net
Sat Feb 23 00:25:27 UTC 2008
Thanks!
I'm about to leave town, but should be able to review and commit this by
next Wednesday.
On Fri, 2008-02-22 at 10:13 +0100, Leslie P. Polzer wrote:
> > However, I wonder if it possible for you to turn whatever made you
> > notice it into a test-case? It is possible that this bug exists on the
> > LISP you are using and not mine, but in any case we should use each such
> > bug as an opportunity to expand the suite of automated tests.
>
> It was hard, but I managed to add one. It won't work on all implementations
> since the spec doesn't guarantee a way to generate a non-simple string.
>
> It's very plain to see that the old code was wrong. In a branch where VAR
> was guaranteed to be a STRING it used SCHAR, which is only defined for
> SIMPLE-STRING (a subtype of STRING). I wonder how it could get away
> with that for so long.
>
>
> > As you will see, we have a tiny number of tests around unicode issues,
> > which arose out of my using some Esperanto stuff. However, I am sure
> > our tests are not sufficient.
>
> It would appear so :)
>
>
> > The ideal thing would be to write a test, see that it fails without our
> > patch, and then that it and all the other relevant tests are green with
> > the patch in place.
>
> I don't know how other Lisps handle this string stuff, but on SBCL (1.0.14,
> probably earlier versions, too) the new test will fail. Note that if you
> have a Lisp where the test doesn't fail (despite incorrect use of SCHAR),
> you won't have any problems with the erroneous code, either.
>
> Now, attached are three patch files containing the following:
>
> * the new test case
>
> * the fix
>
> * a refactoring of the UTF{16,32}LE serializers
>
> If you want multiple revisions in one file in the future, please say so.
>
> Leslie
>
> --
> My personal blog: http://blog.viridian-project.de/
More information about the elephant-devel
mailing list