Been getting weird reports from friends that Xojo 2021r1 isnt quite as “native” on M1’s as expected
If you do NOT install Rosetta the IDE runs – but you cannot debug or build anything
Poking around it appears the linkers, ld, ldarm and lld are all only built as x86_64 binaries meaning that you MUST install Rosetta for Xojo to be able to debug or build
EDIT : I wrote Geoff after I heard of this and said “someone should look into this ASAP”. The reply I got doesnt surprise me; nor impress me.
We are aware of this. We will be making the linker native but for now it requires Rosetta. This is rarely an issue because nearly everyone installs Rosetta anyway since they almost certainly have some software that requires it at this point. Linking is a tiny fraction of the run/build time at this point.
While I can’t tell you when, it is a priority to get the linker to be native and thus not require Rosetta.
EDIT II : I replied, as follows, quoting the press release
So this claim is not entirely true
With this release Xojo itself is native on Apple Silicon, as well as XojoScript and Worker, which builds native Apple Silicon helper apps. In the previous release from November 2020, native compilation for the Apple Silicon (M1) Macs was added, which made Xojo the first cross-platform development tool to support Macs with this new processor technology.
And I received another reply
We said the IDE, XojoScript, Worker and compilation are native. We did NOT say linking is native. That may be a distinction without a difference but it is what we said. Regardless, linking is a tiny fraction of the entire process. And for a lot of users, linking is an implementation detail. As I said we are working on making the linker native as well. But just to make the point even stronger, I wouldn’t add that as a bullet item for a release because for most users linking is an implementation detail.
A hair splitting detail since the press release makes it seem like the ENTIRE IDE is M1 native when its not. Were the linker a separate application, like it sometimes is in other tools, I could see splitting this out as a separate item. With Xojo, the IDE is editor, compiler, and linker all in one so saying Xojo is native leads one to assume that ALL components of it are. But that is not true.
I’ve asked they add Rosetta to the requirements pages JUST so no one is surprised.
EDIT III : System requirements page HAS been updated, 2021-04-04-02:09:22, to say
macOS Mojave (10.14) or higher is required to build for Apple silicon. See below for iOS requirements.
An SSD is recommended for best performance.
While Xojo itself (and the Xojo compiler) are native on Apple silicon, a small part of the build process still requires Rosetta to be installed in order to run/build apps when using Xojo on Apple silicon. You will be prompted to automatically install Rosetta if it is not present.
EDIT IV : While the requirements are “more correct” its not true that you will be prompted to install it if it is not present. Maybe that will come in a future version – but at the moment the reason this entire thing got started was because there was an error debugging & building ARM only apps from Xojo as they would fail with an obscure error about not being able to start the linker. The Xojo IDE does NOT prompt you to install Rosetta if it is missing.
If you get an error that looks like
know that this error is from the linkers NOT being native and so without Rosetta they will not work. Save your work. Quit the IDE. Install Rosetta and go back to work.
I do just wish they’d been more clear about this requirement
EDIT V : And now another user has experienced this
I still don’t understand what TIME has to do with this issue. The point is not that the linker takes milliseconds, or hours. It’s that, without Rosetta, it wont work AT ALL. Saying linking only takes a short amount of time isnt relevant in any way.
Does it work without Rosetta ? NO. End of story
EDIT VI : This is perhaps one of the most edited posts on my blog in the entire time its been up
The system requirements page has been updated. Again
Now it says
While Xojo itself (and the Xojo compiler) are native on Apple silicon, a small part of the build process still requires Rosetta to be installed in order to run/build apps when using Xojo on Apple silicon. You can easily install Rosetta if needed by pasting the following command into a Terminal:
Big or small portion isnt really relevant. Nor is how long this portion takes to run.
The entire app bundle is made up of several apps and some were not native. Period. Not fully native and Rosetta is required.
Everything else is hair splitting