Comment by pavon

4 years ago

I wonder if this might be even more useful for ReactOS, which is still actively supporting 32-bit x86, while Windows 11 no longer does.

Just grabbed the latest ISO to test it out :) - rust9x_sample.exe sadly only works in 98/Me compatibility mode. https://i.imgur.com/nWCfTtV.png

In regular mode it seems there's a problem with the system not setting the file pointer to the end when OpenOptions::append is used: https://i.imgur.com/vvbEnWh.png https://doc.rust-lang.org/std/fs/struct.OpenOptions.html#met...

  • This sounds like you've found a bug in either the Rust standard library or the ReactOS API implementation. It might be worth looking into this!

    • To clarify, it works in 98/Me mode because I added a fallback implementation to Rust9x for these systems, as the flag in question is not supported.

      AFAICT it is supported since NT 3.1, though, and it worked fine on all NT-based systems I've tested so far, so my guess would be a ReactOS API bug.

      The commit adding the 9x/Me fallback implementation:

      https://github.com/rust9x/rust/commit/3a3eddb0044c6d03357a75...

You spooked me that Win11 had dropped support for 32-bit applications, but it seems they still work fine. There's no 32-bit version of the OS though.

  • Rather confusingly the death of the 32-bit version of Windows in practice just means they are dropping support for 16-bit DOS applications.

    There is a WoW (windows on windows) subsystem which permitted you to either run 16-bit binaries on your 32-bit system, or 32-bit binaries on your 64-bit system; but there's no 16-on-64 or 16-on-32-on-64.

    If you have a 64-bit version of Windows the compatibility layer[1] lives at `%SYSTEMROOT%\SysWoW64`.

    [1]: https://en.wikipedia.org/wiki/Windows_on_Windows

  • Yeah they worded that confusingly. That said, I feel like the writing is probably on the wall for 32-bit. My guess is this might be the real reason why they pushed for making Visual Studio 64-bit.

I commend you for finding a use-case for this because I'm scratching my head over if this is a toy project or filling some necessity.

Still a very awesome project!

  • Can confirm, toy project. But hey, if it helps someone who might actually need this, even better!

This is a really interesting point. I can imagine that being able to use Rust for ReactOS (and wine!) would bring lots of interesting opportunities for developers and new contributors.