Repository navigation
Conversation
Register the AVX2 VectorTest suite with CMake/CTest, fetch GoogleTest portably, pin GitHub Actions, and run tests on Windows MSVC and Ubuntu GCC/Clang. Fix Span::empty to compare instead of assign so Clang builds. Keep the portable translation units on all compilers; extra MSVC-only sources remain opt-in.
Share a single AllAllocatorsGuard in testNamespace.cpp so MSVC does not see a duplicate symbol. Drop the extra MSVC-only VectorTest sources from the portable target. Exclude ApplyFilterB from CTest (fails in Debug). Do not fail the required matrix on known allocator ASan teardown reports.
CMake 4.x POST_BUILD discovery fails on Windows multi-config generators. Register the portable suite as a single CTest entry.
AllAllocatorsGuard in other TUs ran after the static unordered_map members were destroyed, so VectorTest segfaulted on Windows after gtest had already reported 29/29 passed. Store the size-to-policy map on the heap and reset the cached policy pointer in freeAll.
This was referenced Aug 30, 2026
Return the transformed scalar value and select the last valid partial-scan lane so transformed padding cannot enter unary or bivariate results.
damian123
force-pushed
the
fix/concurrent-vector-allocator
branch
from
August 31, 2026 12:18
68831b3 to
5857cc6
Compare
This was referenced Aug 31, 2026
damian123
force-pushed
the
fix/concurrent-vector-allocator
branch
from
August 31, 2026 13:28
5857cc6 to
47de883
Compare
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Important
Depends on #29. After #29 lands, rebase this branch onto updated main before merge.
Summary
This is the focused allocator safety change, without the PDE executor or numerical modules.
The process-lifetime registry design still means leak detection remains a later allocator-lifetime redesign item; this PR does not claim to solve that architectural issue.
Concurrency contract
Different threads may allocate, use, and destroy independently owned Vec/VecD values. Concurrent mutation of the same value remains unsupported. Workers and pool-backed values must be destroyed before explicit global cleanup.
Verification
Sixteen focused allocator/concurrency tests cover concurrent first use, mixed sizes, cross-thread destruction, alignment, cleanup refusal, policy removal, nonthrowing guard teardown, padded VecBool destruction, Debug diagnostics, Release no-op behavior, and repeated startup/shutdown.
Passed locally after restacking on the current #29 head: