clang success with Computational Crystallography Toolbox

The Computational Crystallography Toolbox (cctbx) is a large scientific library aimed at modelling X-ray and neutron diffraction by crystals and analysing data of such diffraction experiments. From the point of view of clang, it has 2 key characteristics:

(a) heavy use of Boost.Python: we use nearly all Boost.Python features, even the undocumented custom conversions; as many of you would know, Boost.Python wildly makes use of C++ templates, which makes our code a difficult benchmark for a C++ compiler;

(b) many an arcane numerical algorithms that bogus optimisers easily miscompile: we had plenty of bad experiences with various versions of gcc and Visual Studio e.g.

Since it was announced that clang compiled the Boost library, I have actively been trying to compile the cctbx. This resulted in 6 bugs being reported, all of them being squashed in due course. Tonight, the whole library compiled and the comprehensive test suite passed except for what seems to reduce to one single bad code generation.

I would like to warmly thank the clang/llvm community for their tremendous work over the years, and especially those who took the time to fix the bug I reported.

Luc Bourhis
Department of Chemisty
Durham University, UK

The Computational Crystallography Toolbox (cctbx) is a large scientific library aimed at modelling X-ray and neutron diffraction by crystals and analysing data of such diffraction experiments. From the point of view of clang, it has 2 key characteristics:

(a) heavy use of Boost.Python: we use nearly all Boost.Python features, even the undocumented custom conversions; as many of you would know, Boost.Python wildly makes use of C++ templates, which makes our code a difficult benchmark for a C++ compiler;

(b) many an arcane numerical algorithms that bogus optimisers easily miscompile: we had plenty of bad experiences with various versions of gcc and Visual Studio e.g.

Since it was announced that clang compiled the Boost library, I have actively been trying to compile the cctbx. This resulted in 6 bugs being reported, all of them being squashed in due course. Tonight, the whole library compiled and the comprehensive test suite passed

That's great news!

except for what seems to reduce to one single bad code generation.

This is

  http://llvm.org/bugs/show_bug.cgi?id=7841

?

  - Doug

except for what seems to reduce to one single bad code generation.

This is

  http://llvm.org/bugs/show_bug.cgi?id=7841

?

Indeed.

Luc

I have just verified that LLVM+Clang trunk is not affected by this bug anymore. I have also run the whole cctbx test suite (as well as part of the PHENIX project, which is built on the top of the cctbx, and deal with protein structure by X-ray diffraction for the record): every single test passes. That's for a 64-bit build on MacOS 10.6.

Thanks again to all Clang and LLVM contributors,

Luc Bourhis