On 16 Jun 2003, Martin v. [iso-8859-15] Löwis wrote:
"Jeff Hobbs" jeffh@ActiveState.com writes:
Right, and Unicode 4.0 is fresh out of diapers. You can't even get the regular code charts yet, you have to view the 4.0 beta ones. With 4.0 the non-BMP finally gets a notable amount of characters, but they are fairly weird ones that I'd be surprised to find a public font for.
Actually, Unicode 3.2 added most of them; Unicode 4.0 has only minor additions. The biggest addition is the CJK unified ideographs in plane 2, which is of significance to a fifth of the world population, potentially - these are all current characters (instead of being only of scientific interest).
I agree that it will take a while to have fonts for these available. However, unavailability of fonts should not stop us from supporting such characters in the libraries. Characters must pass through many processing steps before being rendered, and all of these steps must work flawlessly. So I think it is a good thing to start today, to have the application software ready by the time fonts become available.
Here are the reasons Red Hat went for ucs4:
- Red Hat 7.3 shipped python 2.2 (compiled in the python2 rpm). Not too surprising that a number of configuration tools were already using it. But no one saw tkinter was broken until too late - yes it was compiled with ucs4.
- Red Hat 8.0 went to --enable-unicode=ucs2: https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=63965
- While shipping an erratum for 7.3 that updated python2 to 2.2.2, I realized the compatibility mess we are in. 7.3 is UCS4, 8.0 is UCS2. Part of the reasons Red Hat 9 is called 9 and not 8.1 is to suggest there are things that are incompatible with previous versions. There should be a note in the release notes, stating python is now UCS4. The logic I tried to apply was exactly what Martin said earlier - I would prefer to break compatibility now rather than later when more people would notice :-) Arguably, we should have beaten the heck out of tkinter at Red Hat 8 time and fix it then - almost 2 years ago, that is.
When I tested it, I found that it would break very easily. I was using the Redhat procedure, though, so I might have made something wrong.
Can you feed me some sample scripts offline to test with?
Will do, but it may take some time. It was so obvious to me that this is not at all officially supported that I did not bother reporting it, or taking notes.
The patch for tcl that we came up with was, IIRC, posted somewhere on the tcl sites. I'll have to dig to find it again.
So, I am willing to wear the brown paper bag for not letting the community know about the UCS4 change well in advance. I find it surprising to find out _now_ that _tkinter.c was the one that was broken, I wish I knew that before poking at fixing tcl instead. I am surprised the tcl community was not aware of this either.
Anyway, UCS4 is something I don't think we can change now - and after reading Martin's post, it makes me feel it's the correct way to go. How can we fix the tcl/python interaction? If you have suggestions, please let me know (off-list would be fine too).