It’s low tier support but I think it does support 16-bit targets. E.g MSP430. There’s also a couple of projects that got rustc to produce DOS binaries so Windows 3.1 doesn’t seem completely out of the question.
Win16 is not quite a 16-bit target, it had near and far pointers. Far pointers were 32 bits. I think this is more of a problem for Rust because it assumes that you have only one kind of pointer. LLVM IR supports multiple types of pointer, which we use for the hybrid ABI in CHERI to support DDC-relative 64-bit and capability 128-bit pointers and which GPU targets use a lot (a lot of GPUs have a mix of at least two out of 16-, 32- and 64-bit pointers for the different kinds of memory).
You might be interested in Winternight and Crescent-Vine, which are adding features like TLS 1.2 to ancient Firefox versions to target Windows 95 through Windows 11.
If you’re running it on your main machine, I recommend disabling JavaScript and JIT compilation just to be safe. I use it to test my own site’s compatibility with ancient browsers.
Another thing you might be interested in is BearSSL, which is a TLS 1.2 implementation that can run efficiently on ancient hardware: https://bearssl.org/
This makes it a good candidate for implementing TLS-terminating proxies to browse HTTPS websites in non-HTTPS browsers.
Windows 3.1 support when? :3
(That is Hard ‘cause Rust explicitly doesn’t bother trying to support 16 bit targets.)
It’s low tier support but I think it does support 16-bit targets. E.g MSP430. There’s also a couple of projects that got rustc to produce DOS binaries so Windows 3.1 doesn’t seem completely out of the question.
Win16 is not quite a 16-bit target, it had near and far pointers. Far pointers were 32 bits. I think this is more of a problem for Rust because it assumes that you have only one kind of pointer. LLVM IR supports multiple types of pointer, which we use for the hybrid ABI in CHERI to support DDC-relative 64-bit and capability 128-bit pointers and which GPU targets use a lot (a lot of GPUs have a mix of at least two out of 16-, 32- and 64-bit pointers for the different kinds of memory).
I love seeing new tech in old tech, even if it is just for the fun of it.
You might be interested in Winternight and Crescent-Vine, which are adding features like TLS 1.2 to ancient Firefox versions to target Windows 95 through Windows 11.
https://github.com/ClassicNick/Crescent-Vine
If you’re running it on your main machine, I recommend disabling JavaScript and JIT compilation just to be safe. I use it to test my own site’s compatibility with ancient browsers.
Oh that’s really cool! Thanks!
Another thing you might be interested in is BearSSL, which is a TLS 1.2 implementation that can run efficiently on ancient hardware: https://bearssl.org/
This makes it a good candidate for implementing TLS-terminating proxies to browse HTTPS websites in non-HTTPS browsers.
Really nice. I wonder what would it take to port it to Amiga :)