squeak-smalltalk / squeak-object-memory

Issues and assets related to the Squeak object memory.
https://bugs.squeak.org
MIT License
11 stars 1 forks source link

FFI: Windows 10 FFIPlatformDescription osVersion changed from '6.2' to '10.0' #29

Closed j4yk closed 2 years ago

j4yk commented 2 years ago

Was this intentional? It has the side effect of regenerating all external types when the image starts, even on the same Windows 10 system.

Version: FFI-Kernel-mt.223.mcz, FFI-Pools-mt.39.mcz, FFI-Win32-mt.21.mcz

marceltaeumel commented 2 years ago

I remember seeing this version '10.0' even back in 2020 when working on FFI-Pools. Not sure that this is a recent change. Just take a look at Win32Pool class >> #winverData.

Well, Windows Vista is 6.0, Windows 7 is 6.1 and Windows 8 is 6.2 and Windows 10 is 10.0. Maybe this is related to the build system and hence MSYS/MinGW.

versionhelpers.h

...
VERSIONHELPERAPI IsWindowsThresholdOrGreater(void) {
    return IsWindowsVersionOrGreater(HIBYTE(_WIN32_WINNT_WINTHRESHOLD), LOBYTE(_WIN32_WINNT_WINTHRESHOLD), 0);
}

VERSIONHELPERAPI IsWindows10OrGreater(void) {
    return IsWindowsThresholdOrGreater();
}
...

sdkddkver.h

...
#define _WIN32_WINNT_WIN8 0x0602
#define _WIN32_WINNT_WINBLUE 0x0603
#define _WIN32_WINNT_WINTHRESHOLD 0x0A00
#define _WIN32_WINNT_WIN10 0x0A00
...