Adding support for Elixir 1.17 / OTP 27 in Nerves

I started investigating using the new versions with Nerves. I have found a few pieces that need a little more vetting and investigation. Follow along here and test yourself if able :wink:

There are various PR’s open that would be needed to support this:

Elixir 1.17

  • nerves_ssh#154

    • Required to start the IEx shell when SSH-ing to device
  • The vm.args.eex needs to adjust to use -run elixir start_cli

    • nerves_bootstrap#316 fixes the mix
    • I’m unsure :elixir.start_cli is the right entry point. May need more investigation

OTP 27

Current problems

  • OTP 27 does not boot. The only logs I have right now (via UART) are ¬
size_object: matchstate term not allowed
[nbtty: terminating]
[    8.035300] watchdog: watchdog0: watchdog did not stop!
[    9.107671] reboot: Restarting system

I just wanted to update this thread that the issue posted here was fixed. The size_object: matchstate term not allowed error can happen when you run Elixir 1.17 compiled with OTP 27 on OTP 26. The assumption is that this somehow happened here.

Support for Elixir 1.17 and OTP 27 is getting really close to being released with Nerves. It seems to be working well and we hope to release soon.