Repository navigation
t27b: f64 floor/ceil, i64 mod and log of a literal -- token_floor blockers 11 -> 4 (Closes #10405) - #10410
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
gHashTag
enabled auto-merge (squash)
October 18, 2026 11:16
Contributor
This was referenced Oct 18, 2026
gHashTag
added a commit
that referenced
this pull request
Oct 18, 2026
…r widths ledgered, rem arity text, former_name spelling (Closes #10439, Closes #10440, Closes #10441) (#10443) - Verilog widths: token_floor.t27 emits [8388607:0] (rsp, the row index, 524288*16 bits) and [49766399:0] (bgq, the empty 1080x1920x3 frame). Both are exact working buffers of a host-side renderer; ledgered with the arithmetic like big_frame and suggest_feed. - t27b tail: the @Rem arity case expects "`@rem` and `@mod` two", the text #10410 gave the refusal. - count-invariant: the nine tnf rows carry former_name="GF-TN (historical)" since #6953 (deliberate: it removed a name=/former_name= alias); the invariant, its planted tree and its negative control now expect that. Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
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.
Closes #10405
Clears the three smallest t27b blockers on
specs/t27f/token_floor.t27. The routines are written in.t27and the plan is generated.@floor/@ceilt27b_libm_floor/t27b_libm_ceilinspecs/tri/t27b/libm.t27. These are ports of compiler_rtfloor/ceil, bit-exact against Zig's@floor/@ceil(roundsdon the lab), signed zeros and NaN quieting included.@modlcginspecs/t27f/reel_particles.t27)t27b_libm_mod: the floored remainder, with Zig's Debug panic on a non-positive divisor. An unsigned@modis%. A signed@modof another width is refused with a named reason.@logof a literal@log(10.0), line 220)logq, which islogof the f64 cast.log_of_a_literal_is_the_f64_routine_schecks the folded value against the exact decimal of the f64 result, and the reference passes it; an f128-precise fold would fail it.The decision lives in
specs/tri/t27b/libm_plan.t27, which is regenerated togen/rust/tri/t27b/libm_plan.rs. New plan values:MOD,K_UINT,K_I64,CALL_I64,REFUSE_WIDTH.cli/t27b/src/lower.rschanges by +5/-5 lines, net 0: the first operand's type (ty0) replaces the f32/f64 switch, and a float literal is coerced instead of refused. The conformance cases went into existing specs,conformance/libm_rounding.t27(f64 sweeps over every exponent of both signs) andconformance/rem_int.t27(@modcases pluslcgas written). No new conformance file was added. Seals were re-saved for the four changed specs, and for the three that holdlibm.t27in their closure.Lab evidence (t27c lab,
t27bbuilt for aarch64, run under qemu-aarch64)t27b test --blockers specs/t27f/token_floor.t27, before (master 8ea4720): 11After (this branch): 4. All four are scoped in their own issues:
t27b test --checkandt27c test-reportagree on every changed spec:Ratchet, scoped to the 28 specs that use
@mod,@floor,@ceilor@log:passrows still pass.blockedrows keep their blocker construct:arena_heapandfile_io_contractare stillExprCall(@mod), because their@modis a signed non-i64 one, andgradientis stillExprCall(@exp).The full corpus ratchet is this PR's
t27b-native-ratchetcheck, run natively on ubuntu-24.04-arm.Timing: none is reported. t27b emits AArch64 only, and the lab is x86_64 running t27b under qemu-aarch64, so no wall-time comparison with native zig is fair there. No qemu time here is a speed result.
Follow-ups (not in this PR)
[*:0]const u8andstd.c.getenv(the shard env reader), scoping.std.debug.print(the frame writer). t27b has no I/O, andbuildexports only scalar functions. Scoping.@modwider than i64-only would unblockspecs/ml/arena_heap.t27,specs/ml/file_io_contract.t27andspecs/t27f/reel_particles_mux.t27.🤖 Generated with Claude Code