Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
45c8d90
docs: audit 1.2.0 tests and plan 1.2.1 qualification
ThorFuchs Oct 13, 2026
3c0c03b
test: qualify Codable containers and export complete module coverage
ThorFuchs Oct 14, 2026
21d5428
docs: record first-wave native evidence and remaining test scope
ThorFuchs Oct 14, 2026
090fffd
test: probe foreign coding and control streaming completion
ThorFuchs Oct 14, 2026
5dc4f70
docs: record second-wave qualification and 128-bit limits
ThorFuchs Oct 14, 2026
ae609f7
test: qualify portable QA and inspect completion alternatives
ThorFuchs Oct 14, 2026
620fc65
test: give foreign fidelity oracle an explicit portable width
ThorFuchs Oct 14, 2026
bbc3607
test: enforce WASI streaming deadlines from the execution host
ThorFuchs Oct 14, 2026
b2bd704
test: use atomic coverage counters and reject saturation
ThorFuchs Oct 14, 2026
5fcc87b
docs: record portable QA and corrected coverage evidence
ThorFuchs Oct 14, 2026
20476da
test: export Linux coverage and exercise public behavior gaps
ThorFuchs Oct 14, 2026
708c263
fix: include Swift Build shared objects in Linux coverage
ThorFuchs Oct 14, 2026
288dc62
docs: record Linux coverage and behavior-wave qualification
ThorFuchs Oct 14, 2026
df3e382
test: cover reachable core conversion and quota boundaries
ThorFuchs Oct 14, 2026
2b4ab65
test: exercise remaining public core cleanup paths
ThorFuchs Oct 14, 2026
9184481
test: qualify escaped output pointers and value presence
ThorFuchs Oct 14, 2026
c11d96f
docs: record core coverage closure and quiet-host blocker
ThorFuchs Oct 14, 2026
85a7f4f
test: add public end-to-end acceptance and bounded mutation pilot
ThorFuchs Oct 14, 2026
617c057
fix: report missing schema bundles and close mutation assertion gaps
ThorFuchs Oct 14, 2026
9210f2f
test: retain exact acceptance cardinality and add regex mutants
ThorFuchs Oct 14, 2026
e9aa82b
test: qualify integration coverage omission and portable bundle metadata
ThorFuchs Oct 14, 2026
7b0c67f
docs: close public acceptance and mutation qualification ledger
ThorFuchs Oct 14, 2026
7907333
docs: distinguish native mutation pilot from portable replay tests
ThorFuchs Oct 14, 2026
f6ef9f7
docs: prepare 1.2.1 review and record loaded diagnostics
ThorFuchs Oct 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion .github/workflows/linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,12 @@ on:
branches: [main]
pull_request:
workflow_dispatch:
inputs:
scope:
description: Full qualification or coverage-only exporter refresh
type: choice
options: [full, coverage]
default: full
permissions:
contents: read
concurrency:
Expand All @@ -17,7 +23,7 @@ jobs:
strategy:
fail-fast: false
matrix:
lane: [linux, linux-safety]
lane: ${{ fromJSON(inputs.scope == 'coverage' && '["linux-coverage"]' || '["linux", "linux-safety", "linux-coverage"]') }}
architecture: [x86_64, arm64]
include:
- architecture: x86_64
Expand Down
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,17 @@

## Unreleased

- Preserve ordinary invalidity when best-effort schema diagnostics omit an issue
that exceeds the byte ceiling. Required work and annotation failures remain
terminal. Add 31 behavior and precise failure tests across all five modules,
plus reproducible five-module Linux coverage exports on ARM64 and x86_64.

- Extend Codable, exact value, streaming, Patch, schema/regex and public workflow
assertions to 318 Swift Testing functions. Preserve precise errors, complete
five-module coverage and finite cumulative accounting; add seeded replays and
a bounded native mutation pilot. Report a wholly missing native schema bundle
as structured metaSchema failure while retaining all resource integrity pins.

- Add local full-language wasm32 WASI support, preserving all four products and
the empty root dependency graph. Twelve cumulative UInt64 quotas can exceed
Int.max without changing profiles; allocation capacities retain Int guards.
Expand Down
7 changes: 7 additions & 0 deletions Documentation/Architecture/API.md
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,13 @@ metered Base64; Date defaults to its Codable representation. Explicit ISO-8601 u
UTC fractional seconds, finite years 0000...9999 and at most 128 input UTF-8 bytes.
`JSONCodingOptions.userInfo` stores checked Sendable values.

The qualified 128-bit probe distinguishes exact value projection from typed
Codable. `JSONNumber.integer(as: Int128.self)`/`UInt128.self` support exact bounded
projection. Native typed Int128/UInt128 Codable currently uses the SDK container
defaults and throws unsupported-type EncodingError/DecodingError, including for
small values. Use exact JSONNumber/JSON values or JSONCodablePayload for lossless
transport; this is no claim that typed 128-bit Codable is implemented.

Foreign Codable bridges inherit the foreign coder's source fidelity. External
numeric decoding tries Int64, UInt64 and Decimal, with no Double fallback. External
encoding requires an exact Int64, UInt64 or Decimal representation. Neither bridge
Expand Down
21 changes: 20 additions & 1 deletion Documentation/CI/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,25 @@ streaming regression is documented in ../Performance/README.md.
Run locally with `python3 Scripts/ci.py --lane native`, `--lane safety` or `--lane docs`.
The first hosted result must be inspected before marking CI qualified.

## Coverage and test discovery

`python3 Scripts/ci.py --lane coverage` runs the full instrumented native Swift
Testing suite and exports all five test executables against its merged profile.
SwiftPM's default export can contain only a subset of executable modules on the
supported Xcode backend. The lane rejects missing/duplicate source mappings,
stale unmapped classifications, impossible counters and changed discovery. An
actual LLVM export omitting the schema executable must be rejected. Branch/MC/DC
counters are reported as unavailable when the compiler emits none; generated
Unicode data and executable lookup regions remain separate.

[TestDiscovery.json](../Qualification/TestDiscovery.json) is the exact root,
parameterized, QA and shared-state discovery contract. Native, safety and WASI
read that same contract. Native and coverage also run ten Python harness behavior
tests; these check qualification tooling and do not count as Swift library tests.
The existing required Native check names/settings and all 49 cap probes remain.
The coverage lane is available locally; this increment does not activate a new
hosted check or claim a Linux/WASI coverage run.

## Linux development lanes

The additive Linux workflow selects the pinned official Swift 6.4.0 Ubuntu 24.04
Expand All @@ -63,7 +82,7 @@ distribution, architecture or libc claims.

`python3 Scripts/ci.py --lane wasm` requires the matching Swift.org 6.4.0 compiler,
SDK and WasmKit plus Node. It records cross-build and runtime outcomes separately.
It preserves all 192/173 root discoveries, independent corpus policies and 49 cap
It preserves the exact root discoveries in TestDiscovery.json, independent corpus policies and 49 cap
outcomes; both hosts also execute the frozen public consumer. The
[WASI contract](../Architecture/WebAssembly.md) defines host/safety scopes.
This local lane neither activates hosted CI nor substitutes for Apple/Linux gates.
6 changes: 6 additions & 0 deletions Documentation/Performance/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -29,3 +29,9 @@ Logical retained bytes differ from process RSS. Darwin ru_maxrss is cumulative;
allocator end observations are not isolated workload allocations. These results
make no cross-machine throughput or OS-enforced memory guarantee. Projection and
JSON text-sequence framing remain deferred.

The proposed 1.2.1 diagnostic repair has a separate
[matched comparison and disposition](../Qualification/Release1.2.1/ReviewReadiness.md).
The earlier +11.9833% median remains unresolved; a subsequently authorized
loaded-host run measured −1.6871%, with competing activity recorded. It establishes
no intrinsic improvement and does not replace qualifying quiet-host evidence.
25 changes: 25 additions & 0 deletions Documentation/Qualification/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,28 @@ The WASI increment adds three boundary/accounting functions: 192 root functions
invocations and all 49 public metric outcomes. Native 64-bit overflow/rendezvous
cases remain; wasm32 uses UInt64 ledgers and cooperative checkpoint cancellation.
Run the [WASI lane](../Architecture/WebAssembly.md) for its explicit per-host scope.

The first [1.2.1 test wave](Release1.2.1/Wave1.md) adds 23 public Codable behavior
functions: exactly 215 root functions (JSON 127, schema 51, regex 12, streaming 14,
Patch 11), retaining all 173 parameterized invocations and all 49 cap outcomes.
The focused QA lane now expects 34/3/3/2 functions in JSON/schema/streaming/Patch.
Historical counts above stay tied to their original receipts. The exact current
[discovery contract](TestDiscovery.json) is shared by native/safety/WASI harnesses.

The [second 1.2.1 wave](Release1.2.1/Wave2.md) adds 29 behavior functions:
244 root functions (JSON 144, schema 51, regex 12, streaming 26, Patch 11), with
173 parameterized invocations retained. QA expects 51/3/15/2 functions. Safety's
targeted TSan subset adds the 12 controlled streaming functions to the existing
six cases, with exact 4/1/1/12 module counts. Historical receipts remain unchanged.

The 1.2.1 [portability follow-up](Release1.2.1/Portability.md) has 245/173 roots,
72 QA and 19 shared-state functions. ARM64/x86_64 Linux full lanes and scoped
WASI debug/release QA passed. Atomic native profiling reports 97.46% authored
lines / 93.04% regions and rejects saturated LLVM counters; earlier percentages
remain historical measurements, not directly comparable corrected coverage.

The [public workflow/mutation acceptance wave](Release1.2.1/AcceptanceWave.md)
adds a sixth test-only target while preserving five implementation modules and four
products. Native, both Linux architectures, scoped WASI and clean source extraction
are qualified with exact discoveries and materialized evidence. Mutation survivors
led to real final-chunk cancellation and failed-branch annotation assertions.
Loading