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.