<div dir="ltr">Hi Marcin, thanks for the fixes. I'll re-run the tests today and see if tst_ext.py is failing for me too.<div><br></div><div>-Aaron</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Feb 11, 2016 at 10:50 AM, Marcin Wojdyr <span dir="ltr"><<a href="mailto:wojdyr@gmail.com" target="_blank">wojdyr@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Aaron,<br>
yes, I didn't run test yesterday. I did run it today and at first 20 failed.<br>
It's mostly this problem:<br>
<a href="https://github.com/boostorg/python/issues/56" rel="noreferrer" target="_blank">https://github.com/boostorg/python/issues/56</a><br>
<br>
Other failures I got were probably not related to the boost update.<br>
I've committed 3 fixes.<br>
<br>
I started looking at 4th, which was:<br>
File "/home/marcin/dials/modules/cctbx_project/iotbx/mtz/tst_ext.py",<br>
line 1093, in exercise_modifiers<br>
assert approx_equal(v, [-1]*4)<br>
but I must leave now. Does this test also fail for you?<br>
<span><font color="#888888"><br>
Marcin<br>
</font></span><div><div><br>
On Wed, Feb 10, 2016 at 11:20 PM, Aaron Brewster <<a href="mailto:asbrewster@lbl.gov" target="_blank">asbrewster@lbl.gov</a>> wrote:<br>
> Hi Marcin, thanks for the detective work. I've reproduced your results on<br>
> Centos 7 using the cctbx bootstrap script (not sure from your email if<br>
> that's what you used):<br>
><br>
> svn export<br>
> svn://<a href="http://svn.code.sf.net/p/cctbx/code/trunk/libtbx/auto_build/bootstrap.py" rel="noreferrer" target="_blank">svn.code.sf.net/p/cctbx/code/trunk/libtbx/auto_build/bootstrap.py</a><br>
> python bootstrap.py --builder=dials hot update<br>
> cd modules<br>
> mv boost oldboost<br>
> wget<br>
> <a href="https://sourceforge.net/projects/boost/files/latest/download?source=files" rel="noreferrer" target="_blank">https://sourceforge.net/projects/boost/files/latest/download?source=files</a> -O<br>
> ./boost_1_60_0.tar.gz<br>
> mv boost_1_60_0 boost<br>
> vi boost/boost/rational.hpp (revert<br>
> <a href="https://github.com/boostorg/rational/commit/5fddb3f889cd2a2fe59cdcae182f8b3f78ec31e3" rel="noreferrer" target="_blank">https://github.com/boostorg/rational/commit/5fddb3f889cd2a2fe59cdcae182f8b3f78ec31e3</a>,<br>
> this is necessary to compile)<br>
> cd ..<br>
> python bootstrap.py --builder=dials base build<br>
><br>
> I then exercised the cctbx regression tests:<br>
><br>
> source build/setpaths.sh<br>
> mkdir tests<br>
> cd tests<br>
> cctbx_regression.test_nightly<br>
><br>
> 17 tests failed, but I think they are fixable, most of them being interface<br>
> changes in boost. I ran the tests again after restoring the original boost<br>
> and recompiling. There were still 3 errors, but I need to verify those<br>
> errors from a completely clean system that hadn't seen boost 1.60 before I'd<br>
> think they were real.<br>
><br>
> Anyhow the next step is to track down those 17 errors, fix them, then try<br>
> the whole process again with the phenix builder and the full set of dials<br>
> and phenix tests.<br>
><br>
> -Aaron<br>
><br>
><br>
><br>
><br>
><br>
> On Wed, Feb 10, 2016 at 10:45 AM, Marcin Wojdyr <<a href="mailto:wojdyr@gmail.com" target="_blank">wojdyr@gmail.com</a>> wrote:<br>
>><br>
>> To help a bit I went through compilation of cctbx/Dials with Boost 1.60.<br>
>><br>
>> There is a lot of warnings from Boost.Python,<br>
>> about deprecated header:<br>
>><br>
>> <a href="https://github.com/boostorg/python/commit/0a4c76b9ac16974d7d4f164cf6179095217a981a" rel="noreferrer" target="_blank">https://github.com/boostorg/python/commit/0a4c76b9ac16974d7d4f164cf6179095217a981a</a><br>
>> and unused typedefs. After adding -Wno-unused-local-typedefs and<br>
>> removing the deprecated #include almost all warnings are gone.<br>
>><br>
>> Then there is one error, copy&pasted below.<br>
>> I tracked it down to this change in boost.rational:<br>
>><br>
>> <a href="https://github.com/boostorg/rational/commit/5fddb3f889cd2a2fe59cdcae182f8b3f78ec31e3" rel="noreferrer" target="_blank">https://github.com/boostorg/rational/commit/5fddb3f889cd2a2fe59cdcae182f8b3f78ec31e3</a><br>
>> I just reverted this change to finish compilation, but I suppose a<br>
>> proper fix is also not difficult.<br>
>><br>
>> I don't know if this is relevant, but I'm using Boost compiled outside of<br>
>> cctbx.<br>
>> I'm attaching a patch that we use in CCP4 for this. It's based on<br>
>> Debian/Gentoo patches.<br>
>><br>
>> cheers,<br>
>> Marcin<br>
>><br>
>><br>
>> g++ -o boost_adaptbx/rational_ext.o -c<br>
>> -I/home/marcin/dials/boost_160/include -Wno-unused-local-typedefs<br>
>> -DBOOST_PYTHON_MAX_BASES=2 -fPIC -fno-strict-aliasing -w -DNDEBUG -O3<br>
>> -ffast-math -DBOOST_ALL_NO_LIB -I/home/marcin/dials/build/include<br>
>> -I/home/marcin/miniconda2/include/python2.7<br>
>> /home/marcin/dials/modules/cctbx_project/boost_adaptbx/rational_ext.cpp<br>
>> In file included from<br>
>><br>
>> /home/marcin/dials/boost_160/include/boost/preprocessor/iteration/detail/iter/forward1.hpp:47:0,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/detail/invoke.hpp:63,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/detail/caller.hpp:16,<br>
>> from<br>
>><br>
>> /home/marcin/dials/boost_160/include/boost/python/object/function_handle.hpp:8,<br>
>> from<br>
>><br>
>> /home/marcin/dials/boost_160/include/boost/python/converter/arg_to_python.hpp:19,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/call.hpp:15,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/object_core.hpp:14,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/args.hpp:25,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/make_function.hpp:11,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/def.hpp:11,<br>
>> from<br>
>> /home/marcin/dials/modules/cctbx_project/boost_adaptbx/rational_ext.cpp:2:<br>
>> /home/marcin/dials/boost_160/include/boost/python/detail/invoke.hpp:<br>
>> In instantiation of 'PyObject*<br>
>> boost::python::detail::invoke(boost::python::detail::invoke_tag_<false,<br>
>> true>, const RC&, F&, TC&) [with RC =<br>
>><br>
>> boost::python::detail::specify_a_return_value_policy_to_wrap_functions_returning<const<br>
>> int&>; F = const int& (boost::rational<int>::*)()const; TC =<br>
>> boost::python::arg_from_python<boost::rational<int>&>; PyObject =<br>
>> _object]':<br>
>><br>
>> /home/marcin/dials/boost_160/include/boost/python/detail/caller.hpp:223:13:<br>
>> required from 'PyObject*<br>
>> boost::python::detail::caller_arity<1u>::impl<F, Policies,<br>
>> Sig>::operator()(PyObject*, PyObject*) [with F = const int&<br>
>> (boost::rational<int>::*)()const; Policies =<br>
>> boost::python::default_call_policies; Sig = boost::mpl::vector2<const<br>
>> int&, boost::rational<int>&>; PyObject = _object]'<br>
>><br>
>> /home/marcin/dials/boost_160/include/boost/python/object/py_function.hpp:38:33:<br>
>> required from 'PyObject*<br>
>><br>
>> boost::python::objects::caller_py_function_impl<Caller>::operator()(PyObject*,<br>
>> PyObject*) [with Caller = boost::python::detail::caller<const int&<br>
>> (boost::rational<int>::*)()const,<br>
>> boost::python::default_call_policies, boost::mpl::vector2<const int&,<br>
>> boost::rational<int>&> >; PyObject = _object]'<br>
>><br>
>> /home/marcin/dials/modules/cctbx_project/boost_adaptbx/rational_ext.cpp:231:1:<br>
>> required from here<br>
>> /home/marcin/dials/boost_160/include/boost/python/detail/invoke.hpp:88:90:<br>
>> error: no match for call to '(const<br>
>><br>
>> boost::python::detail::specify_a_return_value_policy_to_wrap_functions_returning<const<br>
>> int&>) (const int&)'<br>
>> return rc( (tc().*f)(BOOST_PP_ENUM_BINARY_PARAMS_Z(1, N, ac, ()<br>
>> BOOST_PP_INTERCEPT)) );<br>
>><br>
>> ^<br>
>> In file included from<br>
>><br>
>> /home/marcin/dials/boost_160/include/boost/python/object/function_handle.hpp:8:0,<br>
>> from<br>
>><br>
>> /home/marcin/dials/boost_160/include/boost/python/converter/arg_to_python.hpp:19,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/call.hpp:15,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/object_core.hpp:14,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/args.hpp:25,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/make_function.hpp:11,<br>
>> from<br>
>> /home/marcin/dials/boost_160/include/boost/python/def.hpp:11,<br>
>> from<br>
>> /home/marcin/dials/modules/cctbx_project/boost_adaptbx/rational_ext.cpp:2:<br>
>> /home/marcin/dials/boost_160/include/boost/python/detail/caller.hpp:<br>
>> In instantiation of 'static const PyTypeObject*<br>
>><br>
>> boost::python::detail::converter_target_type<ResultConverter>::get_pytype()<br>
>> [with ResultConverter =<br>
>><br>
>> boost::python::detail::specify_a_return_value_policy_to_wrap_functions_returning<const<br>
>> int&>; PyTypeObject = _typeobject]':<br>
>><br>
>> /home/marcin/dials/boost_160/include/boost/python/detail/caller.hpp:240:19:<br>
>> required from 'static boost::python::detail::py_func_sig_info<br>
>> boost::python::detail::caller_arity<1u>::impl<F, Policies,<br>
>> Sig>::signature() [with F = const int&<br>
>> (boost::rational<int>::*)()const; Policies =<br>
>> boost::python::default_call_policies; Sig = boost::mpl::vector2<const<br>
>> int&, boost::rational<int>&>]'<br>
>><br>
>> /home/marcin/dials/boost_160/include/boost/python/object/py_function.hpp:48:35:<br>
>> required from 'boost::python::detail::py_func_sig_info<br>
>> boost::python::objects::caller_py_function_impl<Caller>::signature()<br>
>> const [with Caller = boost::python::detail::caller<const int&<br>
>> (boost::rational<int>::*)()const,<br>
>> boost::python::default_call_policies, boost::mpl::vector2<const int&,<br>
>> boost::rational<int>&> >]'<br>
>><br>
>> /home/marcin/dials/modules/cctbx_project/boost_adaptbx/rational_ext.cpp:231:1:<br>
>> required from here<br>
>><br>
>> /home/marcin/dials/boost_160/include/boost/python/detail/caller.hpp:102:109:<br>
>> error: 'struct<br>
>> boost::python::detail::specify_a_return_value_policy_to_wrap_functions_returning<const<br>
>> int&>' has no member named 'get_pytype'<br>
>> return create_result_converter((PyObject*)0, (ResultConverter<br>
>> *)0, (ResultConverter *)0).get_pytype();<br>
>><br>
>> ^<br>
>> scons: *** [boost_adaptbx/rational_ext.o] Error 1<br>
>> scons: building terminated because of errors.<br>
>><br>
>><br>
>><br>
>><br>
>><br>
>> On Wed, Feb 10, 2016 at 4:44 PM, Aaron Brewster <<a href="mailto:asbrewster@lbl.gov" target="_blank">asbrewster@lbl.gov</a>><br>
>> wrote:<br>
>> > Hi Nick, Billy and I will work on this today,<br>
>> ><br>
>> > -Aaron<br>
>> ><br>
>> > On Wed, Feb 10, 2016 at 6:40 AM, Marcin Wojdyr <<a href="mailto:wojdyr@gmail.com" target="_blank">wojdyr@gmail.com</a>> wrote:<br>
>> >><br>
>> >> FWIW the latest version of Boost is 1.60.<br>
>> >> CCP4 6.5 was using cctbx compiled with Boost 1.56<br>
>> >> and CCP4 7.0 uses Boost 1.58.<br>
>> >><br>
>> >> Marcin<br>
>> >><br>
>> >> On Wed, Feb 10, 2016 at 2:17 PM, Nicholas Sauter <<a href="mailto:nksauter@lbl.gov" target="_blank">nksauter@lbl.gov</a>><br>
>> >> wrote:<br>
>> >> > Nigel, Billy & Aaron,<br>
>> >> ><br>
>> >> > I completely endorse this move to Boost 1.56. Can we update our<br>
>> >> > build?<br>
>> >> ><br>
>> >> > Nick<br>
>> >> ><br>
>> >> > Nicholas K. Sauter, Ph. D.<br>
>> >> > Computer Staff Scientist, Molecular Biophysics and Integrated<br>
>> >> > Bioimaging<br>
>> >> > Division<br>
>> >> > Lawrence Berkeley National Laboratory<br>
>> >> > 1 Cyclotron Rd., Bldg. 33R0345<br>
>> >> > Berkeley, CA 94720<br>
>> >> > <a href="tel:%28510%29%20486-5713" value="+15104865713" target="_blank">(510) 486-5713</a><br>
>> >> ><br>
>> >> > On Wed, Feb 10, 2016 at 2:41 PM, Luc Bourhis <<a href="mailto:luc_j_bourhis@mac.com" target="_blank">luc_j_bourhis@mac.com</a>><br>
>> >> > wrote:<br>
>> >> >><br>
>> >> >> Hi,<br>
>> >> >><br>
>> >> >> I have improvements to the smtbx on their way to be committed which<br>
>> >> >> require Boost version 1.56. This is related to Boost.Threads, whose<br>
>> >> >> support<br>
>> >> >> I re-activated a few months ago on Nick’s request. I need the<br>
>> >> >> function<br>
>> >> >> boost::thread::physical_concurrency which returns the number of<br>
>> >> >> physical<br>
>> >> >> cores on the machine, as opposed to virtual cores when<br>
>> >> >> hyperthreading<br>
>> >> >> is<br>
>> >> >> enabled (which it is by default on any Intel machine). That function<br>
>> >> >> is<br>
>> >> >> not<br>
>> >> >> available in Boost 1.55 which is the version currently used in the<br>
>> >> >> nightly<br>
>> >> >> tests: it appeared in 1.56.<br>
>> >> >><br>
>> >> >> So, would it be possible to move to Boost 1.56? Otherwise, I will<br>
>> >> >> need<br>
>> >> >> to<br>
>> >> >> backport that function. Not too difficult but not thrilling.<br>
>> >> >><br>
>> >> >> Best wishes,<br>
>> >> >><br>
>> >> >> Luc<br>
>> >> >><br>
>> >> >><br>
>> >> >> _______________________________________________<br>
>> >> >> cctbxbb mailing list<br>
>> >> >> <a href="mailto:cctbxbb@phenix-online.org" target="_blank">cctbxbb@phenix-online.org</a><br>
>> >> >> <a href="http://phenix-online.org/mailman/listinfo/cctbxbb" rel="noreferrer" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
>> >> ><br>
>> >> ><br>
>> >> ><br>
>> >> > _______________________________________________<br>
>> >> > cctbxbb mailing list<br>
>> >> > <a href="mailto:cctbxbb@phenix-online.org" target="_blank">cctbxbb@phenix-online.org</a><br>
>> >> > <a href="http://phenix-online.org/mailman/listinfo/cctbxbb" rel="noreferrer" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
>> >> ><br>
>> >><br>
>> >> _______________________________________________<br>
>> >> cctbxbb mailing list<br>
>> >> <a href="mailto:cctbxbb@phenix-online.org" target="_blank">cctbxbb@phenix-online.org</a><br>
>> >> <a href="http://phenix-online.org/mailman/listinfo/cctbxbb" rel="noreferrer" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
>> ><br>
>> ><br>
>> ><br>
>> > _______________________________________________<br>
>> > cctbxbb mailing list<br>
>> > <a href="mailto:cctbxbb@phenix-online.org" target="_blank">cctbxbb@phenix-online.org</a><br>
>> > <a href="http://phenix-online.org/mailman/listinfo/cctbxbb" rel="noreferrer" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
>> ><br>
>><br>
>> _______________________________________________<br>
>> cctbxbb mailing list<br>
>> <a href="mailto:cctbxbb@phenix-online.org" target="_blank">cctbxbb@phenix-online.org</a><br>
>> <a href="http://phenix-online.org/mailman/listinfo/cctbxbb" rel="noreferrer" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
>><br>
><br>
><br>
> _______________________________________________<br>
> cctbxbb mailing list<br>
> <a href="mailto:cctbxbb@phenix-online.org" target="_blank">cctbxbb@phenix-online.org</a><br>
> <a href="http://phenix-online.org/mailman/listinfo/cctbxbb" rel="noreferrer" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
><br>
<br>
_______________________________________________<br>
cctbxbb mailing list<br>
<a href="mailto:cctbxbb@phenix-online.org" target="_blank">cctbxbb@phenix-online.org</a><br>
<a href="http://phenix-online.org/mailman/listinfo/cctbxbb" rel="noreferrer" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
</div></div></blockquote></div><br></div></div>