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:
/usr/sbin/softwareupdate –install-rosetta
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
Oops, that’s less pleasant news, especially when you read this news about Rosetta 2:
“Rosetta May Be Removed From M1 Macs in Some Regions on macOS 11.3” (https://www.macrumors.com/2021/03/02/rosetta-macos-11-3-strings).
Indeed IF those rumors are in any way true it will be a bad thing for those Xojo users who might be affected
How many people in the world actually consider LINKING to not be part of the over-all COMPILE process? Sure, “technically” it is two steps to the process, but that process is NOT transparent to an Xojo Developer…. So Xojo is just “lying” once again. OH WAIT!
It MARKETING!!! (been there done that)
And you got banned for arguing with “marketing speak”. That Geoff treats everyone as if they were a child is well documented now. One would think he is a Nobel Prize Winner, or some similar highly-regarded achievement. But that is hardly the case, which then leaves the old slave-owner mentality that never accepts any blame or ownership for mistakes and instead reflects the blame on others for being such small minded and not being as intelligent as he is. It is pretty laughable, because it is the type of behavior that you condone or let slide on very old and affable folks because they are just that, old, and deserve a modicum of respect just for being on this Earth for so long.
I have t oadmit that the hair splitting reply was what it was.
Xojo is nerve talked about as “IDE, compiler, linker” as though they are separate – its one packe/product and so when someone says “Xojo is …” they rarely, if ever, mean any one component of it.
That is, unless they specifically call out one component.
Which the press release didnt do.
It just said Xojo is Apple Silicon compatible as are Workers and XojoScript (its why I quoted that from the release)
So anyone reading that will assume ALL of the IDE compiler & linker are.
There is no reason NOT to
The press release (as you quoted it) specifically says “which builds native Apple Silicon helper apps.” It uses the same linker for both apps and helper apps, no? And this statement is within the context of “native on Apple silicon.” So, it is a straight lie, not simply an omission of a technical requirement.
I quoted the press release and the replies I received
Geoff claimed they said something else
We said the IDE, XojoScript, Worker and compilation are native. We did NOT say linking is native.
I thinks is disingenuous to claim they did say it that way since the word “compile” isnt in the press release once
Can you, or anyone else, find anything there that would lead you to understand the release that way ?