Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Boost 1.65: boost::python::numeric removed #70

Closed
ndevenish opened this issue Sep 13, 2017 · 1 comment · Fixed by #409
Closed

Boost 1.65: boost::python::numeric removed #70

ndevenish opened this issue Sep 13, 2017 · 1 comment · Fixed by #409

Comments

@ndevenish
Copy link
Contributor

As per http://www.boost.org/users/history/version_1_65_1.html:

The boost::python::numeric API has been removed, as it is being obsoleted by boost::python::numpy.

This is used in (at least) scitbx/.../numpy_bridge.hpp and thus anything that depends on it. I tried literally just renaming the interface and providing compatibility macros (ndevenish/cctbx_project@1d25c89 was the very rough first attempt), and that wasn't sufficient, but didn't get time to delve any deeper.

More of an "in the future" problem since we don't use it at the moment - since this was just discussed I thought I'd add it here to track. I don't think this is the only issue with Boost 1.65.

The new numpy API was only added in Boost 1.63, so potentially moving to that as a minimum requirement first would mean that we don't have to conditionally adhere to both APIs, but I don't know how realistic that is.

@ndevenish
Copy link
Contributor Author

Update: Since we updated to Boost 1.63, I've put the first part of this in: 1769a36 - this ensures the new boost module is compiled. Haven't added any API use changes yet.

ndevenish added a commit to ndevenish/cctbx_project-fork that referenced this issue Apr 26, 2018
Boost 1.63 deprecated boost::python::numeric and added ::numpy. In order
to update to 1.65 (cctbx#172), which drops the numeric API, we needed to move
to the new ::numpy.

Because the numpy bridge code is mainly written in plain numpy C-API,
the opportunity has been taken to update the API syntax (to remove
warnings about using the old API).

The old macro-based declaration scheme has been removed in favor of C++
templates, which means the numpy conversion routines can be specified
more centrally for flex arrays, though for some reason this appears to
fail for std::size (which is why that is overridden specifically in
flex_size_t.cpp)

Fixes cctbx#70.
phyy-nx pushed a commit to ndevenish/cctbx_project-fork that referenced this issue Apr 26, 2018
Boost 1.63 deprecated boost::python::numeric and added ::numpy. In order
to update to 1.65 (cctbx#172), which drops the numeric API, we needed to move
to the new ::numpy.

Because the numpy bridge code is mainly written in plain numpy C-API,
the opportunity has been taken to update the API syntax (to remove
warnings about using the old API).

The old macro-based declaration scheme has been removed in favor of C++
templates, which means the numpy conversion routines can be specified
more centrally for flex arrays, though for some reason this appears to
fail for std::size (which is why that is overridden specifically in
flex_size_t.cpp)

Fixes cctbx#70.
Anthchirp added a commit that referenced this issue Jun 3, 2018
This is a necessary prerequisite to #70.

Reason this failed was that BOOST_PYTHON_SOURCE was defined for the
boost::numpy components. This led to an attempt to export boost::python
in the boost::numpy library, which then failed during linking.
Anthchirp added a commit that referenced this issue Jun 3, 2018
This is a necessary prerequisite to #70.

Reason this failed was that BOOST_PYTHON_SOURCE was defined for the
boost::numpy components. This led to an attempt to export boost::python
in the boost::numpy library, which then failed during linking.

On Windows boost::numpy requires boost 1.64.
This is due to a bug in 1.63 which means the boost_numpy.lib is not
created. boostorg/python#98
bkpoon pushed a commit that referenced this issue Jun 8, 2018
This is a necessary prerequisite to #70.

Reason this failed was that BOOST_PYTHON_SOURCE was defined for the
boost::numpy components. This led to an attempt to export boost::python
in the boost::numpy library, which then failed during linking.

On Windows boost::numpy requires boost 1.64.
This is due to a bug in 1.63 which means the boost_numpy.lib is not
created. boostorg/python#98
ndevenish added a commit to ndevenish/cctbx_project-fork that referenced this issue Jul 1, 2018
Boost 1.63 deprecated boost::python::numeric and added ::numpy. In order
to update to 1.65 (cctbx#172), which drops the numeric API, we needed to move
to the new ::numpy.

Because the numpy bridge code is mainly written in plain numpy C-API,
the opportunity has been taken to update the API syntax (to remove
warnings about using the old API).

The old macro-based declaration scheme has been removed in favor of C++
templates, which means the numpy conversion routines can be specified
more centrally for flex arrays, though for some reason this appears to
fail for std::size (which is why that is overridden specifically in
flex_size_t.cpp)

Fixes cctbx#70.
ndevenish added a commit to ndevenish/cctbx_project-fork that referenced this issue Oct 24, 2018
Boost 1.63 deprecated boost::python::numeric and added ::numpy. In order
to update to 1.65 (cctbx#172), which drops the numeric API, we needed to move
to the new ::numpy.

Because the numpy bridge code is mainly written in plain numpy C-API,
the opportunity has been taken to update the API syntax (to remove
warnings about using the old API).

The old macro-based declaration scheme has been removed in favor of C++
templates, which means the numpy conversion routines can be specified
more centrally for flex arrays, though for some reason this appears to
fail for std::size (which is why that is overridden specifically in
flex_size_t.cpp)

Fixes cctbx#70.
Python 2/3 Compatibility automation moved this from To do to Completed May 8, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Development

Successfully merging a pull request may close this issue.

1 participant