On Fri, 17 Mar 2017 21:15:06 +0100, Sönke Ludwig wrote:

Am 13.03.2017 um 23:04 schrieb Rey Valeza:

Hi,

Just a few minutes ago on my Linode/Ubuntu 16.10 I tried to compile a bare-bones project and I got this:

rey@ubuntu:~/www$ dub init fmt -t vibe.d
Package recipe format (sdl/json) [json]:
Name [fmt]:
Description [A simple vibe.d server application.]:
Author name [Rey Valeza]:
License [proprietary]:
Copyright string [Copyright © 2017, Rey Valeza]:
Add dependency (leave empty to skip) []:
Successfully created an empty project in '/home/rey/www/fmt'.
Package sucessfully created in fmt
rey@ubuntu:~/www$ cd fmt
rey@ubuntu:~/www/fmt$ dub
Fetching memutils 0.4.9 (getting selected version)...
Placing memutils 0.4.9 to /home/rey/.dub/packages/...
Fetching vibe-d 0.7.30 (getting selected version)...
Placing vibe-d 0.7.30 to /home/rey/.dub/packages/...
Fetching libevent 2.0.2+2.0.16 (getting selected version)...
Placing libevent 2.0.2+2.0.16 to /home/rey/.dub/packages/...
Fetching openssl 1.1.5+1.0.1g (getting selected version)...
Placing openssl 1.1.5+1.0.1g to /home/rey/.dub/packages/...
Fetching diet-ng 1.2.0 (getting selected version)...
Placing diet-ng 1.2.0 to /home/rey/.dub/packages/...
Fetching libasync 0.7.9 (getting selected version)...
Placing libasync 0.7.9 to /home/rey/.dub/packages/...
Performing "debug" build using gdc for x8664.<br>vibe-d:utils 0.7.30: building configuration "library"...<br>vibe-d:data 0.7.30: building configuration "library"...<br>vibe-d:core 0.7.30: building configuration "libevent"...<br>diet-ng 1.2.0: building configuration "library"...<br>vibe-d:http 0.7.30: building configuration "library"...<br>/usr/lib/gcc/x8664-linux-gnu/6/include/d/core/atomic.d:1464:13: error: static assert "Invalid template type specified."

 static assert(0, "Invalid template type specified.");
 ^

../../.dub/packages/vibe-d-0.7.30/vibe-d/source/vibe/http/server.d:1507:50: note: instantiated from here: atomicLoad!(cast(MemoryOrder)5, shared(HTTPServerContext)[])
else return cast(HTTPServerContext[])atomicLoad(g_contexts);

  ^

gdc failed with exit code 1.

I don't know what's going on. On my other Linode box (Ubuntu 16.04) I could compile and see the output. With this Linode/Ubuntu 16.10, I cannot compile.

Can someone help me? I am new to D and Vibe.d.

It looks like this machine is using a different compiler. For GDC try
using "~>0.7.31-beta" for vibe.d instead of 0.7.30 (32-bit GDC did not
implement 64-bit atomic operations until recently and 0.7.31 avoids those).

Alternatively, using DMD or LDC would of course also be an option. But
generally this requires a large RAM/swap because compilation takes up so
much memory, so I tend to avoid it on VMs.

Thanks Sönke! I'll try your solution in the future. Meanwhile, I'll just compile on my local machine and upload to the server.

Best regards,

Rey