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 Maccannot 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.
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.
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?
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.
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.
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.
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).
@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.