Author |
Topic ![Next Topic Next Topic](icon_go_right.png) |
aremmell
Junior Member
![](icon_star_green.gif) ![](icon_star_green.gif)
USA
12 Posts |
Posted - Jul 24 2023 : 9:51:31 PM
|
I am sure you folks at WT are already aware that Windows11 provides an emulation layer for x86_64 and x86 binaries... and that Microsoft ported Visual Studio to arm64 in v17.4.
Why don't you just remove the install-time restriction, or simply change your compiler setting to arm64 and press compile?
I've been using VAX for 10+ years and now I can't because you don't support the CPU of The Future (TM).
Do you have an ETA on this? Or can you tell me how to hack the installer so it bypasses the architecture check?
Thanks |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Jul 25 2023 : 06:44:04 AM
|
We are considering ARM support:
case=148242
but please remember our code base started with VC6, and is partly written in C++, so I would not like to assume you can simply tell it to compile for ARM and expect a perfect result.
Hacking the installer won't help, since VA currently doesn't have an ARM build, and unfortunately I don't currently have an estimate for this, but knowing how many people are interested in this is helpful to working out how to prioritise things. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
aremmell
Junior Member
![](icon_star_green.gif) ![](icon_star_green.gif)
USA
12 Posts |
Posted - Aug 08 2023 : 1:54:58 PM
|
Hello,
1. In fact, you can actually just add an ARM64 build configuration based on your x64 configuration in MSVS and press compile and I promise it will build perfectly; no changes to C++ syntax are necessary to compile for a different architecture-that's kind of the point of using a language like C++.
2. My point was that you don't need an ARM build of your installer. Windows 11 has an entire x86_64 emulation layer (similar to Windows on Window64/WoW64), such that x64 binaries run seamlessly on Windows 11 Arm64. Jetbrains ReSharper does not have an ARM installer, but I am able to use their plugin because they don't have a restriction on the installer. I would much rather use VAX than ReSharper, but I am unable to do so. |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
aremmell
Junior Member
![](icon_star_green.gif) ![](icon_star_green.gif)
USA
12 Posts |
Posted - Aug 08 2023 : 2:10:34 PM
|
Addendum: you need to install the ARM64 build tools workload in the Visual Studio installer for this option to be available. I would just select `C++ Build tools ARM64 (latest)` if you are using the latest Visual Studio. That should allow you to cross-compile for ARM on an Intel machine (I have tested it, works fine). |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Aug 10 2023 : 09:00:58 AM
|
You are assuming that everything in the entire build chain is pure C++, that there are no tools or libraries that are required that aren't also present as pure C++ code. As for emulation, from this page:
https://devblogs.microsoft.com/visualstudio/arm64-visual-studio/
Microsoft clearly state that "native extensions will need to be rebuilt to support Arm64", so obviously Microsoft don't feel, or didn't feel, that emulation would let an x64 extension run within Visual Studio that is compiled for ARM.
I don't know about ReSharper, but either the above blog post is no longer correct, or they have already ported to ARM.
We are considering and looking into moving VA to natively run on ARM, but I don't have any estimates currently.
Have you considered running Visual Studio via the emulation, rather than the ARM version? I haven't spoken to anyone yet who has tried this, so I don't know how well it would work, but it sounds like it is an option, at least in theory. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
aremmell
Junior Member
![](icon_star_green.gif) ![](icon_star_green.gif)
USA
12 Posts |
Posted - Aug 10 2023 : 09:15:11 AM
|
I was not aware MSFT had said that, but I don't believe them: VSIX extensions have a manifest file inside them that contains references to the platform(s) they target. If the host isn't in that list, they fail to install. I learned a trick�just open the file up and change 'amd64' to 'arm64', save it, and it installs fine.
The emulation layer is so good, in fact, that I did not notice when they switched me from x64 to arm64 around 17.4. I'm not sure I would be able to keep using an x64 VS without freezing my version in time (in the past now, at that).
I would say (not that I have a say in the matter) that you should remove the architecture check in the installer, send it to me, and I'll tell you if it blows up my machine or not. I'm willing to bet it works just fine but I've been wrong before.
I understand that I'm an early adopter here, but I promise you the future of CPUs is the aarch64. The performance and energy consumption are so much unbelievably better than x86_64 variations of the same class it's hard to communicate it.
I also work in a strange situation where macOS is my primary OS, but Windows is my development environment, so that's the impetus for my begging and pleading here�I have no choice but to use Visual Studio, and it's nearly unbearable without VAX... so please help!
|
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Aug 10 2023 : 11:14:10 AM
|
If you want to experiment, you can download the current VS2022 specific installer from:
https://downloadfiles.idera.com/WholeTomato/VA_X_Setup2491_0_x64.vsix
a VSIX file is simply a renamed ZIP file, so if you rename it you can open it up easily enough. I don't have an ARM system myself to test this on, otherwise I would try the experiment myself out of curiosity. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
aremmell
Junior Member
![](icon_star_green.gif) ![](icon_star_green.gif)
USA
12 Posts |
Posted - Aug 10 2023 : 4:55:44 PM
|
Well, I have good news and I have bad news. The good news is that it will install; the bad news is that I'm getting the following error upon load for both the Debug and main packages (FYI, I think MSFT broke you guys with 17.7. I am also getting package load errors for the 'menu' package on my intel machine, coincidentally immediately after update):
quote: No InprocServer32 registered for package [Visual Assist] (hr = 0x800700c1)
I used Err.exe (the best tool ever made for Windows: https://learn.microsoft.com/en-us/windows/win32/debug/system-error-code-lookup-tool), and it says 0x800700c1 = ERROR_BAD_EXE_FORMAT # %1 is not a valid Win32 application. and the file is `VaPkgAsync64.dll` so I guess maybe MSFT was not kidding when they said things would have to be recompiled.
However, now I'm left wondering how difficult it would be to trick this loader code using Arm64x/Arm64EC (https://learn.microsoft.com/en-us/windows/arm/arm64x-build) which may be as simple for you guys as literally changing some build settings--but would only work for Win11+).
Anyhow, thanks for satisfying my curiosity if nothing else. I think it would be valuable to at least *try* Arm64EC as an experiment to test whether that is the only change needed or not.
Cheers |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Aug 11 2023 : 06:33:29 AM
|
VS2022 version 17.7.0 has changed something we rely on, and we are working on a fix for that, so you could be seeing that in the ARM version, if you have updated to that version of Visual Studio.
Given the blog states clearly that native extensions have to be rebuilt for ARM, I assume that Microsoft mean that emulating an x64 extension inside an ARM Visual Studio is not supported, or is just not considered a good idea. I am guessing that it would have a noticeable performance impact, and given that we work hard to keep VA running as fast as possible, that would not be ideal.
Still, it was an interesting experiment. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
SvenR
Tomato Guru
![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif)
109 Posts |
Posted - Aug 15 2023 : 3:22:01 PM
|
VS2022 for ARM64 is a native ARM64 application and it can only load ARM64 dlls. Therefore VAX must also be compiled as ARM64 to use it in VS2022 for ARM64.
As I said in the other thread: Just create an ARM64 configuration in your VAX solution and compile it. You have already a working x64 build. That's all it takes. |
Windows 10 x64, VS 2022, VaX 10.9.2522 |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Aug 16 2023 : 04:48:06 AM
|
Unfortunately you are assuming that the build process is 100% source code, no external dll's or components. We are tracking interest in an ARM build, and are considering it. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
SvenR
Tomato Guru
![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif)
109 Posts |
Posted - Aug 16 2023 : 07:58:11 AM
|
External dlls or components are indeed stumbling blocks as long as they are not available as ARM64.
For myself, I have found a solution. A MacBook with M2 processor is fast enough for using the x64 version of VS2022 in a Windows ARM64 VM. So all available AddIns can be used. The C++ code, however, is compiled with the native ARM64 toolset. The MacBook Air with 6 virtualized cores and 16 GB is even slightly faster than a real Windows PC with an i5 (6 cores with HT) and 32 GB. |
Windows 10 x64, VS 2022, VaX 10.9.2522 |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Aug 16 2023 : 09:54:16 AM
|
Interesting, I had assumed this was possible and would work, but you are the first person to actually report doing so, so thank you for that. It won't be an option for everyone, but it is still good to know this is an option. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
SvenR
Tomato Guru
![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif)
109 Posts |
Posted - Aug 16 2023 : 3:20:31 PM
|
It all depends on the hardware. On a SurfaceX with Microsoft SQ1, VS2022 does not really run properly even in the native ARM64 version. I was extremely surprised by the performance of the Apple M2. |
Windows 10 x64, VS 2022, VaX 10.9.2522 |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Aug 17 2023 : 06:03:20 AM
|
I have read that the Apple ARM chips were good, but still, that seems a massive difference! Also worth knowing, so thank you. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
aremmell
Junior Member
![](icon_star_green.gif) ![](icon_star_green.gif)
USA
12 Posts |
Posted - Aug 17 2023 : 6:22:33 PM
|
I am also running VS arm64 in a VM on an M2 MBP. It is so much faster than my Intel MBP, that even before they released an arm64 version of VS, the x64 version ran faster in the emulation mode than on native Intel x64 hardware.
The M2 chip isn't just good--it's game-changing. That's why I am so insistent that you guys get on the arm train, because it's coming down the tracks whether we like it or not. x86_64's days are numbered... |
Edited by - aremmell on Aug 17 2023 6:23:10 PM |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Aug 18 2023 : 05:58:20 AM
|
That makes sense, and this comparison is both impressive, and almost a little scary Still, a major shift to ARM is going to take time, but yes, it makes sense that getting VA working on ARM is important. We are certainly looking into it. I suspect tools that we use are going to be an issue, but I am just guessing personally. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
Uniwares
Tomato Guru
![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif)
Portugal
2321 Posts |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Aug 31 2023 : 09:27:16 AM
|
To be fair most requests for ARM support I have seen have mentioned running on a Mac, but using a VM to run Windows ARM version, since the Mac chips are so good. Still, not ideal. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
aremmell
Junior Member
![](icon_star_green.gif) ![](icon_star_green.gif)
USA
12 Posts |
Posted - Aug 31 2023 : 2:14:00 PM
|
Honestly, Visual Studio is over. VS Code is ten times faster, has a thousand times more extensions, and runs on every platform in existence.
If I were Whole Tomato, I would be working on a VS Code extension, and plan for Visual Studio to not exist at all in 5-10 years. |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
Uniwares
Tomato Guru
![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif)
Portugal
2321 Posts |
Posted - Sep 01 2023 : 10:38:43 AM
|
There are still many things that VSCode doesnt do or just rudimentary which you can do in VS. May not be visible at first, especially for the Community version, but when you go enterprise, there is a whole new world that VScode does not even know about. Will take a long time still to make VS obsolete. |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
SvenR
Tomato Guru
![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif) ![](icon_star_green.gif)
109 Posts |
Posted - Sep 12 2023 : 08:13:10 AM
|
Visual Studio for Windows and Visual Studio for Mac had nothing in common except the name. Visual Studio for Mac was really just a renamed Xamarin Studio for developing .NET applications on the Mac. So for a C++ developer, no real loss. |
Windows 10 x64, VS 2022, VaX 10.9.2522 |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
programmer1000
Starting Member
1 Posts |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Jan 09 2024 : 05:56:38 AM
|
We are currently working on ARM support, but please remember that VA is built partly in C++, so it has to actually be ported to ARM, and that we use other components as well, that are not automatically available for ARM either. So not as simple or straight forward as some code. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
aremmell
Junior Member
![](icon_star_green.gif) ![](icon_star_green.gif)
USA
12 Posts |
Posted - Jan 09 2024 : 07:22:30 AM
|
quote: Originally posted by feline
We are currently working on ARM support, but please remember that VA is built partly in C++, so it has to actually be ported to ARM, and that we use other components as well, that are not automatically available for ARM either. So not as simple or straight forward as some code.
That�s great news. PVS-Studio has released their VS plugin for arm64 (because of a certain annoying customer *ahem*) so I am glad you guys are getting on board too. I hate using ReSharper! |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Jan 09 2024 : 10:04:37 AM
|
We are working on this, definitely enough customer interest to make this something we want to get working. Just not quite the simple "recompile and ship" that some pure C# projects get though ![](icon_smile.gif)
If the pain is to much, I know one customer has installed the x64 Visual Studio version under Windows ARM, relying on the software compatibility to get this to work, and they reported no problems installing and running VA. Not the perfect solution, but it does seem to be an option. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
aremmell
Junior Member
![](icon_star_green.gif) ![](icon_star_green.gif)
USA
12 Posts |
Posted - Jan 09 2024 : 10:08:51 AM
|
quote: Originally posted by feline
We are working on this, definitely enough customer interest to make this something we want to get working. Just not quite the simple "recompile and ship" that some pure C# projects get though ![](icon_smile.gif)
If the pain is to much, I know one customer has installed the x64 Visual Studio version under Windows ARM, relying on the software compatibility to get this to work, and they reported no problems installing and running VA. Not the perfect solution, but it does seem to be an option.
Hmm, I don�t know how they managed that, because I tried it and get an error message each time. If I recall correctly, I edited the VSIX to refer to arm64 (if there is one-I have done this a lot and am not sure it was VAX).
Maybe they are running the x64 VS too? |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Jan 09 2024 : 11:38:07 AM
|
Their description of what they did was:
>> A MacBook with M2 processor is fast enough for using the x64 version of VS2022 in a Windows ARM64 VM. So all available AddIns can be used. The C++ code, however, is compiled with the native ARM64 toolset. The MacBook Air with 6 virtualized cores and 16 GB is even slightly faster than a real Windows PC with an i5 (6 cores with HT) and 32 GB. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
aremmell
Junior Member
![](icon_star_green.gif) ![](icon_star_green.gif)
USA
12 Posts |
Posted - Jan 09 2024 : 12:00:57 PM
|
quote: Originally posted by feline
Their description of what they did was:
>> A MacBook with M2 processor is fast enough for using the x64 version of VS2022 in a Windows ARM64 VM. So all available AddIns can be used. The C++ code, however, is compiled with the native ARM64 toolset. The MacBook Air with 6 virtualized cores and 16 GB is even slightly faster than a real Windows PC with an i5 (6 cores with HT) and 32 GB.
Yeah, that makes more sense. Unfortunately I�m on the arm VS2022. |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
feline
Whole Tomato Software
![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif) ![](icon_star_red.gif)
United Kingdom
18915 Posts |
Posted - Jan 09 2024 : 12:53:21 PM
|
All I can say is that we are actively working on ARM support. Obviously we will want to make sure it is robust and reliable before releasing it, but there is enough interest that this is definitely something we are looking to do, but until it is fully ready I am reluctant to guess at a time scale. |
zen is the art of being at one with the two'ness |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
aremmell
Junior Member
![](icon_star_green.gif) ![](icon_star_green.gif)
USA
12 Posts |
Posted - Jan 09 2024 : 12:57:13 PM
|
quote: Originally posted by feline
All I can say is that we are actively working on ARM support. Obviously we will want to make sure it is robust and reliable before releasing it, but there is enough interest that this is definitely something we are looking to do, but until it is fully ready I am reluctant to guess at a time scale.
I'm willing to guinea pig for you. I can set up a separate VM and report issues I find when you're ready�. |
![Go to Top of Page Go to Top of Page](icon_go_up.png) |
|
Topic ![Next Topic Next Topic](icon_go_right.png) |
|