Conversation
Port the cmetrics atomic operation interface to CFL with cfl_atomic_* names. Add compiler-specific backends for GCC, Clang, and MSVC, plus a pthread-based generic fallback. Wire the selected backend into the CFL build and add coverage for load, store, compare-exchange, and threaded increments. Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
Add project-specific agent instructions for CFL build, test, style, commit, and worktree practices. Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
Add tests for repeated initialization and full-width uint64_t values across load, store, and compare-exchange operations. Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
Expand the README with an overview of CFL core APIs, data structures, utility modules, support headers, and basic build/test commands. Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
Reject invalid SDS lengths, guard allocation arithmetic, and make variant printing size-aware for referenced strings and bytes. Add NULL-input handling across public containers and utility helpers, make public headers self-contained, and add regression coverage for the hardened paths. Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
Use archive.debian.org for the legacy Buster container so apt-get update can still resolve archived package metadata. Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
Reject recursive container ownership patterns that can create cycles or leave objects pointing at owned children. Make variant printing JSON-safe for references and non-finite doubles, propagate array/kvlist print errors, and fix kvlist key matching/removal semantics. Tighten SDS in-buffer append bounds and add regression coverage for ownership, JSON output, print failures, and SDS overlap handling. Keep the private container helper declarations under include/cfl with the rest of the CFL headers. Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
Avoid deep container graph walks for primitive variants while preserving duplicate variant ownership checks. Add array and kvlist regressions for inserting the same primitive variant pointer twice. Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
Use EOF checks for variant print paths that write null via fputs because fputs only guarantees a non-negative value on success. Signed-off-by: Eduardo Silva <eduardo@chronosphere.io>
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.
Port the cmetrics atomic operations interface to CFL with
cfl_atomic_*names and wire it into the build with compiler-specific backends for GCC, Clang, and MSVC, plus a pthread-based fallback.This PR also hardens public API input validation, expands regression coverage, documents the top-level CFL interfaces, and updates repository/CI maintenance files needed for the new coverage to run reliably.
Changes:
cfl_atomic_*API and backend selection logic.README.mdcoverage for the library’s top-level interfaces.AGENTS.md.and code-analysis workflow wiring.
Validation:
actionlint.packaging targets.