Add a boolean to inform the architecture of the runing operating system#16726
Conversation
WalkthroughThis update introduces a new constant Changes
By integrating these adjustments, the Tip Early access features: enabledWe are currently testing the following features in early access:
Note:
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media? TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (invoked as PR comments)
Additionally, you can add CodeRabbit Configration File (
|
|
Hi, At least the approach checks if 64-bit OS is in use, but not whether NVDA itself is running on native (32/32) or compatibility (32/64) layer. NVDA and add-ons can determine operating system architecture, but not whether NVDA itself is on the same bitness as the operating system, and that's where I went with the original issue (let me know if you'd like me to clarify this in the original issue). There are also quite a few things that could see some changes, notably copyright header and code comment/code placement. Thanks. |
|
Hi, I think the two flags should rather be: Windows architecture is 64-bit or not (because in many cases system architecture is hardware architecture), and which architecture NVDA itself is running as (that will be “PROCESSOR_ARCHITECTURE” environment variable). Thanks.
|
|
Hi, I think two flags would suffice - for the most part, 64-bit Windows is equivalent to 64-bit system architecture. Also, the second flag has two criticla issues: 32-bit Windows releases do not have PROCESSOR_ARCHITEW6432, and we are only looking at x64 instead of both AMD64 and ARM64. Thanks. |
josephsl
left a comment
There was a problem hiding this comment.
I think it would be best to add a changelog for this unless people say it is not needed. The just introduced flags may not be needed once NVDA moves fully to 64-bit architecture. Thanks.
|
@josephsl I don't think a changelog entry is useful here - when we are deeper in the migration steps we can provide more useful and thorough information to add-on authors |
Link to issue number:
Closes #16330
Summary of the issue:
As of 2024, Windows 10 is the last version to support 32-bit processors from Intel, AMD, and ARM, with Windows 11 supporintg 64-bit platforms only (AMD64 and ARM64). In 2025, consumer support for Windows 10 will end, with end of support for long-term servicing channel builds planned for 2032 (Windows 10 IoT Enterprise 2021 LTSC).
Originally, NVDA was written for 32-bit Python runtime. With impending end of support for 32-bit platforms, moving to 64-bit became a goal for NV Access and the NVDA community. According to #16304, a phased transition plan is proposed, with full transition tentatively scheduled for 2026.
Description of user facing changes
This way NVDA Core and add-ons can execute appropriate code paths. For example, when accessing Windows Registry, WoW64 paths must be used if running 32-bit NVDA on 64-bit Windows and vice versa.
Description of development approach
Check runtime using
winVersion.getWinVer().processorArchitecture.endswith(“64”)Testing strategy:
run Python console and try the next code:
Known issues with pull request:
None
Code Review Checklist:
Summary by CodeRabbit