Making (useful subsets of) bytecode portable between targets

Moritz Angermann moritz at
Thu Nov 24 02:05:33 UTC 2016

> On Nov 23, 2016, at 7:50 PM, Simon Marlow <marlowsd at> wrote:
> […]
> My question would be: are you *sure* you can't run target code at compile time?  Not even with an iphone simulator?

This should be possible. However for proper development one would need to run on the
device (iPhone, iPad, …) for armv7 or arm64, as the Simulator is i386 or x86_64.

There is a bit of additional engineering required here to get the shipping of
code from ghc to the runner on the target required (e.g. via network).  As executing
and controlling applications on the actual hardware is limited, I guess a custom
ghc-runner application would have to be manually started on the device, which could
trivially be discovered using bonjour/zeroconf (or just giving ghc the host:port information).

In general though, the runner does not have to obey all the restrictions apple puts
onto app-store distributed apps, as I expect that everyone could build and install
the runner themselves when intending to do iOS development with ghc.


More information about the ghc-devs mailing list