TIP 487: Stop support for Pre-XP Windows

Author:         Jan Nijtmans <[email protected]>
State:          Final
Type:           Project
Vote:           Done
Created:        20-Nov-2017
Tcl-Version:    8.7
Tcl-Branch:     tip-487


Windows CE will be end-of-life in 2018, june 9 (See: here. This is still about half a year away, but it seems counter-productive to support Pre-XP Windows for a new minor Tcl release: It's unlikely that any Pre-XP Windows user would like to spend effort to upgrade Tcl from 8.6 to 8.7 on such a device. Tcl 8.6.8 and later will continue to support older Windows releases, this TIP only proposes to stop support for Tcl 8.7 and later.

Proposed Change

Although the abstract says it all, the main change in Tcl is that it won't startup anymore when TclWinGetPlatformId() returns something else than VER_PLATFORM_WIN32_NT (2). This allows TclWinGetPlatformId() to be implemented as a macro (but the stub entry will be kept for all future 8.x releases). In Tcl 9.0, TclWinGetPlatformId() will be removed completely.

For Tk 8.7, the same will be done: TkWinGetPlatformId() will be implemented as a macro, always returning VER_PLATFORM_WIN32_NT (2). In Tk 9.0, TkWinGetPlatformId() will be removed completely. It turns out that Tk benefits a lot more from removal of pre-XP parts: Mainly the XP theme engine (part of ttk), has a lot of runtime checks making it work on pre-XP machines. All of those runtime checks can be removed. This means that Tk 8.7 will no longer compile and run when uxtheme.dll is not available on your system. Windows XP and later will be OK.


An implementation of this TIP can be found in the tip-487 branch. Tk has a tip-487 branch as well.

Rejected Alternatives

Originally, XP-support was suggested to be removed as well, but it turns out that it's too early to do that now and gives too little benefit. Since XP seems to be even more popular than Vista, support drop for both of those could be done at the same time in a future Tcl/Tk release. But that decision will be left up to another TIP.


This document has been placed in the public domain.