[1.56.0 b1] Issue with mpl/is_convertable/asio

In testing '1.56.0 Beta 1' I have found that I am unable to compile https://github.com/splunk/pion on RHEL6_x64 Pion compiles fine with 1.55.0 I suspect the recurring "anonymous enum" is the kicker, though I am not sure where to even begin in diagnosing this. error: ‘const boost::asio::detail::buffer_sequence_adapter_base::<anonymous enum>&’ is/uses anonymous type error: no type named ‘type’ in ‘struct boost::is_convertible<const boost::asio::detail::buffer_sequence_adapter_base::<anonymous enum>&, const boost::iterator_range_detail::iterator_range_tag&>’ error: ‘value’ is not a member of ‘boost::mpl::aux::nested_type_wknd<boost::is_convertible<const boost::asio::detail::buffer_sequence_adapter_base::<anonymous enum>&, const boost::iterator_range_detail::iterator_range_tag&> >’ Full error log: http://pastebin.com/yeScQCpx If I get a chance I will see if I can reproduce this on a more modern compiler. Any assistance in correcting this before the 1.56.0 release would be appreciated. It also may or may not be related to http://thread.gmane.org/gmane.comp.lib.boost.devel/253259/focus=253261 Regards, Thomas

On Monday 28 July 2014 16:55:51 Thomas Suckow wrote:
In testing '1.56.0 Beta 1' I have found that I am unable to compile https://github.com/splunk/pion on RHEL6_x64 Pion compiles fine with 1.55.0
I suspect the recurring "anonymous enum" is the kicker, though I am not sure where to even begin in diagnosing this. error: ‘const boost::asio::detail::buffer_sequence_adapter_base::<anonymous enum>&’ is/uses anonymous type error: no type named ‘type’ in ‘struct boost::is_convertible<const boost::asio::detail::buffer_sequence_adapter_base::<anonymous enum>&, const boost::iterator_range_detail::iterator_range_tag&>’ error: ‘value’ is not a member of ‘boost::mpl::aux::nested_type_wknd<boost::is_convertible<const boost::asio::detail::buffer_sequence_adapter_base::<anonymous enum>&, const boost::iterator_range_detail::iterator_range_tag&> >’
Full error log: http://pastebin.com/yeScQCpx
If I get a chance I will see if I can reproduce this on a more modern compiler.
Any assistance in correcting this before the 1.56.0 release would be appreciated. It also may or may not be related to http://thread.gmane.org/gmane.comp.lib.boost.devel/253259/focus=253261
I think it's the same issue that has been described here: http://thread.gmane.org/gmane.comp.lib.boost.devel/249985/focus=249986 I can create a pull request to fix this locally in ASIO, if there is a chance to merge it into 1.56. But that will only fix this particular breakage; I can't tell if there are other similar places. I'm worried by Boost.Range abusing boost namespace and interfere name lookup this way. A similar problem was with Boost.Iterator and I moved it to its own namespace. I think the same should be done for Boost.Range.

On Tue, Jul 29, 2014 at 6:55 AM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
On Monday 28 July 2014 16:55:51 Thomas Suckow wrote:
In testing '1.56.0 Beta 1' I have found that I am unable to compile https://github.com/splunk/pion on RHEL6_x64 Pion compiles fine with 1.55.0
I think it's the same issue that has been described here:
http://thread.gmane.org/gmane.comp.lib.boost.devel/249985/focus=249986
I can create a pull request to fix this locally in ASIO, if there is a chance to merge it into 1.56. But that will only fix this particular breakage; I can't tell if there are other similar places.
https://github.com/boostorg/asio/pull/7 I tried to compile pion 5.0.6 with gcc 4.4.7 with this change and it succeeded. I'd appreciate if someone could merge it to develop.

On 7/29/2014 12:26 AM, Andrey Semashev wrote:
On Tue, Jul 29, 2014 at 6:55 AM, Andrey Semashev <andrey.semashev@gmail.com> wrote:
On Monday 28 July 2014 16:55:51 Thomas Suckow wrote:
In testing '1.56.0 Beta 1' I have found that I am unable to compile https://github.com/splunk/pion on RHEL6_x64 Pion compiles fine with 1.55.0
I think it's the same issue that has been described here:
http://thread.gmane.org/gmane.comp.lib.boost.devel/249985/focus=249986
I can create a pull request to fix this locally in ASIO, if there is a chance to merge it into 1.56. But that will only fix this particular breakage; I can't tell if there are other similar places.
https://github.com/boostorg/asio/pull/7
I tried to compile pion 5.0.6 with gcc 4.4.7 with this change and it succeeded. I'd appreciate if someone could merge it to develop.
This isn't a bug in Asio, so that's the wrong fix (I think). The fix belongs in Boost.Range, and fixing it there will save this kind of heartache for many more people. Thomas, Andrey: Can one of you apply the following patch to libs/range and tell me if pion compiles successfully with it. (I've been unsuccessful configuring pion myself.) https://github.com/boostorg/range/pull/16 Andrey, if you can test this, be sure to revert your change to Asio first. Thanks, Eric

On Wed, Jul 30, 2014 at 5:37 AM, Eric Niebler <eniebler@boost.org> wrote:
On 7/29/2014 12:26 AM, Andrey Semashev wrote:
On Tue, Jul 29, 2014 at 6:55 AM, Andrey Semashev
I can create a pull request to fix this locally in ASIO, if there is a chance to merge it into 1.56. But that will only fix this particular breakage; I can't tell if there are other similar places.
https://github.com/boostorg/asio/pull/7
I tried to compile pion 5.0.6 with gcc 4.4.7 with this change and it succeeded. I'd appreciate if someone could merge it to develop.
This isn't a bug in Asio, so that's the wrong fix (I think). The fix belongs in Boost.Range, and fixing it there will save this kind of heartache for many more people.
I agree. I just though it was too late for massive changes in Boost.Range.
Thomas, Andrey: Can one of you apply the following patch to libs/range and tell me if pion compiles successfully with it. (I've been unsuccessful configuring pion myself.)
https://github.com/boostorg/range/pull/16
Andrey, if you can test this, be sure to revert your change to Asio first.
Clean 1.56 RC + this patch fixes pion 5.0.6 on gcc 4.4.7 for me.
participants (3)
-
Andrey Semashev
-
Eric Niebler
-
Thomas Suckow