Unofficial "Tier 4" Rust Target for older Windows versions
Mood
excited
Sentiment
positive
Category
tech
Key topics
Rust
Legacy Systems
Retro Computing
The Rust community is exploring ways to run Rust code on older Windows versions, with an unofficial 'Tier 4' target, sparking discussions on supporting legacy systems and retro computing.
Snapshot generated from the HN discussion
Discussion Activity
Active discussionFirst comment
3h
Peak period
11
Hour 4
Avg / period
4.7
Based on 84 loaded comments
Key moments
- 01Story posted
11/18/2025, 2:46:50 AM
1d ago
Step 01 - 02First comment
11/18/2025, 5:32:42 AM
3h after posting
Step 02 - 03Peak activity
11 comments in Hour 4
Hottest window of the conversation
Step 03 - 04Latest activity
11/19/2025, 1:19:19 AM
18h ago
Step 04
Generating AI Summary...
Analyzing up to 500 comments to identify key contributors and discussion patterns
3.11, Win32s (so still using 32-bit, not 16-bit code.)
Of course those in the planned obsolescence mindset would fight hard against it, because then it would be harder for us to take the good without the bad.
Without sarcasm, it is entirely reasonable that when the OS is EOL by the 1st party, software support for it by 3rd party also ends soon after that.
Bugs and vulnerabilities are always being found, with fewer and fewer people in the pool that might even theoretically want to pay for fixing them.
Also, hardware does deteriorate, and the story is the same for adding software support for whatever is currently available in hardware.
none which haven't been there from the beginning
My last job used Java 8 exclusively and it was indeed a miserable experience, but I am contemplating using modern java for my next project.
Other than that, I think we’re all waiting for Josh Bloch to put out Effective Java 4th edition.
The main benefits of the post-8 world that I would look into learning are: pattern matching and destructuring, sealed (sum) types, records, and switch expressions.
If you try and switch out the host computer to something newer, the software may or may not work, but you will definitely fail your audits for changing software without the vendor's approval.
For their part, the vendor supports you buying the new version of their device for a few million quid and it now runs via USB attached to a Windows 10 computer running their proprietary software.
The vendor stopped supporting it (they technically still did, but would dodge replacing parts, etc.) so I eventually fixed some minor issues for her which turned out to just be software related.
A key thing is that the machine was not network attached.
Defining better OS is almost as complicated as defining better philosophy. Somebody is leftist, somebody is rightist you know what I mean. When you see what's better usually you can not unseen it.
For me Woedows 7 can give:
1. years of uptime (still with regular browsing! and with using S-states!);
2. native support of god-like NTFS, all my personal backups has it;
3. better support on laptops, for example just try to ditch the UnneededD (Devuan) and you are going to say buy-buy to predictabrle S-states, stable USB performance when using multiple devices and who knows what else;
4. the best battery time among all the market;
5. some old hardware like ATI videocard can not be run on modern kernell, also some old hardware like my digital oscilloscope, my friend's digital syntheiser - all of that makes me not just use but love he Bill Gate's crap. You don't even tied to any version of your appreciated Debian.
6. A lot of industry-best software at least requires me to have Wine. Foobar as the best audio player, STDU as the best book reader, Viktoria as the best HDD tester etc. I have a terabyte of music, hundreds gigs of books and dozens of external disk drives, consuming all of that is my typical non-work activity.
7. I also still use it for my daily job which involves using Internets. No viruces gotten, no unexpected behaviour observed, just working.
You can have Linux and waste your time, and then stuff updates and Linux breaks. You can have MacOS and lock yourself into a padded Mac themed cell, for five years, then you have to upgrade or stuff will stop working (I'm on Intel Mac, less and less stuff works each day).
---
As for your question.
Short: Blame capitalism and its current setup.
Long: MSFT needs to beat the inflation; otherwise, it's falling behind. And because Windows is no longer growing, you can't really do anything other than rent extraction. It's reached saturation point, which means that money needs to be extracted in some other ways - via ads, via upselling (buy an Xbox 365 subscription), via selling data, etc.
I’ve myself compiled Nim on Windows 7, Windows XP, and Haiku, and have run simple Nim programs on the C64 and GameBoy Advance.
I'm not aware of any working LLVM solution? All I know is that LLVM supports MC680x0 as a backend, can spit out 68k-but-non-amiga-objects and some brave souls have trying to use vlink or mold to produce Amiga executables. Have you seen any working LLVM-based Amiga (680x0 in hunk format) cross-compilers in the wild?
Rust's target tiers, while historically not as enforced as they are today, have requirements attached to them that each target has to fulfill; demoting a target or removing support isn't done for fun, but because of what the reality reflects. In Windows 7's case, support from the Tier 1 Windows target was not so much removed as it was acknowledged that the support guaranteees just didn't exist - host tools had long been dead with LLVM having removed support for running on Windows 7, and tier 1 support wasn't guaranteed without any CI to test it on. Thus support was removed, and very soon contributors popped up to maintain the win7 target which is tier 3 and accurately reflects the support gurantees of that target.
(Not a jab at your situation btw, and I wish I could offer you a solution beyond the win7 target - but as it's essentially the preexisting Windows 7 support extracted into a target that matched its reality, it works quite well in practice)
InstallShield is....massive crapware and actually generated 16 bit installers way way after anyone was using 16bit PCs. Nobody notices until, I think it was W8 or W10 dropped support for running 16bit executables (something about dropping the subsystem that supported them.
Nope, that would be Windows 11! There is a 32-bit version of Windows 10.
Windows actually has some special cased support for (at least some of) the problematic 16 bit InstallShield installers to run a 32 bit version instead on AMD64.
https://devblogs.microsoft.com/oldnewthing/20131031-00/?p=27...
If anything, I quite like the way Rust handles it with target tiers and easy switching between targets, because it's an honest approach about how well a target is supported. Having a win7 target that is tier 3 is a reflection of the support it has, and much better than stringing it along in the main Windows target that promises tested support when there isn't even a Windows 7 CI to test on.
even in this case, maintenance burden is still real. supporting the old target often prevents you from using features/tools that make maintenance easier
That can be the case, but there's also a lot of instance where it's not a matter of not wanting to invest, but that being stuck on an older system is the only option until a larger component also goes EOL or dies and cannot be repaired.
I see this all the time in manufacturing. User control interfaces that run on Windows XP or 2k. Machine is still great, can still get parts & repair it, but the software has long ago since stopped being supported. The manufacturer isn't going to spend 6 figures to replace a machine that hasn't fully depreciated yet.
In these instances, you just air gap it off and you're fine.
If that country happens to be Germany, it's to combat tax fraud.
The current governing coalition has come to an agreement that electronic cash registers will be mandatory starting in 2027, but that law hasn't been passed yet.
People need to upgrade. I'm surprised any machine running Vista could even use the modern web.
Somewhere out there is a Windows 98 machine controlling an industrial machine that will out live early posters on HN.
I know uh FreePascal targets everything including the Gameboy. But then Pascal isn't super modern or sexy unfortunately.
Just because you’re targeting windows xp doesn’t mean you need to run windows xp to do development.
[net]
offline = true
[source]
[source.crates-io]
replace-with = "debian"
[source.debian]
directory = "/usr/share/cargo/registry"
Works great.[0] https://doc.rust-lang.org/beta/rustc/target-tier-policy.html [1] https://doc.rust-lang.org/rustc/targets/custom.html
https://news.ycombinator.com/item?id=23313577
https://news.ycombinator.com/item?id=31112273
Doing such backward compatibility is definitiely possible for command-line tools. Once set up, it's automatic, and it needs extra testing after major changes.
https://minc.commandlinerevolution.nl/english/home.html
IronTCL for XP and up
https://minc.commandlinerevolution.nl/english/home.html
Updated SSL/TLS certs, again for XP and beyond:
Tiny Pascal-like language targetting DOS, CP/M and Unix:
https://t3x.org/t3x/0/index.html It's no Free Pascal but it can do good stuff with very little:
https://t3x.org/t3x/0/programs.html
JimTCL, a tiny TCL with bundled TLS, JSON, Sqlite3 and, optionally, some SDL2 support:
https://github.com/msteveb/jimtcl https://jim.tcl-lang.org/home/doc/www/www/index.html
You can compile JimTCL with MinC under XP, and maybe T3X0 too. With JimTCL you can build a quick TCL expect clone, some netcat clone too with TLS can be done in minutes too, really good for debugging or to create a simple IRC/Email/Gopher/Gemini client in text mode.
https://github.com/rust-lang/compiler-team/issues/378 (major change proposal to drop Windows XP support) notes this history and links to other relevant pages.
https://github.com/mrk-its/rust-mos
It works, and builds binaries that are ready to be executed by Vice emulator.
8 more comments available on Hacker News
Want the full context?
Jump to the original sources
Read the primary article or dive into the live Hacker News thread when you're ready.