I spoke too soon. It would appear that comeonin will compile with an older intel version of elixir (1.10.4-otp-23 in my case) Erlang (23.0.3 in my case), but fails on bcrypt when compiling on the latest elixir 1.11.2-otp-23 Erlang 23.2.1 for apple silicon.
Very smooth fully native M1 Arm installation now via latest Homebrew and asdf-vm; be sure to install the Erlang dependencies autoconf and wxmac before installing Erlang, as specified in the asdf-erlang instructions.
Of note: the scheduler sees all 8 cores, including the low-power ones:
Not sure if anyone’s seen this yet, but I’ve installed elixir 1.9 and erlang/otp 23 and almost all elixir compilation errors are swallowed and only a single stack-less “argument error” is spat out, ie:
Even when I compile on the same machine in docker, the compilation errors are reported correctly, so it might actually be a Big Sur issue, but I have no idea as to the root cause.
** (EXIT) no process: the process is not alive or there's no process currently associated with the given name, possibly because its application isn't started
The latest Elixir downloaded by Homebrew was 1.12.1, with Erlang/OTP 24. My project was created using Elixir 1.11.2, with Erlang/OTP 23.
The MongoDb driver 0.5.1 uses crypto.hmac/2, and OTP 24 wants crypto.hmac/3, so the project wouldn’t compile and run.
** (UndefinedFunctionError) function :crypto.hmac/3 is undefined or private
Attempts to upgrade plug_crypto, as recommended here, made no difference.
I couldn’t figure out how to downgrade Elixir and Erlang using Homebrew, asdf, kiex, kurl or exenv. So I deleted all copies of both, and switched to using Macports.
sudo port install erlang @23.1 sudo port install elixir @1.11.2
mix deps.get mix phx.server
Bingo!
This tells you how to install a given version of something with Macports
Depends on what you mean by “full potential”. BEAM do not support JIT on ARM64, so better performance of the CPU can be eaten by interpreting BEAM code instead of JITing.
Hello! I tried installing Erlang/OTP with kerl and Elixir with kiex and didn’t notice any difference. How can I tell it’s working? I just installed 24.1.4 though… should I be giving kerl a Github url and branch?
Heh, well using master works, I can see the [jit] tag when starting up repl. Unfortunately, one of my projects compiled fine, but another crashes during compilation. So back to 24.1.4 for now.
Yeah I’m seeing similarly disappointing times on my new M1 (max) mac pro. For whatever reason I only really see the two efficiency cores doing work while compiling, there is next to 0 activity on the performance cores, and I can’t really figure out why. iex shows [smp:10:10] [ds:10:10:10] so it should have enough schedulers.
I mean, I’m getting roughly the same compile time as my previous MBP (intel) w/ 8 Intel cores so it’s still impressive, but I’d really like to get the 8 performance M1 cores in the mix.