DMD or LDC on mobile

kinke noone at nowhere.com
Tue Aug 20 19:26:47 UTC 2019


On Tuesday, 20 August 2019 at 18:17:42 UTC, Manu wrote:
> I don't know the scope of this task

I doubt anyone does.

I'd definitely start with separating Android and iOS; Android 
probably just needs some polishing, while there's surely more to 
do for iOS (watchOS? tvOS? bananaOS?).

Then clearly define the desired platforms, not just the OS - 
e.g., ARMv6 too, or just ARMv7 and AArch64? Is Android/x86_64 
relevant too? ? You might wonder if there's much difference to 
regular Linux, except for Bionic instead of glibc/musl/uclibc - 
there is, e.g., the used `real`/C `long double` is apparently a 
software quad-precision format, apparently for AArch64 
compatibility...

If proper ABI compatibility with C(++) is desired (one can get 
quite far with a hacky rudimentary implementation), then that 
should be specified as well. While working out the ABI details 
and getting LLVM to do what you want can be tedious, ABI handling 
should be much simpler for gdc according to Iain.

Probably the most important aspect/prerequisite is setting up CI, 
incl. automated release builds. This includes setting up CI for 
our LLVM fork as well (e.g., required on Android due to custom 
TLS emulation...) - no real CI, just building and packaging LLVM, 
which can take quite a while; luckily, it should be fairly simple 
to cross-compile LLVM on x86.
If there's no free CI service providing what's needed, then 
someone interested would have to provide some infrastructure or 
pay the bills. Note that emulators running on x86 hosts *might* 
suffice; e.g., building the druntime/Phobos unittest runners (big 
chunk of overall time) can be done natively on the host by 
cross-compiling - today. Running the DMD testsuite takes rather 
long as well, so if doing that in an emulator, one might easily 
run into CI time-outs (but Azure offers 6h...).
Once settled for a CI service, setting up CI and polishing isn't 
rocket-science, just tedious; no programming skills required at 
all. ;)


More information about the Digitalmars-d mailing list