Skip to content

Migrate atomic indirector and string manipulation - #396

Merged
4og merged 6 commits into
mainfrom
migrate-atomic-indirector-and-string-manipulation
Jul 21, 2026
Merged

Migrate atomic indirector and string manipulation#396
4og merged 6 commits into
mainfrom
migrate-atomic-indirector-and-string-manipulation

Conversation

@LittleHuba

@LittleHuba LittleHuba commented Jul 20, 2026

Copy link
Copy Markdown
Contributor

Superseeds #384

Related to #371

@github-project-automation github-project-automation Bot moved this to In Progress in BAS - Baselibs FT Jul 20, 2026
@LittleHuba
LittleHuba force-pushed the migrate-atomic-indirector-and-string-manipulation branch from 2d7437c to 617a926 Compare July 20, 2026 17:08
@github-actions

Copy link
Copy Markdown

The created documentation from the pull request is available at: docu-html

LittleHuba and others added 3 commits July 21, 2026 11:25
Relocates atomic_indirector.{h,cpp}, atomic_indirector_test.cpp,
atomic_mock.{h,cpp} and i_atomic.h from score/memory/shared to
score/concurrency, and moves the corresponding BUILD targets
(atomic_interface, atomic_indirector, atomic_indirector_mock_binding,
atomic_indirector_test) verbatim into score/concurrency/BUILD.

This is a pure move: no content, namespace, include-guard or include-path
changes are made here so the diff is easy to review. As a result, this
commit does not build on its own (headers still #include the old
score/memory/shared paths); the follow-up commit adapts the facility to
its new location.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Follow-up to the pure move: updates namespaces (score::memory::shared ->
score::concurrency), include guards (SCORE_LIB_MEMORY_SHARED_* ->
SCORE_LIB_CONCURRENCY_*) and include-paths of atomic_indirector.{h,cpp},
atomic_indirector_test.cpp, atomic_mock.{h,cpp} and i_atomic.h to match
their new package, and adjusts the score/concurrency BUILD visibility
accordingly.

score/memory/shared/memory_region_map.{h,cpp} and its test are adapted to
depend on and use the facility directly from its new location
(@score_baselibs//score/concurrency:atomic_indirector /
:atomic_indirector_mock_binding, score::concurrency namespace) instead of
going through score/memory/shared, since code within score/memory/shared
itself does not need the migration shim.

Note: this transiently breaks other consumers still depending on the old
//score/memory/shared:atomic_indirector target/include path/namespace
(score/language/safecpp/safe_atomics, score/mw/log/detail/wait_free_stack,
score/utils/meyer_singleton); the following commit reintroduces a
migration shim at the old location to restore compatibility for them.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…cation

Restores //score/memory/shared:atomic_interface, :atomic_indirector and
:atomic_indirector_mock_binding as thin shim cc_library targets whose
headers (i_atomic.h, atomic_indirector.h, atomic_mock.h) merely
#include the corresponding score/concurrency header and pull the
relocated IAtomic, AtomicIndirectorReal, AtomicIndirectorMock and
AtomicMock symbols back into the score::memory::shared namespace via
using-declarations.

This keeps the old bazel target, include path and namespace working
unchanged for every consumer that has not been migrated to
score/concurrency yet (score/language/safecpp/safe_atomics,
score/mw/log/detail/wait_free_stack, score/utils/meyer_singleton, ...),
verified by running their unit tests unmodified together with the new
score/concurrency:atomic_indirector_test and
score/memory/shared:memory_region_map_test.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@LittleHuba
LittleHuba force-pushed the migrate-atomic-indirector-and-string-manipulation branch from 617a926 to 440cdc4 Compare July 21, 2026 09:26
LittleHuba and others added 3 commits July 21, 2026 12:22
Follow-up to the pure move: updates namespaces (score::memory ->
score::string_manipulation, StringLiteral stays in the top-level score
namespace) and include guards (SCORE_LIB_MEMORY_* ->
SCORE_LIB_STRING_MANIPULATION_*) of string_literal.h,
string_comparison_adaptor.{h,cpp,test.cpp} and
split_string_view.{h,cpp,test.cpp}, and fixes their #include paths to
reference score/string_manipulation instead of score/memory.

No code in score/memory/shared depends on this facility, so there is
nothing to rewire there. This transiently breaks the remaining consumers
still depending on the old //score/memory:string_comparison_adaptor /
:split_string_view targets, include paths and score::memory namespace
(score/json/internal/model, score/mw/log/configuration); the following
commit reintroduces a migration shim at the old location to restore
compatibility for them.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…ry location

Restores //score/memory:string_literal, :string_comparison_adaptor and
:split_string_view as thin shim cc_library targets whose headers
(string_literal.h, string_comparison_adaptor.h, split_string_view.h)
merely #include the corresponding score/string_manipulation header.
string_comparison_adaptor.h and split_string_view.h additionally pull the
relocated StringComparisonAdaptor and LazySplitStringView symbols back
into the score::memory namespace via using-declarations (string_literal.h
needs no such using-declaration since StringLiteral already lives
directly in the score namespace).

This keeps the old bazel target, include path and namespace working
unchanged for every consumer that has not been migrated to
score/string_manipulation yet (score/json/internal/model,
score/mw/log/configuration), verified by running their unit tests
unmodified together with the score/string_manipulation unit tests.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@LittleHuba
LittleHuba force-pushed the migrate-atomic-indirector-and-string-manipulation branch from 440cdc4 to 7469a0d Compare July 21, 2026 10:24
@LittleHuba
LittleHuba marked this pull request as ready for review July 21, 2026 12:21
@github-project-automation github-project-automation Bot moved this from In Progress to On Hold in BAS - Baselibs FT Jul 21, 2026
@4og
4og added this pull request to the merge queue Jul 21, 2026
Merged via the queue into main with commit afde762 Jul 21, 2026
20 checks passed
@4og
4og deleted the migrate-atomic-indirector-and-string-manipulation branch July 21, 2026 15:19
@github-project-automation github-project-automation Bot moved this from On Hold to Done in BAS - Baselibs FT Jul 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants