RejectedSoftware Forums

Sign up

Actual vibed trunk can compile with dmd 2.0.65 only no 2.0.66 or trunk

Hello !

Trying to compile vibed trunk with some dmd compilers I could compile with dmd/gdc 2.0.65 but not with dmd 2.0.66 and dmd trunk, see bellow the compiler messages (I'm using openssl-trunk).

Is this intentional ?

----dmd 2.0.66
source/vibe/core/concurrency.d:137: Error: semicolon expected following function declaration
source/vibe/core/concurrency.d:139: Error: Declaration expected, not 'assert'
source/vibe/core/concurrency.d:140: Error: Declaration expected, not 'assert'
source/vibe/core/concurrency.d:141: Error: unexpected ( in declarator
source/vibe/core/concurrency.d:141: Error: function declaration without return type. (Note that constructors are always named 'this')
source/vibe/core/concurrency.d:141: Error: no identifier for declarator dmonitorexit(getObject())
source/vibe/crypto/cryptorand.d:247: Error: members expected
source/vibe/crypto/cryptorand.d:247: Error: { } expected following aggregate declaration
source/vibe/crypto/cryptorand.d:247: Error: Declaration expected, not 'if'
source/vibe/crypto/cryptorand.d:304: Error: unrecognized declaration
source/vibe/data/serialization.d:199: Error: found ',' when expecting ')'
source/vibe/data/serialization.d:199: Error: found 'TPS' when expecting ')'
source/vibe/data/serialization.d:199: Error: found '...' instead of statement
source/vibe/data/serialization.d:202: Error: Declaration expected, not 'else'
source/vibe/data/serialization.d:204: Error: Declaration expected, not 'foreach'
source/vibe/data/serialization.d:204: Error: no identifier for declarator T.Types
source/vibe/data/serialization.d:204: Error: semicolon expected, not ')'
source/vibe/data/serialization.d:204: Error: Declaration expected, not ')'
source/vibe/data/serialization.d:206: Error: function declaration without return type. (Note that constructors are always named 'this')
source/vibe/data/serialization.d:206: Error: no identifier for declarator serializeImpl!(Serializer, TV, ATTRIBUTES)(serializer, value[i])
source/vibe/data/serialization.d:207: Error: function declaration without return type. (Note that constructors are always named 'this')

----dmd trunk (you can ignore opnssl messages)
source/openssl/deimos/openssl/ossltyp.d(209): Error: undefined identifier sslctxst
source/openssl/deimos/openssl/ssl.d(435): Error: ExternC!(extern (C) c
long function(SSLCTX* ctx, int cmd, clong larg, void parg)) had previous errors
source/openssl/deimos/openssl/ssl.d(447): Error: ExternC!(extern (C) c_long function(SSL_CTX
s, int cbid, ExternC!(extern (C) void function()) fp)) had previous errors
/mnt/sdb1/dev/c/d/src/install/bin/../../../phobos/std/container/array.d(432): Error: cannot implicitly convert expression ((inout inout(Range)
ctmp3330 = 0;
,
_ctmp3330).this(this, 0LU, this.length())) of type inout(Range) to Range
source/vibe/core/drivers/timerqueue.d(29): while looking for match for BinaryHeap!(Array!(TimeoutEntry), "a.timeout > b.timeout")
source/vibe/core/drivers/libevent2.d(75): Error: template instance vibe.core.drivers.timerqueue.TimerQueue!(TimerInfo, 10000L) error instantiating

Cheers !

Re: Actual vibed trunk can compile with dmd 2.0.65 only no 2.0.66 or trunk

Here is the scripts used to check compilation:

-------gdcenv-2.0.65
export PATH=$HOME/dev/x86
64-gdcproject-linux-gnu/bin:$PATH
$*

-------d_env-trunk
export PATH=/mnt/sdb1/dev/c/d/src/install/bin:$PATH
$*

-------d_env-2.0.65
export PATH=$HOME/dev/dmd-2.0.65/bin:$PATH
$*

-------d_env-2.0.66
export PATH=$HOME/dev/dmd-2.0.66/bin:$PATH
$*

-------mk-it-gdc-2.0.65
gdc_env-2.0.65 dub -v --compiler gdc --build debug

-------mk-it-dmd-2.0.65
d_env-2.0.65 dub -v --build debug

-------mk-it-dmd-2.0.66
d_env-2.0.66 dub -v --build debug

-------mk-it-dmd-trunk
d_env-trunk dub -v --build debug

Re: Actual vibed trunk can compile with dmd 2.0.65 only no 2.0.66 or trunk

What is the exact build command/platform? On Windows, all of DMD 2.065,
2.066, 2.066.1, 2.067-b1 have worked for me when compiling with "dub test".

Re: Actual vibed trunk can compile with dmd 2.0.65 only no 2.0.66 or trunk

The platform I'm testing is linux gentoo and ubuntu.

On both of then I got the problems mentioned.

Cheers !

On Tue, 21 Oct 2014 12:12:45 +0200
Sönke Ludwig sludwig@rejectedsoftware.com wrote:

What is the exact build command/platform? On Windows, all of DMD 2.065,
2.066, 2.066.1, 2.067-b1 have worked for me when compiling with "dub test".

Domingo Alavarez Duarte mingodad@gmail.com

Re: Actual vibed trunk can compile with dmd 2.0.65 only no 2.0.66 or trunk

Am 21.10.2014 17:08, schrieb Domingo Alavarez Duarte:

The platform I'm testing is linux gentoo and ubuntu.

On both of then I got the problems mentioned.

Cheers !

On Tue, 21 Oct 2014 12:12:45 +0200
Sönke Ludwig sludwig@rejectedsoftware.com wrote:

What is the exact build command/platform? On Windows, all of DMD 2.065,
2.066, 2.066.1, 2.067-b1 have worked for me when compiling with "dub test".

Hm, I tried on Ubuntu, 64-bit and 32-bit versions of DMD 2.066.0 and
both worked, too. Do you have a full reproduction case (exact build
command and possibly the root package's source code that is being compiled)?

Re: Actual vibed trunk can compile with dmd 2.0.65 only no 2.0.66 or trunk

Hello !

With the latest dmd trunk now this error disappeared:

/mnt/sdb1/dev/c/d/src/install/bin/../../../phobos/std/container/array.d(432): Error: cannot implicitly convert expression ((inout inout(Range) ctmp3330 = 0;
, _ctmp3330).this(this, 0LU, this.length())) of type inout(Range) to Range
source/vibe/core/drivers/timerqueue.d(29): while looking for match for BinaryHeap!(Array!(TimeoutEntry), "a.timeout > b.timeout")
source/vibe/core/drivers/libevent2.d(75): Error: template instance vibe.core.drivers.timerqueue.TimerQueue!(TimerInfo, 10000L) error instantiating

But a new one appeared:

/mnt/sdb1/dev/c/d/src/install/bin/../../../druntime/import/core/sync/mutex.di(24): Error: constructor core.sync.mutex.Mutex.this core.sync.mutex.Mutex cannot be constructed at compile time, because the constructor has no available source code

The ssl errors changed a bit with the latest git deimos/openssl.

Cheers !

Re: Actual vibed trunk can compile with dmd 2.0.65 only no 2.0.66 or trunk

Hello !

With the latest dmd trunk now this error happen:

source/vibe/core/concurrency.d(254): Error: template vibe.core.concurrency.send cannot deduce function from argument types !()(Tid, IsolatedArray!double), candidates are:
source/vibe/core/concurrency.d(1175): vibe.core.concurrency.send(ARGS...)(Task task, ARGS args)
source/vibe/core/core.d(248): Error: static assert "Argument type Tid is not safe to pass between threads."
source/vibe/core/concurrency.d(271): instantiated from here: runWorkerTaskH!(void function(Tid tid, IsolatedArray!double array, ulong start_index), Tid, IsolatedArray!double, ulong)

Cheers !

Re: Actual vibed trunk can compile with dmd 2.0.65 only no 2.0.66 or trunk

On Tue, 11 Nov 2014 16:57:30 GMT, Domingo Alvarez Duarte wrote:

Hello !

With the latest dmd trunk now this error happen:

source/vibe/core/concurrency.d(254): Error: template vibe.core.concurrency.send cannot deduce function from argument types !()(Tid, IsolatedArray!double), candidates are:
source/vibe/core/concurrency.d(1175): vibe.core.concurrency.send(ARGS...)(Task task, ARGS args)
source/vibe/core/core.d(248): Error: static assert "Argument type Tid is not safe to pass between threads."
source/vibe/core/concurrency.d(271): instantiated from here: runWorkerTaskH!(void function(Tid tid, IsolatedArray!double array, ulong start_index), Tid, IsolatedArray!double, ulong)

Cheers !

Our current build platform is Ubuntu 14.04, dmd 2.066 and we are compiling vibe.d master and 0.7.21-rc.4 without error. Our dev environment is the same version but on OS X Yosemite for that matter and it also runs all dub tests successfully.

I'd be taking a closer look at your build environment.