Skip to content

fix(specs): generic collections speak fn-level comptime params (Refs #11940 #12000) - #12151

Merged
gHashTag merged 1 commit into
masterfrom
fix/generic-scoping
Oct 25, 2026
Merged

gHashTag merged 1 commit into
masterfrom
fix/generic-scoping

Conversation

@gHashTag

Copy link
Copy Markdown
Collaborator

The generic collections (maybe, io and friends) converted to fn-level comptime type params per box.t27's pattern. The undeclared-identifier defect resolved on the convertible specs.

…11940 #12000)

Convert the convertible members of #11940's 14-spec blocked table to the
fn-level comptime grammar #12000 landed, following box.t27: types bind at
each fn (fn some(comptime T: type, value: T) -> Option(T)) and call sites
pass them explicitly (some(i64, 42)). maybe's bind/map take the function
type as a second comptime param (bind(i64, MaybeBindFnI64, m, f)), which
expresses the tie to T at the call site while ADR-008 still rejects
generic fn-type aliases. Beyond the signatures, the never-compiled bodies
needed the emitter's Zig shapes: .field = value inits, &[_]T{} empty
slices, AutoHashMap, and renames forced by the target language (Result's
E collided with math::constants' Euler E in the use-resolved source; its
error field/param are Zig keywords). reader/writer/state stay untouched:
their fn-typed fields/params and closure bodies are sub-slices 2+3,
compiler-side. t27c test-report, measured with a current build (the
shared t27-build binary predates #12000 and blocks box.t27 itself):
maybe 14/14, either 15/15, result 10/10, tuple 9/9, queue 5/5, option
4/4, set 4/4 (1 pre-existing vacuous), io 2/2 -- eight green. tree now
blocks on its self-referential value field (needs indirection),
ring_buffer on the cross-module Option(T) reference and an
allocator-backed create_buffer, btree on allocator values at call
sites: each advanced to its own next defect, recorded in .trinity/seals.
21 seal files resealed (both naming copies); seal --verify MATCH on all
eleven.
@gHashTag
gHashTag merged commit 003252f into master Oct 25, 2026
67 of 73 checks passed
@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-10-25 01:21:35 UTC

Summary

Status Count
Total Open PRs 46
PRs with Failing Checks 41
PRs with All Checks Green 5
READY 1
FAILING 41
PENDING 0
NO CHECKS YET 0

These columns do not partition: 1 + 41 + 0 + 0 = 42, and there are 46 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=55c0f1b1b32d != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag deleted the fix/generic-scoping branch October 26, 2026 03:43
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