Commit Graph
233 Commits
Author SHA1 Message Date
joaquintides f734e399e3 Feature/concurrent node containers (#271)
* added concurrent node containers

* removed spurious typename

* added missing includes

* avoided unused param warning

* worked around Clang bug

* s/{}/() to work around GCC4.8 problems with aggregate initialization

* used /bigobj for cfoa/visit_tests.cpp

* suppressed localized maybe-uninitialized warnings

* fixed comments

* added /bigobj to cfoa/insert_tests.cpp

* instrumented double exact comparison to spot a spurious error

* fixed pedantic error

* refactored byte_span machinery

* compromised on sub-epsilon equality for doubles that should be identical

* documented boost::concurrent_node_(map|set)

* added concurrent_node_set

* added missing AlternativeType

* tested empty node insertion

* tested node_handle allocator management

* added nonassignable_allocator and node_handle_allocator_swap_tests

* fixed warning disabling

* silenced spurious GCC warning

* broadened scope of previous pragma

* broadened even more

* worked around spurious constexpr-related msvc-14.0 bug
https://godbolt.org/z/v78545Ebf

* added workaround back

* replaced previous workaround with built-in one

* added workaround back on top of built-in solution (which doesn't work 100% of the time)
2024-08-25 18:34:58 +02:00
Braden Ganetsky 111a503195 Generate inline assembly header file for automatic GDB pretty-printer script inclusion 2024-08-22 18:56:24 -05:00
Braden Ganetsky a14b159665 Add missing calls to as_const(), otherwise we may call a 'T(T&)' constructor instead of the intended 'T(T const&)' 2024-08-07 16:15:36 -05:00
Braden Ganetsky 793fad5620 Run clang-format on the 'types' files 2024-08-07 16:09:15 -05:00
Braden Ganetsky c117f4448f static_assert on the constructibility of the containers' types 2024-08-07 16:09:15 -05:00
Braden Ganetsky 7ddd562532 Implement natvis for fancy pointers (#262)
* Add file for manual natvis testing

* Equip natvis file to allow fancy pointers

* Update docs

* [skip ci] add links to natvis docs
2024-07-15 19:42:28 +02:00
joaquintidesandPeter Dimov e3818afd45 test interprocess concurrency (#258)
* added cfoa_interprocess_concurrency_tests

* avoided C++14 digit separators

* stopped using exit codes to pass numerical info to parent

* Reorder includes to make msvc-14.0 happy

* made cumulative_stats interprocess concurrency safe

* disabled interprocess_concurrency_tests for Clang 3.5-8
(Boost.Process compile error)

* made test names shorter for the benefit of MINGW32

---------

Co-authored-by: Peter Dimov <pdimov@gmail.com>
2024-06-22 09:13:30 +02:00
joaquintides 5827bf2574 gotten rid of redundant base1, base2 and base3 2024-06-03 18:53:24 +02:00
Braden Ganetsky 0a66c687fd Write natvis for foa and cfoa containers 2024-06-01 09:26:37 -05:00
joaquintides 4c0aea983e made reset_stats noexcept 2024-05-06 13:26:30 +02:00
joaquintides 22d8cca03b added stats to bulk visitation 2024-05-05 17:56:03 +02:00
joaquintides c1317cb5be replaced get_cumulative_stats() with direct access to cstats 2024-05-03 18:11:13 +02:00
joaquintides 223f64752d implemented proper stats handling on concurrent<->unordered move construction 2024-05-03 18:04:21 +02:00
joaquintides 8452b30608 implemented proper stats handling on move assignment 2024-05-02 20:41:27 +02:00
joaquintides e588e04a1b swapped stats on move construction/assignment 2024-05-01 18:11:01 +02:00
joaquintides d01ae76074 grouped cumulative_stats summarization in one operation 2024-05-01 16:34:53 +02:00
joaquintides 5feb7459ee added stat counts 2024-04-30 19:18:15 +02:00
joaquintides 83abd9cc4e avoided -Wextra-semi-stmt warning 2024-04-30 17:49:52 +02:00
joaquintides 76c460a703 grouped foa::table_core cumulative stats in one member 2024-04-29 20:30:16 +02:00
joaquintides 443113840d added stats to foa::concurrent_table 2024-04-29 12:06:28 +02:00
joaquintides e712c37e9f added stats to foa::table 2024-04-28 18:44:23 +02:00
joaquintides 15cfef6967 Fixed support for allocators with explicit copy constructors (#234)
* added tests for explicit allocators

* made explicit_alloc_ctor_tests work
by adhering to the principle that classes templated with Allocator should accept exactly Allocator objects

* removed TMP machinery older compilers choke about

* initialized variables

* updated release notes

* fixed PR number
2024-02-17 18:58:48 +01:00
Braden Ganetsky 1d25c1c053 Update copyright notices 2024-02-11 11:22:28 -06:00
Braden Ganetsky 4e6d4ade6c Optimize emplace(k,v) for foa and cfoa containers 2024-02-11 11:22:27 -06:00
Braden Ganetsky 4fbe450a65 Generalize alloc_cted_insert_type into allocator_constructed and remove the factory function alloc_make_insert_type() 2024-02-11 11:22:27 -06:00
Braden Ganetsky 67c5cdb3a6 Optimize emplace() for exactly a value_type or init_type argument (#227)
* Add structs to count special member functions

* Add failing emplace tests, that will pass after making the optimization

* Optimize emplace() to not allocate when we already have a value_type or init_type

* Fix newly failing cfoa tests
2023-12-31 18:56:14 +01:00
joaquintides ea4fc5e66d fine-tuned element prefetching in unprotected_bulk_visit 2023-10-18 18:20:22 +02:00
joaquintides 8ee48fe909 Feature/bulk visit (#217) 2023-10-11 12:50:28 +02:00
Christian Mazakas 6728ffcf6d Cleanup polyfilled type traits helpers to derive from integral constant 2023-09-29 07:42:58 -07:00
Christian Mazakas 47fa9cd17e Pull triviality type traits into internal type_traits header 2023-09-28 21:27:46 -07:00
Christian Mazakas f5bd5bc3d0 Cleanup default-constructiblity check for gcc-4 2023-09-28 12:52:13 -07:00
Christian Mazakas 9bc7876583 Update foa to be gcc-4.8 compliant 2023-09-28 08:31:14 -07:00
Christian Mazakas bc764d34cf Remove extraneous workarounds for gcc-4 in foa core header 2023-09-27 13:03:15 -07:00
Christian Mazakas 777f2084a3 Remove dependency on TypeTraits 2023-09-27 11:44:45 -07:00
Christian Mazakas d881d4d5e2 Remove Boost.StaticAssert 2023-09-27 11:44:44 -07:00
joaquintides 6b65c8f230 fixed assignment bug with POCXA, fancy, unequal allocators (#214) 2023-09-26 20:08:13 +02:00
Christian Mazakas 85c7900339 Add missing element_type includes 2023-09-18 13:25:21 -07:00
joaquintides 82f4d9899c stylistic/editorial 2023-09-16 12:17:07 +02:00
Christian Mazakas a0c7112652 Update arrays transfer in table_core moves constructors to be exception-safe 2023-09-15 09:50:33 -07:00
Christian Mazakas b9fe4ed789 Clean up how group_accesses are setup for concurrent_table_arrays 2023-09-15 09:50:33 -07:00
Christian Mazakas c707bcb6d8 Refactor table_iterator to avoid extraneous amounts of boost::to_address 2023-09-15 09:50:33 -07:00
Christian Mazakas 771943e291 Add to_pointer helper for converting raw pointers to fancy
This helps us avoid an unconditional nullptr check when the user's pointer type is fancy
2023-09-15 09:50:33 -07:00
Christian Mazakas 675e30bd95 Clean up dummy_groups and groups allocation 2023-09-15 09:50:33 -07:00
Christian Mazakas 2cab340749 Replace direct accesses of fancy pointers with getters 2023-09-15 09:50:33 -07:00
Christian Mazakas c3786357a6 Update noexcept specification to accomodate for throwing arrays::new_ 2023-09-15 09:50:33 -07:00
Christian Mazakas c16a3f2a4a Update table_iterators to store fancy pointers 2023-08-30 09:57:22 -07:00
Christian Mazakas 95a37b0d3d Update foa-based containers to store only fancy pointers 2023-08-30 09:57:20 -07:00
Christian Mazakas 215d8e82cb Merge pull request #207 from boostorg/feature/serialization_support
Feature/serialization support
2023-08-29 10:50:21 -07:00
Christian Mazakas 067884a4e2 Merge pull request #210 from boostorg/fix/gh-205
Fix for issue #205
2023-08-28 10:38:13 -07:00
joaquintides d007a5a7bd renamed serialize_node_pointer as serialize_tracked_address (editorial) 2023-08-25 11:34:39 +02:00