Apple M1 processor is "ARM", not Intel architecture but emulation exists

January 25, 2022 UPDATE: According to most recent feedback, situation improves and apparently everything is working fine under newest versions of Parallels

Apple released new Macbook Air with M1 processor.

Please note that while you can use AmiBroker on Intel-based Macs under Parallels,
you can not use it on non-Intel (or AMD) CPU.

M1 is not Intel architecture (i86/x64). It is "ARM" architecture.

M1 chip is NOT directly compatible with Windows desktop applications compiled for Intel/AMD CPU such as AmiBroker and pretty much all Windows desktop applications.

2022 UPDATE: While above is true, situation changed since Nov 2020 and now Parallels came up with emulation

See:

Quote (2020):

Currently available versions of Parallels® Desktop for Mac cannot run virtual machines on Mac with Apple M1 chip

Quote (NEW UPDATED):

On April 14th 2021, the new update for Parallels Desktop 16 for Mac was released and now features support for both Mac computers with Intel processor as well as Mac computers with Apple M1 chip.

4 Likes

also can't use Boot Camp https://support.apple.com/en-us/HT201468

That's correct, you cannot install Bootcamp on M1, quote:

Boot Camp requires a Mac with an Intel processor.

1 Like

Thank you Tomasz for the information

Thanks for this, saved me a potential major headache, as I was considering upgrading my Mac/Parallels machine that's working okay right now :slight_smile:

That was exact purpose for this post :slight_smile:

5 Likes

@Tomasz,

Assuming that Microsoft certifies Windows on ARM, any thoughts about recompiling?

Best regards,

It is not a matter of just recompiling as you naively assume.

There was "Windows for ARM" already it was called Windows RT and it was missing desktop/classic API at all, so you could no just "recompile" because there were no runtime libraries to link to. Programs do not live in a void. They use binary libraries (various runtimes and 3rd party libraries including data vendor APIs). You have to have ALL those binaries available for given processor.
Even when I started supporting 64-bit AMD/Intel back in 2006 (AmiBroker was first technical analysis software to offer 64-bit compatibility), none of data vendors offered 64-bit compatibility and it took several years for them to catch up. Also note that not entire AmiBroker is written in C++, we have (small) parts in i86/x64/SSE2 assembly code. So it definitely is not just recompiling.

1 Like

Thanks for the prompt follow-up!

Well, I just bought a new laptop with M1, Parallels and other Windows applications are working fine in it, will Amibroker be available for M1 in the near future?

other Windows applications are working fine

No they are NOT working fine. Initial reports are that OLE is entirely broken on M1 and results in RPC errors.

I have warned you in this very thread: M1 is NOT compatible. It is different architecture than x86/x64 Intel / AMD and can't run the code compiled for Intel/AMD natively.

Software emulation is broken.

Has anybody explored a Cloud based solution, which presumably is not something AB would want to offer/support?

Cloud for what exactly? Because this all cloudy talk is rather cloudy.

1 Like

Has anyone tried running ARM64 Windows 10 ? Introducing x64 emulation in preview for Windows 10 on ARM PCs to the Windows Insider Program | Windows Insider Blog

My intel MacBook just died so really hoping this can be a solution when my new M1 arrives :crossed_fingers:t2:

The key word is "emulation".

Emulation of different CPU is:

  1. SLOW
  2. NOT 100% compatible

Intel x86/x64 and ARM have completely different instruction sets. This means that you can't just tell ARM processor to execute x64 program. It has to translate instruction by instruction from x64 code to ARM code. Translation is slow. There is absolutely no way to achieve same performance of different CPU instruction set (x86/x64) on ARM. Also there have been reports that Windows OLE does not work.

You can read here Windows on Arm: This is how well 64-bit emulation is working - TechRepublic how many problems are there and how bad emulation performance is. You have been warned. Don't buy M1 hype. M1 will perform fine on native ARM code. Emulation will always be slower.

Over 30 years I was programming in assembly Zilog Z80, Motorola 680x0, Atmel microcontrollers, Intel 80x86/87, all ARM variants including M4, M7 (STM32F4xx, STM32H7xx and NXP iMX1170) so I can say something about differences in instruction sets.

3 Likes

Thank you for your response and certainly I am not questioning your technical expertise on the matter as you are clearly an expert whereas I have only a lay understanding of CPU architectures.

What I also know is that there are very different types of user, for the casual/hobbyist Amibroker programmer they would have much different needs and opinions of what “slow” means compared to an expert power user such as yourself. Same goes for compatibility, you would expect 100% seamless compatibility of every function whereas the hobbyist may be satisfied with somewhat less.

My personal situation is that I have been a macOS user for 10+ years and I have only one single windows application that I use regularly to screen and basic backtesting stocks at weekends which is amibroker so I’m not going to migrate to windows/Linux intel silicon just for that one single purpose.

Well, OK, I wrote that with the perspective of what marketing hype around M1 products is telling: we've got THE FASTEST mobile processor ever created. And it may be actually true, as long as you run ARM native code. What I tried to say is that if you are NOT running ARM native machine code but emulating some other instruction set, even with latest technologies like JIT you may suffer from 2-4x performance drop as compared to running x64 code on x64 processor. Of course it is up to you if that is acceptable.

In theory it should be possible to compile AmiBroker to ARM target, but there are obstacles and many questions unanswered, see: winapi - Support for Windows 10 desktop applications on ARM - MFC and COM and OPOS work? - Stack Overflow
In similar fashion as you prefer macOS and not going to migrate to anything else, investing my time in development of M1 version looks unlikely as there is so little demand (at least for now).

1 Like

That’s fair enough, can understand your perspective.

Thanks for taking the time to reply.

@jamesings curious if you received your M1 MBP and tried AmiBroker inside of a Parallels VM? I'm wanting to upgrade to the MBP 14" but, given Tomasz's response about the slower emulation, I'm concerned about how AB will run. TIA

@jamesings I'm a long time trader, new to Amibroker. I'm a mac guy and I just bought the M1 not knowing about the M1/ARM issues. Have you tried the M1/Parallels yet?

Like you mentioned, I'm ok with slower, but I'm not ok with the chip running hotter.

Thoughts?