On Tuesday, 16 October 2018 at 07:09:05 UTC, Vijay Nayar wrote:
D has multiple compilers, but for the speed of the finished
binary, LDC2 is generally recommended. I used version 1.11.0.
https://github.com/ldc-developers/ldc/releases/tag/v1.11.0
I was using DUB to manage the project, but to build the
stand-alone file from the gist link, use this command: $ ldc2
-release -O3 twinprimes_ssoz.d
And to run it: $ echo "3000000000" | ./twinprimes_ssoz
It'd be interesting to see if LTO or PGO generated an
improvement. It looks like it could in this case, as it might
optimize some of the inner loops. LTO is easy, enable it with:
-flto=<thin|full> -defaultlib=phobos2-ldc-lto,druntime-ldc-lto
(see: https://github.com/ldc-developers/ldc/releases/tag/v1.9.0).
I've been using 'thin' on OSX, 'full' on Linux.
PGO is a bit more work, but not too bad. A good primer is here:
https://johanengelen.github.io/ldc/2016/07/15/Profile-Guided-Optimization-with-LDC.html
--Jon