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

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] 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 f

[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 _Float{1

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

2023-10-07 Thread François Dumont
Remove.     * 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

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 w

Re: [PATCH][_GLIBCXX_INLINE_VERSION] Fix

2023-10-08 Thread François Dumont
, at 05:41, 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_INLI

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, th

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

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 li

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][_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  

Re: Limit Debug mode impact: overload __niter_base

2018-07-02 Thread François Dumont
r<>, _Sequence>&)): New. Ok to commit ? On 02/07/2018 13:57, Jonathan Wakely wrote: On 01/07/18 21:20 +0200, François Dumont wrote:     Here is a new proposal between yours and mine.     It is still adding a function to wrap what __niter_base unwrap, I called it __nwrap_iter for th

PR libstdc++/86272 Fix undefined __glibcxx_check_insert_range2

2018-07-03 Thread François Dumont
Hi     I plan to commit attached patch to fix the __gnu_debug::string undefined macro.     Is it ok the way I used some tests to now validate __gnu_debug::string on check-debug ? François diff --git a/libstdc++-v3/include/debug/string b/libstdc++-v3/include/debug/string index 4aadf4c..963b

Enhance __gnu_debug::string debug assertion

2018-07-04 Thread François Dumont
    This patch improves the assertion message generated in 2 __gnu_debug::string constructors giving the assertion context thanks to the __FUNCTION__ macro. Was: /home/fdt/dev/gcc/build/x86_64-pc-linux-gnu/libstdc++-v3/include/debug/string:56: const _CharT* __gnu_debug::__check_string(const _

Re: [C++ PATCH] Speed up inplace_merge algorithm & fix inefficient logic(PR libstdc++/83938)

2018-07-24 Thread François Dumont
Hi     Any chance to review this patch ? François On 06/06/2018 18:39, François Dumont wrote: Hi     I review and rework this proposal. I noticed that the same idea to limit buffer size within inplace_merge also apply to stable_sort.     I also change the decision when buffer is too

Re: Improve std::rotate usages

2018-07-24 Thread François Dumont
Ping. On 08/06/2018 07:54, François Dumont wrote: Gentle reminder. On 27/05/2018 19:25, François Dumont wrote: Still no chance to review it ? I'd like this one to go in before submitting other algo related patches.     * include/bits/stl_algo.h     (__rotate(_Ite, _Ite,

Share ebo helper throughout lib

2018-07-25 Thread François Dumont
Hi     It has already been noticed that there are 2 ebo helpers in the lib. Here is a patch to use 1.     * include/bits/ebo_helper.h: New.     * include/Makefile.am: Add latter.     * include/Makefile.in: Regenerate.     * include/bits/hashtable_policy.h: Adapt.     * include/bits/shared_ptr

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

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, F

[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.     (_Inser

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

[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     [_GLIBCXX_I

[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 b/libstdc++-v3/config/abi/pre/gnu-versioned-namespa

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] 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 des

[PATCH] PR libstdc++/92124 on hashtable

2019-11-07 Thread François Dumont
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 node values are moved as soon as _M_assign is called with a rvalue reference to the source container. Additionnaly this patch r

[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

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 of

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 and on the

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-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
ot;. And 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

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. If

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 reimpl

[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 executi

[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 b

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 bits/stl_algobase.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

[PATCH] Fix _GLIBCXX_DEBUG tests static_assert lines

2019-12-09 Thread François Dumont
When applying: 2019-11-26  François Dumont      * include/debug/array (array<>::fill): Add C++20 constexpr.     (array<>::swap): Likewise. I forgot to adapt some line numbers. Committed as trivial. François diff --git a/libstdc++-v3/testsuite/23_containers/array/tup

Re: [PATCH] Enhance _GLIBCXX_DEBUG constexpr support

2019-12-09 Thread François Dumont
After completing execution of all tests I had to fix implementation of __check_singular to get only 1 return statement. On 12/2/19 8:31 PM, François Dumont wrote: Hi     Here is a patch to enhance constexpr support in _GLIBCXX_DEBUG. I work on std::lower_bound/upper_bound to find out if

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

2019-12-09 Thread François Dumont
submit afterward. Note that this patch is based after this one: https://gcc.gnu.org/ml/libstdc++/2019-10/msg00072.html François On 9/25/19 6:44 AM, François Dumont wrote: 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

[PATCH] Extend std::lexicographical_compare optimizations

2019-12-09 Thread François Dumont
Following: https://gcc.gnu.org/ml/libstdc++/2019-12/msg00028.html I've done the same kind of work on std::lexicographical_compare algo. I had to make the internal lexicographical_compare functions return int rather than bool cause with bool you can't use a chunck based approach unless you dou

[PATCH] Extend std::copy_n optimization

2019-12-09 Thread François Dumont
Last patch of my series following this one: https://gcc.gnu.org/ml/libstdc++/2019-12/msg00028.html This time I work on std::copy_n/std::copy overloads for istreambuf_iterator so that it works also for deque iterators and transparently in _GLIBCXX_DEBUG mode.     * include/bits/stl_algo.h (_

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

2019-12-09 Thread François Dumont
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/false_type without

[PATCH] Fix gnu-versioned-namespace build

2019-12-10 Thread François Dumont
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 if it was intentional.     * src/c++11/random.cc: Add _GLIBCXX_BEGIN_NAMESPACE_VERSION and     _GLIBCXX

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 if it was

[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

[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 h

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][Hashtable 0/6] Code review

2019-12-19 Thread François Dumont
15 PM, 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

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 forwa

[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.

Re: _LIBCXX_DEBUG value initialized singular iterators assert failures in std algorithms [PR104316]

2024-03-14 Thread François Dumont
Hi This is what I started to do. For now I haven't touch to __cpp_lib_null_iterators definition as _Safe_local_iterator still need some work. libstdc++: Implement N3644 on _Safe_iterator<> [PR114316] Consider range of value-initialized iterators as valid and empty. libstdc++-v3/ChangeLog:

Re: _LIBCXX_DEBUG value initialized singular iterators assert failures in std algorithms [PR104316]

2024-03-16 Thread François Dumont
With the patch, sorry. On 14/03/2024 22:49, François Dumont wrote: Hi This is what I started to do. For now I haven't touch to __cpp_lib_null_iterators definition as _Safe_local_iterator still need some work. libstdc++: Implement N3644 on _Safe_iterator<> [PR114316] Consid

Re: _LIBCXX_DEBUG value initialized singular iterators assert failures in std algorithms [PR104316]

2024-03-17 Thread François Dumont
OK for trunk, thanks! I think this is OK to backport to 13 too. Maybe after this we can define the __cpp_lib_null_itetators macro for debug mode? After this fix of local_iterator I think we can indeed. In fact the added 11316.cc was already passing for unordered_set<>::local_iterator bu

Re: _LIBCXX_DEBUG value initialized singular iterators assert failures in std algorithms [PR104316]

2024-03-17 Thread François Dumont
/n3644.cc: New test case. Ok to commit ? François On 17/03/2024 17:52, François Dumont wrote: OK for trunk, thanks! I think this is OK to backport to 13 too. Maybe after this we can define the __cpp_lib_null_itetators macro for debug mode? After this fix of local_iterator I think

Re: _LIBCXX_DEBUG value initialized singular iterators assert failures in std algorithms [PR104316]

2024-03-18 Thread François Dumont
_containers/vector/debug/n3644.cc: New test case. Ok to commit ? OK, thanks. François On 17/03/2024 17:52, François Dumont wrote: OK for trunk, thanks! I think this is OK to backport to 13 too. Maybe after this we can define the __cpp_lib_null_itetators macro for debug mode? After

Re: _LIBCXX_DEBUG value initialized singular iterators assert failures in std algorithms [PR104316]

2024-03-19 Thread François Dumont
wrote: On Mon, 18 Mar 2024 at 21:38, François Dumont wrote: Both committed now. Just to confirm, those 2 last patches should be backported to gcc-13 branch, right ? Yes please. I might have a try to update version.h but if you want to do it before don't hesitate. You'll need to hav

Re: _LIBCXX_DEBUG value initialized singular iterators assert failures in std algorithms [PR104316]

2024-03-20 Thread François Dumont
:     * include/std/iterator (__cpp_lib_null_iterators): Define regardless of     _GLIBCXX_DEBUG.     * include/std/version (__cpp_lib_null_iterators): Likewise. François On 20/03/2024 10:02, Jonathan Wakely wrote: On Wed, 20 Mar 2024 at 05:59, François Dumont wrote: Thanks to you

[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 iterator

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-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][_GLIBCXX_DEBUG] Fix std::__niter_base behavior

2024-02-19 Thread François Dumont
rt instead. 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.

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:     * testsuite/20_util/function_objects/bind_back/11132

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 wrote

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

2024-01-21 Thread François Dumont
1月18日(木) 4:04 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 fixe

Re: _GLIBCXX_DEBUG_BACKTRACE broken

2024-01-29 Thread François Dumont
/01/2024 11:10, Jonathan Wakely wrote: On Mon, 29 Jan 2024 at 06:13, François Dumont wrote: Hi I'm trying to use _GLIBCXX_DEBUG_BACKTRACE to debug some crash in debug mode. So I buit library with --enable-libstdcxx-backtrace=yes But when I build any test I have: /usr/bin/ld: /tmp/cctvP

Fwd: [Bug libstdc++/90276] PSTL tests fail in Debug Mode

2024-01-31 Thread François Dumont
++/90276] PSTL tests fail in Debug Mode Date: Wed, 31 Jan 2024 19:09:02 +0100 From: François Dumont To: redi at gcc dot gnu.org , fdum...@gcc.gnu.org Here is the reason of the 20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc FAIL. Maybe it fixes some other tests too, I need

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 versio

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

2024-01-02 Thread François Dumont
t now 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 test

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 the

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 assigning a

[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 c

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 g

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

Re: [PATCH] Reimplement __gnu_cxx::__ops operators

2023-12-06 Thread François Dumont
I think I still got no feedback about this cleanup proposal. Here is a new version. François On 15/06/2023 07:07, François Dumont wrote: I think we all agree that __gnu_cxx::__ops needed to be reimplemented, here it is. Note that I kept the usage of std::ref in , and .     libstdc

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][_Hashtable] Add missing destructor call

2023-11-07 Thread François Dumont
On 07/11/2023 00:28, Jonathan Wakely wrote: On Mon, 6 Nov 2023 at 21:39, François Dumont wrote: Noticed looking for other occasion to replace __try/__catch with RAII helper. libstdc++: [_Hashtable] Add missing node destructor call libstdc++-v3/ChangeLog

[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.     (_ReuseAllocNode::

[PATCH] Fix some _Hashtable implementation inconsistencies

2023-11-14 Thread François Dumont
Following several remarks on a previous patch of _Hashtable I considered clarifying its implementation.     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 libr

[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 i

[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 --- a/libstdc++-v3/testsuite/performance/23_containers/in

[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     mutable

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

2023-11-23 Thread François Dumont
    libstdc++: [_Hashtable] Avoid redundant usage of rehash policy     Bypass call to __detail::__distance_fwd and the check if rehash is needed when     assigning an initializer_list to an unordered_multimap or unordered_multiset.     libstdc++-v3/ChangeLog:     * include/bits/hasht

[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 th

[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: Mov

[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 in

Re: [PATCH][_GLIBCXX_INLINE_VERSION] Fix

2023-09-20 Thread François Dumont
x27;m 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'

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

[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, c

  1   2   3   4   5   6   7   8   9   10   >