generated from erix/meta
WIP: Define compatibility ABI values and checked numeric ranges #3
No reviewers
Labels
No labels
bug
ci
docs
duplicate
enhancement
help wanted
invalid
performance
phase-6
question
refactor
security
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
erix/lib-posixabi!3
Loading…
Reference in a new issue
No description provided.
Delete branch "feature/posix-compat"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary and rationale
Define pure compatibility values, wire codecs, integer C declarations, errno and checked numeric ranges. Add a descriptive file-status base with seven validated file types, identity and owner values, link count, signed size and three canonical timestamps. Its prefixed raw C record occupies 88 bytes with alignment 8.
Tracking and scope
2417b283c2a82840ce18cf95eb9ca67d99fa2cc9onfeature/posix-compat.5ff18b2bf62d3103e5b84aa92d1dc1cd096e9725and lib-fs-name644e8e156d7eaa406b5b5b882980c3a435756425.Architecture, authority and failure behavior
The production library denies unsafe code and missing documentation. File identities, owners, modes and times describe facts; they cannot authenticate a caller, find a resource or grant access. A native adapter must establish valid identity, ownership and timestamp facts. Unknown native metadata cannot be filled with plausible zero values or substituted path/open-description identities.
FileModeV1accepts only seven complete type encodings and the defined permission bits. Type encodings are alternatives, not independent flags.FileOffset::try_from(u64)returns overflow above the signed range without truncation. Raw records retain every integer bit pattern; conversion validates mode and timestamp fractions without normalizing malformed input. All scalar fields retain their declared full-width domains. The record is a partial EriX-prefixed base, not a platformstruct stator a conformance claim.C and Rust probes transport distinct literal records through arguments, returns and both callback conventions after six scalar arguments. All fields and malformed values remain checked on host and freestanding raw paths. Actual checked conversions run against the library after both host C returns. Freestanding raw links retain the strict named-undefined-symbol gate; they do not claim to supply or execute a complete Rust runtime.
Validation evidence
Rust 1.97.1 formatting, strict Clippy, warning-denied host/freestanding builds and eight private-rustdoc configurations pass. Each default/all-feature debug/release host configuration passes 66 unit tests and three doctests. All 26 Python driver tests pass. Exhaustive low-16-bit mode tests, unknown upper bits, independent arithmetic oracles and scalar boundary cases cover validation and error behavior.
GCC/Clang O0/O2 validation passes four host executions, four freestanding raw links without named undefined symbols, and twelve designated compiler rejections. The complete C result retains 280 actual commands, including 221 original-object reads. All 201 original dependency files and twelve compiled library artifacts correlate with the selected revisions. Accepted compiler, lint and documentation diagnostics contain no warnings.
The initial Markdown line-wrap failure, incorrect selection of a private Git skeleton and unsupported checked-conversion call in a raw freestanding probe remain recorded. Their corrections preserve production code and the strict failure gates. A retained archive-link diagnostic confirmed that whole Rust library objects require additional runtime support; the final tests explicitly separate host conversions from target raw transport. Passed Rust/unit checks were retained; the changed C probes and final documentation checks were validated. Only ROADMAP result prose changed after the final C matrix.
Push CI 13 and PR CI 14 both pass for signed
2417b283c2a82840ce18cf95eb9ca67d99fa2cc9. All four complete logs (101,072 bytes) are correlated with the original workflow and checker sources and contain no compiler/lint warning candidates. Each runtime job passes formatting, strict host/freestanding Clippy and builds, 66 unit tests plus three doctests in each development/release selection, private rustdoc, 26 Python tests and the bounded C ABI checker. Detailed C command/artifact counts remain local evidence; inner CI artifacts were not retrieved. Matching Docs7ccbe0bfa83ce5942878fb7cf8c57bb1abe75d00is signed and pushed in Docs PR #4. Its original-source references select ABI2417b283and eighteen-function libc bdcbbea, with 161 and twenty API routes respectively. All 44 documentation tests, both API checks and 55 Markdown files pass. The complete 2,339-page manual passes in 154.64 seconds with zero final warnings; all 425,255 word boxes fit and nine actual previews pass visual review. The first render was interrupted by an outer watchdog that could not observe the inner log; its failed statuses and clean cleanup are retained. The corrected outer budget preserves the inner hard/progress limits, and passing API/unit checks were reused. Matching Docs push CI 837 and PR CI 838 both pass for signed7ccbe0bfa83ce5942878fb7cf8c57bb1abe75d00, ending by 05:58:35 UTC on September 14. All four complete logs total 752,104 bytes and are correlated with the original workflow and build/publish scripts. Each manual job passes 44 tests and finishes at 2,339 pages with zero final-pass warnings; thirty first-pass and one second-pass convergence warnings resolve. Each Markdown job checks 55 files with zero errors. The logged CI PDF size is 4,105,617 bytes; CI artifact bytes and geometry were not independently inspected. Local layout and visual evidence remain separate. This adds no native metadata operation, companion migration or complete guest build result. Earlier push CI 11 and PR CI 12 pass for preceding sourceaf01f597fe8d0b18b0559f395ba1437174be24a5. The accepted byte-extent manual at Docs0912e7313c0212cd3be6f06fae7d932174ce087aand its passing CI 819/820 remain evidence for that preceding interface. The file-status update is tracked in Docs PR #4.This checkpoint does not demonstrate a native stat operation or a full EriX build performed within EriX.
Review checklist
erikinkinen referenced this pull request from erix/docs2026-09-12 10:09:10 +02:00
WIP: Define compatibility identifiers and checked query codecsto WIP: Define compatibility codecs and the integer C boundaryerikinkinen referenced this pull request from erix/lib-ipc2026-09-12 12:00:32 +02:00
WIP: Define compatibility codecs and the integer C boundaryto WIP: Define compatibility codecs, C integers and checked errno valuesWIP: Define compatibility codecs, C integers and checked errno valuesto WIP: Define compatibility codecs and contextual native completion rulesWIP: Define compatibility codecs and contextual native completion rulesto WIP: Define checked compatibility ABI and file/time arithmeticWIP: Define checked compatibility ABI and file/time arithmeticto WIP: Define compatibility ABI values and checked numeric rangeserikinkinen referenced this pull request from erix/docs2026-09-14 07:57:37 +02:00
View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.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.