[OT] LLVM Community Code of Conduct

Johannes Pfau via Digitalmars-d digitalmars-d at puremagic.com
Sun Oct 18 04:49:09 PDT 2015


Am Sun, 18 Oct 2015 09:55:52 +0200
schrieb Iain Buclaw via Digitalmars-d <digitalmars-d at puremagic.com>:

> On 18 Oct 2015 9:45 am, "Vladimir Panteleev via Digitalmars-d" <
> digitalmars-d at puremagic.com> wrote:
> >
> > On Sunday, 18 October 2015 at 07:37:55 UTC, Iain Buclaw wrote:  
> >>
> >> Essentially, the reason D has not been ported to X has nothing to
> >> do  
> with lack of compiler support.  A compiler can always be built to
> target X, and if that wasn't enough, there are many ready built
> packages available that target X.
> >>
> >> It is now your job as porters to fix up druntime to allow a
> >> library to  
> be built by these compilers.
> >
> >
> > That's not very useful. LDC and GDC still include Phobos and
> > Druntime. 
> 
> It is infinitely more useful than having no compiler at all to test
> porting changes.
> 
> > You're essentially saying that once LDC gets Android/iOS support,
> > GDC  
> will automatically get it as well with no effort required from you?
> >  
> 
> In it's runtime? Correct - assuming no one invents any new predefined
> version conditions in the process. :-)
> 

Generally speaking the nice thing about the GCC backend is that as
frontend developers we don't have to care much about the target
architecture. Porting the compiler to a new architecture is usually
trivial, the only exception being bugs in our frontend which only
manifest for specific backends.

I guess it's similar for LDC. Porting D to a new architecture is really
mostly porting druntime and phobos. Progress is slow however, as the
LDC and GDC teams don't really have the ressources to do this in
addition to compiler support and the DMD team OTOH only supports X86.

As the test suite requires drutime and phobos, there's however no
reliable way to estimate how stable a compiler really is without having
a druntime/phobos port.



Android is a kinda special case. I had another look at Android/ARM with
GDC some time ago and after fixing a few regressions (missing
version(Android) in the arm unwinder) it passed the druntime unittests
on my mobile phone. As Joakim has fixed most druntime parts and GDC
gained emulated TLS some time ago this is not surprising.

Phobos tests however, immediately segfaulted. The reason is the way we
detect data sections. The fix is complicated but as this code will be
rewritten once GDC has shared library support there's no need to fix
this now.

TLDR: We're not far from Android/ARM support in GDC. Once we have
shared library support there's not much left*. And there are some good
news: I recently learned something new about the binutils linker
from Martin Nowak (regarding _start/_end symbols for named
sections). This hopefully means we'll have shared library support soon
in GDC. I'll 'just' have to update my old pull request...


* From a compiler/runtime perspective. I agree that 'Android
  support' should also include bindings/wrappers for various android
  functions and tutorials. But that's not my department ;-)


More information about the Digitalmars-d mailing list