15

I am aware that the M1 is a different chip and requires programs to be rewritten to run on that new chip. I am also aware that some programs which have not yet been rewritten to work on M1 chips can still be run on an M1 device through emulation in Rosetta 2 (albeit less efficiently, but they'll still work and can still be used).

Question: can every single program that ran on Intel chips still run on M1 devices one way or another?

Note: the practical thing I am trying to answer is: if someone buys an M1 device, can they be extremely confident that all of the programs they ran on Intel Macs will work (in one way or another) on the new M1 Mac? Or are there some programs which simply will not work at all (yet)?

2
  • 8
    When I was in grade school, I remember being taught a strategy to evaluate true/false questions: if they use words like always, never, every, or none, the answer is usually false. (notice I didn't say "always"). Still holds true to this day. – Allan Nov 17 '20 at 23:21
  • It might help you could clarify that you are looking for applications running under macOS (and not on any other OS Intel Macs are currently able to run). – nohillside Nov 19 '20 at 10:25
21

Is every program that ran on Intel Macs capable of being run on the new M1 Macs?

Generally speaking, yes, but it really depends.

Rosetta 2 is the compatibility layer that will allow legacy software to run on the new Apple Silicon. It's this compatibility layer that will allow you to use your old software on this new chip much like how the original Rosetta allowed you to use software for PowerPC Macs to run on the new Intel based ones.

I very much hesitate to say that every program will work because there are always exceptions to the rule. Simple function apps or apps that don't make extensive use of hardware will probably work fine. More complex apps or ones that make direct calls to hardware will likely have issues. For instance, virtualization software like VirtualBox or Parallels won't work. If you need Boot camp - that's off the table altogether. So if you need to run these apps for whatever reason, you're out of luck for now.

Other specialized apps/products could have compatibility issues. MusicTech recommends holding off for now until thorough testing can be done. This is good advice across the board. When your business and/or livelyhood depends on having a stable platform to get work done, switching to a brand new platform is risky, no matter how hyped and shiny the new product is.

If this is your sole computer and it's for work - hold off. The software that you use is what brings in money and if nothing works, the brand new machine you just bought is effectively a paper weight. It's like buying a brand new, state of the art robot to manufacture something only to forget to bring in all the new electrical and network connections to run it.

If you have multiple machines and you can continue functioning without it, then I encourage you to go get a new Mac and start testing (I can't wait to get mine in a week or so). This way you'll know what works, what doesn't and what your options are down the road.

1
  • Comments are not for extended discussion; this conversation has been moved to chat. – bmike Nov 19 '20 at 15:57
7

can every single program that ran on Intel chips still run on M1 devices one way or another?

As of November 2020, the answer is no. Programs that require virtualization support, for example, such as Docker or VMWare don't work on M1s yet. They will likely be updated to work in the coming months -- the M1 supports virtualization, but virtualization is a very low-level CPU-architecture-specific feature, so can't be emulated in a reasonable way.

Virtualization is a major piece of functionality that's known not working, but there are a number of other specific programs that don't seem to work yet. Here's a Twitter thread covering a few that are relevant to software developers.

6
  • 1
    That twitter thread is very useful. You could keep the link, but also copy the programs not working into your answer. For example 1Password is a big one, so is the fact Go doesn't work yet (or, more correctly, hasn't been released for the M1 yet) – stevec Nov 18 '20 at 23:26
  • The twitter thread also says Java, R and a few other very important technologies are not ported over yet (that info is 6 days' old now). If it's still the case, that's quite a big deal – stevec Nov 18 '20 at 23:34
  • 1
    @stevec Docker indeed still does not work, and will not for a while. docker.com/blog/apple-silicon-m1-chips-and-docker – Wowfunhappy Nov 19 '20 at 0:52
  • 1
    @stevec regarding 1P, the 1P forum post linked from the Twitter thread clearly says "The 1Password for Mac app is supported on Apple's new computers, whenever they arrive". – nohillside Nov 19 '20 at 9:54
  • @nohillside you're right - twitter is a good way to crowdsource/aggregate information quickly, but it will probably go stale quickly too. I wonder if there's someone keeping a list of programs and whether they i) work on M1, ii) work on M1 only with rosetta, or iii) don't work at all. That would be extremely useful if such a list exists somewhere (and assuming it's maintained) – stevec Nov 19 '20 at 9:58
4

No. If you're still running MacOS 10.6, you can use the original Rosetta to run PowerPC programs on an Intel Mac. Rosetta 2 doesn't let you run those on an ARM Mac.

1
  • 4
    And there's no need to go back nearly so far—all of the carbon-based and 32 bit apps that broke in Catalina won't work on any Apple Silicon Mac. (And I have some thoughts about how Apple conveniently broke these apps one year before they would have needed to emulate them...) – Wowfunhappy Nov 19 '20 at 0:51
3

For those seeking an answer from a technical perspective:

No. And as noted by Apple themselves in particular, virtualization softwares (such as VirtualBox, Xen) will not run on Apple Silicon M1.

Apple Silicon M1 is based on ARMv8 instruction set architecture, where as Intel ones are based on x86-64, and the instructions for running virtualized systems are different fundamentally.

Another difference is that, ARMv8 doesn't have native x87 data types, and in particular the 80-bit extended floating point type (1-bit sign, 15-bit exponent, 64-bit significand). This means that Rosetta have to emulate 80-bit floating point in software, and due to the legacy nature of x87 technology, the compatibility of this area will be particularly tricky to ensure.

Speaking of floating point, Intel and ARM SIMD (Single-Instruction Multiple-Data) instructions and registers also operate slightly differently - not at mathematical level, but in ways they handle rounding, calculation errors.

Lastly, most programs are written in high-level programming languages such as C, C++, Python, etc. If care had been taken to ensure portability, they don't have to be re-written - the vendors only have to tweak a few build settings and compile the program again and sign them, they'll be ready for the new platform.

3

I bought a M1 Mac for dev work, and I use the following site to check the status of softwares compatibility of apple silicon. Their list is decently comprehensive.

isapplesiliconready

As of Dec. 18th, 2020, the following apps do not work with rosetta 2

  • SEGGER Embedded Studio
  • Google Drive File Stream
  • Haskell
  • Box drive
  • WD Discovery
  • Rhinoceros 3D
  • Barracuda VPN
  • Pro tools
  • Neutron plugin
  • Nectar plugin
  • LFO Tool plugin
  • Virtualbox
  • Revit
  • VMWare Fusion
  • Parallels

Things that depend on these application also won't work. Notably, I found no way to run a Kubernetes cluster.

At a glance, they tend to be apps that use virtualization, tinker the filesystem, or use OpenGL. However, I expect the developers to catch up within a year or so since they are working quite actively. For example, Docker not working was a main deterrent from purchase for devs, but a month later Docker seems to work.

Notice that for Google File System and Box, you can get away with RClone and OSXFuse, which I tested to work.

My verdict is that you should be fine using this for work if you need nothing from the list immediately.

1

Question: can every single program that ran on Intel chips still run on M1 devices one way or another?

This is in some sense a very narrow question because of the universal quantifier "every single program", and on the other hand a very broad question because of "one way or another".

The former means that we have to find only one single counterexample to make the answer be "No", but the latter means that we have infinite resources available to make the answer "Yes".

So, I will answer "Yes", every single program that ran on Intel chips can still run on M1 devices. Here's the proof: if you spend enough money (say, a billion dollars) and hire enough engineers (say, a hundred) and give them enough time (say, 20 years), then you can analyze every single element of a current Intel i9 CPU and write an emulator that emulates every single transistor, capacitor, resistor, wire, layer, interconnect, flip-flop, register, voltage, current, oscillator, clock, instruction, etc. accurately, and simply run the program in question within this emulator. It will probably be about 100 million times slower than running it on an Intel CPU directly, but it definitely will run "one way or another".

1
  • 3
    I think we should be more harsh on the question as opposed to someone trying to explain their point of view in an answer. I understand the hot network question effect can cause a lot of voting, the question says capable and software can and will be modified, so I see this as +1 in moving the discussion forward, personally. – bmike Nov 18 '20 at 19:23
1

There can’t be any guarantee, for several reasons.

One reason is bugs: It is possible to have bugs in software that have by sheer coincidence no effect. If you make any change, suddenly that bug hits you. And changing from intel code to arm code is a big change.

The other reason are limitations. The arm processor doesn’t support some intel vector operations. Everyone using these operations should have checked that they are available before using them. If they didn’t, that’s also a bug, and will make the arm version crash.

All these things are easily fixed, but sometimes things go wrong.

1

... M1 device, can they be extremely confident that all of the programs they ran on Intel Macs will work (in one way or another) on the new M1 Mac?

Identify your critical apps and make sure you maintain the hardware to keep it going. Then jump into M1 with both feet because you will never stop hem-hawing about it. Those apps will eventually port or drop out of the Macosphere altogether. Either way the problem is solved.

"all Mac programs" is too vast of a problem space for a practical solution to what is a personal issue. Reflecting on two Apple Computer, Inc. chipset changes I've experienced it was essentially no different than all the OS updates, application updates, et cetera, that we've endured since 1984.

Over time the greatest engineered incompatibility headaches, for me, were caused by software updates breaking their own data and file formats. Microsoft was the worst, breaking Word file formats then dropping support on every new release. Heck, one time, at band camp the office I used my personal Mac to convert correspondence from a new MS Word (for PC) format to our not-upgraded PC's.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .