On Saturday, 14 January 2017 02.06.57 PST you wrote:
> > BELL now resolves to  🔔 U+1F514 on MoarVM, but this is still broken on the 
> > JVM
> 
> What causes this kind of difference?
> 
> 
> 
U+0007's Unicode 1 name was BELL, and with version 2 the name was removed. 

Unicode 1 names are essentially totally deprecated and shouldn't be used for 
naming characters.
Since Unicode version 2, names are guaranteed never to change, so the Unicode 1 
names are very poor to rely on for functionality. In addition, Alias names 
never change either (though they could add more, they will never change or be 
removed).

For this reason it has been decided we should only guarantee standard Unicode 
names and Name Alias's.

Concerning BELL, in Unicode 1, U+0007 control code was named bell. Since 
Unicode 2, the control code's names were removed and they were given stable 
Alias's. As proof that Unicode 1 names shouldn't be relied on, the U+1F514 bell 
symbol is called BELL. 

Regarding the JVM, it seems to give us back the canonical Unicode names if they 
exist, and otherwise give us the Unicode 1 names. There may be some way to get 
the Name Alias's, but I do not know.

I will have to manually go in and add U+1F514 as BELL, and add U+0007 as BEL 
and ALERT. I manually added a few other Alias Names to JVM recently to fix a 
few roast tests.

See here for the commit that added some Alias Names to JVM: 
https://github.com/perl6/nqp/commit/0c249e7236a63325e6440df55a762a4378e6e63a

Hopefully I have explained this well enough.

Reply via email to