WIP: Simplify CRC updates and strengthen validation #2

Draft
erikinkinen wants to merge 2 commits from feature/posix-compat into main
Owner

Summary and rationale

CRC updates now use slice and fixed-range iteration instead of redundant saturating counters. Public signatures, polynomials, raw seeds and finalization semantics are preserved. Inline documentation and canonical component documents describe the actual checksum contracts, including empty input and raw-state chaining.

Tracking and scope

  • Owning audit: #1.
  • Revision: 68f3ffe8d6ad43b805f0bdc72f412994f43667bf on feature/posix-compat.
  • Adds empty-input, arbitrary-seed/all-split and IEEE reflection regressions; strengthens CI with warning-denied rustdoc, doctests, freestanding builds, exact-commit checkout and predecessor retention.
  • Coordinated lib-partition/e2fsd pins and downstream validation remain open. No CRC throughput improvement or guest-build acceptance is claimed.

Architecture, authority and failure behavior

The no-std, dependency-free library borrows only caller-provided bytes during each synchronous call and returns a scalar checksum. It performs no allocation, I/O, capability discovery, transfer or retention. Every raw seed and valid slice remains accepted; empty updates preserve the seed. Unsafe code and missing documentation remain denied. Consumer format validation, authentication and scheduling budgets remain the caller's responsibility.

Validation evidence

The workflow-only follow-up selects Integration helper e2b1cf5995bcf6334839cda9a013e90fa97787d5. Cold and locked preparation preserve original source identities and manifests/locks; formatting, strict default/all-feature host Clippy and all eight tests pass again without warnings on explicit Rust 1.97.1. Current signed revision passes push CI 21 and PR CI 22, with complete logs and no warnings.

Validation of the unchanged CRC source used an explicit Rust toolchain and private offline Cargo/output directories with no dependency overrides. Default and all-feature selections each pass 8 unit tests and 1 doctest. Formatting, strict host and freestanding Clippy, host release and freestanding development/release builds, private-item rustdoc, Markdown, workflow syntax and whitespace checks pass without warnings.

  • Formatting, strict Clippy and warning-denied Rust builds/tests
  • Supported default/all-feature/host/freestanding configurations and doctests
  • Positive and boundary checksum regressions; no runtime capability/cleanup interface
  • Push CI 19 and PR CI 20, complete logs without warnings
  • Current helper-pin component CI
  • Coordinated downstream regressions
  • Canonical Markdown and workflow checks
  • Technical manual/API refresh: eight CRC routes regenerated, complete local manual warning-free

No new VM feature is introduced by this pure algorithm refactor. Consumer VM validation is required when the coordinated source graph adopts this revision. Performance measurements and complete guest builds remain separate acceptance gates.

Review checklist

  • Original implementation and fixtures; Cargo manifest unchanged; CI helper selects the published original commit
  • Signed commit with tagged title and rationale-bearing body
  • Useful rustdoc; largest authored code file is 218 lines
  • README, ARCHITECTURE and ROADMAP updated
  • Shared governance/template bytes preserved
  • Public scope and limitations recorded without private evidence or unsupported claims
  • Independent maintainer review and dependent acceptance
## Summary and rationale CRC updates now use slice and fixed-range iteration instead of redundant saturating counters. Public signatures, polynomials, raw seeds and finalization semantics are preserved. Inline documentation and canonical component documents describe the actual checksum contracts, including empty input and raw-state chaining. ## Tracking and scope - Owning audit: #1. - Revision: `68f3ffe8d6ad43b805f0bdc72f412994f43667bf` on `feature/posix-compat`. - Adds empty-input, arbitrary-seed/all-split and IEEE reflection regressions; strengthens CI with warning-denied rustdoc, doctests, freestanding builds, exact-commit checkout and predecessor retention. - Coordinated `lib-partition`/`e2fsd` pins and downstream validation remain open. No CRC throughput improvement or guest-build acceptance is claimed. ## Architecture, authority and failure behavior The no-std, dependency-free library borrows only caller-provided bytes during each synchronous call and returns a scalar checksum. It performs no allocation, I/O, capability discovery, transfer or retention. Every raw seed and valid slice remains accepted; empty updates preserve the seed. Unsafe code and missing documentation remain denied. Consumer format validation, authentication and scheduling budgets remain the caller's responsibility. ## Validation evidence The workflow-only follow-up selects Integration helper `e2b1cf5995bcf6334839cda9a013e90fa97787d5`. Cold and locked preparation preserve original source identities and manifests/locks; formatting, strict default/all-feature host Clippy and all eight tests pass again without warnings on explicit Rust 1.97.1. Current signed revision passes [push CI 21](https://git.erikinkinen.fi/erix/lib-crc/actions/runs/21) and [PR CI 22](https://git.erikinkinen.fi/erix/lib-crc/actions/runs/22), with complete logs and no warnings. Validation of the unchanged CRC source used an explicit Rust toolchain and private offline Cargo/output directories with no dependency overrides. Default and all-feature selections each pass 8 unit tests and 1 doctest. Formatting, strict host and freestanding Clippy, host release and freestanding development/release builds, private-item rustdoc, Markdown, workflow syntax and whitespace checks pass without warnings. - [x] Formatting, strict Clippy and warning-denied Rust builds/tests - [x] Supported default/all-feature/host/freestanding configurations and doctests - [x] Positive and boundary checksum regressions; no runtime capability/cleanup interface - [x] [Push CI 19](https://git.erikinkinen.fi/erix/lib-crc/actions/runs/19) and [PR CI 20](https://git.erikinkinen.fi/erix/lib-crc/actions/runs/20), complete logs without warnings - [x] Current helper-pin component CI - [ ] Coordinated downstream regressions - [x] Canonical Markdown and workflow checks - [x] [Technical manual/API refresh](https://git.erikinkinen.fi/erix/docs/pulls/4): eight CRC routes regenerated, complete local manual warning-free No new VM feature is introduced by this pure algorithm refactor. Consumer VM validation is required when the coordinated source graph adopts this revision. Performance measurements and complete guest builds remain separate acceptance gates. ## Review checklist - [x] Original implementation and fixtures; Cargo manifest unchanged; CI helper selects the published original commit - [x] Signed commit with tagged title and rationale-bearing body - [x] Useful rustdoc; largest authored code file is 218 lines - [x] README, ARCHITECTURE and ROADMAP updated - [x] Shared governance/template bytes preserved - [x] Public scope and limitations recorded without private evidence or unsupported claims - [ ] Independent maintainer review and dependent acceptance
refactor: Simplify CRC updates and document raw-state contracts
All checks were successful
CI / markdown (push) Successful in 24s
CI / test (push) Successful in 40s
CI / markdown (pull_request) Successful in 7s
CI / test (pull_request) Successful in 27s
0ee4fe9eb2
Preserve all CRC polynomials, public signatures and seed/finalization semantics while replacing redundant saturating counters with slice and fixed-range iteration. Document raw-state chaining, empty inputs and the pure authority-free call boundary, and replace generic component documentation with the actual checksum contracts.

Add independent seeded-split and reflection regressions, strict rustdoc and freestanding CI gates, exact-commit checkout and predecessor retention. Default/all-feature host tests (8 each), doctests (1 each), strict Clippy, host/freestanding builds, private-item rustdoc, formatting and Markdown checks pass without warnings. Coordinated consumer validation and performance evidence remain separate work.
ci: Preserve original Cargo source identities during setup
All checks were successful
CI / markdown (push) Successful in 13s
CI / markdown (pull_request) Successful in 16s
CI / test (push) Successful in 41s
CI / test (pull_request) Successful in 39s
68f3ffe8d6
Select the published Integration helper that resolves pinned original Git objects through local transport while preserving manifest and lock identities. Existing compiler and dependency policies remain unchanged.

Cold and locked setup, original source verification, formatting, strict Clippy, and all eight tests in default and all-feature configurations pass without warnings.
All checks were successful
CI / markdown (push) Successful in 13s
CI / markdown (pull_request) Successful in 16s
CI / test (push) Successful in 41s
CI / test (pull_request) Successful in 39s
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/posix-compat:feature/posix-compat
git switch feature/posix-compat

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feature/posix-compat
git switch feature/posix-compat
git rebase main
git switch main
git merge --ff-only feature/posix-compat
git switch feature/posix-compat
git rebase main
git switch main
git merge --no-ff feature/posix-compat
git switch main
git merge --squash feature/posix-compat
git switch main
git merge --ff-only feature/posix-compat
git switch main
git merge feature/posix-compat
git push origin main
Sign in to join this conversation.
No description provided.