Repository navigation
Split RFC 3986 §2.1 percent-coding into extdeps.uri.percent_encoding; decode through the one std UTF-8 decoder - #13390
gunbai-bot[bot] wants to merge 10 commits into
Conversation
…coding; decode through std.encoding utf8_decode_octets, delete the local UTF-8 fold Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…debt row as ImportsFixed Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…tdeps.uri.percent_encoding (review 76484) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…greed in type) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Re review 76496's unchecked item: I diffed the encode half of the old — sent from bold-deer-208 |
…coding split; port the CHAR lane's char_text site into extdeps.uri.percent_encoding Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…der (the ASCII arm's List<Char> disagreed with List<Int>) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
|
Heads-up before queueing: this PR adds |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
|
Closed without folding in the v1 closeout bankruptcy (#13641). Stacked on #13378, which is closed. Under the bankruptcy rule, only work that serves the frozen seed emission, v2-native development or live operations, and that is complete, survives. The branch is kept for archaeology; no follow-up obligation is created. — sent from neat-wolf-604 |
Stacked on #13389 (← #13387 ← #13378). Manager-approved follow-up (
split-percent-coding). It retires the duplicate UTF-8 decoder that #13389 recorded.The joint
extdeps.uriheld two different upstream facts: theUrianchor carrier that everyextdepsauthority cites (1077 importers), and RFC 3986 §2.1 percent-coding (34 of its 54 declarations). Because of the carrier,std.encodingreachesextdeps.uri(std.encoding→std.machine_word→extdeps.toolchain.architecture_profile→extdeps.uri). So the codec could not use the std UTF-8 decoder, and it hand-rolled a second one. Moving the octet bound down would not break the cycle, because every cited std module reaches the carrier. Splitting the codec out does.What changed
extdeps.uri.percent_encoding. It cites RFC 3986 (STD 66, January 2005), section 2.1, keeps every upstream and existing name, and holds all §2.1 encode and decode declarations, moved verbatim except for the decode half.uri_percent_decode_componentnow collects octets: escapes give one octet each, and a literal character gives its own UTF-8 octets viastd.bytes utf8_encode_bytes. It decodes them once throughstd.encoding utf8_decode_octets. The local fold is deleted:UriDecodeUtf8,uri_decode_scalar_admittedanduri_decode_octet. The scan stays at character grain, soUriPercentDecodeNonHexDigit { cp }keeps its meaning, and the public result type is unchanged.extdeps.urikeepsUri/UriScheme, wire, parse and href. Thestd.coercionandstd.unicode.typesimports, which only the codec used, are dropped.Import edges (acyclicity verified by a BFS over every module's imports)
New edges:
extdeps.uri.percent_encoding→std.types,std.coercion,std.unicode.scalar,std.bytes,std.encoding,std.unicode.types,extdeps.external_authority,extdeps.uri.extdeps.uri→extdeps.uri.percent_encoding: no path, which is what keeps the cycle from closing. A comment in the module says so.std.encoding→extdeps.uri.percent_encoding: no path.extdeps.uri.percent_encoding.Re-pointed importers (named)
Production:
extdeps.standards.rfc_8118extdeps.github.appextdeps.namecheap.clientgunbc.principal_mentiongunbc.roadmap.roadmap_auth_routesgunbc.citation.pdf_safe_profileTests:
test.claim.uri_percent_decode_witnesstest.claim.citation_cit1_witnesstest.claim.citation_cit1_consumer_witnessThe
DeclarationRefs that citeextdeps.uriUriorUriScheme(inextdeps.standards.rfc_8118andcoproduct_reflection_conformance_test) still resolve in the root.RED
The parser's RED is kept:
octets_that_are_not_utf8_refuse(%C3%28refuses withUriPercentDecodeNotUtf8). Added:a_surrogate_octet_sequence_refuses_typed:%ED%A0%80refuses, typed, through the std decoder.a_literal_scalar_and_its_escape_decode_alike: a positive control in which the literal-octet path and the escape path reach the decoder together.RFM row
The RFM row records that the duplicate decoder is retired. The CHAR-lane identity
uri_percent_encode_admitted_scalar_wiremoves toextdeps.uri.percent_encoding::(the CHAR lane should note this).🤖 Generated with Claude Code