Repository navigation
fix(hy-check): model curated foreign method surfaces for http.response_writer and http.round_tripper (fixes #4197) - #4198
Conversation
…ddr, and net.error (HYB-E1002)
…e_writer and http.round_tripper (fixes limitlessprojects#4197)
Landed — merge
|
| Gate | Result |
|---|---|
| Merge gate | auto-merge clean; no conflict despite S147-era branch point |
cargo test --workspace |
3206 passed / 0 failed (+8 = PR's new tests exactly); 488 suites = 488 Running lines (1:1) |
| corpus harness | 139/139, tripwire not fired |
| differential loop | FULL AGREEMENT — accept 47/47 + reject 92/92 |
Protocol followed: merge --no-ff with hand-written credit commit (evidence in the merge message), pushed and git ls-remote == local HEAD asserted before this reply. No silent closes, no fixture fixups needed.
Bounty rail: recorded as a Row-13 BUILDABLE soundness improvement for the current cycle per BOUNTY.md — main pool ladder ($500/cycle, 1st $75 → 10th $45) plus Wildcard Track, judged in discussion #295. Main track: phantom-method rejections with positive controls on five curated interface types.
Next in queue: #4199 (T23 multi-value try unwraps), #4221 (nursery cancellation). Pending author fixes: #4202/#4201 (suite controls), #4206, #4097, #4217, #4219, #4215/#4213/#4211 (allowlist re-target).
|
Payout wallet (USDC on Base / Polygon): |
…nts (W-026, fixes #4200) Implements Wildcard Track W-026 Milestone 1 (Issue #4200): hy.send_cap[T]/ hy.recv_cap[T] Tier-0 linear channel capabilities; affine transfer (move-into-task-closure enforcement, HYB-E3001 use-after-move, HYB-E3002 reference capture across task boundaries); ChannelLivenessChecker — forward CFG dataflow guaranteeing every linear send cap reaches Closed (HYB-E4004) and every linear recv cap reaches Drained (HYB-E4005) before nursery scope exit. hy registered in the curated import/root/member sets (pipe, new_pipe, send_cap, recv_cap, channel). In-merge conflict disclosure: one foreign.rs conflict, two hunks, resolved via scripts/resolve_4221.py: - foreign_named_type: union — adopted the PR's `match base` scrutinee (required to strip hy.send_cap[T] generic params), keeping both the PR's send_cap/recv_cap OwnHandle arms and the landed #4198 `error` ForeignOpaque arm. - method-result table: HEAD side kept wholesale (PR side was a stale reformatted subset of the pre-#4198 table; adds no entries). Presence assertions green: send_cap arm + error arm + landed surfaces (#4249/#4252 consts+arms) + #4198 table intact. Verification evidence (S173 battery, main e33e8dc + 0571ecb): - merge gate: 2-hunk scripted resolution (above) - cargo test --workspace: 3245 passed / 0 failed (+20 = PR suite count) - suites: 493 files == 493 running, 1:1 - PR conformance matrix: channel_liveness_4200 20/20 on the union tree - corpus: 139/139, tripwire not fired (verdict-level 2/139, threshold ~25%) - differential: FULL AGREEMENT — accept-side 47/47, reject-side 92/92 CREDIT: @Sora1916
Fixes #4197
Summary
hyb checkmust emit valid Go code that compiles undergo build.doc.chanset,doc.totally_fake_method) #2200, [buildable] hy-check(foreign):foreign_method_surfaceomits curatedhttp.handler,http.response_writer,http.serve_mux,http.header,url.values, andtime.durationmethod surfaces (HYB-E1002, Row 13) #3868, [buildable] hy-check(foreign): foreign_method_surface omits curated bytes.buffer and strings.builder method surfaces (HYB-E1002, Row 13) #3908, fix(hy-check): model curated foreign method surface for bytes.buffer and strings.builder (HYB-E1002) #3909, [buildable] hy-check(foreign): foreign_method_surface omits curated sync.cond, sync.pool, sync.map, time.ticker, and time.timer method surfaces (HYB-E1002, Row 13) #3910, fix(hy-check): model curated foreign method surfaces for sync.cond, sync.pool, sync.map, time.ticker, and time.timer (HYB-E1002) (fixes #3910) #3911, [buildable] hy-check(foreign):foreign_method_surfaceomits curatedhttp.serve_mux,http.header, andhttp.transportmethod surfaces (HYB-E1002, Row 13) #4044, [buildable] hy-check(foreign): foreign_method_surface omits curated os.file_info and os.dir_entry method surfaces (HYB-E1002, Row 13) #4077, [buildable] hy-check(foreign): foreign_method_surface omits curated net/http interface surfaces (flusher, hijacker, pusher, file_system, file) (HYB-E1002, Row 13) #4108, and [buildable] hy-check(foreign): foreign_method_surface omits curated error, net.addr, and net.error interface method surfaces (HYB-E1002, Row 13) #4116:foreign_method_surfaceincompiler/crates/hy-check/src/foreign.rsmodels foreign handles to reject phantom method calls withHYB-E1002, but omitted curated method surfaces for standard librarynet/httpresponse writing and transport interfaces:http.response_writer/http.ResponseWriter(header,write,write_header)http.round_tripper/http.RoundTripper(round_trip)foreign_method_surface(foreign.rs) forhttp.response_writerandhttp.round_tripper.http.response_writer,http.responsewriter,http.ResponseWriter,http.round_tripper,http.roundtripper,http.RoundTripper).method_result(header->ForeignOpaque("http.header"),round_trip->ForeignOpaque("http.response")).compiler/crates/hy-check/tests/foreign_http_response_writer_round_tripper_surface.rs(4/4 tests pass).Verification
cargo test -p hy-check --test foreign_http_response_writer_round_tripper_surface: 4/4 passed, 0 failed.cargo test -p hy-check --lib: 183/183 passed, 0 failed.origin/main.@jpereyra243-byte(ID:337775728)0xC175c34c256598C7e1AD5B15503cFcED7Ed67e10