Unofficial ARM Elm binaries for Raspberry Pi

Raspberry Pi Logo

I have built some unofficial and experimental elm 0.19.1, elm-format 0.8.2 and elm-json 0.2.3 binaries for Raspberry Pi.

Installation

curl -L https://github.com/dmy/elm-raspberry-pi/releases/latest/download/elm.tar.gz | sudo tar zxC /usr/local/bin

The binaries have been tested only on a Raspberry 4 Model B with Raspbian GNU/Linux 10 (buster).

I believe that they should work on older Raspberry Pis and maybe other ARM 32 bits operating systems based on glibc, so please report any success or failure, here or in a GitHub issue.

Known issues

  • Because of a known ghc bug on ARMv7, SMP is disabled so elm will run only on a single core.

Please report issues at https://github.com/dmy/elm-raspberry-pi/issues instead of the official Elm repositories.

Performance

Here are the results of measure-elm-make with elm-spa-example on the Raspberry 4 Model B (single core because of the bug mentioned previously):

    OS:  Raspbian GNU/Linux 10
    RAM: 4GB
    CPU: Cortex-A72  @ 1.50GHz, 4 physical cores
    PROJECT: 33 files, 5827 lines, 10 direct deps, 2 indirect deps
    ASSET SIZE: 373645 bytes -> 94295 bytes (minified) -> 30030 bytes (gzipped)

    COMMAND: elm make src/Main.elm

      1482ms  -- from scratch
       296ms  -- worst incremental
       221ms  -- median incremental
       210ms  -- best incremental

    COMMAND: elm make src/Main.elm --output=/dev/null

      1432ms  -- from scratch
       142ms  -- worst incremental
        68ms  -- median incremental
        57ms  -- best incremental
10 Likes

Sorry for my ignorance. Have to ask. What are you using this for? :smiley:

2 Likes

This is a good question, as I don’t use this myself, and my motivation to provide the binaries is also to evaluate the interest and the use cases.

A teacher on slack wanted to use Elm on Raspberry Pi with students for education, and I guess this is the main use case.

Apart from that, I don’t know either what are the other ones, but folks sometimes ask if some binaries are available and the Pi 4 is now a quite capable general-purpose computer, at a very low cost, so it can be used for whatever reason any computer is used.

So if this is useful to anyone, tell us why!

1 Like

Works great on Raspberry Pi 2 with Debian Buster!

2 Likes

Great! Thank you very much for reporting.
I have added it to the README.

Running on Raspberry Pi 4 with Ubuntu 19.10 (armhf+raspi3), thx!

1 Like

Seems that 1GB makes a small difference in compile time. measure-elm-make with the elm-spa-example on Raspberry 4 Model B with 3GB

OS:  Ubuntu 19.10
RAM: 3GB
CPU: Cortex-A72  @ 1.50GHz, 4 physical cores
PROJECT: 33 files, 5827 lines, 10 direct deps, 2 indirect deps
ASSET SIZE: 373645 bytes -> 94295 bytes (minified) -> 30030 bytes (gzipped)

COMMAND: elm make src/Main.elm

  1655ms  -- from scratch
  1651ms  -- worst incremental
   237ms  -- median incremental
   220ms  -- best incremental

COMMAND: elm make src/Main.elm --output=/dev/null

  1572ms  -- from scratch
   122ms  -- worst incremental
    87ms  -- median incremental
    66ms  -- best incremental