You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Windows 2k8/Vista support lost since 4-Dec nightly #19992
Issue title updated 22-Dec following further analysis.
Some time since that nightly (rustc 0.13.0-nightly (d9c7c00 2014-12-04 21:33:07 +0000)), the rustc executable fails fast before emitting any console output.
Windows Mini-dump
Dump Summary
------------
Dump File: rustc.exe.5260.dmp : C:\Users\Steve\AppData\Local\CrashDumps\rustc.exe.5260.dmp
Last Write Time: 18/12/2014 19:38:55
Process Name: rustc.exe : C:\Rust\bin\rustc.exe
Process Architecture: x86
Exception Code: 0xC0000139
Exception Information:
Heap Information: Present
System Information
------------------
OS Version: 6.0.6002
CLR Version(s):
Modules
-------
Module Name Module Path Module Version
----------- ----------- --------------
rustc.exe C:\Rust\bin\rustc.exe 0.0.0.0
ntdll.dll C:\Windows\System32\ntdll.dll 6.0.6002.18881
kernel32.dll C:\Windows\System32\kernel32.dll 6.0.6002.19034
libgcc_s_dw2-1.dll C:\Rust\bin\libgcc_s_dw2-1.dll 0.0.0.0
msvcrt.dll C:\Windows\System32\msvcrt.dll 7.0.6002.18551
std-4e7c5e5c.dll C:\Rust\bin\std-4e7c5e5c.dll 0.0.0.0
advapi32.dll C:\Windows\System32\advapi32.dll 6.0.6002.18005
rpcrt4.dll C:\Windows\System32\rpcrt4.dll 6.0.6002.18882
Error 0xC0000139 is "Entry Point Not Found" -- presumably in builds from the last week or so, a Win7 and later API call is being made at start-up as tests with the same nightly installer (17 December 2014, 05:57:06) show that the self-same rustc executable will emit version details for a -v on Win7 64-bit, rather than immediately failing.
So far, I've not gotten anything else useful from the crash dump
Using rustc 0.13.0-nightly (42deaa5 2014-12-16 17:51:23 +0000), the reference of Kernel32.dll from STD-4E7C5E5C.DLL shows TryAcquireSRWLockExclusive and TryAcquireSRWLockShared in red. This confirms the suspicion I'd had when I'd spotted them when combing through the commits since the build that still worked.
@SteveGilham: Extended support means they aren't fixing anything but critical security bugs anymore.
The GitHub README has always said that only Windows 7 (and later) is supported and it's also in the guide. Supporting obsolete versions of Windows means doing awful dynamic loading hacks. It makes the code much harder to understand / modify and the code bloat matters in places like concurrency primitives.
Minimum supported client
Windows 7 [desktop apps | Windows Store apps]
Minimum supported server
Windows Server 2008 R2 [desktop apps | Windows Store apps]
Win2k8 == Vista Server; it's Win2k8R2 that is Win7 Server, and by
deduction, that is what is actually being targeted here.
Now that we've established that it's all been working by coincidence up to
now, then the easy out is to just put up a corrected minimum OS statement
(ideally on the downloads page too, which is the first place to look), and,
ideally, add an OS version check in the installer preconditions.
Or it could be recognised that there is actually a large tail of older OS
versions (both client and server) in the field out there -- including 2k3
and XP (which latter has only in the last few months fallen below Win8),
but which would represent heroic measures.
I dusted off a 2k8 Server Standard Edition VM, and installed 0.13.0-nightly (42deaa5 2014-12-16 17:51:23 +0000) on it. This OS edition makes the diagnosis plain:
changed the title [-]Windows Vista 32-bit support lost since 4-Dec nightly[/-][+]Windows 2k8/Vista 32-bit support lost since 4-Dec nightly[/+]on Dec 22, 2014
changed the title [-]Windows 2k8/Vista 32-bit support lost since 4-Dec nightly[/-][+]Windows 2k8/Vista support lost since 4-Dec nightly[/+]on Dec 22, 2014
Ok, so is Vista support dead, or is there any hope? Currently the installer installs everything correctly, but rustc & cargo complain about compatibility issue.
Someone would have to be willing to write alternative versions of code that don't depend on newer APIs. Having Rust work on XP is a requirement for it to be used in Servo, so there is definitely a need for it eventually. It's just that the number of Rust developers who care about such old versions of Windows is significantly less than the already small number of Rust developers that work on the Windows side of Rust.
Activity
thestinger commentedon Dec 18, 2014
Vista is already EOL and Rust only claims support for Windows 7, 8 and 2008.
SteveGilham commentedon Dec 18, 2014
Vista EOL is 11th April 2017 (see e.g. http://support2.microsoft.com/lifecycle/default.aspx?LN=en-gb&x=17&y=12&c2=11732)
The claimed OS version support for Rust is not obviously discoverable.
vadimcn commentedon Dec 19, 2014
@SteveGilham: Could you please download a copy of the Dependency Walker and determine which API is missing?
SteveGilham commentedon Dec 19, 2014
Using rustc 0.13.0-nightly (42deaa5 2014-12-16 17:51:23 +0000), the reference of Kernel32.dll from STD-4E7C5E5C.DLL shows TryAcquireSRWLockExclusive and TryAcquireSRWLockShared in red. This confirms the suspicion I'd had when I'd spotted them when combing through the commits since the build that still worked.
thestinger commentedon Dec 19, 2014
@SteveGilham: Extended support means they aren't fixing anything but critical security bugs anymore.
The GitHub README has always said that only Windows 7 (and later) is supported and it's also in the guide. Supporting obsolete versions of Windows means doing awful dynamic loading hacks. It makes the code much harder to understand / modify and the code bloat matters in places like concurrency primitives.
SteveGilham commentedon Dec 20, 2014
The support statement is inaccurate, then. The TryAcquireSRWLockXxx APIs
are (as per
http://msdn.microsoft.com/en-us/library/windows/desktop/dd405523%28v=vs.85%29.aspx)
Minimum supported client
Windows 7 [desktop apps | Windows Store apps]
Minimum supported server
Windows Server 2008 R2 [desktop apps | Windows Store apps]
Win2k8 == Vista Server; it's Win2k8R2 that is Win7 Server, and by
deduction, that is what is actually being targeted here.
Now that we've established that it's all been working by coincidence up to
now, then the easy out is to just put up a corrected minimum OS statement
(ideally on the downloads page too, which is the first place to look), and,
ideally, add an OS version check in the installer preconditions.
Or it could be recognised that there is actually a large tail of older OS
versions (both client and server) in the field out there -- including 2k3
and XP (which latter has only in the last few months fallen below Win8),
but which would represent heroic measures.
On 19 December 2014 at 21:00, Daniel Micay notifications@github.com wrote:
SteveGilham commentedon Dec 22, 2014
I dusted off a 2k8 Server Standard Edition VM, and installed 0.13.0-nightly (42deaa5 2014-12-16 17:51:23 +0000) on it. This OS edition makes the diagnosis plain:
Issue title edited to reflect this.
[-]Windows Vista 32-bit support lost since 4-Dec nightly[/-][+]Windows 2k8/Vista 32-bit support lost since 4-Dec nightly[/+][-]Windows 2k8/Vista 32-bit support lost since 4-Dec nightly[/-][+]Windows 2k8/Vista support lost since 4-Dec nightly[/+]stej commentedon Feb 7, 2015
Ok, so is Vista support dead, or is there any hope? Currently the installer installs everything correctly, but rustc & cargo complain about compatibility issue.
retep998 commentedon Feb 7, 2015
Someone would have to be willing to write alternative versions of code that don't depend on newer APIs. Having Rust work on XP is a requirement for it to be used in Servo, so there is definitely a need for it eventually. It's just that the number of Rust developers who care about such old versions of Windows is significantly less than the already small number of Rust developers that work on the Windows side of Rust.
Merge pull request rust-lang#19992 from Veykril/push-uxpqwrxqtlvm