[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Scheme-reports] DISCUSSION/VOTE: The character tower

On Wed, 2014-05-07 at 10:08 +0200, Sascha Ziemann wrote:
> 2014-05-07 0:31 GMT+02:00 Bear <bear@x>:
> >
> > I would be rather upset if
> >
> > (string=? (string #\A #\x301) (string #\xc1)) ==> #f
> But there is a difference.
> #\A #\x301 is an Unicode expression and #\xc1 is a Unicode literal.
> You have to evaluate the first to get the second.

Well, no.  

(string #\A #\x301) and (string #\xc1) are both expressions returning
a string.  Unicode canonical equivalence says they should return the 
same string.  Apparently our standards committee believes that they
should return different strings, but I do not understand why.

> And if you cryptographically sign the first it would differ from the
> signature of the second.

That is a false distinction, and will lead to much wailing and 
gnashing of teeth when, eg, signatures don't match documents, 
authentication codes fail, etc ad nauseam, and it all falls on 
application programmers and happens over and over, because the 
scheme implementers are not allowed to fix it once and for all.


Scheme-reports mailing list