Python Win9x

A clean-room effort to build a useful Python 3 runtime for Windows 98 SE and other Windows 9x systems, using CPython v3.11.16 as the language/runtime baseline and Microsoft Visual C++ 6.0 as the initial 32-bit toolchain.

Current state

This is an experimental porting workspace, not a completed Windows 98 build. The CPython baseline is kept in cpython/ at tag v3.11.16. The MSVC600 bundle is kept in MSVC600/ as a local external prerequisite and is not part of the distributable project source.

The public-header probe and a real Py_BUILD_CORE translation unit now compile under MSVC600 through the project compatibility layer:

  • cpython/Programs/python.c compiles successfully.
  • cpython/Modules/main.c compiles successfully.
  • cpython/Python/pylifecycle.c is the current larger-core probe and remains blocked by CPython 3.11 C99 initializers, mixed declarations, and additional legacy-compiler/platform differences.

This is still an experimental porting workspace, not a completed Windows 98 build. Exact verified milestones and blockers are recorded in PORT_STATUS.md.

Toolchain policy

  • Do not commit Microsoft compiler binaries or proprietary runtime files.
  • Keep MSVC600 outside the source distribution or obtain it separately under the user's own license/rights.
  • The project is intended for private Gitea only.
  • Do not copy proprietary Windows implementation code into the compatibility layer.

Intended milestones

  1. Build a minimal CPython core with VC6 using a project-local compatibility header layer.
  2. Replace NT-only Windows APIs with ANSI/Win9x-compatible implementations or explicit feature gates.
  3. Produce a bootable 32-bit Python executable and test it on Windows 98 SE, first with the core interpreter and basic file I/O.
  4. Add sockets and a carefully scoped standard-library subset.
  5. Backport selected newer Python language/library features only after the runtime is stable on Win9x.

Local prerequisites

  • CPython v3.11.16 source in cpython/
  • MSVC600 tools in MSVC600/ (external/local-only)
  • Wine for exercising the Windows compiler from Linux
  • A Windows 98 SE VM or physical test machine for final compatibility checks

No full build is claimed yet.

S
Description
No description provided
Readme
578 KiB
Languages
Shell 88.3%
C 11.7%