skip to navigation
skip to content

Python Wiki

Python Insider Blog

Python 2 or 3?

Help Fund Python

[Python resources in languages other than English]

Non-English Resources

Add an event to this calendar.

Times are shown in UTC/GMT.

Add an event to this calendar.

PEP:11
Title:Removing support for little used platforms
Version:3abdc6b075fb
Last-Modified:2012-12-15 20:48:37 +0100 (Sat, 15 Dec 2012)
Author:martin at v.loewis.de (Martin von Löwis)
Status:Active
Type:Process
Content-Type:text/x-rst
Created:07-Jul-2002
Post-History:18-Aug-2007

Abstract

This PEP documents operating systems (platforms) which are not supported in Python anymore. For some of these systems, supporting code might be still part of Python, but will be removed in a future release - unless somebody steps forward as a volunteer to maintain this code.

Rationale

Over time, the Python source code has collected various pieces of platform-specific code, which, at some point in time, was considered necessary to use Python on a specific platform. Without access to this platform, it is not possible to determine whether this code is still needed. As a result, this code may either break during the Python evolution, or it may become unnecessary as the platforms evolve as well.

The growing amount of these fragments poses the risk of unmaintainability: without having experts for a large number of platforms, it is not possible to determine whether a certain change to the Python source code will work on all supported platforms.

To reduce this risk, this PEP proposes a procedure to remove code for platforms with no Python users.

Unsupporting platforms

If a certain platform that currently has special code in it is deemed to be without Python users, a note must be posted in this PEP that this platform is no longer actively supported. This note must include:

  • the name of the system
  • the first release number that does not support this platform anymore, and
  • the first release where the historical support code is actively removed

In some cases, it is not possible to identify the specific list of systems for which some code is used (e.g. when autoconf tests for absence of some feature which is considered present on all supported systems). In this case, the name will give the precise condition (usually a preprocessor symbol) that will become unsupported.

At the same time, the Python source code must be changed to produce a build-time error if somebody tries to install Python on this platform. On platforms using autoconf, configure must fail. This gives potential users of the platform a chance to step forward and offer maintenance.

Resupporting platforms

If a user of a platform wants to see this platform supported again, he may volunteer to maintain the platform support. Such an offer must be recorded in the PEP, and the user can submit patches to remove the build-time errors, and perform any other maintenance work for the platform.

Microsoft Windows

Microsoft has established a policy called product support lifecycle [1]. Each product's lifecycle has a mainstream support phase, where the product is generally commercially available, and an extended support phase, where paid support is still available, and certain bug fixes are released (in particular security fixes).

Python's Windows support now follows this lifecycle. A new feature release X.Y.0 will support all Windows releases whose extended support phase is not yet expired. Subsequent bug fix releases will support the same Windows releases as the original feature release (even if the extended support phase has ended).

Because of this policy, no further Windows releases need to be listed in this PEP.

Each feature release is built by a specific version of Microsoft Visual Studio. That version should have mainstream support when the release is made. Developers of extension modules will generally need to use the same Visual Studio release; they are concerned both with the availability of the versions they need to use, and with keeping the zoo of versions small. The Python source tree will keep unmaintained build files for older Visual Studio releases, for which patches will be accepted. Such build files will be removed from the source tree 3 years after the extended support for the compiler has ended (but continue to remain available in revision control).

No-longer-supported platforms

  • Name: MS-DOS, MS-Windows 3.x
    Unsupported in: Python 2.0
    Code removed in: Python 2.1
  • Name: SunOS 4
    Unsupported in: Python 2.3
    Code removed in: Python 2.4
  • Name: DYNIX
    Unsupported in: Python 2.3
    Code removed in: Python 2.4
  • Name: dgux
    Unsupported in: Python 2.3
    Code removed in: Python 2.4
  • Name: Minix
    Unsupported in: Python 2.3
    Code removed in: Python 2.4
  • Name: Irix 4 and --with-sgi-dl
    Unsupported in: Python 2.3
    Code removed in: Python 2.4
  • Name: Linux 1
    Unsupported in: Python 2.3
    Code removed in: Python 2.4
  • Name: Systems defining __d6_pthread_create (configure.in)
    Unsupported in: Python 2.3
    Code removed in: Python 2.4
  • Name: Systems defining PY_PTHREAD_D4, PY_PTHREAD_D6, or PY_PTHREAD_D7 in thread_pthread.h
    Unsupported in: Python 2.3
    Code removed in: Python 2.4
  • Name: Systems using --with-dl-dld
    Unsupported in: Python 2.3
    Code removed in: Python 2.4
  • Name: Systems using --without-universal-newlines,
    Unsupported in: Python 2.3
    Code removed in: Python 2.4
  • Name: MacOS 9
    Unsupported in: Python 2.4
    Code removed in: Python 2.4
  • Name: Systems using --with-wctype-functions
    Unsupported in: Python 2.6
    Code removed in: Python 2.6
  • Name: Win9x, WinME, NT4
    Unsupported in: Python 2.6 (warning in 2.5 installer)
    Code removed in: Python 2.6
  • Name: AtheOS
    Unsupported in: Python 2.6 (with "AtheOS" changed to "Syllable")
    Build broken in: Python 2.7 (edit configure to reenable)
    Code removed in: Python 3.0
  • Name: BeOS
    Unsupported in: Python 2.6 (warning in configure)
    Build broken in: Python 2.7 (edit configure to reenable)
    Code removed in: Python 3.0
  • Name: Systems using Mach C Threads
    Unsupported in: Python 3.2
    Code removed in: Python 3.3
  • Name: SunOS lightweight processes (LWP)
    Unsupported in: Python 3.2
    Code removed in: Python 3.3
  • Name: Systems using --with-pth (GNU pth threads)
    Unsupported in: Python 3.2
    Code removed in: Python 3.3
  • Name: Systems using Irix threads
    Unsupported in: Python 3.2
    Code removed in: Python 3.3
  • Name: OSF* systems (issue 8606)
    Unsupported in: Python 3.2
    Code removed in: Python 3.3
  • Name: OS/2 (issue 16135)
    Unsupported in: Python 3.3
    Code removed in: Python 3.4
  • Name: VMS (issue 16136)
    Unsupported in: Python 3.3
    Code removed in: Python 3.4
  • Name: Windows 2000
    Unsupported in: Python 3.3
    Code removed in: Python 3.4
  • Name: Windows systems where COMSPEC points to command.com
    Unsupported in: Python 3.3
    Code removed in: Python 3.4
  • Name: RISC OS
    Unsupported in: Python 3.0 (some code actually removed)
    Code removed in: Python 3.4