Repository navigation
v0.2.11
Module Name: baselibs
Release Tag: v0.2.11
Origin Release Tag: v0.2.10
Release Commit Hash: d6f4b39
Release Date: 2026-08-18
Overview
The baselibs module provides a selection of basic C++ utility libraries for common use in the S-CORE project.
Disclaimer
This release is not intended for production use, as it does not include a safety argumentation or a completed safety assessment.
The work products compiled in the safety package are created with care according to the S-CORE process. However, as a non-profit, open-source organization, the project cannot assume any liability for its content.
For details on the features, see https://eclipse-score.github.io/score/main/features/baselibs/index.html
Notable Changes
Completed migration: score/memory/shared moved to the https://github.com/eclipse-score/communication
Following the preparatory work announced in v0.2.10, the shared-memory implementation has now been moved out of this repository. score/memory/shared is fully migrated to score_communication; only thin migration shims remain at the previous //score/memory/shared:* labels for compatibility. Update your Bazel dependencies to score_communication and adjust include paths/namespaces accordingly. #424 #421
Breaking changes & deprecations
datetime_converteris now deprecated and will be removed in a future release. The implementation has had multiple correctness issues (most recently incorrect handling of leap seconds) and limited adoption; if you need this functionality, prefer relying directly on POSIX/libc time APIs. #483analysis/tracing:ServiceInstanceElement::element_idswitched fromscore::cpp::varianttostd::variant, continuing the interface migration started in v0.2.10. Update call sites and any code that pattern-matches on the old variant type. #415containers_rustABI types (InlineVec,InlineQueue,InlineOption,InlineResult) dropped theirT: Copybound to support nested/movable payloads (e.g.InlineVec<InlineString<..>>). Since Rust forbidsCopy + Drop, these types are no longerCopy; they implementClonewhen their payload does. Memory layout (#[repr(C)]/#[repr(transparent)]) is unchanged. #432
New features
result: new Rust FFI bindings (result_rscrate) let Rust code interoperate withscore::Result<T>/score::result::Erroracross the language boundary and convert them into Rust's ownResult. Companionlibcpp/libcpp_derivecrates model ABI-dependent C++ standard-library types (currentlystd::string_viewandstd::variant) with layout tests. #403- New
score/language/rust/memresRust crate plus a C++ FFI layer let Rust code create and ownscore::cpp::pmr::memory_resourceinstances and pass them to C++, so allocations can be controlled across the language boundary, including a hermetic (no heap-fallback) mode. #406 language/futurecppwas synced with the latest upstream release:score::cpp::jthreadand the internal thread pool/cpu_contextgained apriority_hintthread attribute. Thescore::cpp::variantwas reimplemented as a thin wrapper aroundstd::variantand now implicitly converts to and fromstd::variant;score::cpp::optional(alreadystd::optional-backed) gained a matching implicit conversion tostd::optional. Both ease migration to thestd::equivalents. #466examples/integration: added ascore::Resultusage demo andscore_bazel_cpp_toolchainssupport. #411 (closes #363)
Bug fixes
memory:DataTypeSizeInfonow enforcesalignof(std::max_align_t)as the maximum supported alignment; constructing it with a larger alignment now triggers a contract violation instead of silently accepting an unsupported over-aligned type. #470- Rust: fixed a memory leak in
score::thread'sJoinInner::join(), where the resultArcwas dropped viamem::forgetwithout being read back first. Address/Undefined-Behavior/Leak sanitizer coverage (--config=asan_ubsan_lsan) was also extended to Rust builds, which had previously only covered C++. #429 json/vajson:FromFileno longer parses directly off the file stream buffer, whose seek-based backtracking triggered anlseek/readsyscall per seek (especially costly on QNX); it now buffers the file into memory first, likeFromBufferdoes, for about a 25% runtime improvement. #431
Compatibility
The following platforms are supported using the bazel_cpp_toolchains:
x86_64-unknown-linux-gnuaarch64-unknown-linux-gnux86_64-unknown-nto-qnx800aarch64-unknown-nto-qnx800
Performed Verification
- Build on all supported platforms
- Unit test execution on all supported platforms (some test failures are expected on AArch64 and QNX targets).
- Address and undefined behavior sanitized unit test execution
- Leak sanitized unit test execution
Report: https://github.com/eclipse-score/baselibs/actions/runs/32123154514
Upgrade Instructions
Backward compatibility with the previous release is not guaranteed.
Contact Information
For any questions or support, please contact the Base Libs Feature Team (https://github.com/orgs/eclipse-score/discussions/1223) or raise an issue/discussion.
What's Changed
- analysis/tracing - Remove usage of score::cpp::variant from service_instance_element by @indramaniarorascore in #415
- Add AGENTS.md and C++ style guide by @4og in #419
- Prepare migration of score/memory/shared to score_communication by @LittleHuba in #424
- Comp Req inspection - Utils by @aschemmel-tech in #269
- Revert "result library fully nodiscard" by @LittleHuba in #427
- Add PR auto-labeler workflow by @4og in #430
- json: add benchmark test suite by @fbaeuerle in #423
- Migrate score/memory/shared to score_communication by @LittleHuba in #421
- Add more component labels to labeler by @4og in #433
- result: add toolchain setup and result library demo to example integration by @OliverHeilwagen in #411
- Drop
T: Copybound to support nested/movable ABI types by @4og in #432 - Fix ASAN support for Rust code by @eclipse-impl in #429
- json: vajson: buffer files in memory before parsing by @fbaeuerle in #431
- Code sync by @4og in #442
- chore(CI): verify bazel lockfile is correct by @AlexanderLanin in #252
- Update Bazel lockfile to fix CI failures. by @ssingh2099 in #443
- Add requirements management skill by @4og in #439
- Update dependency score_toolchains_rust to v0.10.0 by @eclipse-score-bot in #412
- Add @fbaeuerle as a code owner by @4og in #445
- Remove score/json from restricted paths workflow by @4og in #447
- Remove obsolete py_unittest_qnx_test macro and all references by @Priyanka-Patil18 in #435
- chore(docs): remove legacy score_docs_as_code configuration by @AlexanderLanin in #450
- Provide Rust interface for libResult by @eclipse-impl in #403
- Add AI instructions for commenting by @eclipse-impl in #438
- os: make static_destruction_guard target publicly visible by @ahmed0mousa in #452
- Align to new starting page template by @aschemmel-tech in #457
- Adding log frontend requirements by @MaciejKaszynski in #389
- Provide Rust wrapper for memory resouces by @eclipse-impl in #406
- Update dependency score_bazel_platforms to v1 by @eclipse-score-bot in #463
- Update dependency score_rules_imagefs to v0.0.4 by @eclipse-score-bot in #462
- Remove local ISSUE_TEMPLATE directory. by @ssingh2099 in #440
- ci(docs): split documentation build and publish workflows by @4og in #465
- DataTypeSizeInfo: Assert overaligned type by @crimson11 in #470
- upkeep: update docs-as-code to 7.1.0 by @a-zw in #453
- Update dependency score_platform to v0.6.4 by @eclipse-score-bot in #472
- Update FutureCPP lib to the latest changes by @4og in #466
- Addressing comment for utils component requirement(#417) by @Priyanka-Patil18 in #475
- Revert "Revert "result library fully nodiscard"" by @4og in #477
- Deprecate datetime_converter by @limdor in #483
Full Changelog: v0.2.10...v0.2.11