Skip to content

0.19.1 unofficial binaries

Latest
Compare
Choose a tag to compare
@lydell lydell released this 04 Jan 07:39
· 13 commits to zero-deps-arm-lydell since this release

This release contains the same binaries as the official Elm 0.19.1 release, plus a binary for Linux ARM 64-bit, compiled by Mario Rogic, as well as a binary for Linux ARM 32-bit (Raspberry Pi), compiled by dmy. There are also some unfortunate extra binaries that cannot be removed without breaking tooling – see below.

Why are there three macOS ARM 64-bit binaries, and two Linux ARM 64-bit binaries?

  • binary-for-mac-64-bit-ARM.gz is the recommended macOS ARM binary. That’s the one compiled by Evan and is copied from the official Elm 0.19.1 release.
  • binary-for-mac-arm-64-bit-recommended.gz is not recommended anymore, despite the file name. It’s unfortunate. The file name cannot be changed without breaking elm-tooling 1.12.0–1.14.1. This one is not recommended anymore, because it can segfault while installing Elm packages. That issue was solved in Evan’s binary by upgrading to a newer GHC version.
  • binary-for-linux-arm-64-bit-recommended.gz (the Linux ARM binary) is still recommended. It seems to work fine.
  • The two binaries mentioned above ending with -recommended.gz are compiled from the same commit as the official x86_64 binaries. They were created after the gotcha in the next point was discovered.
  • binary-for-mac-64-bit.gz and binary-for-linux-arm-64-bit.gz were compiled from a later commit. The Linux one still works, but can result in surprises. There are some unreleased commits that result in ever so slightly different compiled JavaScript. Many build systems hash outputs for cache busting. If you run a binary compiled from a later commit locally but an official one on a build server, you might be confused why you get different hashes locally and on the build server for example. There’s also a risk that something compiles on your local computer, but not on the build server, or someone else’s computer (who doesn’t use ARM 64).
  • The two binaries mentioned above (that were compiled from a later commit) cannot be removed without breaking elm-tooling 1.11.0, so they’re still around.