You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: core-no-std-plan.md
+4-1Lines changed: 4 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -126,9 +126,11 @@ Current semantics draft:
126
126
- Formatter-core canonical output is idempotent on the tested subset of root maps/lists/values, variants, strings, comments, and composite-root-key shapes.
127
127
- Exact owned `Value` roundtrip through the compact core path is expected on the tested subset except for the explicit exclusions below.
128
128
- Exact owned `Value` roundtrip through the legacy formatter/parser path is expected on the tested subset except for the explicit exclusions below.
129
+
- For owned `Value` roundtrip checks, "exact" means `Value` equality after parse/serialize, not preservation of original source spelling or internal numeric storage kind.
129
130
- Current explicit non-guarantees and tolerated boundaries:
130
131
- Exact owned legacy `Value::format` roundtrip is not guaranteed for unit variants with empty payloads; they serialize as quoted strings.
131
132
- Exact owned legacy/core `Value` roundtrip is not guaranteed for `null`/`true`/`false` in map-key position; both parse paths canonicalize those keys to strings.
133
+
- Exact owned `Value` roundtrip does not imply preservation of lexical number spelling or `f32` vs `f64` internal storage identity.
132
134
- Byte-for-byte preservation of commas, braces, indentation, or trivia is not guaranteed.
133
135
- Legacy parity is guaranteed only on the documented and tested overlapping formatter subset.
134
136
- Remaining unsupported or merely tolerated ambiguous forms should be promoted into this list as fuzz/property exclusions are reviewed.
@@ -329,7 +331,7 @@ Tasks:
329
331
-[ ] Keep byte-level parser fuzzing in place
330
332
-[ ] Keep hidden-Unicode rejection fuzzing in place
331
333
-[ ] Keep typed-path fuzzing in place
332
-
-[-] Stabilize value-roundtrip fuzzing around documented guarantees
334
+
-[x] Stabilize value-roundtrip fuzzing around documented guarantees
333
335
-[ ] Add every real fuzz-found bug as a normal regression test
334
336
-[ ] Add longer-running fuzz jobs outside the fast CI lane
335
337
@@ -451,4 +453,5 @@ Entries:
451
453
-`2026-03-31 | codex1 | WS3 | Added formatter-core roundtrip coverage for literal keys plus multiline basic/literal string tokens in both key and value position | string-family coverage is broader, but full writer determinism across all nested shapes is still not declared complete`
452
454
-`2026-03-31 | codex1 | WS1/WS8 | Documented and regression-tested the owned-Value exact-roundtrip exclusions already assumed by fuzzing: legacy unit variants collapse to strings, and core keyword map keys canonicalize to string keys | next contract work is to decide whether any additional fuzz exclusions should be promoted to documented non-guarantees`
453
455
-`2026-03-31 | codex1 | WS1/WS8 | Added a short semantics draft to the tracker and tightened the documented exact-roundtrip exclusions: legacy and core keyword map keys canonicalize to strings, legacy unit variants collapse to strings, and fuzz-contract comments now point at tested behavior | next semantics work is to finish the remaining unsupported/tolerated ambiguity list rather than leave it implied`
456
+
-`2026-03-31 | codex1 | WS1/WS8 | Clarified that owned-Value 'exact roundtrip' means Value equality rather than source spelling or numeric storage identity, and marked the value-roundtrip fuzz contract task complete | next semantics work is to review whether any remaining exclusions still need to be promoted from implementation detail to documented non-guarantee`
454
457
-`2026-03-31 | codex2 | WS7/WS9 | Added scripts/run_benchmark_baseline.sh and benchmark-data/README.md with a reproducible local baseline for bench_parse and bench_core_vs_serde at 477118a | next performance slice is release-size tracking or stronger benchmark automation`
0 commit comments