Author: Jan Nijtmans <[email protected]>
State: Final
Type: Project
Vote: Done
Created: 20-Nov-2017
Post-History:
Tcl-Version: 8.7
Tcl-Branch: tip-487
Abstract
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.
Implementation
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.
Copyright
This document has been placed in the public domain.