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. ;)

Reply via email to