Ary Borenszweig:
Your timings are good enough for me, I have updated the
rosettacode page with the third D version.
However, I'm starting to think that all those immutable, final
switches and gotos are useless if they don't give a performance
benefit (well, final switches do give you more safety).
In the second D program if you compile with ldc2 the final switch
gives a significant performance increase :-)
Maybe it's just that D/ldc doesn't use the immutability
information and everything else to do aggressive optimizations?
This was discussed some time ago. Probably there are ways for
ldc2 to use a little better the static information of well
annotated D code.
Bye,
bearophile