Reference evaluator round 2: ledger 198 to 88, bytes reference semantics, normative json parser, vendored libm - #47
Merged
Merged
Conversation
… 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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Second stdlib burn-down round for the judge-owned reference evaluator (#10).
Measured (local, full corpus)
@ref-allow(F1 named-arg order; F10 ±0 min/max lag ×3 —float_sign_minmax_ieeenewly carries the directive, same retired tie rule)What landed
Value+ json —json.parseis 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.let/varbindings 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); OOBset_*are silent no-ops;copy_from/copy_withinclamp; C-197out of memoryand C-034repeat result too largeaborts; f16→f64 exact (ALS-D5); cursor writers incl.write_string_be.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).+ - * **wrap two's-complement (int_pow_overflow_wraps, toplevel_const_wrapping, choose-at-i64::MAX);/ %keep the T6 aborts. Float ops canonicalize NaN to0x7FF8…(nan_canonical_observation); Float%/**via vendored fmod semantics/pow.*_if_exists→ok(none); walk/list_dir byte-lex without host sort.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.