On Monday, 28 December 2015 at 01:17:15 UTC, Dan Olson wrote:
A little progress report. More to come later when I get
something pushed to github.
I bought a returned Apple Watch yesterday at discount for
$223.99 US and tried to see how much of D would work on it
using my iOS fork of LDC. There were a few bumps, like dealing
with embedded bitcode (a watchOS requirement). After 4-hours of
baby steps, little D programs with incremental druntime
support, I was able to download a huge watch app extension with
all druntime and phobos unittests and run most of them
alphabetically. Everything zipped along fine, only a std.math
error, then mysteriously a exit after running std.parallelism
test a long time. It was late for me so decided that was enough
progress.
This means all of druntime worked and probably most of phobos.
The Apple Watch uses a new chip with armv7k, a different ABI,
and different exception handling than iOS, so kinda surprised
it worked as well as it did. Of course much thanks goes to
LLVM with recently added watchOS, tvOS support, and all the LDC
contributors that have kept master building with the latest 3.8
LLVM.
Heh, nice, thanks for keeping us up to date.
I don't understand how the bitcode requirement works on your own
device: I thought that was for an Apple-submitted app that they
then compiled to binary themselves? Do you have to go through
the same process even for test apps, ie no sideloading? Or does
the device itself take bitcode?
btw, Dan's iOS/tvOS/watchOS work will require these dmd/druntime
github pulls to be reviewed and merged:
https://github.com/D-Programming-Language/dmd/pull/5231
https://github.com/D-Programming-Language/druntime/pull/1448