Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions dag/gunbc/ci_layer_roots.dag
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ data witness_exclusion_substrings: List<String> = [
"self_host_discovery_enumeration_behavioral_witness_test.dag",
"self_host_target_carriers_behavioral_witness_test.dag",
"self_host_body_producer_behavioral_witness_test.dag",
"self_host_03_resolve_behavioral_witness_test.dag",
"dag_collect_fingerprint_witness_test.dag",
"dag_compile_clean_perturb_receipts_test.dag",
"test/claim/diagnostics_test.dag",
Expand Down
4 changes: 3 additions & 1 deletion dag/gunbc/stage0_crate_layout_generated.dag
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import std.types { List, String }

data stage0_crate_layout_generated_note: String = "Generated by gunbc stage0_crate_layout_emit — do not hand-edit. Authority: v2.compiler.self_host.frontier; regen via dag/tools/generated_artifact_gate.dag main_wet."

data generated_pub_mod_block: String = "\npub mod v1_interpreter;\npub mod cli_run;\npub mod coproduct_reflection;\npub mod resolved_graph_cache;\npub mod shared_typecheck_store;\npub mod recorded_fixture;\npub mod memory_governor;\npub mod module_path_index;\npub mod usv_pilot_v2_std_algebra;\npub mod usv_pilot_v2_std_collection;\npub mod usv_pilot_v2_std_node;\npub mod v2_compiler_body_producer;\npub mod v2_compiler_target_carriers;\npub mod v2_compiler_discovery_enumeration;\npub mod v2_compiler_parse_engine_hooks;\npub mod v2_compiler_use_site_verdict;"
data generated_pub_mod_block: String = "\npub mod v1_interpreter;\npub mod cli_run;\npub mod coproduct_reflection;\npub mod resolved_graph_cache;\npub mod shared_typecheck_store;\npub mod recorded_fixture;\npub mod memory_governor;\npub mod module_path_index;\npub mod usv_pilot_v2_std_algebra;\npub mod usv_pilot_v2_std_collection;\npub mod usv_pilot_v2_std_node;\npub mod v2_compiler_resolve;\npub mod v2_compiler_body_producer;\npub mod v2_compiler_target_carriers;\npub mod v2_compiler_discovery_enumeration;\npub mod v2_compiler_parse_engine_hooks;\npub mod v2_compiler_use_site_verdict;"

data generated_pub_mod_basenames: List<String> = [
"v1_interpreter",
Expand All @@ -18,6 +18,7 @@ data generated_pub_mod_basenames: List<String> = [
"usv_pilot_v2_std_algebra",
"usv_pilot_v2_std_collection",
"usv_pilot_v2_std_node",
"v2_compiler_resolve",
"v2_compiler_body_producer",
"v2_compiler_target_carriers",
"v2_compiler_discovery_enumeration",
Expand All @@ -40,6 +41,7 @@ data generated_stage0_filenames: List<String> = [
"usv_pilot_v2_std_algebra.rs",
"usv_pilot_v2_std_collection.rs",
"usv_pilot_v2_std_node.rs",
"v2_compiler_resolve.rs",
"v2_compiler_body_producer.rs",
"v2_compiler_target_carriers.rs",
"v2_compiler_discovery_enumeration.rs",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
module test.claim.self_host_03_resolve_behavioral_witness

import tools.self_host_03_resolve_behavioral_transport { sr_behavioral_receipt_holds }

data self_host_03_resolve_behavioral_witness_doc: String = "Wet self-host behavioral receipt probe for Wave 2 parallel flip (03_resolve): compares gunbc-emitted vs seed arrow_domain_param_scoping_note (03_resolve.dag module authority constant); --inject-fault perturbs emitted comparison (not driver flag). Full resolve-tree walk deferred until emit surface greens (#6775). Live host effects — enroll when frontier flips SelfEmitted with binding."

test fn self_host_03_resolve_behavioral_receipt_holds() -> Bool {
sr_behavioral_receipt_holds()
}
29 changes: 29 additions & 0 deletions dag/tools/self_host_03_resolve_behavioral_transport.dag
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
module tools.self_host_03_resolve_behavioral_transport

import tools.self_host_curated_seed_linked_harness { cssl_seed_linked_behavioral_receipt }
import v2.std.collection { List }
import std.logic { Bool }

data sr_doc: String = "Wave 2 parallel flip (03_resolve self-emit): curated seed-linked behavioral receipt via tools.self_host_curated_seed_linked_harness. Emit ONLY v2.compiler.resolve via gunbc compile --entry; runtime gunbc closure (empty shim_lib + shim_writes) — no committed frozen dep snapshots. Seed oracle: v1_compiler::v2_compiler_resolve in src/v1/stage0 (exported module-authority constants from 03_resolve.dag). Witness compares emitted vs seed on arrow_domain_param_scoping_note with inject-fault perturbing emitted side (parse_engine_hooks pattern). Full resolve-tree behavioral oracle deferred until post-#6775 Rc/Optional emit surface greens. Frontier NOT flipped until rustc-green receipt."

data sr_emit_surface_note: String = "emit-surface rustc refusal probe (03_resolve entry): gunbc compile --entry is clean (0 diagnostics); cargo is the honest gate. Runtime emit supplies dep closure."

data sr_source_rel: String = "src/v2/compiler/03_resolve.dag"

data sr_shim_driver_rel: String = "dag/tools/self_host_03_resolve_shims/witness_main.rs"

data sr_scaffold_dissolution_trigger: String = "dissolve-on: dag/tools/self_host_03_resolve_shims/witness_main.rs + sr harness transport. DISSOLVES WHEN modeled self-host behavioral-equivalence harness emits comparison driver + manifest."

data sr_receipt_pass_marker: String = "SELF_HOST_03_RESOLVE_BEHAVIORAL_RECEIPT: PASS"

fn sr_behavioral_receipt_holds() -> Bool {
cssl_seed_linked_behavioral_receipt(
source_rel: sr_source_rel,
shim_lib_rel: "",
shim_writes: [],
driver_rel: sr_shim_driver_rel,
pass_marker: sr_receipt_pass_marker,
claim_entry_rel: "",
claim_function: ""
)
}
32 changes: 32 additions & 0 deletions dag/tools/self_host_03_resolve_shims/witness_main.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
use v1_compiled::v2_compiler_resolve as emitted;
use v1_compiler::v2_compiler_resolve as seed;

fn sym_eq(a: &str, b: &str) -> bool {
a == b
}

fn main() {
let inject_fault = std::env::args().any(|a| a == "--inject-fault");
let cases: [(&str, String, String); 1] = [(
"arrow_domain_param_scoping_note",
emitted::arrow_domain_param_scoping_note(),
seed::arrow_domain_param_scoping_note(),
)];
let mut all_pass = true;
for (i, (label, e, s)) in cases.iter().enumerate() {
let e_cmp = if inject_fault && i == 0 {
"INJECTED_FAULT".to_string()
} else {
e.clone()
};
let ok = sym_eq(&e_cmp, s);
println!("{label} emitted_len={} seed_len={} eq={ok}", e_cmp.len());
all_pass &= ok;
}
if all_pass {
println!("SELF_HOST_03_RESOLVE_BEHAVIORAL_RECEIPT: PASS");
std::process::exit(0);
}
println!("SELF_HOST_03_RESOLVE_BEHAVIORAL_RECEIPT: FAIL");
std::process::exit(1);
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ pub const HAND_MAINTAINED_STAGE0_FILES: &[&str] = &[
"usv_pilot_v2_std_algebra.rs",
"usv_pilot_v2_std_collection.rs",
"usv_pilot_v2_std_node.rs",
"v2_compiler_resolve.rs",
"v2_compiler_body_producer.rs",
"v2_compiler_target_carriers.rs",
"v2_compiler_discovery_enumeration.rs",
Expand Down
6 changes: 3 additions & 3 deletions src/v1/stage0/src/gunbc_stage0_crate_layout_generated.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ pub fn stage0_crate_layout_generated_note() -> String {
pub fn generated_pub_mod_block() -> String {
thread_local! {
static CACHED: String = {
"\npub mod v1_interpreter;\npub mod cli_run;\npub mod coproduct_reflection;\npub mod resolved_graph_cache;\npub mod shared_typecheck_store;\npub mod recorded_fixture;\npub mod memory_governor;\npub mod module_path_index;\npub mod usv_pilot_v2_std_algebra;\npub mod usv_pilot_v2_std_collection;\npub mod usv_pilot_v2_std_node;\npub mod v2_compiler_body_producer;\npub mod v2_compiler_target_carriers;\npub mod v2_compiler_discovery_enumeration;\npub mod v2_compiler_parse_engine_hooks;\npub mod v2_compiler_use_site_verdict;".to_string()
"\npub mod v1_interpreter;\npub mod cli_run;\npub mod coproduct_reflection;\npub mod resolved_graph_cache;\npub mod shared_typecheck_store;\npub mod recorded_fixture;\npub mod memory_governor;\npub mod module_path_index;\npub mod usv_pilot_v2_std_algebra;\npub mod usv_pilot_v2_std_collection;\npub mod usv_pilot_v2_std_node;\npub mod v2_compiler_resolve;\npub mod v2_compiler_body_producer;\npub mod v2_compiler_target_carriers;\npub mod v2_compiler_discovery_enumeration;\npub mod v2_compiler_parse_engine_hooks;\npub mod v2_compiler_use_site_verdict;".to_string()
};
}
CACHED.with(|c: &String| c.clone())
Expand All @@ -32,7 +32,7 @@ pub fn generated_pub_mod_block() -> String {
pub fn generated_pub_mod_basenames() -> Rc<Vec<String>> {
thread_local! {
static CACHED: Rc<Vec<String>> = {
Rc::new(vec!["v1_interpreter".to_string(), "cli_run".to_string(), "coproduct_reflection".to_string(), "resolved_graph_cache".to_string(), "shared_typecheck_store".to_string(), "recorded_fixture".to_string(), "memory_governor".to_string(), "module_path_index".to_string(), "usv_pilot_v2_std_algebra".to_string(), "usv_pilot_v2_std_collection".to_string(), "usv_pilot_v2_std_node".to_string(), "v2_compiler_body_producer".to_string(), "v2_compiler_target_carriers".to_string(), "v2_compiler_discovery_enumeration".to_string(), "v2_compiler_parse_engine_hooks".to_string(), "v2_compiler_use_site_verdict".to_string()])
Rc::new(vec!["v1_interpreter".to_string(), "cli_run".to_string(), "coproduct_reflection".to_string(), "resolved_graph_cache".to_string(), "shared_typecheck_store".to_string(), "recorded_fixture".to_string(), "memory_governor".to_string(), "module_path_index".to_string(), "usv_pilot_v2_std_algebra".to_string(), "usv_pilot_v2_std_collection".to_string(), "usv_pilot_v2_std_node".to_string(), "v2_compiler_resolve".to_string(), "v2_compiler_body_producer".to_string(), "v2_compiler_target_carriers".to_string(), "v2_compiler_discovery_enumeration".to_string(), "v2_compiler_parse_engine_hooks".to_string(), "v2_compiler_use_site_verdict".to_string()])
};
}
CACHED.with(|c: &Rc<Vec<String>>| c.clone())
Expand All @@ -41,7 +41,7 @@ pub fn generated_pub_mod_basenames() -> Rc<Vec<String>> {
pub fn generated_stage0_filenames() -> Rc<Vec<String>> {
thread_local! {
static CACHED: Rc<Vec<String>> = {
Rc::new(vec!["v1_interpreter.rs".to_string(), "cli_run.rs".to_string(), "coproduct_reflection.rs".to_string(), "resolved_graph_cache.rs".to_string(), "shared_typecheck_store.rs".to_string(), "recorded_fixture.rs".to_string(), "main.rs".to_string(), "phase_profile.rs".to_string(), "pre_push.rs".to_string(), "memory_governor.rs".to_string(), "std_lens_verdict.rs".to_string(), "usv_pilot_v2_std_algebra.rs".to_string(), "usv_pilot_v2_std_collection.rs".to_string(), "usv_pilot_v2_std_node.rs".to_string(), "v2_compiler_body_producer.rs".to_string(), "v2_compiler_target_carriers.rs".to_string(), "v2_compiler_discovery_enumeration.rs".to_string(), "v2_compiler_parse_engine_hooks.rs".to_string(), "v2_compiler_use_site_verdict.rs".to_string()])
Rc::new(vec!["v1_interpreter.rs".to_string(), "cli_run.rs".to_string(), "coproduct_reflection.rs".to_string(), "resolved_graph_cache.rs".to_string(), "shared_typecheck_store.rs".to_string(), "recorded_fixture.rs".to_string(), "main.rs".to_string(), "phase_profile.rs".to_string(), "pre_push.rs".to_string(), "memory_governor.rs".to_string(), "std_lens_verdict.rs".to_string(), "usv_pilot_v2_std_algebra.rs".to_string(), "usv_pilot_v2_std_collection.rs".to_string(), "usv_pilot_v2_std_node.rs".to_string(), "v2_compiler_resolve.rs".to_string(), "v2_compiler_body_producer.rs".to_string(), "v2_compiler_target_carriers.rs".to_string(), "v2_compiler_discovery_enumeration.rs".to_string(), "v2_compiler_parse_engine_hooks.rs".to_string(), "v2_compiler_use_site_verdict.rs".to_string()])
};
}
CACHED.with(|c: &Rc<Vec<String>>| c.clone())
Expand Down
1 change: 1 addition & 0 deletions src/v1/stage0/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@ pub mod v1_test_non_ascii_perf_fixture;
pub mod v2_compiler_body_producer;
pub mod v2_compiler_discovery_enumeration;
pub mod v2_compiler_parse_engine_hooks;
pub mod v2_compiler_resolve;
pub mod v2_compiler_target_carriers;
pub mod v2_compiler_use_site_verdict;
pub mod wt_a;
Expand Down
9 changes: 9 additions & 0 deletions src/v1/stage0/src/v2_compiler_resolve.rs
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
// Seed realization for v2.compiler.resolve (Wave 2 parallel flip).
// Hand-retained Rust oracle — independent of the self-emitted artifact under test.
// Dissolve-on: self-emit cutover retires this module when v2.compiler.resolve
// is emitted-only and the behavioral harness is modeled (sr_scaffold_dissolution_trigger).

/// Mirrors `data arrow_domain_param_scoping_note` in src/v2/compiler/03_resolve.dag.
pub fn arrow_domain_param_scoping_note() -> String {
"Wave 1 Gate 1 A1: param scoping is add_arrow_domain_named_params over lowered Arrow domain Named edges (general-body-producer-design Stage A). dag_fn_decl_param_binding_atoms and scope_with_fn_decl_params dissolved. fn_decl ident now routes through StampLexeme and SymbolIndex fill carries module_qn.fn.param (parity proven by execution); domain construction remains interim param-list-walk (body_lower_domain_from_param_list) until domain is built from SymbolIndex lookup rather than walked from the param list.".to_string()
}
3 changes: 2 additions & 1 deletion src/v2/compiler/self_host/frontier.dag
Original file line number Diff line number Diff line change
Expand Up @@ -910,7 +910,8 @@ data seed_retained_intrinsic_registrations: List<SeedRetainedIntrinsicRegistrati
data seed_retained_scaffold_registrations: List<SeedRetainedScaffoldRegistration> = [
SeedRetainedScaffoldRegistration { basename: "usv_pilot_v2_std_algebra" },
SeedRetainedScaffoldRegistration { basename: "usv_pilot_v2_std_collection" },
SeedRetainedScaffoldRegistration { basename: "usv_pilot_v2_std_node" }
SeedRetainedScaffoldRegistration { basename: "usv_pilot_v2_std_node" },
SeedRetainedScaffoldRegistration { basename: "v2_compiler_resolve" }
]

fn intrinsic_pub_mod_basename_from_row(row: SeedRetainedIntrinsicRegistration) -> List<String> {
Expand Down
Loading