-
Notifications
You must be signed in to change notification settings - Fork 113
Support for Windows Vista #55
Description
... On the subject of CPython and Vista compatibility, may I be so cheeky 😄 as to ask whether you'd consider backporting support down to
NT 6.0(Vista, WS2008R1) in your PythonWin7 offerings?You have provided (and continue to provide 👍 ) an invaluable service 🥇 to the retrocomputing communities, namely the Win7 one, with your Win7-compatible py3.9+ builds; these are already being put into good use by compiling Win7-compatible
yt-dlp(bothx86andx64) builds for Win7 users, because theyt-dlpteam are adamant on ceasing support for any CPython version not officially supported by the PSF themselves; thus, py3.8 was dropped last year and now py3.9 will be imminently dropped...However, the
NT6.0crowd 😉 has been left without something concrete 😢 ; FTR, a member of the MSFN forums has come up with source-patched and self-recompiled versions of py3.8.13, py3.9.13, py3.10.18 and py3.11.4 (nothing newer as I write this), but these "assemblies" have non-standard configuration and mainly target WinXP SP3 32-bit hosts, with legacy CPUs only supporting the SSE instruction set...I have taken a closer look at your PythonWindows py3.8.x builds and your PythonWin7 py3.9.x, py3.10.x, py3.11.x, py3.12.x, py3.13.xbuilds; the installers have been extracted with UniExtract2 and/or the
embed-win32packages have been extracted.The one file that presents the incompatibilities with Vista SP2 is always the
python3x.dllone: in more detail:python38.dll (PythonWindows), python39.dll (PythonWin7) and python310.dll (PythonWin7), all three have ONLY ONE Win7+
kernel32.dllfunction:python311.dll (PythonWin7), python312.dll (PythonWin7) and python313.dll (PythonWin7), all three have ONLY TWO Win7+
kernel32.dllfunctions:GetActiveProcessorCount (case of python[38,39,310].dll)
If I HexEdit
GetActiveProcessorCounttoGetLastError(for lack of a better one) in the first group of DLLs, I can make py3.8.x/py3.9.x/py3.10.x launch on this Vista SP2 32-bit machine; likewise, if I HexEditGetActiveProcessorCounttoGetLastErrorandSetWaitableTimerExtoSetWaitableTimerin the second group of DLLs , I can make py3.11.x/py3.12.x/py3.13.x launch, too, on the Vista SP2 32-bit machine; but this is hacking binary files, there's no telling how the actual Python code will behave on a remote scenario... FWIW, I can run recentyt-dlpversions with these bin-hacked CPython mods quite fine (no issue I could detect myself...).Optimally, the Vista-incompatible Python code should be excised from source and then the source recompiled, with compiler targeting at minimum NT 6.0; hopefully, Vista-compatible builds would be produced...
Thanks for your precious time reading this ❤️ ; any personal thoughts on achieving NT 6.0 support in your py3.8+ builds would be welcome/highly appreciated 😄 ...
Thanks for all that you already do 👍 , kindest regards from a Vista die-hard 😉 ...
Originally posted by @Vangelis66 in #23