DMD or LDC on mobile
kinke
noone at nowhere.com
Wed Aug 21 19:00:57 UTC 2019
On Wednesday, 21 August 2019 at 17:35:39 UTC, Manu wrote:
> Okay, so what are you saying about the extra LLVM build time?
I mentioned the LLVM CI/build because that would be required for
a native Android/iOS LDC package (not sure how much demand there
is).
As we don't have any 32-bit ARM CI either (but an AArch64 one),
this means that someone needs to build LLVM manually for the
prebuilt armhf packages. [And building LLVM with 3 emulated ARMv7
cores on my i5-3550 quad-core takes about 12 hours, just to give
you an idea wrt. emulator performance.]
> So, Android target works, but iOS not so much?
> What would you say is outstanding in Android front? Just
> passing CI?
> Is there druntime work to do? I suspect platform integration is
> scarce?
I don't know because I've never tried to target Android or iOS
(not interested at all myself, I mostly just use the browser on
my phone). There should be plenty of information in older LDC
GitHub PRs/issues, in the Wiki and possibly even this forum. -
IIRC, most tests are passing on Android for 32-bit ARM and
AArch64 (but don't expect proper C++ ABI compatibility).
Generating shared libs (obviously) works, but multiple .so's
cannot share a druntime.so (e.g., one GC for all shared D libs),
contrary to regular Linux and macOS.
> Does Android x86 work?
I'm not sure whether Joakim tested it, but he did definitely work
on adding druntime support for it, and LDC uses the 128-bit
quad-precision `real` type.
> I've seen iOS toolchains appear from time to time, I guess the
> standard build can't emit iOS code though?
No idea (code emission per se shouldn't be that big a deal and
probably works today, it's more about druntime - exception
handling, TLS, shared libs support etc.). Dan Olson (@smolt)
worked on an iOS fork of LDC some time ago, but IIRC, he didn't
upstream many of his patches to mainline LDC.
More information about the Digitalmars-d
mailing list