Releases for other architectures? (ARM)
Are there likely to be any available for aarch64?
Do you mean releases of the Haskell implementation? The Haskell implementation has it's own issue tracker: https://github.com/dhall-lang/dhall-haskell/issues
Yeah, I'll assume that this was intended for the Haskell implementation and relocate the issue there
The main thing we'll need is either (A) hosting for build machines that have the desired architecture or (B) support for cross-compiling to the desired architecture using any one of our current build tools (e.g. Cabal, Stack or Nix)
Most of our build infrastructure that we depend on is free, with the exception of dhall-lang.org which builds the Nix build products, but that is not ARM
Might also want to ask about dhall-golang. I don't know if it's planning to make binaries available. But it's written in go, and go cross-compiles to a ton of targets. It seems the easier way forward. For example, these are the available targets for me:
$ go version
go version go1.13.8 linux/amd64
$ go tool dist list
aix/ppc64
android/386
android/amd64
android/arm
android/arm64
darwin/386
darwin/amd64
darwin/arm
darwin/arm64
dragonfly/amd64
freebsd/386
freebsd/amd64
freebsd/arm
illumos/amd64
js/wasm
linux/386
linux/amd64
linux/arm
linux/arm64
linux/mips
linux/mips64
linux/mips64le
linux/mipsle
linux/ppc64
linux/ppc64le
linux/s390x
nacl/386
nacl/amd64p32
nacl/arm
netbsd/386
netbsd/amd64
netbsd/arm
netbsd/arm64
openbsd/386
openbsd/amd64
openbsd/arm
openbsd/arm64
plan9/386
plan9/amd64
plan9/arm
solaris/amd64
windows/386
windows/amd64
windows/arm
There's a bunch of ARM targets that can be produced.
Of course, that all depends on whether dhall-golang is planning to produce binaries.
From an outsiders perspective I have found the repository structure somewhat confusing. Perhaps the dhall-lang/dhall-lang repo description could indicate what it is used for.
@keithy: I have a pull request to update the README which I believe will address your concern: https://github.com/dhall-lang/dhall-lang/pull/1000
I was also looking for binaries for ARM, wanting to use Dhall on a Raspberry Pi.
One workaround for the lack of ARM build machines, would be using QEMU. I currently use this to build stuff for the Raspberry Pi on my AMD64 machine. Did you already explore that option? Do you think it would be possible to integrate it into your build/release flow?
A potential issue is the difficulty in running QEMU in a container. Any more details on your build infrastructure would be helpful to figure out if this is a viable approach.
@kdkeyser: Nixpkgs does have utilities for running builds inside of QEMU under pkgs.vmTools, which you can find here:
https://github.com/NixOS/nixpkgs/blob/3ebcc76c866ec1c17eedba817efbbbe3e1bc56ad/pkgs/build-support/vm/default.nix
However, I don't know enough about QEMU to know how to use them to run a build inside of an ARM environment. My best guess is that you probably want to begin from this utility:
https://github.com/NixOS/nixpkgs/blob/3ebcc76c866ec1c17eedba817efbbbe3e1bc56ad/pkgs/build-support/vm/default.nix#L366-L396