Repository navigation
Retire std.string_type String: delete dag/std/string_type.dag (0 importers after #12512) - #13089
Merged
Merged
Conversation
…rters) Operator-ruled retirement of the duplicate structural declaration (String = FreeMonoid<Char>) beside v2.std.text String, after gunbc#12512 deleted its 81 host-text importers. Consumers updated in the same motion: v1.compiler.coercion structural_declaration_modules_for drops the path; the symbol-identity witness drops its sibling citation; the de-fork census moves the String row to resolved via a new ResolvedByDeletingDag arm. Stage0 regenerated to fixed point. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…type.dag Both sent the deleted path through structural_declaration_modules_for and asserted the structural refusal; with the path gone from the roster they have no subject. The v2.std.text sibling claims keep covering the refusal. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…a generated_artifact_gate main_wet Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Oct 3, 2026
Both retirements apply: the symbol-identity sibling list and structural_declaration_modules_for keep only v2.std.text String, and the checkpoint witness drops both retired structural rows (string_type by #13089, logic Bool by this cut), keeping the retirement note. Co-Authored-By: Claude Opus 5.5 (1M context) <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.
Retires
std.string_typeString(= FreeMonoid<Char>), the duplicate ofv2.std.textString. This is the operator-ruled retirement that gunbc#12512's import deletions made possible.What changes
dag/std/string_type.dagis deleted. Its only remaining declaration wastype String, and an empty module is dead. Text crossings unfold or refuse: exact-representation text compat (XL-0T ruling B) #12512 had already deleted its two functions.v1.compiler.coercionstructural_declaration_modules_forno longer lists the deleted path. The stage0 mirror is regenerated to a fixed point.test.claim.self_host_symbol_identity_binding_witness_testdrops itsdecl_ref(std.string_type, String)sibling citation, because the cited-declaration gate refuses a citation of a declaration that does not exist.gunbc.defork_type_name_census: theStringrow moves fromForkAwaitingRulingto resolved. The resolution type had arms for deleting the v2 side but none for deleting the dag side, so this addsResolvedByDeletingDag, the mirror ofResolvedByDeletingV2, and its render arm.v1.tests.claim.checkpoint_identity_keying_witness_test: two claims whose only subject was the deleted path are deleted. They sentdag/std/string_type.dagthrough the structural roster. Theirv2.std.textsiblings still cover the structural-Stringrefusal. This file is in the v1 tests tree that the floor does not execute; its stage0 mirror is compiled by the lint step.Zero importers, verified
git grep -lzE 'import[[:space:]]+std\.string_type\b'. It finds no production importer. The three hits are:extdeps.cloudflare.account_api_tokens;test.claim.text_string_importer_census_test;test/fixture_roots/text_string_importer_census_literals/string_type_importer.dag. The census claims read that fixture as source text with the population passed as a parameter, so they never resolve its import (39/39 PASS below).#12760 literal-site census: summary and routing
v2.lens.text_string_importer_censustext_string_importer_literal_sites.841df4abf6, srv1, gunbc sha256919e77636b97…. The remainder covers the set difference of 229 modules, artifact branchartifact/string-literal-census-841df4ab(9f34453f51).ae356ebbef46777a…, remainder43248fa4962aa168….std.string_typeimportersv2.std.textimporters or consumersv2.std.textimporters lose the import, census-classified). Spot checks are host text: embedded module sources, notes, qualified names.src/v2/workflow/gunbc_invoke_step_emit.dag(one site)FreeMonoid<Char>position is given the literal"_", so it needs the declared Unicode-scalar unfold. Routed undergunbc.rung_droptext_boundary_identity_wall.v2.std.textthrough multi-line imports or its structural functions. So they are counted in thev2.std.textrow, andgunbc_invoke_step_emitis also listed separately.src/v2/workflow/floor_grandfathered_roster.dag; they look like roster string data,spelled_other_than_text. The other reasons are callee_module_not_parsed, field_owner_not_read, positional_argument, field_not_declared, callee_module_declined, callee_not_imported_by_name and spelling_declarer_not_loaded.Evidence (local, seed regenerated from this tree)
claim_batch --source-root dag --source-root src/v2:defork_type_name_census_witness_test6/6self_host_symbol_identity_binding_witness_test20/20text_string_importer_census_test39/39text_boundary_identity_wall_witness_test21/21bare_name_ambiguity_wall_witness_test10/10Stage0 reached a fixed point after 2 rounds.
v1 admission (
gunbc.v1_maintenance_standingv1_seed_standing): thev1.compiler.coercionedit removes a roster path whose declaration no longer exists. It serves the v2 self-host by keeping the structural roster equal to the declarations that exist.🤖 Generated with Claude Code