GDC with D frontend 2.081.2

Iain Buclaw ibuclaw at gdcproject.org
Mon Aug 27 17:44:01 UTC 2018


On 27 August 2018 at 19:23, Arun Chandrasekaran via
Digitalmars-d-announce <digitalmars-d-announce at puremagic.com> wrote:
> 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
> ```
>

Version print information is managed outside of gdc.  You can get this
from __VERSION__ or output of -v

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

Ask dub maintainers why.

> 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"
>     }
>

Raise a bug then?

Iain.



More information about the Digitalmars-d-announce mailing list