RejectedSoftware Forums

Sign up

Failed build with GDC 2.064

Hello all. New viber here.

So, I'm building the "Hello world" from vibe-d-0.7.22 on ubuntu 14.04 LTS.

With a LDC toolchain (DMD v2.066.1 and LLVM 3.5.0) it went on without issues (save for an out of memory at link due to 1 GB RAM - I upped the VM to 4 GB and that was it - I understand this actually comes from the dmd front-end?)

It didn't go well with GDC (which I care more about).
I used GDC 4.8 (8664-gdc2064) which I presume to have a 2.064 DMD front-end.

The actual errors are in Redis, but I would expect it to fail somewhere else as well if I try to get past it? I'm very new to D, though I've been aware of its existence for a very long time.

Building vibe-d 0.7.22 configuration "libevent", build type debug.
Running gdc...
../.dub/packages/vibe-d-0.7.22/source/vibe/db/redis/idioms.d:520: error: no property 'among' for type 'string'
../.dub/packages/vibe-d-0.7.22/source/vibe/db/redis/idioms.d:522: error: template instance vibe.db.redis.idioms.isRedisType!0 error instantiating
../.dub/packages/vibe-d-0.7.22/source/vibe/db/redis/idioms.d:520: error: no property 'among' for type 'string'
../.dub/packages/vibe-d-0.7.22/source/vibe/db/redis/idioms.d:522: error: template instance vibe.db.redis.idioms.isRedisType!null error instantiating
FAIL ../.dub/packages/vibe-d-0.7.22/.dub/build/libevent-debug-linux.posix-x8664-gdc2064-3A0CAEB869A44023BCBDE9AC880BC4D8/ vibe-d staticLibrary
Error executing command build: gdc failed with exit code 1.

So, 2.066 front-end good, 2.064 bad.

What GDC version/front-end does the latest vibe.d build against?

Re: Failed build with GDC 2.064

FYI __VERSION__ is
2064 when compiled with GDC
2066 when compiled with LDC

(I had to escape each underscore above, is this a feature or a bug in the forum software?)

Re: Failed build with GDC 2.064

To answer my own conundrum, after installing GDC 4.9.2 (2.065 front-end), which can be pulled from the "vivid main universe", vibe.d builds cleanly.

so, the compiler front-end must be >= 2.065 with the latest vibe.d 0.7.22
I'm spelling it out as it will get indexed.

Re: Failed build with GDC 2.064

It's worth mentioning that the "vivid universe" is in fact a dev branch, Vivid Vervet (ubuntu 15.04).

I also updated clang to 3.6 and it pulled the whole world in! I rebooted and I'm now facing "Ubuntu Vivid Vervet (development branch)" which wasn't my intention, as I meant to stay on LTS.
I'm officially bleeding edge :(

So, word of warning, if you're on 14.04 LTS and just want to build vibe.d with GDC, upgrade only GDC to 4.9.2 from the vivid universe. Don't touch anything else and revert your repos to "trusty" after pulling in GDC 4.9.2

Re: Failed build with GDC 2.064

On Sun, 22 Feb 2015 18:30:24 GMT, Alex M wrote:

To answer my own conundrum, after installing GDC 4.9.2 (2.065 front-end), which can be pulled from the "vivid main universe", vibe.d builds cleanly.

so, the compiler front-end must be >= 2.065 with the latest vibe.d 0.7.22
I'm spelling it out as it will get indexed.

Added last week to the README ;)

https://github.com/rejectedsoftware/vibe.d/blob/master/README.md#support

Re: Failed build with GDC 2.064

On Sun, 22 Feb 2015 18:30:24 GMT, Alex M wrote:

To answer my own conundrum, after installing GDC 4.9.2 (2.065 front-end), which can be pulled from the "vivid main universe", vibe.d builds cleanly.

so, the compiler front-end must be >= 2.065 with the latest vibe.d 0.7.22
I'm spelling it out as it will get indexed.

We generally try to support the latest three frontend versions. Everything else quickly gets difficult (2.064 had some compiler bugs that couldn't be elegantly worked around) and it takes forever until recent features can be used (user defined attibutes have been such a case).

Unfortunately, the turnaround time for GDC in the official package repositories is notoriously slow, so that even three versions are not always enough in practice. But maybe 2.065 will be a more permanent anchor point than 2.064.