Author: Jan Nijtmans <[email protected]>
State: Draft
Type: Project
Vote: Pending
Created: 02-05-2023
Tcl-Version: 8.7
Tcl-Branch: tip-665
Abstract
The TIPs 542 and 622 prepared Tcl 8.7 (and 9.0) to use utf-32 internally for all operations, while - still - being able to use utf-16 internally. This was used mainly for regression-testing. The "utf.test" suite carefully compared the result of all utf-related functions between the 8.6 result and the 8.7 result, making sure that extensions won't be effected.
Now that the internal utf-32 handling has stabilized, this "utf16" mode hinders further development more than that it helps. Therefore this TIP proposes to remove it as far as possible. The utf-16 compatibility layer, which allows extensions (such as Tk) still being compiled with -DTCL_UTF_MAX=3 is still kept. And also the file tclUniData.c (which is generated from the Unicode official data-tables, and kept equal in Tcl 8.6/8.7/9.0) is left as-is.
Implementation
Implementation is in Tcl branch "tip-665".
Further readings
Compatibility
Since the compatibility layer is kept as-is for extensions, this change is fully upwards compatible with 8.6.
Copyright
This document has been placed in the public domain.