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
10 changes: 7 additions & 3 deletions dag/gunbc/commit_workflow.dag
Original file line number Diff line number Diff line change
Expand Up @@ -656,9 +656,13 @@ fn witness_entries_from_enrollments(rows: List<CommitCheckEnrollment>) -> List<S
fold(rows, init: [], f: fn(acc, row) {
match row.check {
CommitWitnessClaim { entry, check_fns, kind, span: _ } =>
concat(acc, fold(check_fns, init: [], f: fn(fns, check_fn) {
concat(fns, [ScheduleWitnessEntry { entry: entry, function: check_fn, kind: kind }])
}))
if check_fns.count() == 0 {
concat(acc, [ScheduleWitnessEntry { entry: entry, function: "", kind: kind }])
} else {
concat(acc, fold(check_fns, init: [], f: fn(fns, check_fn) {
concat(fns, [ScheduleWitnessEntry { entry: entry, function: check_fn, kind: kind }])
}))
}
CommitSpecGate { gate: _ } => acc
CommitCargoFmtCheck => acc
}
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,11 +4,12 @@ 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_resolve;\npub mod v2_compiler_program_partition;\npub mod v2_compiler_tokenize;\npub mod v2_compiler_infer;\npub mod v2_compiler_body_producer;\npub mod v2_compiler_normalize;\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 test_module_hygiene;\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_program_partition;\npub mod v2_compiler_tokenize;\npub mod v2_compiler_infer;\npub mod v2_compiler_body_producer;\npub mod v2_compiler_normalize;\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",
"cli_run",
"test_module_hygiene",
"coproduct_reflection",
"resolved_graph_cache",
"shared_typecheck_store",
Expand All @@ -33,6 +34,7 @@ data generated_pub_mod_basenames: List<String> = [
data generated_stage0_filenames: List<String> = [
"v1_interpreter.rs",
"cli_run.rs",
"test_module_hygiene.rs",
"coproduct_reflection.rs",
"resolved_graph_cache.rs",
"shared_typecheck_store.rs",
Expand Down
2 changes: 2 additions & 0 deletions dag/std/realization_schedule.dag
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,8 @@ fn witness_kind_eq(a: WitnessKind, b: WitnessKind) -> Bool {
}
}

data schedule_witness_entry_function_optional_note: String = "function is OPTIONAL at file grain (umbrella dissolution U3, 2026-07-26): the empty string means Absent — the executor enumerates the entry's test fns through the same path discovery uses (scan_test_decl_names / floor_discovery_scan_test_decl_names). Non-empty keeps fn grain (per-row wet budgets, QuarantineProbeExpectRed probes, roster_registry rows that legitimately stay fn-scoped). CommitWitnessClaim.check_fns: [] projects one ScheduleWitnessEntry with function: \"\". Dissolve-on: Optional<String> when enrollment is derived from discovery (commit_witness_claim_roster_dissolution_trigger)."

type ScheduleWitnessEntry {
entry: String
function: String
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
pub const HAND_MAINTAINED_STAGE0_FILES: &[&str] = &[
"v1_interpreter.rs",
"cli_run.rs",
"test_module_hygiene.rs",
"coproduct_reflection.rs",
"resolved_graph_cache.rs",
"shared_typecheck_store.rs",
Expand Down
9 changes: 8 additions & 1 deletion src/v1/stage0/src/cli_run.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13110,6 +13110,11 @@ pub fn discover_floor_witness_roster(
discovery_scope_dirs: &[String],
) -> Result<Vec<DiscoveryRow>, String> {
floor_filename_hygiene_refusal_via_producer(source_roots)?;
// U2 orphan enroll-or-refuse is implemented in test_module_hygiene (unit RED live) but
// NOT wired into the naming walk on this PR: the live corpus still has dark helpers that
// the companion sweep PR resolves. Wiring here before that sweep fail-closes the floor
// on ~75 pre-existing orphans. Dissolve-on: session/proud-wren-892-full-sweep merge
// (re-enable check_orphan_helpers_or_err here in the same commit as the corpus sweep).
let mut rows = invoke_floor_discovery_producer(source_roots, scan_dirs, exclude_substrings)?;
rows = apply_discovery_scope_dirs_filter(rows, discovery_scope_dirs);
let FloorLensImportGraph {
Expand Down Expand Up @@ -15505,7 +15510,9 @@ fn run_discovery_corpus_with_options_inner(
.iter()
.map(|r| (r.entry.clone(), r.function.clone()))
.collect();
for (entry, function) in explicit_entries {
// U3 — empty function = file-grain: enumerate via the same test-decl scan discovery uses.
let expanded_explicit = crate::test_module_hygiene::expand_explicit_entries(explicit_entries)?;
for (entry, function) in &expanded_explicit {
if seen.insert((entry.clone(), function.clone())) {
rows.push(DiscoveryRow {
label: function.clone(),
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 @@ -21,7 +21,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_resolve;\npub mod v2_compiler_program_partition;\npub mod v2_compiler_tokenize;\npub mod v2_compiler_infer;\npub mod v2_compiler_body_producer;\npub mod v2_compiler_normalize;\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 test_module_hygiene;\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_program_partition;\npub mod v2_compiler_tokenize;\npub mod v2_compiler_infer;\npub mod v2_compiler_body_producer;\npub mod v2_compiler_normalize;\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 @@ -30,7 +30,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_resolve".to_string(), "v2_compiler_program_partition".to_string(), "v2_compiler_tokenize".to_string(), "v2_compiler_infer".to_string(), "v2_compiler_body_producer".to_string(), "v2_compiler_normalize".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(), "test_module_hygiene".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_program_partition".to_string(), "v2_compiler_tokenize".to_string(), "v2_compiler_infer".to_string(), "v2_compiler_body_producer".to_string(), "v2_compiler_normalize".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 @@ -39,7 +39,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(), "census_exclude_derive.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_program_partition.rs".to_string(), "v2_compiler_tokenize.rs".to_string(), "v2_compiler_infer.rs".to_string(), "v2_compiler_body_producer.rs".to_string(), "v2_compiler_normalize.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(), "test_module_hygiene.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(), "census_exclude_derive.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_program_partition.rs".to_string(), "v2_compiler_tokenize.rs".to_string(), "v2_compiler_infer.rs".to_string(), "v2_compiler_body_producer.rs".to_string(), "v2_compiler_normalize.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 @@ -74,6 +74,7 @@ pub mod std_syntax;
pub mod std_termination;
pub mod std_trait_derive_shape;
pub mod std_types;
pub mod test_module_hygiene;
pub mod usv_pilot_v2_std_algebra;
pub mod usv_pilot_v2_std_collection;
pub mod usv_pilot_v2_std_node;
Expand Down
9 changes: 9 additions & 0 deletions src/v1/stage0/src/std_realization_schedule.rs
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,15 @@ pub fn witness_kind_eq(a: WitnessKind, b: WitnessKind) -> bool {
}
}

pub fn schedule_witness_entry_function_optional_note() -> String {
thread_local! {
static CACHED: String = {
"function is OPTIONAL at file grain (umbrella dissolution U3, 2026-07-26): the empty string means Absent — the executor enumerates the entry's test fns through the same path discovery uses (scan_test_decl_names / floor_discovery_scan_test_decl_names). Non-empty keeps fn grain (per-row wet budgets, QuarantineProbeExpectRed probes, roster_registry rows that legitimately stay fn-scoped). CommitWitnessClaim.check_fns: [] projects one ScheduleWitnessEntry with function: \"\". Dissolve-on: Optional<String> when enrollment is derived from discovery (commit_witness_claim_roster_dissolution_trigger).".to_string()
};
}
CACHED.with(|c: &String| c.clone())
}

#[derive(Debug, Clone, PartialEq, serde::Serialize, serde::Deserialize)]
pub struct ScheduleWitnessEntry {
pub entry: String,
Expand Down
Loading
Loading