Subject: bug#23967: 25.1.50; Slow compilation of ns-win.el

From: Eli Zaretskii <[email-masked]>
Date: Fri, 15 Jul 2016 10:21:53 +0300

> From: [email-masked]
> Cc: [email-masked],  [email-masked]
> Date: Thu, 14 Jul 2016 23:22:54 -0400
> 
> > How about adding a test that uses the data in this file:
> >
> >   http://www.unicode.org/Public/UNIDATA/NormalizationTest.txt
> >
> > ucs-normalize claims to have passed an old version of this, but I see
> > no existing way of re-running that test, did I miss something?
> 
> I don't see any evidence of an existing test.

Right.

> I stared writing a new one, and it's failing with the original
> ucs-normalize.el (or I'm misunderstanding the requirements).

If the failures are identical to the original ucs-normalize, let's for
now just mark them as known failures, and look into them later.  I
don't want to delay this important change that speeds up the bootstrap
due to problems unrelated to the change.

> The first invariant to test is
> 
>     c2 ==  toNFC(c1) ==  toNFC(c2) == toNFC(c3)
> 
> (cX is column X, columns numbered from 1).
> 
> Line 15131 of NormalizationTest.txt has
> # c1   c2      c3
> 1112E;1112E;11131 11127;1112E;11131 11127; # (◌𑄮; ◌𑄮; ◌𑄱◌𑄧; ◌𑄮; ◌𑄱◌𑄧; ) CHAKMA VOWEL SIGN O
> 
> So I think toNFC(c3) == c2 is equivalent to
> 
>     (equal (ucs-normalize-NFC-string
>             (string #x11131 #x11127))
>            (string #x1112E))
> 
> which gives nil.
> 
> Lines 15131 to 15139 and 16149 to 16289 are failing.

I will look into this later.  Thanks for the footwork.