Author: Ashok P. Nadkarni <[email protected]> State: Final Type: Project Vote: Done Created: 12-Dec-2020 Post-History: Tcl-Version: 8.7 Tcl-Branch: tip-592 Vote-Summary: Accepted 6/0/0 Votes-For: FV, JN, KW, KK, MC, SL Votes-Against: none Votes-Present: none
TIP 487, which proposed dropping support for versions of Windows prior to Windows XP, has already been accepted for Tcl 8.7. This TIP proposes dropping the following additional Windows versions based on Microsoft EOL'ing these years ago and negligible current market presence.
- Windows XP (V5.1)
- Windows Server 2003 (V5.1)
- Windows Vista (V6.0)
- Windows Server 2008 (V6.0) (not to be confused with Server 2008 R2 which shares the ABI with Windows 7 and will continue to be supported)
This TIP is intended to apply to both Tcl and Tk.
Three years have passed since TIP 487 was proposed and accepted. In that time, market share of the Windows XP, Windows Server 2003 and Vista has dropped to well below 1% each and likely to plunge further by the time 8.7 releases. Windows Server 2008 statistics are not easily available but has also been EOL'ed and mostly supplanted by Server 2008 R2 which will continue to be supported. Furthermore, those systems are legacy systems and very unlikely to be upgraded to Tcl 8.7 even if they run Tcl at all.
Dropping support for older systems reduces the need for numerous API checks and the testing burden. In addition, it will allow the use of new APIs related to I/O, synchronization, threading etc. introduced in Windows 7.
Tool chain implications
Use of Windows 7 API also requires support from compiler tool chains. In particular, with respect to Microsoft compilers, Tcl 8.7 will require Visual Studio 2015 or later. The Mingw(-w64) gcc tool chain continues to be supported.
Use of newer API's will automatically prevent their loading into old Windows versions. If desired, checks can also be added through the executable manifest and/or explicit version checks in the code at runtime.
This document has been placed in the public domain.