Re: vector lightweight debug mode

2015-11-19 Thread François Dumont
Thanks for the explanation, it is much clearer. So here is a the more limited patch. Tested under Linux x86_64. Ok to commit ? François On 18/11/2015 13:27, Jonathan Wakely wrote: > On 17/11/15 20:49 +0100, François Dumont wrote: >> On 16/11/2015 11:29, Jonathan Wakely wrote: >>> Not doing th

Re: vector lightweight debug mode

2015-11-18 Thread Jonathan Wakely
On 18/11/15 12:27 +, Jonathan Wakely wrote: But my unproven assumption is that it's more common to use operator[] incorrectly, rather than pass invalid iterators to range insert, which is a relatively "advanced" operation. It's worth noting that the google/integration branch doesn't have an

Re: vector lightweight debug mode

2015-11-18 Thread Jonathan Wakely
On 17/11/15 20:49 +0100, François Dumont wrote: On 16/11/2015 11:29, Jonathan Wakely wrote: Not doing the checks is also an option. That minimizes the cost :-) This is controlled by a macro, users already have this option. True, but we're talking about maybe enabling these checks by default

Re: vector lightweight debug mode

2015-11-17 Thread François Dumont
On 16/11/2015 11:29, Jonathan Wakely wrote: > On 15/11/15 22:12 +0100, François Dumont wrote: >> Here is a last version I think. >> >>I completed the debug light mode by adding some check on iterator >> ranges. >> >>Even if check are light I made some changes to make sure that >> internally

Re: vector lightweight debug mode

2015-11-16 Thread Jonathan Wakely
On 15/11/15 22:12 +0100, François Dumont wrote: Here is a last version I think. I completed the debug light mode by adding some check on iterator ranges. Even if check are light I made some changes to make sure that internally vector is not using methods instrumented with those checks. Th

Re: vector lightweight debug mode

2015-11-15 Thread François Dumont
On 12/10/2015 21:42, François Dumont wrote: > On 07/10/2015 22:09, Jonathan Wakely wrote: >> On 07/10/15 21:38 +0200, François Dumont wrote: >>> Hi >>> >>>I completed vector assertion mode. Here is the result of the new >>> test you will find in the attached patch. >>> >>> With debug mode: >>>

Re: vector lightweight debug mode

2015-10-12 Thread François Dumont
On 07/10/2015 22:09, Jonathan Wakely wrote: > On 07/10/15 21:38 +0200, François Dumont wrote: >> Hi >> >>I completed vector assertion mode. Here is the result of the new >> test you will find in the attached patch. >> >> With debug mode: >> /home/fdt/dev/gcc/build_git/x86_64-unknown-linux-gnu/l

Re: vector lightweight debug mode

2015-10-07 Thread Jonathan Wakely
On 07/10/15 21:38 +0200, François Dumont wrote: Hi I completed vector assertion mode. Here is the result of the new test you will find in the attached patch. With debug mode: /home/fdt/dev/gcc/build_git/x86_64-unknown-linux-gnu/libstdc++-v3/include/debug/safe_iterator.h:375: Error: attempt t

Re: vector lightweight debug mode

2015-10-07 Thread François Dumont
Hi I completed vector assertion mode. Here is the result of the new test you will find in the attached patch. With debug mode: /home/fdt/dev/gcc/build_git/x86_64-unknown-linux-gnu/libstdc++-v3/include/debug/safe_iterator.h:375: Error: attempt to advance a dereferenceable (start-of-sequence) i

Re: vector lightweight debug mode

2015-09-19 Thread Jonathan Wakely
On 19 September 2015 at 10:12, Jonathan Wakely wrote: > On 19 September 2015 at 08:31, François Dumont wrote: >> On 16/09/2015 22:29, Jonathan Wakely wrote: >>> No, because it is undefined to compare iterators that belong to >>> different containers, or to compare pointers that point to different

Re: vector lightweight debug mode

2015-09-19 Thread Jonathan Wakely
On 19 September 2015 at 08:31, François Dumont wrote: > On 16/09/2015 22:29, Jonathan Wakely wrote: >> No, because it is undefined to compare iterators that belong to >> different containers, or to compare pointers that point to different >> arrays. >> > > (Written before Christopher reply:) > > At

Re: vector lightweight debug mode

2015-09-19 Thread Jonathan Wakely
On 17 September 2015 at 21:52, Christopher Jefferson wrote: > -- Forwarded message -- > From: Christopher Jefferson > Date: 17 September 2015 at 18:59 > Subject: Re: vector lightweight debug mode > To: Jonathan Wakely > > > On 16 September 2015 at 21:29

Re: vector lightweight debug mode

2015-09-19 Thread François Dumont
On 16/09/2015 22:29, Jonathan Wakely wrote: > >>> constexpr bool __move_storage = _Alloc_traits::_S_propagate_on_move_assign() || _Alloc_traits::_S_always_equal(); @@ -778,7 +779,10 @@ _GLIBCXX_BEGIN_NAMESPACE_CONTAINER */ refer

Fwd: vector lightweight debug mode

2015-09-17 Thread Christopher Jefferson
-- Forwarded message -- From: Christopher Jefferson Date: 17 September 2015 at 18:59 Subject: Re: vector lightweight debug mode To: Jonathan Wakely On 16 September 2015 at 21:29, Jonathan Wakely wrote: > On 16/09/15 21:37 +0200, François Dumont wrote: > >>>>

Re: vector lightweight debug mode

2015-09-16 Thread Jonathan Wakely
On 16/09/15 21:37 +0200, François Dumont wrote: On 14/09/2015 21:50, Jonathan Wakely wrote: On 14/09/15 20:27 +0200, François Dumont wrote: diff --git a/libstdc++-v3/include/bits/stl_vector.h b/libstdc++-v3/include/bits/stl_vector.h index 305d446..89a9aec 100644 --- a/libstdc++-v3/include/bits/

Re: vector lightweight debug mode

2015-09-16 Thread François Dumont
On 14/09/2015 21:50, Jonathan Wakely wrote: > On 14/09/15 20:27 +0200, François Dumont wrote: >> Hi >> >>Here is what I had in mind when talking about moving debug checks to >> the lightweight debug checks. > > Ah yes, I hadn't thought about removing reundant checks from the > __gnu_debug conta

Re: vector lightweight debug mode

2015-09-14 Thread Jonathan Wakely
On 14/09/15 20:27 +0200, François Dumont wrote: Hi Here is what I had in mind when talking about moving debug checks to the lightweight debug checks. Ah yes, I hadn't thought about removing reundant checks from the __gnu_debug containers, but that makes sense. Sometimes the checks have

vector lightweight debug mode

2015-09-14 Thread François Dumont
Hi Here is what I had in mind when talking about moving debug checks to the lightweight debug checks. Sometimes the checks have been simply moved resulting in a simpler debug vector implementation (front, back...). Sometimes I copy the checks in a simpler form and kept the debug one too t