clang success with Computational Crystallography Toolbox

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

clang success with Computational Crystallography Toolbox

Luc Bourhis
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
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

smime.p7s (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: clang success with Computational Crystallography Toolbox

Douglas Gregor

On Aug 8, 2010, at 6:05 AM, Luc Bourhis wrote:

> 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
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
Reply | Threaded
Open this post in threaded view
|

Re: clang success with Computational Crystallography Toolbox

Luc Bourhis
>> 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


_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

smime.p7s (4K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: clang success with Computational Crystallography Toolbox

Luc Bourhis
In reply to this post by Douglas Gregor

On 8 Aug 2010, at 09:30, Douglas Gregor wrote:

>
> On Aug 8, 2010, at 6:05 AM, Luc Bourhis wrote:
>
>> 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
>
> ?
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
_______________________________________________
cfe-dev mailing list
[hidden email]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev

smime.p7s (4K) Download Attachment