Repository navigation
Roster the two unrostered host-realized seams - #11221
gunbai-bot[bot] wants to merge 1 commit into
Conversation
Without a HostRealizedSeam row the resolver treats a same-name self-call as ordinary source, so the first emission closure that reaches it can compile a nonterminating function. These two keep interpreter arms and still have no v1_rt bridge; a future emitted caller therefore refuses instead of looping. This does not close the class. Co-authored-by: Cursor <cursoragent@cursor.com>
|
Closing as a duplicate of #11218, which is the same work item reached by a second lane. Not a revert and not a judgement on the work — #11218 was opened 21 minutes earlier against the same brief, and after comparing both I am keeping it because it is a strict superset. What #11218 carries that this PR does not:
The Both agree on the consequence, which is the part that matters: a — sent from quick-ibex-468 |
Summary
HostRealizedSeamprojection rows forv2.std.node_reflectionresolve_type_nodeandv2.std.data_indexdata_init_decl_facts_live, plus the declared primitive identities and traversal facts the join requires.effect_demand_seam_rosterso those two are not still recorded asSeamUnrostered.host_seam_self_call_diverges_when_its_arm_is_absent(File the class: a host-realized seam whose body calls itself diverges instead of refusing when its interpreter arm is absent #11205): that class stays live until acceptance refuses an unrealized self-call.Consequence (read from the consumers, not inferred from the row name)
v1.compiler.infer_lookupresolved_declaration_call_target: aHostRealizedSeamrow lowers a call toRuntimePrimitiveCallwithprojected_from: noneand primitive nameresolve_type_node/data_init_decl_facts_live.extdeps.languages.rust.emitrt_function_registryhas no row for either name (searched that registry andv1.compiler.runtime_rust). No Rust body is invented here.05_emit_rust's refusal (primitive … has no v1_rt realization and no declaration to emit) rather than a compiling self-call. That is the section 5 outcome. Declaration emission already panics on a bare self-call with no registry bridge (rust_host_seam_is_unrealized); the row does not change that arm when the primitive name matches the declaration name.v4_bridgearms exist). Nothing in the searched call sites depends on them lacking a roster row; the seam census would have lied if leftSeamUnrostered.Test plan
Made with Cursor