Repository navigation
Releases: ZekStack/strata
Releases · ZekStack/strata
Release list
v0.1.4
- Add move-only
Strata::FreeRTOS::CountingSemaphoreownership usingxSemaphoreCreateCountingStatic()and internal Strata-backed control storage. - Expose task and ISR take/give operations, saturation/exhaustion failure reporting, and maximum-count diagnostics.
- Add host and ESP32 backend contracts and extend the FreeRTOS source audit to reject dynamic counting-semaphore creation.
- Document counting-semaphore ownership and configuration for consuming libraries such as Signal.
- Detect ESP32 targets through either the Arduino
ESP32macro or ESP-IDFESP_PLATFORM, so Arduino-as-component and ESP32-P4 builds select the ESP32 allocation backend instead of the generic host backend. - Exercise the ESP32 backend contract with ESP-IDF-style platform detection and make the PIOArduino example matrix explicitly select the Arduino framework.
v0.1.3
- Add move-only
Strata::FreeRTOS::CountingSemaphoreownership usingxSemaphoreCreateCountingStatic()and internal Strata-backed control storage. - Expose task and ISR take/give operations, saturation/exhaustion failure reporting, and maximum-count diagnostics.
- Add host and ESP32 backend contracts and extend the FreeRTOS source audit to reject dynamic counting-semaphore creation.
- Document counting-semaphore ownership and configuration for consuming libraries such as Signal.
- Detect ESP32 targets through either the Arduino
ESP32macro or ESP-IDFESP_PLATFORM, so Arduino-as-component and ESP32-P4 builds select the ESP32 allocation backend instead of the generic host backend. - Exercise the ESP32 backend contract with ESP-IDF-style platform detection and make the PIOArduino example matrix explicitly select the Arduino framework.
v0.1.2
- Add move-only
Strata::FreeRTOS::BinarySemaphoreownership using static FreeRTOS creation and internal Strata-backed control storage. - Add task and ISR-safe take/give operations with explicit failure reporting and initially-empty semaphore semantics.
- Add host and ESP32 backend contracts covering lifecycle, ISR behavior, creation failure, allocation failure, and internal-only control storage.
- Extend the FreeRTOS source audit to prevent dynamic binary-semaphore creation and add ESP32/ESP32-S3/ESP32-C3/ESP32-P4 example coverage.
- Document the binary semaphore API, configuration requirements, example, and
v0.1.2release contract.
v0.1.1
- Add reusable
Strata::MemoryPolicywith consistent general-allocation and task-stack placement fields for consuming ZekStack library configuration. - Define the ecosystem memory-policy contract, including safety-precedence, explicit inheritance, and requested-placement versus observed-region rules.
- Add optional move-only FreeRTOS
MutexandRecursiveMutexowners using static FreeRTOS creation APIs and internal Strata-backed control storage. - Add host and ESP32 backend contracts for memory policy and mutex ownership, plus ESP32/ESP32-S3/ESP32-C3/ESP32-P4 example coverage.
- Add a CI source audit preventing dynamic FreeRTOS mutex creation from entering Strata production code.
- Extend API, configuration, architecture, migration, examples, README, and ecosystem-adoption documentation for the
v0.1.1contract.
v0.1.0
- Add portable
PlacementandRegionvocabulary with generic and ESP32 backends. - Add raw allocation, calloc, reallocation, explicit allocation requests, alignment, and strict fallback semantics.
- Add region introspection, support queries, and heap diagnostics.
- Add typed allocation, construction, destruction, unique ownership, and shared ownership helpers.
- Add placement-aware STL allocators, aliases, and container factories.
- Add move-only owned
Bufferstorage with placement-preserving resize semantics. - Add required DMA and executable allocation capabilities.
- Add optional FreeRTOS task-stack ownership, static task creation, byte-normalized stack diagnostics, and explicit task lifetime ownership.
- Add optional typed FreeRTOS queues with placement-aware item storage, internal control blocks, and explicit ISR-safe internal-only mode.
- Add optional ArduinoJson 7 allocator integration with Strata placement, fallback, and strict-external semantics.
- Add optional PMR
MemoryResourceintegration with placement-aware polymorphic allocation and nested-container propagation. - Harden the stable API boundary with dedicated placement/fallback and migration documentation, refreshed architecture docs, core no-exception/public-API contracts, and CI audits against platform leakage and abort/terminate failure policies.
- Add opt-in advanced allocation diagnostics with attempt/success/failure/invalid-request counters, requested-byte accounting, per-placement snapshots, preferred-external fallback counts, and reset support.
- Add current and peak region-used byte diagnostics derived from platform heap free/minimum-free watermarks without an allocation registry.
- Keep advanced diagnostics disabled by default with no allocation-path instrumentation in the default build and fixed atomic state when enabled.
- Reject invalid
Placementenum values consistently across allocation and support APIs while keeping them out of per-placement diagnostic buckets. - Require the FreeRTOS task APIs used by Strata at compile time and document that managed task teardown must occur from a different task context.
- Define the
v0.1.0generic-backend compatibility boundary as GCC/Clang-compatible C++20 toolchains and explicitly reject unsupported native MSVC builds. - Normalize repository metadata and documentation links to the canonical
ZekStack/strataURL. - Add host contracts and ESP32 example builds across ESP32, ESP32-S3, ESP32-C3, and ESP32-P4 targets.
- Add ZekStack-standard repository documentation, tooling, test layout, metadata validation, and release workflow structure.
- Complete the
v0.1.0implementation roadmap and harden tag-driven GitHub release creation with validated, non-empty changelog notes.