On Tue, Apr 23, 2019 at 11:02 AM Alex Shinn <xxxxxx@gmail.com> wrote:

(7) How are the various "trimmed" procedures supposed to be
implemented in case ANSI escape sequences or Unicode combining
characters are present? (For example, when trimming happens to the
left, the suggested algorithm of taking the longest output does not
yield the correct result.)

In general we can imagine arbitrary compositions that don't work well
together.  Trimming in particular is problematic.  How should downcase
folding work on a non-trailing Σ (sigma) which is trimmed to become
trailing?  

It should not become final.  Thus the word φίλος 'beloved' followed by
a sentence-ending period ends with a final sigma, whereas the
abbreviation φιλοσ. for φιλοσοφία 'philosophy' continues to end with a non-final sigma.

 In general, automatic processes
should never change a sigma from final to non-final or from non-final to final
(and the same is true of Hebrew letters).  The only case where programs
have to choose is when downcasing, and R7RS explicitly allows always
transforming to a non-final sigma because Unicode's rules are complex
and don't handle the above case correctly.

I'm considering removing everything but
the base library, on which all else can be built portably anyway.

Please don't do that!  The rest is extremely useful, and as for
portability, it's all portable.


John Cowan          http://vrici.lojban.org/~cowan        xxxxxx@ccil.org
It's the old, old story.  Droid meets droid.  Droid becomes chameleon.
Droid loses chameleon, chameleon becomes blob, droid gets blob back
again.  It's a classic tale.  --Kryten, Red Dwarf