S232 · SOURCE-BOUND GATE EVIDENCE
G8l: production migration-lifecycle S178 execution-receipt boundary
Operations --test hedefi → test hedefiyle aynı adlı uygulama/model modülü → kaynak kesiti Bu sayfa yalnız S232 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S232Focused kod testiOperations id exactsource SHA exacttest target exact
operation: g8l-s232-production-migration-lifecycle-s178-execution-receipt-partial
uygulama/model · focused test · Operations · 3 exact excerpt
sequence-bound=true · implementation-bound=true
01 · Testin bağlı olduğu uygulama/model kodu
Kapının yürüttüğü gerçek kaynak
tam Rust öğesiL64–L93
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s178_execution_receipt.rs::prepare_production_s187_handoff_from_production_s178_execution_receipt
/// CPU0 source half of the S178 -> S179 -> S180 -> S181 -> S182 -> S183 ->
/// S187 path. The returned S187 handoff is still not proof of cross-CPU
/// delivery.
#[cfg(all(target_arch = "aarch64", target_os = "none"))]
pub unsafe fn prepare_production_s187_handoff_from_production_s178_execution_receipt(
runtime: G8lRuntimeAuthority,
authority: G8lSchedulerOwnerAuthority,
execution_receipt: G8lTargetDispatchExecutionReceipt,
) -> Result<
crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s186_mapping_retirement::G8lProductionMigrationLifecycleS187Handoff,
G8lProductionMigrationLifecycleS178ExecutionReceiptError,
>{
let caller_cpu = crate::percpu::try_current_cpu_id()
.ok_or(G8lProductionMigrationLifecycleS178ExecutionReceiptError::WrongSourceCpu)?;
if caller_cpu != CPU0 {
return Err(G8lProductionMigrationLifecycleS178ExecutionReceiptError::WrongSourceCpu);
}
let execution_caller =
G8lTargetDispatchExecutionCaller::from_execution_receipt(&runtime, execution_receipt)
.map_err(G8lProductionMigrationLifecycleS178ExecutionReceiptError::ExecutionCaller)?;
unsafe {
crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s179_execution_caller::prepare_production_s187_handoff_from_production_s179_execution_caller(
runtime,
authority,
execution_caller,
)
}
.map_err(G8lProductionMigrationLifecycleS178ExecutionReceiptError::S179)
}snippet sha256: fe64ac5e3e07…file sha256: 51af54b563a6…
02 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL103–L122
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s178_execution_receipt.rs::s232_keeps_scheduler_gic_eret_and_physical_boundaries_closed
#[test]
fn s232_keeps_scheduler_gic_eret_and_physical_boundaries_closed() {
let source = include_str!("../../kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s178_execution_receipt.rs");
for forbidden in [
"task::scheduler",
"SCHEDULER",
"gic::",
"send_sgi",
"runtime.context_switch(",
"write_ttbr0",
"eret()",
"power_on",
] {
assert!(
!source.contains(forbidden),
"forbidden S232 marker: {forbidden}"
);
}
}snippet sha256: 87749c3bf660…file sha256: 751f85132c12…
03 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL20021–L20072
website/src/lib/operations.ts::g8l-s232-production-migration-lifecycle-s178-execution-receipt-partial
{
id: "g8l-s232-production-migration-lifecycle-s178-execution-receipt-partial",
date: "2026-08-25",
sequence: 232,
status: "passed",
umbrella_status: "partial",
title:
"G8l: production migration-lifecycle S178 execution-receipt boundary",
summary:
"S232 13/13 PASS ile live CPU0'ın exact non-Copy S178 execution receipt'ini target gate sonrasında by-value tüketmesini, mevcut S179 execution-caller constructor'ını bir kez çağırmasını ve S230/S229/S228/S227/S226/S225/S224 CPU0 producer üzerinden non-Copy S187 handoff döndürmesini source/ABI olarak sabitledi; literal CPU0 impersonation yoktur. Ayrı CPU1 consumer ile downstream invoke edilmedi; exact production scheduler mutation, cross-CPU delivery, GIC/SGI, ERET ve runtime bağlı değildir.",
evidence: [
"S232 focused grubu iki bağımsız koşuda 13/13 PASS: by-value S178 ABI, S179 constructor reuse, S178→S179→S180→S181→S182→S183→S184→S185→S186→S187 order, target CPU0 gate, error surface ve scheduler/GIC/ERET/hardware sınırları doğrulandı.",
"Focused koşular byte-eşit kaldı: 128 B / SHA-256 02983f1a7d644519bfddb0884a6cd0ce69f40c4b845eb54b71ecdc6e19a8ff09.",
"S206 callsite/readback + S207 invocation + S208 return + S209 handoff + S210 acknowledgement/caller + S211–S232 dependency matrix frozen S231 prefix'i üzerine 29 grup / 355/355 PASS ve 3688 B / SHA-256 9baf2120785c8e3417a43ea99eda3f8243ad5433ffe8ce986bfde6cfdcb3f3ab verdi; ilk 3560 B exact S231 dependency prefix'idir.",
"S155–S232 explicit sequence-ordered matrix frozen S231 prefix'i üzerine 81 grup / 838/838 PASS ve 10099 B / SHA-256 f61c7c69af8d0ddd33634ffebbfce652cb05f47ea0abe6a28b306d3555235f66 verdi; exact S231 9971 B prefix'i korundu.",
"RPi5 AArch64 compile PASS: 614 warning envanterlendi; 303492 B / SHA-256 fc82565daa4be65638191c69992d728ab6ea500d6e9543d0df05776b33fd75b2. smp: 614 warning, 303434 B / SHA-256 84eeca1270996c7e80c8c9456d885a9874587a61189c77ce25be88d7f897a545. Zero-warning iddiası yoktur.",
"Kalıcı kapsam: docs/M8.1-RPi5-G8l-S232-Migration-Lifecycle-S178-Execution-Receipt-Proof.md.",
"S232 exact S178 execution-receipt boundary'sini by-value tüketir, mevcut S179 constructor'ını bir kez çağırır ve S230/S229/S228/S227/S226/S225/S224 CPU0 producer üzerinden non-Copy S187 handoff döndürür. Target-only producer live CPU0'ı tüketimden önce doğrular; ayrı CPU1 consumer, downstream, gerçek scheduler mutation, cross-CPU delivery, boot veya migration runtime callsite'ı invoke edilmedi.",
"S232 fiziksel/device operasyonu yapmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S232=NO.",
"Canlı marker: S232_13_OF_13_MIGRATION_LIFECYCLE_S178_EXECUTION_RECEIPT_LIVE_CPU0_GATE_S178_NONCOPY_BY_VALUE_EXACT_S179_EXECUTION_CALLER_S230_S229_S228_S227_S226_S225_S224_CPU0_PRODUCER_S187_NONCOPY_HANDOFF_RETURNED_CPU1_CONSUMER_NOT_INVOKED_DOWNSTREAM_NOT_RUNTIME_INVOKED_CROSS_CPU_DELIVERY_NOT_WIRED_NO_LITERAL_CPU0_IMPERSONATION_NO_REPLACEMENT_NO_RETRY_AARCH64_COMPILED_PRESENT_REQUEST_NOT_OBSERVED_LEGACY_SCHEDULER_ACCESSES_UNCOVERED_WHOLE_SCHEDULER_GIC_HARDWARE_QEMU_PHYSICAL_CPU2_CPU3_HOTPLUG_SOAK_GENERIC_SMP_OPEN_FULL_PHYSICAL_RUNBOOK_VISIBLE_S392_TO_S442_S417_NO_RUNBOOK_EXECUTED_IN_S232_VERIFIED; deployment-specific route/hash evidence is recorded in the project-status manifest.",
],
commands: [
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s178_execution_receipt -- --test-threads=1",
"cargo check --quiet --manifest-path kernel/Cargo.toml --target aarch64-unknown-none --no-default-features --features board-rpi5",
"cargo check --quiet --manifest-path kernel/Cargo.toml --target aarch64-unknown-none --no-default-features --features board-rpi5,smp",
],
terminalSessions: [
{
id: "s232-g8l-production-migration-lifecycle-s178-execution-receipt",
title: "G8l S232 migration-lifecycle S178 execution-receipt boundary",
commandLines: [
"cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s178_execution_receipt -- --test-threads=1",
],
outputLines: [
"test result: ok; 13 passed; 0 failed",
"production ABI: non-Copy S178 consumed by value; existing S179 execution-caller constructor reused",
"target-only CPU0 gate precedes S178 consumption; S230/S229/S228/S227/S226/S225/S224 CPU0 producer returns non-Copy S187",
"separate CPU1 consumer and downstream are not invoked",
"scheduler mutation, GIC/SGI, ERET, exact production runtime and physical operation are not invoked",
],
exitCode: 0,
outputMode: "selected",
},
],
terminalSessionsNote:
"Terminal özeti S232 exact S178→S179 source/ABI sınırını ve target CPU0 fail-closed kapısını gösterir; exact production scheduler runtime, QEMU veya fiziksel cihaz çalıştırması değildir.",
limitations: [
"S232 S178→S179→S230/S229/S228/S227/S226/S225/S224 CPU0 producer→S187 boundary'sini source/ABI ve AArch64 compile olarak bağlar; ayrı CPU1 consumer, downstream delivery ve exact production scheduler execution/runtime iddia edilmez.",
"Production scheduler mutation, whole-scheduler exclusion, GIC/SGI delivery, ERET/context-switch assembly, QEMU present-tuple yolu, fiziksel RPi, CPU2/CPU3, hotplug, soak ve Generic SMP açıktır.",
"S232 fiziksel/device operasyonu yapmadı; RUNBOOK_EXECUTED_IN_S232=NO.",
],
},snippet sha256: 142cbcbaf291…file sha256: 9726dbf00f84…
Focused test komutu
cargo test --quiet -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s178_execution_receipt -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S232-Migration-Lifecycle-S178-Execution-Receipt-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06