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