Closed KingDuckZ closed 5 years ago
That's because the gdc frontend is quite old. I'm not currently interested in supporting older compilers. Is there any reason you can't use ldc or dmd?
I'm using 9.2.0, which should be the latest version. As far as I know dmd is just horrible at generating assembly. I can try with ldc which should be pretty close to the quality of gcc, it's just extra stuff I have to install. Should I raise this problem with ibuclaw then (the guy behind gdc)?
I also mix D and C++ code a lot and I'm not sure dmd likes that. Since I use g++ anyways for me gdc was a natural choice. Again, I can try llvm since they also have a C++ compiler.
I'm using 9.2.0, which should be the latest version
It's the latest version of gdc, yes. I just tried compiling this with gdc 9.2.0:
pragma(msg, __VERSION__);
Which tells me the frontend version is 2.076. Currently dmd is at version 2.088.1.
As far as I know dmd is just horrible at generating assembly
I wouldn't call it horrible. But definitely not as fast as what the LLVM or gcc backends generate. A rule of thumb is that it's about 2x as slow. Personally, I only use ldc if I can even notice the binary running. Which usually doesn't even happen.
it's just extra stuff I have to install.
curl -fsS https://dlang.org/install.sh | bash -s ldc-1.18.0
Should I raise this problem with ibuclaw then (the guy behind gdc)?
No, gdc will catch up eventually.
I also mix D and C++ code a lot and I'm not sure dmd likes that
It shouldn't matter.
Again, I can try llvm since they also have a C++ compiler.
I'm going to close this because I don't want to support very old frontends. But you can fork this and remove or port all of the contracts.
I'm interested in trying this library but unfortunately when I add it to my project I can't compile it:
I'm quite new to D and I'm not sure what that syntax means but it looks like gdc doesn't understand it either.