On 6/3/11 5:48 PM, bearophile wrote:
Andrei:

Does anyone have the time and inclination to port the benchmark so we can take 
a look?

My modified C++0x code:
http://codepad.org/iBwINTkJ

First D2 translation that seems to work:
http://codepad.org/sEEFNlAd

Notes on the translation:
- The program crashes with zero error messages if you don't increase the stack. 
Time ago I have written an enhancement request on this:
http://d.puremagic.com/issues/show_bug.cgi?id=6088

I think a better tail call optimization would be in order.

- The final print of the "." done using write() doesn't perform the fflush. So 
after few tries I have used printf. I have not found a good way to flush. Suggestions 
welcome.

Just call stdout.flush().

- The C++ code uses classes, but they are often more like D structs.
In the first D version to keep things simple I have used final
classes everywhere. I will profile the code and I will create a more
efficient version that uses structs where needed.

Makes sense.

- I have had to track down a null reference error (caused by the
nodes array, that contains just references in the first D version).
Nonnullable type modifiers avoids similar bugs at compile-time.

Stay tuned. Good news coming soon.

[snip]

This is solid work. Looking forward to seeing measurements!


Thanks,

Andrei

Reply via email to