[PATCH] Fix pretty printers tests

2019-12-13 Thread François Dumont
Here is a patch to fix prettyprinters.exp failures in normal and debug modes. In 80276.cc I replicate the #define with comment from other tests even if it isn't true that cxx11 abi string isn't supported. It's just that it doesn't appear as 'std::string', the aliasing doesn't work. I still

[PATCH] Fix gnu-versioned-namespace tr1 declaration

2019-12-11 Thread François Dumont
On 12/11/19 12:22 PM, Jonathan Wakely wrote: On 11/12/19 11:16 +, Jonathan Wakely wrote: On 11/12/19 08:29 +0100, François Dumont wrote: I plan to commit this tomorrow. Note that rather than just adding the missing _GLIBCXX_[BEGIN,END]_VERSION_NAMESPACE I also move anonymous namespace

Re: [PATCH] Fix gnu-versioned-namespace build

2019-12-11 Thread François Dumont
On 12/11/19 9:44 PM, Jonathan Wakely wrote: On 11/12/19 21:23 +0100, François Dumont wrote: On 12/11/19 12:16 PM, Jonathan Wakely wrote: On 11/12/19 08:29 +0100, François Dumont wrote: I plan to commit this tomorrow. Note that rather than just adding the missing _GLIBCXX_[BEGIN,END

Re: [PATCH] Fix gnu-versioned-namespace build

2019-12-11 Thread François Dumont
On 12/11/19 12:16 PM, Jonathan Wakely wrote: On 11/12/19 08:29 +0100, François Dumont wrote: I plan to commit this tomorrow. Note that rather than just adding the missing _GLIBCXX_[BEGIN,END]_VERSION_NAMESPACE I also move anonymous namespace usage outside std namespace. Let me know

Re: std::vector code cleanup fixes optimizations

2019-12-15 Thread François Dumont
rt _M_offset.     (StdVectorPrinter.to_string): Likewise.     * testsuite/23_containers/vector/bool/allocator/swap.cc: Adapt.     * testsuite/23_containers/vector/bool/cons/noexcept_move_construct.cc:     Add check. François On 6/24/19 9:31 PM, François Dumont wrote: Hi     Any feedback reg

Re: [PATCH] Help compiler detect invalid code

2019-10-16 Thread François Dumont
_neg.cc: New.     * testsuite/25_algorithms/move/constexpr.cc: New.     * testsuite/25_algorithms/move/constexpr_neg.cc: New. François On 10/10/19 10:03 PM, Jonathan Wakely wrote: On 01/10/19 22:05 +0200, François Dumont wrote: On 9/27/19 1:24 PM, Jonathan Wakely wrote: On 20/09/19 07:08 +0200, François Dum

[PATCH] ostreambuf_iterator std::advance overload

2019-10-15 Thread François Dumont
Hi     I completed this overload before noticing that the Standard do not expect anything when 'advancing' an output iterator.     But as I've done it consistenly with the istreambuf_iterator here it is with samples about how to use it.     Let me know if acceptable. François diff --git

Re: [PATCH] Implement std::advance for istreambuf_iterator using pubseekoff

2019-10-15 Thread François Dumont
to std::advance algo. François On 10/14/19 10:12 PM, François Dumont wrote: The same way I proposed to review std::copy overload for istreambuf_iterator we can implement std::advance using pubseekoff. It is both a cleaner implementation and avoids yet another friend declaration.     * include

[PATCH] Clarify constness and state

2019-10-15 Thread François Dumont
    * src/c++11/debug.cc (print_field): Replace constness_names     entry with . Replace state_names entry with     . Committed as trivial. François Index: src/c++11/debug.cc === --- src/c++11/debug.cc (révision 277048) +++

Re: [PATCH, libstdc++] More

2019-11-25 Thread François Dumont
I have a patch for the same location so here is my remark that might make my patch useless. Maybe you can even merge it with yours Ed, here it is: https://gcc.gnu.org/ml/libstdc++/2019-10/msg00072.html On 11/25/19 10:15 PM, Jonathan Wakely wrote: On 15/11/19 22:17 -0500, Ed Smith-Rowland via

Re: [PATCH][_GLIBCXX_DEBUG] Improve valid_range check

2019-11-26 Thread François Dumont
On 11/26/19 1:21 PM, Jonathan Wakely wrote: On 26/11/19 12:33 +0100, Stephan Bergmann wrote: On 22/11/2019 18:59, Jonathan Wakely wrote: On 22/11/19 18:38 +0100, François Dumont wrote:     I noticed that we are not checking that iterators are not singular in valid_range. Moreover

Re: [PATCH][_GLIBCXX_DEBUG] Improve valid_range check

2019-11-26 Thread François Dumont
On 11/26/19 9:49 PM, Stephan Bergmann wrote: On 26/11/2019 20:07, François Dumont wrote: However I wasn't sure about this syntax before the commit so I had run the new 2_neg.cc with: make CXXFLAGS=-std=c++98 check-debug and it worked fine and still is ! I also try -std=gnu++98 and made sure

Re: [PATCH][_GLIBCXX_DEBUG] Improve valid_range check

2019-11-26 Thread François Dumont
On 11/26/19 10:52 PM, Jonathan Wakely wrote: On 26/11/19 20:07 +0100, François Dumont wrote: Sure, I am about to do so. However I wasn't sure about this syntax before the commit so I had run the new 2_neg.cc with: make CXXFLAGS=-std=c++98 check-debug and it worked fine and still

[PATCH] Enhance _GLIBCXX_DEBUG constexpr support

2019-12-02 Thread François Dumont
Hi     Here is a patch to enhance constexpr support in _GLIBCXX_DEBUG. I work on std::lower_bound/upper_bound to find out if Debug mode is well prepared. I'll continue on other algos later.     I initially hope that I could count on the compiler for the valid_range check. But for

[PATCH] C++20 P1032 for __debug::array

2019-11-25 Thread François Dumont
I plan to commit this tomorrow. But I really wonder if we couldn't just add some __glibcxx_checks_xxx in std/array ?     * include/debug/array (array<>::fill): Add C++20 constexpr.     (array<>::swap): Likewise. François diff --git a/libstdc++-v3/include/debug/array

[PATCH] Add safe iterator iterator_concept

2019-11-25 Thread François Dumont
I plan to commit this patch tomorrow.     * include/debug/safe_iterator.h [__cpp_lib_concepts](_Safe_iterator<>::iterator_concept): Define for     C++20. François diff --git a/libstdc++-v3/include/debug/safe_iterator.h b/libstdc++-v3/include/debug/safe_iterator.h index 685256551d9..abf575186c7

Re: copy/copy_backward/fill/fill_n/equal rework

2019-09-24 Thread François Dumont
Ping ? On 9/9/19 8:34 PM, François Dumont wrote: Hi     This patch improves stl_algobase.h copy/copy_backward/fill/fill_n/equal implementations. The improvements are: - activation of algo specialization for __gnu_debug::_Safe_iterator (w/o _GLIBCXX_DEBUG mode) - activation of algo

Re: [PATCH] Help compiler detect invalid code

2019-09-25 Thread François Dumont
mode. OK to commit ? François On 9/20/19 7:08 AM, François Dumont wrote: I already realized that previous patch will be too controversial to be accepted. In this new version I just implement a real memmove in __memmove so that in copy_backward there is no need for a shortcut to a more

Re: Add std::copy_n overload for istreambuf_iterator

2019-10-10 Thread François Dumont
te: On Fri, 4 Oct 2019 at 07:01, François Dumont <mailto:frs.dum...@gmail.com>> wrote: On 9/27/19 1:00 PM, Jonathan Wakely wrote: > On 19/07/19 23:37 +0200, François Dumont wrote: >> It sounds reasonable to overload std::copy_n for istreambuf_iterator.

[PATCH] Review std::copy istreambuf_iterator specialization

2019-10-08 Thread François Dumont
Hi     Following what has been done for std::copy_n I think we could simplify the __copy_move_a2 overload to also use sgetn. Code is simpler and we avoid a friend declaration.     Tested under Linux x86_64.     * include/std/streambuf (__copy_move_a2): Remove friend declaration.     *

Re: copy/copy_backward/fill/fill_n/equal rework

2019-10-08 Thread François Dumont
can find a way to confirm that a given overload is indeed being called. So here is this patch again. François On 9/27/19 11:14 PM, François Dumont wrote: On 9/27/19 2:28 PM, Jonathan Wakely wrote: On 09/09/19 20:34 +0200, François Dumont wrote: Hi     This patch improves stl_algobase.h copy

Re: Add std::copy_n overload for istreambuf_iterator

2019-10-09 Thread François Dumont
On 10/9/19 10:18 PM, Christophe Lyon wrote: On Fri, 4 Oct 2019 at 07:01, François Dumont <mailto:frs.dum...@gmail.com>> wrote: On 9/27/19 1:00 PM, Jonathan Wakely wrote: > On 19/07/19 23:37 +0200, François Dumont wrote: >> It sounds reasonable to ov

[PATCH] Add std::__iterator_category_t

2019-10-03 Thread François Dumont
Hi     May I add this convenient function ? I'll also use it in coming patches.     Note that I removed a template parameter in __is_random_access_iter in C++11.     * include/bits/stl_iterator_base_types.h (__iterator_category_t): Define     for C++11.     (__is_random_access_iter):

[PATCH] Add std::copy_n debug checks

2019-10-03 Thread François Dumont
Hi     We are missing obvious debug checks in std::copy_n. Moreover I'll need them when I'll remove the Debug layer in a coming patch.     Tested under Linux x86_64.     * include/bits/stl_algo.h (copy_n): Add __glibcxx_requires_can_increment     debug checks.     *

Re: [PATCH] Improve _Safe_iterator _M_distance_to

2019-10-04 Thread François Dumont
I eventually committed the attach patch. The usage of __dp_sign_max_size will come later. François On 9/27/19 1:45 PM, Jonathan Wakely wrote: On 16/09/19 22:31 +0200, François Dumont wrote:     Here is the patch to improve _Safe_iterator<>::_M_get_distance_to implementation. I intr

[PATCH] Implement std::advance for istreambuf_iterator using pubseekoff

2019-10-14 Thread François Dumont
The same way I proposed to review std::copy overload for istreambuf_iterator we can implement std::advance using pubseekoff. It is both a cleaner implementation and avoids yet another friend declaration.     * include/std/streambuf     (advance(istreambuf_iterator<>&, _Distance)): Remove

Re: [PATCH][Hashtable 0/6] Code review

2019-12-19 Thread François Dumont
, François Dumont wrote: This patch also require an update of the printers.py file. Here is an updated version. François On 11/17/19 9:42 PM, François Dumont wrote: This is the begining of a patch series for _Hashtable Initial patch to clarify code. I was tired to see true/false or true_type

Re: [PATCH][Hashtable 5/6] Remove H1/H2 template parameters

2019-12-19 Thread François Dumont
Because of this change printers.py has to be updated too. François On 11/17/19 10:15 PM, François Dumont wrote: H1 used to be a reference to the user Hash, now _Hashtable and unordered types agree on the same Hash type which is more intuitive. I also chose to not support anymore a stateful

[PATCH] Fix versioned namespace test failures

2019-12-20 Thread François Dumont
Comitted as trivial. After this I only have 1 failure left specific to versioned namespace in pretty printers tests.     * testsuite/23_containers/map/48101_neg.cc: Add versioned namespace     pattern to tested error message.     * testsuite/23_containers/multimap/48101_neg.cc: Likewise.    

[PATCH] PR libstdc++/91620 Implement DR 526 for std::[forward_]list::remove_if/unique

2019-12-27 Thread François Dumont
Here is the patch to extend DR 526 to forward_list and list remove_if and unique. As the adopted pattern is simpler I also applied it to the remove methods.     PR libstdc++/91620     * include/bits/forward_list.tcc (forward_list<>::remove): Collect nodes     to destroy in an intermediate

[PATCH] Make __glibcxx_assert constexpr compatible

2020-02-10 Thread François Dumont
By making __glibcxx_assert constexpr compatible we can get rid of a FIXME in basic_string_view and so fix following XPASS in _GLIBCXX_DEBUG modes. XPASS: 21_strings/basic_string_view/element_access/char/2.cc execution test XPASS: 21_strings/basic_string_view/element_access/wchar_t/2.cc

Fix Debug mode Undefined Behavior

2020-03-03 Thread François Dumont
After the fix of PR 91910 I tried to consider other possible race condition and I think we still have a problem. Like stated in the PR when a container is destroyed all associated iterators are made singular. If at the same time another thread try to access this iterator the _M_singular check

Bind to std::equal plumbing in ranges::equal

2020-03-05 Thread François Dumont
I started to work on ranges::equal to find out if what I am trying to do is totally silly. With this patch ranges::equal is in pare with std::equal specializations that is to say that it correctly deals with Debug mode or std::deque iterators. Once below patch is in:

Bind to std::equal plumbing in ranges::equal

2020-03-05 Thread François Dumont
I started to work on ranges::equal to find out if what I am trying to do is totally silly. With this patch ranges::equal is in pare with std::equal specializations that is to say that it correctly deals with Debug mode or std::deque iterators. Once below patch is in:

Re: [PATCH] PR libstdc++/91620 Implement DR 526 for std::[forward_]list::remove_if/unique

2020-03-02 Thread François Dumont
Hi     Isn't it something to fix before gcc 10 release ? François On 12/27/19 11:57 AM, François Dumont wrote: Here is the patch to extend DR 526 to forward_list and list remove_if and unique. As the adopted pattern is simpler I also applied it to the remove methods.     PR libstdc

[PATCH] Limit includes in hashtable_policy.h

2020-02-27 Thread François Dumont
When I use std::is_permutation in hashtable_policy.h I included stl_algo.h which is a large header. No other header in include/bits does this, I would prefer not being the first to do such a thing. As it is a recent change I prefer to submit this patch now. Git commit message:     libstdc++

Re: [PATCH 2/3] libstdc++: Implement C++20 constrained algorithms

2020-02-05 Thread François Dumont
Hi     Is it me or the patch isn't an attachment ? It is far more convenient to provide something easy to extract and apply locally. On 2/4/20 3:07 AM, Patrick Palka wrote: This patch implements the C++20 ranges overloads for the algorithms in [algorithms]. Most of the algorithms were

[PATCH] Hashtable: Add missing std qualification on a forward call

2020-02-11 Thread François Dumont
I just notice that in a recent patch I forgot a std:: on a call to forward. * include/bits/hashtable.h (_Hashtable<>(_Hashtable&&, std::allocator_type&)):     Add missing std namespace qualification to forward call. Ok to commit ? François diff --git a/libstdc++-v3/include/bits/hashtable.h

Re: [PATCH 2/3] libstdc++: Implement C++20 constrained algorithms

2020-02-13 Thread François Dumont
counterparts which will then forward to C functions. On 2/13/20 8:00 PM, Jonathan Wakely wrote: On 13/02/20 19:07 +0100, François Dumont wrote: On 2/4/20 3:07 AM, Patrick Palka wrote: This patch implements the C++20 ranges overloads for the algorithms in [algorithms].  Most of the algorithms were

Re: [PATCH 2/3] libstdc++: Implement C++20 constrained algorithms

2020-02-13 Thread François Dumont
On 2/4/20 3:07 AM, Patrick Palka wrote: This patch implements the C++20 ranges overloads for the algorithms in [algorithms]. Most of the algorithms were reimplemented, with each of their implementations very closely following the existing implementation in bits/stl_algo.h and

Re: [PATCH] libstdc++/91223 Improve unordered containers == operator

2020-01-15 Thread François Dumont
On 1/15/20 10:52 PM, Jonathan Wakely wrote: On 15/01/20 21:48 +, Jonathan Wakely wrote: On 14/01/20 22:25 +0100, François Dumont wrote: On 1/13/20 10:53 PM, Jonathan Wakely wrote: On 13/01/20 22:41 +0100, François Dumont wrote: For the multi-keys we could still avoid redundant

Re: [PATCH] libstdc++/91223 Improve unordered containers == operator

2020-01-13 Thread François Dumont
On 1/10/20 11:01 PM, Jonathan Wakely wrote: On 10/01/20 18:54 +0100, François Dumont wrote: Hi     Here is my attempt to improve == operator.     There is a small optimization for the std::unordered_mutiXXX containers but the main enhancement rely on some partial template specialization

Re: [PATCH] libstdc++/91223 Improve unordered containers == operator

2020-01-14 Thread François Dumont
On 1/13/20 10:53 PM, Jonathan Wakely wrote: On 13/01/20 22:41 +0100, François Dumont wrote: For the multi-keys we could still avoid redundant comparisons when _Equal is just doing == on the key type. On unordered_multiset we could just avoids the call to is_permuation

Re: [PATCH] libstdc++/91223 Improve unordered containers == operator

2020-01-16 Thread François Dumont
On 1/16/20 5:01 PM, Jonathan Wakely wrote: On 16/01/20 13:25 +, Jonathan Wakely wrote: On 16/01/20 07:42 +0100, François Dumont wrote: On 1/15/20 10:52 PM, Jonathan Wakely wrote: On 15/01/20 21:48 +, Jonathan Wakely wrote: On 14/01/20 22:25 +0100, François Dumont wrote: On 1/13/20

Re: Deque rotate on current node

2020-01-16 Thread François Dumont
d this one is abi compatible ! François On 5/20/19 7:39 AM, François Dumont wrote: Hi   std::deque is supposed to be like a double-queue that you can attack from front and back. But currrently its implementation makes it behave differently when starting from a fresh deque. If push_back then all

Re: Deque rotate on current node

2020-01-17 Thread François Dumont
On 1/17/20 11:01 AM, Jonathan Wakely wrote: On 20/05/19 07:39 +0200, François Dumont wrote: Hi   std::deque is supposed to be like a double-queue that you can attack from front and back. But currrently its implementation makes it behave differently when starting from a fresh deque

[PATCH] libstdc++/91223 Improve unordered containers == operator

2020-01-10 Thread François Dumont
Hi     Here is my attempt to improve == operator.     There is a small optimization for the std::unordered_mutiXXX containers but the main enhancement rely on some partial template specialization of the _Equality type. I limit it to usage of unordered containers with std::equal_to to be sure

[PATCH] libstdc++/92124 for associative containers

2020-01-03 Thread François Dumont
This is the patch to extend PR 92124 to the associative containers. As it is pretty simple I thought it could maybe go in now. I also think that the existing 92124 tests are not really testing what they should with the move assignment operators noexcept qualified, no ?     PR libstdc++/92124

Re: [PATCH] PR libstdc++/92124 on hashtable

2020-01-07 Thread François Dumont
On 1/6/20 4:17 PM, Jonathan Wakely wrote: On 07/11/19 20:28 +0100, François Dumont wrote: From what I understood from recent fix the unordered containers need to be updated the same way. I hope you'll appreciate the usage of rvalue forwarding. Containers Yes, I think it makes sense. node

Re: Bind to std::equal plumbing in ranges::equal

2020-03-09 Thread François Dumont
On 3/6/20 11:12 AM, Jonathan Wakely wrote: On 06/03/20 10:09 +, Jonathan Wakely wrote: On 06/03/20 07:06 +0100, François Dumont wrote: I started to work on ranges::equal to find out if what I am trying to do is totally silly. With this patch ranges::equal is in pare with std::equal

Re: [PATCH] Fix coroutine tests for libstdc++ gnu-version-namespace mode

2023-10-11 Thread François Dumont
Hi Iain On 11/10/2023 09:30, Iain Sandoe wrote: Hi François, On 11 Oct 2023, at 05:49, François Dumont wrote: On 08/10/2023 15:59, Iain Sandoe wrote: On 23 Sep 2023, at 21:10, François Dumont wrote: I'm eventually fixing those tests the same way we manage this problem in libstdc

[PATCH][_Hashtable] Use RAII to restore Rehash state

2023-10-25 Thread François Dumont
    libstdc++: [_Hashtable] Use RAII type to manage rehash functor state     Replace usage of __try/__catch with a RAII type to restore rehash functor     state when needed.     libstdc++-v3/ChangeLog:     * include/bits/hashtable_policy.h (_RehashStateGuard): New.    

[committed][_GLIBCXX_INLINE_VERSION] Fix constract violation

2023-10-29 Thread François Dumont
This fixes handle_contract_violation under versioned namespace mode. Tested under Linux x64 and confirmed to also fix Darwin build. libstdc++: [_GLIBCXX_INLINE_VERSION] Provide handle_contract_violation symbol libstdc++-v3/ChangeLog:     * src/experimental/contract.cc    

[committed][_GLIBCXX_INLINE_VERSION] Add emul TLS symbol exports

2023-10-29 Thread François Dumont
libstdc++: [_GLIBCXX_INLINE_VERSION] Add emul TLS symbols libstdc++-v3/ChangeLog:     * config/abi/pre/gnu-versioned-namespace.ver: Add missing emul TLS     symbols. François diff --git a/libstdc++-v3/config/abi/pre/gnu-versioned-namespace.ver

[PATCH][_Hashtable] Add missing destructor call

2023-11-06 Thread François Dumont
Noticed looking for other occasion to replace __try/__catch with RAII helper.     libstdc++: [_Hashtable] Add missing node destructor call     libstdc++-v3/ChangeLog:     * include/bits/hashtable_policy.h     (_Hashtable_alloc<>::_M_allocate_node): Add missing call to node

Re: [PATCH][_Hashtable] Use RAII to restore Rehash state

2023-10-26 Thread François Dumont
On 26/10/2023 12:43, Jonathan Wakely wrote: On 26/10/23 07:18 +0200, François Dumont wrote:     libstdc++: [_Hashtable] Use RAII type to manage rehash functor state     Replace usage of __try/__catch with a RAII type to restore rehash functor     state when needed. Generally I really like

Re: [committed][_GLIBCXX_INLINE_VERSION] Add emul TLS symbol exports

2023-10-30 Thread François Dumont
On 30/10/2023 14:58, Jonathan Wakely wrote: On Sun, 29 Oct 2023 at 21:25, François Dumont wrote: libstdc++: [_GLIBCXX_INLINE_VERSION] Add emul TLS symbols libstdc++-v3/ChangeLog: * config/abi/pre/gnu-versioned-namespace.ver: Add missing emul TLS symbols. Please put a comment

Re: [committed][_GLIBCXX_INLINE_VERSION] Fix constract violation

2023-10-30 Thread François Dumont
On 30/10/2023 14:45, Jonathan Wakely wrote: On Sun, 29 Oct 2023 at 21:11, François Dumont wrote: This fixes handle_contract_violation under versioned namespace mode. Tested under Linux x64 and confirmed to also fix Darwin build. libstdc++: [_GLIBCXX_INLINE_VERSION] Provide

[PATCH][_Hashtable] Fix merge

2023-10-18 Thread François Dumont
libstdc++: [_Hashtable] Do not reuse untrusted cached hash code On merge reuse merged node cached hash code only if we are on the same type of hash and this hash is stateless. Usage of function pointers or std::function as hash functor will prevent this optimization. libstdc++-v3/ChangeLog  

[PATCH] Fix coroutine tests for libstdc++ gnu-version-namespace mode

2023-09-23 Thread François Dumont
I'm eventually fixing those tests the same way we manage this problem in libstdc++ testsuite.    testsuite: Add optional libstdc++ version namespace in expected diagnostic     When libstdc++ is build with --enable-symvers=gnu-versioned-namespace diagnostics are     showing this namespace,

[PATCH][_GLIBCXX_INLINE_VERSION] Fix

2023-09-19 Thread François Dumont
libstdc++: Remove std::constract_violation from versioned namespace GCC expects this type to be in std namespace directly. libstdc++-v3/ChangeLog:     * include/experimental/contract:     Remove _GLIBCXX_BEGIN_NAMESPACE_VERSION/_GLIBCXX_END_NAMESPACE_VERSION. It does fix 29 g++.dg/contracts

Re: [PATCH] [11/12/13/14 Regression] ABI break in _Hash_node_value_base since GCC 11 [PR 111050]

2023-09-28 Thread François Dumont
On 28/09/2023 18:18, Jonathan Wakely wrote: On Wed, 27 Sept 2023 at 05:44, François Dumont wrote: Still no chance to get feedback from TC ? Maybe I can commit the below then ? I've heard back from Tim now. Please use "Tim Song " as the author. You can change the commit again

Re: [PATCH] Fix coroutine tests for libstdc++ gnu-version-namespace mode

2023-10-02 Thread François Dumont
Hi Gentle reminder for this minor patch. Thanks On 23/09/2023 22:10, François Dumont wrote: I'm eventually fixing those tests the same way we manage this problem in libstdc++ testsuite.    testsuite: Add optional libstdc++ version namespace in expected diagnostic     When libstdc

Re: [PATCH] [11/12/13/14 Regression] ABI break in _Hash_node_value_base since GCC 11 [PR 111050]

2023-10-02 Thread François Dumont
Now backport to gcc-11/12/13 branches. On 29/09/2023 11:53, Jonathan Wakely wrote: On Thu, 28 Sept 2023 at 18:25, François Dumont wrote: On 28/09/2023 18:18, Jonathan Wakely wrote: On Wed, 27 Sept 2023 at 05:44, François Dumont wrote: Still no chance to get feedback from TC ? Maybe I can

Re: [PATCH] [11/12/13/14 Regression] ABI break in _Hash_node_value_base since GCC 11 [PR 111050]

2023-09-26 Thread François Dumont
Still no chance to get feedback from TC ? Maybe I can commit the below then ? AFAICS on gcc mailing list several gcc releases were done recently, too late. On 14/09/2023 06:46, François Dumont wrote: Author: TC Date:   Wed Sep 6 19:31:55 2023 +0200     libstdc++: Force

Re: [PATCH] Fix coroutine tests for libstdc++ gnu-version-namespace mode

2023-10-03 Thread François Dumont
Indeed ! Here is the right one. On 03/10/2023 11:52, Jonathan Wakely wrote: On Mon, 2 Oct 2023 at 18:07, François Dumont wrote: Hi Gentle reminder for this minor patch. It looks like you attached the wrong patch. Thanks On 23/09/2023 22:10, François Dumont wrote: I'm eventually fixing

Re: [PATCH][_GLIBCXX_INLINE_VERSION] Fix

2023-09-20 Thread François Dumont
testing eventually, ok to commit if successful ? François On 20/09/2023 11:32, Jonathan Wakely wrote: On Wed, 20 Sept 2023 at 05:51, François Dumont via Libstdc++ wrote: libstdc++: Remove std::constract_violation from versioned namespace Spelling mistake in contract_violation, and it's not std

Re: [PATCH][_GLIBCXX_INLINE_VERSION] Fix

2023-09-20 Thread François Dumont
Tests were successful, ok to commit ? On 20/09/2023 19:51, François Dumont wrote: libstdc++: [_GLIBCXX_INLINE_VERSION] Add handle_contract_violation symbol alias libstdc++-v3/ChangeLog:     * src/experimental/contract.cc     [_GLIBCXX_INLINE_VERSION](handle_contract_violation): Provide

Re: [PATCH][_GLIBCXX_INLINE_VERSION] Fix

2023-10-08 Thread François Dumont
, François Dumont wrote: Tests were successful, ok to commit ? On 20/09/2023 19:51, François Dumont wrote: libstdc++: [_GLIBCXX_INLINE_VERSION] Add handle_contract_violation symbol alias libstdc++-v3/ChangeLog: * src/experimental/contract.cc [_GLIBCXX_INLINE_VERSION

Re: [PATCH][_Hashtable] Avoid redundant usage of rehash policy

2023-10-12 Thread François Dumont
Now that abi breakage is fixed and hoping that Friday is review day :-) Ping ! On 17/09/2023 22:41, François Dumont wrote: libstdc++: [_Hashtable] Avoid redundant usage of rehash policy Bypass usage of __detail::__distance_fwd and check for need to rehash when assigning an initializer_list

[PATCH][_GLIBCXX_INLINE_VERSION] Add missing symbols

2023-10-05 Thread François Dumont
Here is a patch to fix following test case in gcc: gcc/testsuite/g++.dg/cpp23/ext-floating13.C     libstdc++: [_GLIBCXX_INLINE_VERSION] Add missing float symbols     libstdc++-v3/ChangeLog:     * config/abi/pre/gnu-versioned-namespace.ver: Add missing symbols     for

Re: [PATCH] sso-string@gnu-versioned-namespace [PR83077]

2023-10-07 Thread François Dumont
* src/c++98/compatibility.cc [_GLIBCXX_USE_CXX11_ABI]: Skip all definitions appart from     istream::ignore(streamsize). Tested under Linux x64_86, ok to commit ? François On 17/08/2023 19:22, Jonathan Wakely wrote: On Sun, 13 Aug 2023 at 14:27, François Dumont via Libstdc++ wro

Re: [PATCH] sso-string@gnu-versioned-namespace [PR83077]

2023-10-07 Thread François Dumont
I've been told that previous patch generated with 'git diff -b' was not applying properly so here is the same patch again with a simple 'git diff'. On 07/10/2023 14:25, François Dumont wrote: Hi Here is a rebased version of this patch. There are few test failures when running 'make check-c

Re: [PATCH] sso-string@gnu-versioned-namespace [PR83077]

2023-10-09 Thread François Dumont
On 09/10/2023 16:42, Iain Sandoe wrote: Hi François, On 7 Oct 2023, at 20:32, François Dumont wrote: I've been told that previous patch generated with 'git diff -b' was not applying properly so here is the same patch again with a simple 'git diff'. Thanks, that did fix

Re: [PATCH] Fix coroutine tests for libstdc++ gnu-version-namespace mode

2023-10-10 Thread François Dumont
On 08/10/2023 15:59, Iain Sandoe wrote: Hi François, On 23 Sep 2023, at 21:10, François Dumont wrote: I'm eventually fixing those tests the same way we manage this problem in libstdc++ testsuite. testsuite: Add optional libstdc++ version namespace in expected diagnostic When

Re: [PATCH][_Hashtable] Fix merge

2023-10-19 Thread François Dumont
Committed with the advised changes. Ok, I'll backport next week. Thanks On 19/10/2023 10:05, Jonathan Wakely wrote: On Thursday, 19 October 2023, François Dumont wrote: > libstdc++: [_Hashtable] Do not reuse untrusted cached hash code > > On merge reuse merged node cached hash

Re: [PATCH] sso-string@gnu-versioned-namespace [PR83077]

2023-10-23 Thread François Dumont
Hi Still no one to complete this review ? Thanks On 07/10/2023 21:32, François Dumont wrote: I've been told that previous patch generated with 'git diff -b' was not applying properly so here is the same patch again with a simple 'git diff'. On 07/10/2023 14:25, François Dumont wrote: Hi

[PATCH][_Hahstable] Use RAII to guard node pointer while constructing

2023-11-08 Thread François Dumont
Another proposal to use RAII rather than __try/__catch block. libstdc++: [_Hashtable] Use RAII type to guard node while constructing value libstdc++-v3/ChangeLog:     * include/bits/hashtable_policy.h     (struct _NodePtrGuard<_HashtableAlloc, _NodePtr>): New.    

[PATCH][_GLIBCXX_DEBUG] Fix std::__niter_base behavior

2024-02-14 Thread François Dumont
libstdc++: [_GLIBCXX_DEBUG] Fix std::__niter_base behavior std::__niter_base is used in _GLIBCXX_DEBUG mode to remove _Safe_iterator<> wrapper on random access iterators. But doing so it should also preserve original behavior to remove __normal_iterator wrapper. libstdc++-v3/ChangeLog:     *

Re: [PATCH][_GLIBCXX_DEBUG] Fix std::__niter_base behavior

2024-02-14 Thread François Dumont
On 14/02/2024 20:44, Jonathan Wakely wrote: On Wed, 14 Feb 2024 at 18:39, François Dumont wrote: libstdc++: [_GLIBCXX_DEBUG] Fix std::__niter_base behavior std::__niter_base is used in _GLIBCXX_DEBUG mode to remove _Safe_iterator<> wrapper on random access ite

Re: [PATCH][_GLIBCXX_DEBUG] Fix std::__niter_base behavior

2024-02-15 Thread François Dumont
On 15/02/2024 14:17, Jonathan Wakely wrote: On Wed, 14 Feb 2024 at 21:48, François Dumont wrote: On 14/02/2024 20:44, Jonathan Wakely wrote: On Wed, 14 Feb 2024 at 18:39, François Dumont wrote: libstdc++: [_GLIBCXX_DEBUG] Fix std::__niter_base behavior

Re: [PATCH][_GLIBCXX_DEBUG] Fix std::__niter_base behavior

2024-02-19 Thread François Dumont
. François On 19/02/2024 09:21, Jonathan Wakely wrote: On Mon, 19 Feb 2024, 08:12 Jonathan Wakely, wrote: On Mon, 19 Feb 2024, 07:08 Stephan Bergmann, wrote: On 2/17/24 15:14, François Dumont wrote: > Thanks for the link, tested and committed. I ass

Re: [PATCH][_GLIBCXX_DEBUG] Fix std::__niter_base behavior

2024-02-20 Thread François Dumont
wrote: On Mon, 19 Feb 2024, 08:12 Jonathan Wakely, wrote: On Mon, 19 Feb 2024, 07:08 Stephan Bergmann, wrote: On 2/17/24 15:14, François Dumont wrote: > Thanks for the link, tested and committed. I assume this is the cause for the below failure now,

[PATCH][_GLIBCXX_INLINE_VERSION] Adapt dg-error messages

2024-02-21 Thread François Dumont
For those using my patch to build in gnu-versioned-namespace mode it would be preferable not to have any failures when running testsuite.     libstdc++: [_GLIBCXX_INLINE_VERSION] Adapt dg-error message     libstdc++-v3/ChangeLog:     *

Re: [PATCH][_GLIBCXX_DEBUG] Fix std::__niter_base behavior

2024-02-17 Thread François Dumont
Thanks for the link, tested and committed. On 15/02/2024 19:40, Jonathan Wakely wrote: On Thu, 15 Feb 2024 at 18:38, François Dumont wrote: On 15/02/2024 14:17, Jonathan Wakely wrote: On Wed, 14 Feb 2024 at 21:48, François Dumont wrote: On 14/02/2024 20:44

Re: [PATCH 5/5][_Hashtable] Prefer to insert after last node

2023-12-19 Thread François Dumont
Here is a new version of this patch. The previous one had some flaws that were unnoticed by testsuite tests, only the performance tests were spotting it. So I'm adding checks on the consistency of the unordered containers in this patch. I also forget to signal that after this patch gnu

Re: [PATCH] Reimplement __gnu_cxx::__ops operators

2023-12-09 Thread François Dumont
On 07/12/2023 14:41, Jonathan Wakely wrote: On Wed, 6 Dec 2023 at 20:55, François Dumont wrote: I think I still got no feedback about this cleanup proposal. Can you remind me why we have all those different functions in predefined_ops.h in the first place? I think it was to avoid having two

Re: [PATCH 5/5][_Hashtable] Prefer to insert after last node

2024-01-02 Thread François Dumont
as I still hope that the patch to move to cxx11 abi in gnu versioned namespace will be integrated so with its implied version bump. On Wed, 20 Dec 2023 at 06:10, François Dumont wrote: Here is a new version of this patch. The previous one had some flaws that were unnoticed by testsuite

Re: [PATCH 2/5][_Hashtable] Fix implementation inconsistencies

2024-01-03 Thread François Dumont
On 21/12/2023 23:07, Jonathan Wakely wrote: On Thu, 23 Nov 2023 at 21:59, François Dumont wrote: libstdc++: [_Hashtable] Fix some implementation inconsistencies Get rid of the different usages of the mutable keyword. For _Prime_rehash_policy methods are exported from

Re: [Bug libstdc++/112477] [13/14 Regression] Assignment of value-initialized iterators differs from value-initialization

2024-01-10 Thread François Dumont
wrote: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112477 François Dumont changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |fdumont at gcc dot

Re: [PATCH] libstdc++: hashtable: No need to update before begin node in _M_remove_bucket_begin

2024-01-17 Thread François Dumont
Hi Looks like a great finding to me, this is indeed a useless check, thanks! Have you any figures on the performance enhancement ? It might help to get proper approval as gcc is currently in dev stage 4 that is to say only bug fixes normally. François On 17/01/2024 09:11, Huanghui Nie

Re: [PATCH] Add __cow_string C string constructor

2024-01-07 Thread François Dumont
On 07/01/2024 21:53, Jonathan Wakely wrote: On Sun, 7 Jan 2024 at 18:50, François Dumont wrote: On 07/01/2024 17:34, Jonathan Wakely wrote: On Sun, 7 Jan 2024 at 12:57, François Dumont wrote: Hi While working on the patch to use the cxx11 abi in gnu version namespace mode I got a small

[PATCH] Add __cow_string C string constructor

2024-01-07 Thread François Dumont
Hi While working on the patch to use the cxx11 abi in gnu version namespace mode I got a small problem with this missing constructor. I'm not sure that the main patch will be integrated in gcc 14 so I think it is better if I propose this patch independently.     libstdc++: Add __cow_string

Re: [PATCH] Add __cow_string C string constructor

2024-01-07 Thread François Dumont
On 07/01/2024 17:34, Jonathan Wakely wrote: On Sun, 7 Jan 2024 at 12:57, François Dumont wrote: Hi While working on the patch to use the cxx11 abi in gnu version namespace mode I got a small problem with this missing constructor. I'm not sure that the main patch will be integrated in gcc 14

Re: [PATCH 3/5][_Hashtable] Avoid redundant usage of rehash policy

2024-01-03 Thread François Dumont
. Ok to commit ? François On 21/12/2023 23:17, Jonathan Wakely wrote: On Thu, 23 Nov 2023 at 21:59, François Dumont wrote: libstdc++: [_Hashtable] Avoid redundant usage of rehash policy Bypass call to __detail::__distance_fwd and the check if rehash is needed when assignin

[PATCH 0/5][_Hashtable] Optimize insertions

2023-11-23 Thread François Dumont
This is a series of patch to enhance _Hashtable insertion operations that I'd like to see in gcc 14. I've already submitted something similar a couple of months ago but it is quite a revisited version. 1/5 Is adding benches to show the impact of the different optimizations 2/5 Implementation

[PATCH 1/5][_Hashtable] Add benches

2023-11-23 Thread François Dumont
libstdc++: [_Hashtable] Enhance/Add performance benches diff --git a/libstdc++-v3/testsuite/performance/23_containers/insert/54075.cc b/libstdc++-v3/testsuite/performance/23_containers/insert/54075.cc index f8fcce31609..f2d975ecdaf 100644 ---

[PATCH 2/5][_Hashtable] Fix implementation inconsistencies

2023-11-23 Thread François Dumont
    libstdc++: [_Hashtable] Fix some implementation inconsistencies     Get rid of the different usages of the mutable keyword. For     _Prime_rehash_policy methods are exported from the library, we need to     keep their const qualifier, so adapt implementation to update previously    

[PATCH 5/5][_Hashtable] Prefer to insert after last node

2023-11-23 Thread François Dumont
    libstdc++: [_Hashtable] Prefer to insert after last node     When inserting an element into an empty bucket we currently insert the new node     after the before-begin node so in first position. The drawback of doing this is     that we are forced to update the bucket that was containing

[PATCH 4/5][_Hashtable] Generalize the small size optimization

2023-11-23 Thread François Dumont
    libstdc++: [_Hashtable] Extend the small size optimization     A number of methods were still not using the small size optimization which     is to prefer an O(N) research to a hash computation as long as N is small.     libstdc++-v3/ChangeLog:     * include/bits/hashtable.h:

<    2   3   4   5   6   7   8   9   10   11   >