GDC with D frontend 2.081.2

Arun Chandrasekaran aruncxy at gmail.com
Mon Aug 27 17:23:04 UTC 2018


On Friday, 24 August 2018 at 05:35:13 UTC, Eugene Wissner wrote:
> As some of you may know D frontend was merged into GDC some 
> time ago and is up to date. D version currently supported by 
> GDC is 2.081.2 and it can be found in "gdc-7" and "gdc-8" 
> branches. I will say a bit more about GDC development and 
> development plans later.
>
> I prepared GDC/GCC 7.3.0 binaries for x86-64 Linux built on 
> Ubuntu 18.04:
>
> https://download.dlackware.com/gdc/gdc-7.3.0_2.081.2-linux-x86_64.tar.xz
>
> I’m not a regular Ubuntu user, and built GDC in a VM, so don't 
> blame me (too much) if something doesn’t work, but let me know 
> anyway. For testing I've used a minimal Ubuntu installation and 
> had to install only "libc-dev" package. The package includes 
> gcc, g++, gdc and standard GNU tools, but no D tools like dub. 
> I still need some time to automate the building, then I can 
> build for more platforms and provide some core tools.
>
> We support several GCC versions and we still support 
> C++-frontend (D version: 2.076). The reason for this is that 
> C++-frontend should be merged into the next GCC version (GCC 
> 9), then it can be built without another D compiler. D frontend 
> goes into GCC 10 and can be built with GCC 9, so GCC can be 
> bootstrapped without external compilers and can be used to 
> bootstrap other D compilers.
>
> Current branch model. There are 2 "master" branches: master and 
> stable. master contains D frontend and follows DMD master 
> (we'll see if we can update every week or every two weeks). 
> stable contains C++ frontend which doesn't get new D features 
> anymore but of course we merge bug fixes from master. Both 
> follow GCC master (master is updated weekly to GCC snapshots, 
> stable from time to time).
> stable has 4 derivates: gdc-8-stable, gdc-7-stable, 
> gdc-6-stable and gdc-5-stable. It seems to be a lot, but the 
> last merge from stable was really trivial, so the most work is 
> done on the master derivates: "gdc-8" and "gdc-7" branches. 
> These two follow DMD stable and contain stable D releases.

1. It would be good to print the DMD frontend version with `gdc 
--version`. It is helpful in reporting bugs. LDC does this.

```
$ ldc2 --version
LDC - the LLVM D compiler (1.9.0):
   based on DMD v2.079.1 and LLVM 6.0.0
   built with LDC - the LLVM D compiler (1.9.0)
   Default target: x86_64-unknown-linux-gnu
   Host CPU: ivybridge
   http://dlang.org - http://wiki.dlang.org/LDC

   Registered Targets:
     aarch64    - AArch64 (little endian)
     aarch64_be - AArch64 (big endian)
     arm        - ARM
     arm64      - ARM64 (little endian)
     armeb      - ARM (big endian)
     nvptx      - NVIDIA PTX 32-bit
     nvptx64    - NVIDIA PTX 64-bit
     ppc32      - PowerPC 32
     ppc64      - PowerPC 64
     ppc64le    - PowerPC 64 LE
     thumb      - Thumb
     thumbeb    - Thumb (big endian)
     x86        - 32-bit X86: Pentium-Pro and above
     x86-64     - 64-bit X86: EM64T and AMD64
```

2. I see a file dub_platform_probe-UUID.s getting created in the 
root dir when building with GDC and not with DMD/LDC.

3. Multiple definition error. Logs: 
https://bpaste.net/show/7b12dfccceb1 This doesn't seem to be a 
problem when building with DMD (v2.081.1) / LDC (1.9.0)

     "dependencies" : {
         "darg": "~>0.0.4",
         "painlessjson": "~>1.3.5",
         "requests": "~>0.8.3"
     }



More information about the Digitalmars-d-announce mailing list