I did not notice the stats at the end of the article, very cool
Dolphin Progress Report
|
09-07-2024, 11:53 PM
09-08-2024, 11:49 PM
New versions of the MSVC runtime have new features. It's literally impossible to time-travel those old features into old versions, so they can obviously only ever be backwards-compatible and not forwards-compatible. The exact same thing is true of glibc but people aren't surprised with that because they don't stop looking at the version number when they get to the first dot, and people run into problems less often because they tend not to ship Linux applications without some way of ensuring dependencies are present.
There is a problem in that the crash is silent instead of telling you you didn't have the right DLL like it'd do if you didn't have the redist at all (although the error when it's missing isn't brilliant as googling it will give you a bunch of download this tampered-with DLL from us sites instead of the redist page, but that's really Google's fault rather than Microsoft's), but expecting msvcp140.dll version 14.38.33135.0 to satisfy a requirement for msvcp140.dll version 14.40.33833.0 was never sensible.
OS: Windows 10 64 bit Professional
CPU: AMD Ryzen 5900X RAM: 48GB GPU: Radeon 7800 XT Quote:New versions of the MSVC runtime have new features. It's completely normal for MSVC 2022 to have new features and break some compatibility with MSVC 2019. It's a new version, this is not weird. The issue is that MSVC 2022 is breaking support with MSVC 2022. That's a support nightmare. Intel Xeon w7-3465X OC | Asus Pro WS W790-E Sage SE | NVIDIA GeForce RTX 4090 FE | 8x16GiB G-Skill Zeta R5 DDR5-6000 | Windows 11 23H2 | (details)
MacBook Pro 14in | M1 Max (32 GPU Cores) | 64GB LPDDR5 6400 | macOS 13
09-09-2024, 05:59 AM
It's not MSVC 2022. It's MSVC 17.11.2 or 17.10.6 or whatever, and MSVC 2019 is 16.11.39 etc.. You wouldn't say Clang 18.1 and Clang 18.0 are both the same version just because they're both Clang 18 or GCC 14.2 and 14.1 are both the same because they're both GCC 14, and in both cases, things are guaranteed to be backwards compatible and not guaranteed to be forwards compatible, just like with MSVC.
OS: Windows 10 64 bit Professional
CPU: AMD Ryzen 5900X RAM: 48GB GPU: Radeon 7800 XT
You are missing the point. "Microsoft Visual C++ 2022 Redistributable" is how it is presented to users. They don't see 17.11.12. Only 2022. To them, that's the only version. How are we supposed to communicate about version changes that are hidden from users?
Intel Xeon w7-3465X OC | Asus Pro WS W790-E Sage SE | NVIDIA GeForce RTX 4090 FE | 8x16GiB G-Skill Zeta R5 DDR5-6000 | Windows 11 23H2 | (details)
MacBook Pro 14in | M1 Max (32 GPU Cores) | 64GB LPDDR5 6400 | macOS 13
09-10-2024, 10:26 AM
It's not supposed to be something users are meant to deal with as you're supposed to package applications into installers that install the redist if it's not already present, or statically link the runtime library instead of relying on the redist, or bundle the DLLs in the 7z, but if you're shipping loose applications in a zip and don't want to bloat it with probably-redundant DLLs, you can tell users to install Microsoft Visual C++ 2015-2022 Redistributable (x64) - 14.40.33810 or newer (which is what it calls itself in the Apps & features page of the Settings app). There are numbers that aren't the version number in the thing's name, but then you wouldn't panic about that if a user was still using 7zip 9.20 and was struggling to open a Dolphin 7z that needed a newer version even though it's called 7zip 24.8 instead of 8zip.
It is a hassle, but that's just something you need to deal with if you ship applications as a zip with only a subset of their dependencies, and it's similar on every platform that even makes that kind of release possible.
OS: Windows 10 64 bit Professional
CPU: AMD Ryzen 5900X RAM: 48GB GPU: Radeon 7800 XT |
« Next Oldest | Next Newest »
|
Users browsing this thread: 4 Guest(s)