TIP 592: Stop support for Windows XP, Server 2003, Vista, Server 2008

Login
Bounty program for improvements to Tcl and certain Tcl packages.
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

Abstract

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.

This TIP is intended to apply to both Tcl and Tk.

Motivation

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.

Implementation

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.

Copyright

This document has been placed in the public domain.