Boost logo

Boost :

Subject: Re: [boost] [range] iterator_range::operator[] broken
From: Eric Niebler (eric_at_[hidden])
Date: 2010-04-14 03:42:08


Neil, let's keep this discussion on-list. It's important.

On 4/14/2010 12:21 AM, Neil Groves wrote:
> On Wed, Apr 14, 2010 at 7:13 AM, Eric Niebler <eric_at_[hidden]> wrote:
>
>> On 4/13/2010 8:03 PM, Steven Watanabe wrote:
>>> AMDG
>>>
>>> Eric Niebler wrote:
>>>> Neil, I know you patched this a mere 5 hours ago, but it's still broken.
>>>> The attached patch *really* fixes the problem, I think.
>>>
>>> Whoa. Why is this only returning a real reference for pointers?
>>
>> Yeah, I dunno. It's this way on the release branch, too. It's very, very
>> seriously broken. I think we need to revert range on the release branch
>> to the 1.42 version, and fast.
>>
> I would much prefer to revert just iterator_range.hpp as the change to
> handle iterator proxies is orthogonal to the other changes. The change as
> applied attempts to leverage the same mechanism as is used in the
> iterator_facade to provide a real reference or a proxy where appropriate for
> the index operator.

It is a breaking interface change in a core library. What is the
technical reason for it?

>> Neil?
>>
> I need to take another look at the code and perhaps the operator[] of
> iterator_range is broken, but I believe that this issue aside that the other
> changes are working well. It would be extremely disappointing to revert all
> of the adaptors, and algorithms just because of this issue. I'm more than
> happy to fix the problem as soon as I can.

I'm seeing massive breakages all over trunk and release, not all of
which are related to the changed return type of
iterator_range::operator[]. For instance, there seems to be some new
ambiguity in the "detail" symbol. See for instance:

http://beta.boost.org/development/tests/release/developer/output/RW_WinXP_VC-boost-bin-v2-libs-accumulators-test-covariance-test-msvc-8-0-debug-iterator_debugging-off-link-static-threading-multi.html

I can't be certain at this point if RangeEx is responsible, but it's
where I would start looking. Could you have a look and report back?

== Volunteers Needed ===

If anybody else is reading this: please look at the regressions on the
release branch here:
http://beta.boost.org/development/tests/release/developer/summary.html.
Pick a broken library that interests you and figure out why it's busted.
Report back.

-- 
Eric Niebler
BoostPro Computing
http://www.boostpro.com

Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk