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