Skip to content

docs+compat: every audit finding corrected, and the build works on the declared zig version - #102

Closed
gHashTag wants to merge 5 commits into
fix/public-api-auditfrom
fix/doc-claims
Closed

docs+compat: every audit finding corrected, and the build works on the declared zig version#102
gHashTag wants to merge 5 commits into
fix/public-api-auditfrom
fix/doc-claims

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

Stacked on #101. Carries the documentation half of the audit (README ranges/rounding/withdrawn 323 MHz, CHANGELOG vs its own bench log, whitepaper's nine self-contradictions, spec-gf16 test vectors regenerated from the codec, multi-language-audit's own-table contradictions) plus the 0.15.2/0.16 compatibility fix CI asked for.

🤖 Generated with Claude Code

gHashTag and others added 5 commits August 20, 2026 00:44
README: GF16 range ~±65504 was fp16's max (measured max finite ±4.29e9);
GF8's φ³ saturation belonged to the Rust base-φ bench model (shipped codec
clamps at 1.9375); ties round away from zero, not to even (and the fp16
encoder truncates); the 35/35 @ 323 MHz row has no record in this
repository and was withdrawn upstream; GF-T exponent ranges are asymmetric
[−N, N−1] because the top offset row is the special row (the symmetric ±N
overstated the top by one — the same off-by-one family the TNF paper
carried); the 99.99% accuracy row now names its metric and its measured
value. CHANGELOG: the v2.1.0 summary now matches its own committed
bench_010.log (5.77e-4 / 9.37e-3 / 16.2x), and the φ³ rows are labelled
as the bench model. Every correction cites docs/AUDIT_2026-08-20.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…r's own tables

The abstract inverted its own hardware measurement (47-59x MORE, not
fewer); the 10x energy note belonged to the Ternary row (GF16's own row:
2x); lr=0.004 was derived from an identity that computes 0.028; phi^5 was
printed as 10.944 (it is 11.090); the attention-reduction number
contradicted its own printed formula (97.85%, not 78.5%); the GF32/GF64
splits disagreed between sections and with shipped code (12:19 and 24:39
are what ships); and the two MAC-depth bounds (256 vs 8.3) are now flagged
as contradictory with the enforced one named. Every correction cites
docs/AUDIT_2026-08-20.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…tion is gone

Section 8's vectors were IEEE fp16 codes (1.0 as 0x3C00, pi as 0x3E23,
Inf as 0x7C00) -- values the shipped codec never emits; regenerated from
GF16.fromF32/toF32 (1.0 -> 0x3E00, pi -> 0x4124 at 0.031%, Inf -> 0x7E00),
and docs/test-vectors.csv with them (all 45 rows re-encoded). The
subnormal section described an unimplemented design: E=0, M!=0 decodes to
zero (measured), the encoder flushes below the minimum normal, and the
printed 4.7e-10 matched neither the section's own formula (2^-39) nor the
codec -- the smallest positive value is the minimum normal 2^-30 ~ 9.3e-10.
Comparison table row relabelled accordingly.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
The Green-ML table said a 70B model needs 14 GB in GF16 while its own
memory row says 16 bits per weight (= 140 GB, same as FP16); 'Add only'
compute is an aspiration -- every shipped GF16 op routes through f32
multiply; the 0.1x energy row had no record (whitepaper's own table gives
2x); the pi round-trip comment said 0.003% where the codec measures
0.031%; a referenced zig-float-audit.md exists nowhere in the repository;
and gf16.h is 405 lines, not 80. Every correction cites
docs/AUDIT_2026-08-20.md.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
… manifest declares

The 0.16 ports broke the build on zig 0.15.2, which is what CI runs and
what build.zig.zon declares as the minimum: PROT flags are decl-constants
there (a packed struct on 0.16), std.posix.mprotect still exists, and
std.time.nanoTimestamp had not left std yet. Both paths now compile behind
a comptime-known zig_version check, which Zig resolves without analysing
the untaken branch — so 0.15.2 never sees std.c and needs no libc link.

Verified green on 0.16 locally. 0.15.2 is CI-verified only: it does not
link on this macOS (that is why development moved to 0.16), so CI is the
sole instrument for it and this commit trusts it deliberately.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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