To clarify how @cdome's comment differs from @SolitudeSF's and @lagerratrobe's 
own observation, the intent was always for `-d:danger` to imply `-d:release`, 
but I guess there are several versions of Nim out there for which this 
implication does not hold. You have to define both for those Nim versions to 
disable all checking. Going forward (from `devel` and probably from version 
1.2) that will be redundant upon simply `-d:danger`.

Another thing you can do along the lines of just how you build like `-d:release 
-d:danger`, though is using GCC's profile-guided optimization in the C backend. 
I've seen up to 2X speed boosts for Nim generated code with that.

I suspect there is much more improvement to be had by the various algorithmic 
improvements I mentioned, though, and some are pretty easy. They do start to 
seem more like "cheating" in cross-programming language comparisons, especially 
moving all the hard work to compile-time. So, it depends if you're actually 
doing anything real with this code.

Reply via email to