Skip to content

Reference evaluator round 2: ledger 198 to 88, bytes reference semantics, normative json parser, vendored libm - #47

Merged
O6lvl4 merged 1 commit into
mainfrom
ref-stdlib-2
Aug 21, 2026
Merged

Reference evaluator round 2: ledger 198 to 88, bytes reference semantics, normative json parser, vendored libm#47
O6lvl4 merged 1 commit into
mainfrom
ref-stdlib-2

Conversation

@O6lvl4

@O6lvl4 O6lvl4 commented Aug 21, 2026

Copy link
Copy Markdown
Contributor

Second stdlib burn-down round for the judge-owned reference evaluator (#10).

Measured (local, full corpus)

  • 610 programs: 522 evaluated, 518 agree with native, 0 evaluator faults
  • the 4 disagreements are all adjudicated under @ref-allow (F1 named-arg order; F10 ±0 min/max lag ×3 — float_sign_minmax_ieee newly carries the directive, same retired tie rule)
  • abstain ledger 198 → 88 in 35 classes (shrink-only ratchet tightens)
  • λ_almd kernel 49/49 byte-identical ×2; independence + clippy walls hold; fmt oracle 2/2

What landed

  • Dynamic Value + jsonjson.parse is a transcription of the NORMATIVE self-hosted parser (stdlib/json_parse.almd, ALS-T3): deliberately lenient (EOF closes strings, invalid \uXXXX/unknown escapes drop silently, surrogate pairs join, :/separators optional where the oracle is, trailing input ignored, char-index error positions); stringify uses the canonical 5-escape rule; value.*/json.* accessors, paths, pretty.
  • bytes — reference semantics pinned by fixtures: let/var bindings SNAPSHOT the buffer (mutable_global_repeat_writes), call arguments ALIAS it (bytes_param_writeback); reads are TOTAL per value (any not-fully-in-range window reads 0 — bytes_negative_offset_family, bytes_f16_offset_overflow); OOB set_* are silent no-ops; copy_from/copy_within clamp; C-197 out of memory and C-034 repeat result too large aborts; f16→f64 exact (ALS-D5); cursor writers incl. write_string_be.
  • Vendored musl libm (ref/src/libm.rs) — the same upstream the runtime vendors; bit-agreement confirmed over math_transcendental_bits / trig_libm / math_atan_tanh / math_log_gamma (Lanczos with exact bit constants).
  • Int doctrine+ - * ** wrap two's-complement (int_pow_overflow_wraps, toplevel_const_wrapping, choose-at-i64::MAX); / % keep the T6 aborts. Float ops canonicalize NaN to 0x7FF8… (nan_canonical_observation); Float %/** via vendored fmod semantics/pow.
  • fs/env/io/process effects with io::Error text passthrough (fs_read_directory_errno, fs_read_text_utf8); *_if_existsok(none); walk/list_dir byte-lex without host sort.
  • civil calendar (translated from stdlib/datetime_calendar.almd, wrapping/truncating exactly), SHA-256 + FNV-1a, base64 with the pinned error strings, hex/path/args/random (fixed-seed splitmix64 — the ALS asserts only range), http offline builders (case-insensitive last-wins headers), list OOB write doctrine (insert as-usize-clamps, set/update/swap/remove_at no-op), C-199 fan first-err order, fan mapper forms, pad first-char-or-space rule.

New findings for PARSER-NOTES

Recorded in the Measured block; the doctrine sentences above each cite their pinning fixture.

… 0 faults, 4 adjudicated under ref-allow): the dynamic Value and the normative json parser transcribed from stdlib/json_parse.almd, bytes with reference semantics (let/var snapshot, parameter aliasing) and total zero-fill reads, fs/env/io/process effects, vendored musl libm with confirmed bit-agreement, the civil calendar, hashes, base64/hex, http builders, C-034/C-197 allocation aborts, Int wrap doctrine, NaN canonicalization, the list OOB write doctrine, and the C-199 fan err order
@O6lvl4
O6lvl4 merged commit 9a2b95b into main Aug 21, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant