<div dir="ltr">Hi Marcin, thanks for the detective work.  I&#39;ve reproduced your results on Centos 7 using the cctbx bootstrap script (not sure from your email if that&#39;s what you used):<div><ul><li>svn export svn://<a href="http://svn.code.sf.net/p/cctbx/code/trunk/libtbx/auto_build/bootstrap.py">svn.code.sf.net/p/cctbx/code/trunk/libtbx/auto_build/bootstrap.py</a><br></li><li>python bootstrap.py --builder=dials hot update<br></li><li>cd modules</li><li>mv boost oldboost</li><li>wget <a href="https://sourceforge.net/projects/boost/files/latest/download?source=files">https://sourceforge.net/projects/boost/files/latest/download?source=files</a> -O ./boost_1_60_0.tar.gz<br></li><li>mv boost_1_60_0 boost</li><li>vi boost/boost/rational.hpp (revert <a href="https://github.com/boostorg/rational/commit/5fddb3f889cd2a2fe59cdcae182f8b3f78ec31e3">https://github.com/boostorg/rational/commit/5fddb3f889cd2a2fe59cdcae182f8b3f78ec31e3</a>, this is necessary to compile)</li><li>cd ..</li><li>python bootstrap.py --builder=dials base build</li></ul><div>I then exercised the cctbx regression tests:</div><ul><li>source build/setpaths.sh</li><li>mkdir tests</li><li>cd tests</li><li>cctbx_regression.test_nightly<br></li></ul><div>17 tests failed, but I think they are fixable, most of them being interface changes in boost.  I ran the tests again after restoring the original boost and recompiling.  There were still 3 errors, but I need to verify those errors from a completely clean system that hadn&#39;t seen boost 1.60 before I&#39;d think they were real.</div></div><div><br></div><div>Anyhow the next step is to track down those 17 errors, fix them, then try the whole process again with the phenix builder and the full set of dials and phenix tests.</div><div><br></div><div>-Aaron</div><div><br></div><div><br></div><div><br></div><div><br></div><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Feb 10, 2016 at 10:45 AM, Marcin Wojdyr <span dir="ltr">&lt;<a href="mailto:wojdyr@gmail.com" target="_blank">wojdyr@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">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>
<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&amp;pasted below.<br>
I tracked it down to this change in boost.rational:<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&#39;t know if this is relevant, but I&#39;m using Boost compiled outside of cctbx.<br>
I&#39;m attaching a patch that we use in CCP4 for this. It&#39;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>
/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>
/home/marcin/dials/boost_160/include/boost/python/object/function_handle.hpp:8,<br>
                 from<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 &#39;PyObject*<br>
boost::python::detail::invoke(boost::python::detail::invoke_tag_&lt;false,<br>
true&gt;, const RC&amp;, F&amp;, TC&amp;) [with RC =<br>
boost::python::detail::specify_a_return_value_policy_to_wrap_functions_returning&lt;const<br>
int&amp;&gt;; F = const int&amp; (boost::rational&lt;int&gt;::*)()const; TC =<br>
boost::python::arg_from_python&lt;boost::rational&lt;int&gt;&amp;&gt;; PyObject =<br>
_object]&#39;:<br>
/home/marcin/dials/boost_160/include/boost/python/detail/caller.hpp:223:13:<br>
  required from &#39;PyObject*<br>
boost::python::detail::caller_arity&lt;1u&gt;::impl&lt;F, Policies,<br>
Sig&gt;::operator()(PyObject*, PyObject*) [with F = const int&amp;<br>
(boost::rational&lt;int&gt;::*)()const; Policies =<br>
boost::python::default_call_policies; Sig = boost::mpl::vector2&lt;const<br>
int&amp;, boost::rational&lt;int&gt;&amp;&gt;; PyObject = _object]&#39;<br>
/home/marcin/dials/boost_160/include/boost/python/object/py_function.hpp:38:33:<br>
  required from &#39;PyObject*<br>
boost::python::objects::caller_py_function_impl&lt;Caller&gt;::operator()(PyObject*,<br>
PyObject*) [with Caller = boost::python::detail::caller&lt;const int&amp;<br>
(boost::rational&lt;int&gt;::*)()const,<br>
boost::python::default_call_policies, boost::mpl::vector2&lt;const int&amp;,<br>
boost::rational&lt;int&gt;&amp;&gt; &gt;; PyObject = _object]&#39;<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 &#39;(const<br>
boost::python::detail::specify_a_return_value_policy_to_wrap_functions_returning&lt;const<br>
int&amp;&gt;) (const int&amp;)&#39;<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>
/home/marcin/dials/boost_160/include/boost/python/object/function_handle.hpp:8:0,<br>
                 from<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 &#39;static const PyTypeObject*<br>
boost::python::detail::converter_target_type&lt;ResultConverter&gt;::get_pytype()<br>
[with ResultConverter =<br>
boost::python::detail::specify_a_return_value_policy_to_wrap_functions_returning&lt;const<br>
int&amp;&gt;; PyTypeObject = _typeobject]&#39;:<br>
/home/marcin/dials/boost_160/include/boost/python/detail/caller.hpp:240:19:<br>
  required from &#39;static boost::python::detail::py_func_sig_info<br>
boost::python::detail::caller_arity&lt;1u&gt;::impl&lt;F, Policies,<br>
Sig&gt;::signature() [with F = const int&amp;<br>
(boost::rational&lt;int&gt;::*)()const; Policies =<br>
boost::python::default_call_policies; Sig = boost::mpl::vector2&lt;const<br>
int&amp;, boost::rational&lt;int&gt;&amp;&gt;]&#39;<br>
/home/marcin/dials/boost_160/include/boost/python/object/py_function.hpp:48:35:<br>
  required from &#39;boost::python::detail::py_func_sig_info<br>
boost::python::objects::caller_py_function_impl&lt;Caller&gt;::signature()<br>
const [with Caller = boost::python::detail::caller&lt;const int&amp;<br>
(boost::rational&lt;int&gt;::*)()const,<br>
boost::python::default_call_policies, boost::mpl::vector2&lt;const int&amp;,<br>
boost::rational&lt;int&gt;&amp;&gt; &gt;]&#39;<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/caller.hpp:102:109:<br>
error: &#39;struct boost::python::detail::specify_a_return_value_policy_to_wrap_functions_returning&lt;const<br>
int&amp;&gt;&#39; has no member named &#39;get_pytype&#39;<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>
<div class="HOEnZb"><div class="h5"><br>
<br>
<br>
<br>
<br>
On Wed, Feb 10, 2016 at 4:44 PM, Aaron Brewster &lt;<a href="mailto:asbrewster@lbl.gov">asbrewster@lbl.gov</a>&gt; wrote:<br>
&gt; Hi Nick, Billy and I will work on this today,<br>
&gt;<br>
&gt; -Aaron<br>
&gt;<br>
&gt; On Wed, Feb 10, 2016 at 6:40 AM, Marcin Wojdyr &lt;<a href="mailto:wojdyr@gmail.com">wojdyr@gmail.com</a>&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; FWIW the latest version of Boost is 1.60.<br>
&gt;&gt; CCP4 6.5 was using cctbx compiled with Boost 1.56<br>
&gt;&gt; and CCP4 7.0 uses Boost 1.58.<br>
&gt;&gt;<br>
&gt;&gt; Marcin<br>
&gt;&gt;<br>
&gt;&gt; On Wed, Feb 10, 2016 at 2:17 PM, Nicholas Sauter &lt;<a href="mailto:nksauter@lbl.gov">nksauter@lbl.gov</a>&gt; wrote:<br>
&gt;&gt; &gt; Nigel, Billy &amp; Aaron,<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; I completely endorse this move to Boost 1.56.  Can we update our build?<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Nick<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; Nicholas K. Sauter, Ph. D.<br>
&gt;&gt; &gt; Computer Staff Scientist, Molecular Biophysics and Integrated Bioimaging<br>
&gt;&gt; &gt; Division<br>
&gt;&gt; &gt; Lawrence Berkeley National Laboratory<br>
&gt;&gt; &gt; 1 Cyclotron Rd., Bldg. 33R0345<br>
&gt;&gt; &gt; Berkeley, CA 94720<br>
&gt;&gt; &gt; <a href="tel:%28510%29%20486-5713" value="+15104865713">(510) 486-5713</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Wed, Feb 10, 2016 at 2:41 PM, Luc Bourhis &lt;<a href="mailto:luc_j_bourhis@mac.com">luc_j_bourhis@mac.com</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Hi,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; I have improvements to the smtbx on their way to be committed which<br>
&gt;&gt; &gt;&gt; require Boost version 1.56. This is related to Boost.Threads, whose<br>
&gt;&gt; &gt;&gt; support<br>
&gt;&gt; &gt;&gt; I re-activated a few months ago on Nick’s request. I need the function<br>
&gt;&gt; &gt;&gt; boost::thread::physical_concurrency which returns the number of<br>
&gt;&gt; &gt;&gt; physical<br>
&gt;&gt; &gt;&gt; cores on the machine, as opposed to virtual cores when hyperthreading<br>
&gt;&gt; &gt;&gt; is<br>
&gt;&gt; &gt;&gt; enabled (which it is by default on any Intel machine). That function is<br>
&gt;&gt; &gt;&gt; not<br>
&gt;&gt; &gt;&gt; available in Boost 1.55 which is the version currently used in the<br>
&gt;&gt; &gt;&gt; nightly<br>
&gt;&gt; &gt;&gt; tests: it appeared in 1.56.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; So, would it be possible to move to Boost 1.56? Otherwise, I will need<br>
&gt;&gt; &gt;&gt; to<br>
&gt;&gt; &gt;&gt; backport that function. Not too difficult but not thrilling.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Best wishes,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Luc<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; cctbxbb mailing list<br>
&gt;&gt; &gt;&gt; <a href="mailto:cctbxbb@phenix-online.org">cctbxbb@phenix-online.org</a><br>
&gt;&gt; &gt;&gt; <a href="http://phenix-online.org/mailman/listinfo/cctbxbb" rel="noreferrer" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt; cctbxbb mailing list<br>
&gt;&gt; &gt; <a href="mailto:cctbxbb@phenix-online.org">cctbxbb@phenix-online.org</a><br>
&gt;&gt; &gt; <a href="http://phenix-online.org/mailman/listinfo/cctbxbb" rel="noreferrer" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
&gt;&gt; &gt;<br>
&gt;&gt;<br>
&gt;&gt; _______________________________________________<br>
&gt;&gt; cctbxbb mailing list<br>
&gt;&gt; <a href="mailto:cctbxbb@phenix-online.org">cctbxbb@phenix-online.org</a><br>
&gt;&gt; <a href="http://phenix-online.org/mailman/listinfo/cctbxbb" rel="noreferrer" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
&gt;<br>
&gt;<br>
&gt;<br>
&gt; _______________________________________________<br>
&gt; cctbxbb mailing list<br>
&gt; <a href="mailto:cctbxbb@phenix-online.org">cctbxbb@phenix-online.org</a><br>
&gt; <a href="http://phenix-online.org/mailman/listinfo/cctbxbb" rel="noreferrer" target="_blank">http://phenix-online.org/mailman/listinfo/cctbxbb</a><br>
&gt;<br>
</div></div><br>_______________________________________________<br>
cctbxbb mailing list<br>
<a href="mailto:cctbxbb@phenix-online.org">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></blockquote></div><br></div></div>