On Wednesday, 1 November 2017 at 21:50:09 UTC, Johannes Pfau
wrote:
Am Wed, 01 Nov 2017 19:24:42 +0000
schrieb Joakim <[email protected]>:
On Wednesday, 1 November 2017 at 18:28:12 UTC, Johannes Pfau
wrote:
> ARM: Fine. Android: probably won't work well. AFAIK we're
> only missing emulated TLS / GC integration, so most test
> will pass but real apps will crash because of GC memory
> corruption. I guess I should finally get back to fixing that
> problem ;-) OTOH Android doesn't even support GCC anymore,
> so I don't really see much benefit in maintaining GDC
> Android support.
I don't see what their deciding to drop gcc has to do with
whether gdc should support Android.
If there's a backend bug in GCC related to Android nobody will
take responsibility as it's not officially supported. All
tutorials and documentation will focus on LLVM based compilers.
It's certainly still interesting to use GDC for Android, but it
is more work (especially considering Android is one of the few
systems requiring emutls) for little benefit, especially if
most users are going to use LLVM anyway.
With the limited time available I think GDC should focus on
systems where GCC is a first class or even the preferred
compiler. X86/MIPS/ARM/PPC/Linux as some distributions such as
debian might prefer a GCC based compiler. Then there are
embedded toolchains which primarily use GCC: MSP and ARM (GCC
Arm Embedded project). Also many console homebrew toolchains
exclusively use GCC.
I just don't think we have to support two compilers for any
target with the little resources we have.
Here's the thing though: Android is basically just linux/ARM
without native TLS and replacing glibc with the bionic C runtime.
If you're going to support linux/ARM with glibc, it's not going
to take much to support Android too, particularly since I
upstreamed all my Bionic declarations and support into stock
druntime.
Far be it from me to tell you what to work on, and I realize
getting emulated TLS working with the garbage-collector is a
pain, but it won't take much more than emulated TLS for gdc to
support Android. If you grep the llvm codebase for Android, you
find almost nothing, basically just emulated TLS.
I agree that we don't need two D compilers for every platform,
but it'd be nice to have for the most widely deployed OS platform
on the planet. ;)