Boost.Python "contains" compile fix
Hi, adding more Python 3 features, the "contains" method was added (in 1.55.0?) http://www.boost.org/doc/libs/1_55_0/libs/python/doc/news.html Unfortunately, I found a nasty compile bug when compiling with nvcc that I tried to fix in https://github.com/boostorg/python/pull/14 Does anyone know how to test my patch to see if this function is still working as expected? Thank you for your help, Axel
On 30/03/15 11:16 AM, Huebl, Axel wrote:
Hi,
adding more Python 3 features, the "contains" method was added (in 1.55.0?) http://www.boost.org/doc/libs/1_55_0/libs/python/doc/news.html
Unfortunately, I found a nasty compile bug when compiling with nvcc that I tried to fix in https://github.com/boostorg/python/pull/14
Does anyone know how to test my patch to see if this function is still working as expected?
I have looked at your patch, but am not convinced that this is the right fix. It would be best to really map "contains" to "__contains__" to preserve the precise semantic of that call. Do you see the "incomplete type" error only with nvcc or also with other compilers (clang, notably) ? Thanks, Stefan -- ...ich hab' noch einen Koffer in Berlin...
On 30.03.2015 17:42, Stefan Seefeld wrote:
On 30/03/15 11:16 AM, Huebl, Axel wrote:
Hi,
adding more Python 3 features, the "contains" method was added (in 1.55.0?) http://www.boost.org/doc/libs/1_55_0/libs/python/doc/news.html
Unfortunately, I found a nasty compile bug when compiling with nvcc that I tried to fix in https://github.com/boostorg/python/pull/14
Does anyone know how to test my patch to see if this function is still working as expected?
I have looked at your patch, but am not convinced that this is the right fix. It would be best to really map "contains" to "__contains__" to preserve the precise semantic of that call. Do you see the "incomplete type" error only with nvcc or also with other compilers (clang, notably) ?
Thanks, Stefan
Hi Stefan, I did only triggered the compile error it with nvcc since that is the target I want to move Boost.Python to. The main problem is actually in accessing the this->attr() method since it's return type "const_object_attribute" is not yet fully typed. Maybe it is therefore enough to just move the implementation of api::object_operators<U>::contains down to a source file, but I did not find an according object_core.cpp Do you have any hints on that? Thanks, Axel
On 30.03.2015 17:42, Stefan Seefeld wrote:
On 30/03/15 11:16 AM, Huebl, Axel wrote:
Hi,
adding more Python 3 features, the "contains" method was added (in 1.55.0?) http://www.boost.org/doc/libs/1_55_0/libs/python/doc/news.html
Unfortunately, I found a nasty compile bug when compiling with nvcc that I tried to fix in https://github.com/boostorg/python/pull/14
Does anyone know how to test my patch to see if this function is still working as expected?
I have looked at your patch, but am not convinced that this is the right fix. It would be best to really map "contains" to "__contains__" to preserve the precise semantic of that call. Do you see the "incomplete type" error only with nvcc or also with other compilers (clang, notably) ?
Thanks, Stefan
Hi Stefan, I did only triggered the compile error it with nvcc since that is the target I want to move Boost.Python to. The main problem is actually in accessing the this->attr() method since it's return type "const_object_attribute" is not yet fully typed. Maybe it is therefore enough to just move the implementation of api::object_operators<U>::contains down to a source file, but I did not find an according object_core.cpp Do you have any hints on that? Thanks, Axel
On 30.03.2015 22:37, Huebl, Axel wrote:
On 30.03.2015 17:42, Stefan Seefeld wrote:
On 30/03/15 11:16 AM, Huebl, Axel wrote:
Hi,
adding more Python 3 features, the "contains" method was added (in 1.55.0?) http://www.boost.org/doc/libs/1_55_0/libs/python/doc/news.html
Unfortunately, I found a nasty compile bug when compiling with nvcc that I tried to fix in https://github.com/boostorg/python/pull/14
Does anyone know how to test my patch to see if this function is still working as expected?
I have looked at your patch, but am not convinced that this is the right fix. It would be best to really map "contains" to "__contains__" to preserve the precise semantic of that call. Do you see the "incomplete type" error only with nvcc or also with other compilers (clang, notably) ?
Thanks, Stefan
Hi Stefan,
I did only triggered the compile error it with nvcc since that is the target I want to move Boost.Python to.
oh that wasn't precise enough: to answer your question, I did not try it with clang (yet).
The main problem is actually in accessing the this->attr() method since it's return type "const_object_attribute" is not yet fully typed.
Maybe it is therefore enough to just move the implementation of api::object_operators<U>::contains
down to a source file, but I did not find an according object_core.cpp
Do you have any hints on that?
Thanks, Axel
On 30/03/15 04:37 PM, Huebl, Axel wrote:
On 30.03.2015 17:42, Stefan Seefeld wrote:
Hi,
adding more Python 3 features, the "contains" method was added (in 1.55.0?) http://www.boost.org/doc/libs/1_55_0/libs/python/doc/news.html
Unfortunately, I found a nasty compile bug when compiling with nvcc that I tried to fix in https://github.com/boostorg/python/pull/14
Does anyone know how to test my patch to see if this function is still working as expected? I have looked at your patch, but am not convinced that this is the right fix. It would be best to really map "contains" to "__contains__" to
On 30/03/15 11:16 AM, Huebl, Axel wrote: preserve the precise semantic of that call. Do you see the "incomplete type" error only with nvcc or also with other compilers (clang, notably) ?
Thanks, Stefan
Hi Stefan,
I did only triggered the compile error it with nvcc since that is the target I want to move Boost.Python to.
The main problem is actually in accessing the this->attr() method since it's return type "const_object_attribute" is not yet fully typed.
Maybe it is therefore enough to just move the implementation of api::object_operators<U>::contains
down to a source file, but I did not find an according object_core.cpp
Do you have any hints on that?
Not yet. I was asking about clang because I believe nvcc is based on clang, and woud thus allow me to attempt to reproduce the problem without having to install nvcc first. (I have run into issues such as the above with my own code using clang, but refactoring the code to make sure all the right pieces are seen in the right order can open up a huge rat-hole, if there are circular dependencies...)
oh that wasn't precise enough: to answer your question, I did not try it with clang (yet).
Trying that would be useful, I think. Thanks, Stefan -- ...ich hab' noch einen Koffer in Berlin...
participants (3)
-
Axel Hübl -
Huebl, Axel -
Stefan Seefeld