S376 · SOURCE-BOUND GATE EVIDENCE
S376 · EL0 notification-signal production writer guard integration
tam production Rust öğesi + exact acquire→release odağı → S247 guard modülü → Operations-bound focused test Bu sayfa yalnız S376 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S376Production writer guardOperations id exactsource SHA exacttest target exact
operation: g8l-s376-el0-notification-signal-writer-guard-integration-partial
production · S247 guard · focused test · Operations · 4 exact excerpt
sequence-bound=true · implementation-bound=true
01 · Test edilen uygulama/model kodu
Kapının yürüttüğü gerçek kaynak
tam Rust öğesiL566–L627kapı odağı L585–L598
kernel/src/arch/aarch64/exceptions.rs::handle_notification_signal
Tam kapsayıcı Rust öğesi gösterilir; vurgulu blok yalnız S376 exact production writer üyeliği sınırıdır. Komşu kod, guard kapsamı iddiası değildir.
fn handle_notification_signal(ctx: &mut ExceptionContext) {
let notification_id = ctx.gpr[0];
let bits = ctx.gpr[1];
let signaler_task = crate::task::current_task_id().unwrap_or(0);
let authority = crate::task::current_task_cnode()
.and_then(|cnode| cnode.lookup_capability_by_id(notification_id).copied())
.filter(|capability| {
capability.kind == crate::ui::capability::CapabilityKind::Notification
&& capability
.rights
.contains(crate::ui::capability::CapabilityRights::NOTIFICATION_SIGNAL)
});
let Some(authority) = authority else {
set_ipc_error(ctx, IpcError::InvalidCapability);
return;
};
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
let s376_irq_guard = crate::arch::aarch64::IrqGuard::new();
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
let s376_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s376_el0_notification_signal_writer_guard_integration::acquire_s376_production_scheduler_writer_access()
.unwrap_or_else(|error| {
panic!(
"S376 EL0 notification-signal scheduler writer guard failed closed: {:?}",
error
)
});
let signal = unsafe {
let scheduler = &mut *core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER);
scheduler.notification_signal(notification_id, authority.generation, bits)
};
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s376_writer_access);
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s376_irq_guard);
match signal {
Ok(crate::ipc_notification::NotificationSignalOutcome::Coalesced { pending }) => {
kprintln!(
"[K2-S146] SYS_NOTIFICATION_SIGNAL task={} notification={} bits=0x{:x} outcome=COALESCED pending=0x{:x}",
signaler_task,
notification_id,
bits,
pending,
);
set_notification_result(ctx, pending);
}
Ok(crate::ipc_notification::NotificationSignalOutcome::Wake {
observed, pending, ..
}) => {
kprintln!(
"[K2-S146] SYS_NOTIFICATION_SIGNAL task={} notification={} bits=0x{:x} outcome=WAKE observed=0x{:x} pending=0x{:x}",
signaler_task,
notification_id,
bits,
observed,
pending,
);
set_notification_result(ctx, pending);
}
Err(error) => set_ipc_error(ctx, error),
}
}snippet sha256: 2f599eabab3f…file sha256: 6f3a4c8dbf40…focus sha256: 773e7e5762f6…
02 · Ortak exclusion üyeliği
S247 production writer guard
tam Rust öğesiL191–L203
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s376_el0_notification_signal_writer_guard_integration.rs::acquire_s376_production_scheduler_writer_access
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
pub fn acquire_s376_production_scheduler_writer_access(
) -> Result<G8lS376ProductionSchedulerWriterAccess, G8lS247WholeSchedulerAccessError> {
let caller_cpu =
crate::percpu::try_current_cpu_id().ok_or(G8lS247WholeSchedulerAccessError::InvalidCpu)?;
if caller_cpu != crate::g8l_runtime_contract::CPU0 {
return Err(G8lS247WholeSchedulerAccessError::InvalidCpu);
}
let access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s246_whole_scheduler_read_access_guard::S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE
.try_acquire_exclusive_for_valid_cpu(caller_cpu)?;
Ok(G8lS376ProductionSchedulerWriterAccess { _access: access })
}snippet sha256: 7289792c4aaf…file sha256: f726efa9ec2a…
03 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL381–L393
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s376_el0_notification_signal_writer_guard_integration.rs::signal_handler_has_exactly_one_s376_acquire_and_release
#[test]
fn signal_handler_has_exactly_one_s376_acquire_and_release() {
let handler = notification_signal_handler();
assert_eq!(
handler
.matches("acquire_s376_production_scheduler_writer_access")
.count(),
1
);
assert_eq!(handler.matches("drop(s376_writer_access)").count(), 1);
assert_eq!(handler.matches("drop(s376_irq_guard)").count(), 1);
}snippet sha256: 0e8a2759de0b…file sha256: 282be3197266…
04 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL9459–L9626
website/src/lib/operations.ts::g8l-s376-el0-notification-signal-writer-guard-integration-partial
{
id: "g8l-s376-el0-notification-signal-writer-guard-integration-partial",
date: "2026-08-29",
sequence: 376,
status: "passed",
umbrella_status: "partial",
title: "S376 · EL0 notification-signal production writer guard integration",
summary:
"S376, handle_notification_signal içindeki exact scheduler.notification_signal(notification_id, authority.generation, bits) mutable scheduler sınırını S375 ve 44 production reader'ın kullandığı aynı statik S247 state word'e bağlar. notification_id/bits, current-task identity ve live Notification + NOTIFICATION_SIGNAL CNode authority writer'dan önce tamamlanır. RPi5 bare-metal kesişiminde dedicated IRQ guard kurulur, gerçek per-CPU kimliğiyle yalnız CPU0 için S376 exclusive writer alınır ve exact tek mutable SCHEDULER aliası üzerinden synchronous notification_signal yürütülür. Scheduler transaction altında live signaler, generation, signal right, deadline, waiter, waiter CNode authority ve ready capacity koşullarını yeniden doğrular. Owned signal sonucu kurulduktan sonra önce writer, sonra IRQ bırakılır; Coalesced, Wake ve error publication dalları üyelik dışındadır ve writer altında context switch yoktur. Tarihsel S306 model audit'i ve S375 reply-alias üyeliği ayrı kalır. Guarded writer 49/69, açık writer 20, provider authority 0, whole-scheduler exclusion false ve supported-profile runtime observation=0'dır. S377 notification wait-timeout sıradaki ayrı kapıdır.",
evidence: [
"İlk focused komut, S376 production modülü, kernel/simulation registration ve handle_notification_signal membership'i henüz yokken compile RED verdi; kapı S375'in içine topluca yazılmadan ayrı kaynak birimi gerektirdi.",
"İlk RED logu 2073 B / d2422b4a4ba9cd2dcb72be031b459e2d7cbc97db3c7db38a2010b553a824edba SHA-256; artifact /tmp/aselsanos-s376-focused-red.FcdfZz'dir.",
"S376 modülü S375 typed preflight outcome'unu yeniden doğrular; inherited inventory exact 44 reader + 48 guarded writer + 21 open writer değilse InventoryDrift ile kapanır.",
"S376 başarı outcome'u FortyNinthWriterGuardedAwaitingRemaining'dir ve 44 guarded reader + 49/69 guarded writer + 20 open writer envanterini sabitler.",
"Production wrapper exact target_arch=aarch64, target_os=none, feature=board-rpi5 cfg kesişimindedir; host executor production CPU kimliği veya runtime invocation diye sunulmaz.",
"acquire_s376_production_scheduler_writer_access, try_current_cpu_id ile gerçek per-CPU kimliğini türetir; caller-supplied production CPU parametresi yoktur ve CPU0 dışı InvalidCpu ile fail-closed kapanır.",
"Writer lease S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE üzerinde try_acquire_exclusive_for_valid_cpu ile alınır; 44 reader ve önceki 48 writer'dan ayrı model gate veya yeni static yaratılmaz.",
"Host executor callback'i exact bir kez çağırır; canlı reader veya writer callback'ten önce ExclusiveBusy üretir, CPU1–CPU_MAX InvalidCpu verir ve callback error RAII lease'i exact bir kez bırakır.",
"S375 ve S376 host executor token'ları aynı gate üzerinde monoton ve distinct'tir; iki kapı tek transaction veya tek sequence dispatcher olarak birleştirilmez.",
"Exact production giriş sınırı arch/aarch64/exceptions.rs içindeki handle_notification_signal fonksiyonudur; S376 rust_el0_sync_handler'ın başka IPC branch'lerini coverage'a katmaz.",
"notification_id=ctx.gpr[0] ve bits=ctx.gpr[1] immutable scalar snapshot'ları writer edinilmeden önce alınır.",
"current_task_id writer öncesinde owned signaler_task scalar'ına çevrilir; scheduler aliasından reader türetilmez.",
"current_task_cnode lookup exact notification_id için yapılır; CapabilityKind::Notification ve CapabilityRights::NOTIFICATION_SIGNAL birlikte writer öncesinde doğrulanır.",
"Authority yoksa set_ipc_error(ctx, IpcError::InvalidCapability) ve return S376 IRQ/writer acquisition'dan önce gerçekleşir; scheduler graph ve gate state değişmez.",
"Dedicated s376_irq_guard mutable scheduler aliasından önce local interrupt re-entry'yi kapatır; s376_writer_access IRQ guard'dan sonra, alias kurulmadan önce alınır.",
"handle_notification_signal içinde exact bir acquire_s376_production_scheduler_writer_access, bir mutable SCHEDULER aliası, bir scheduler.notification_signal(notification_id, authority.generation, bits), bir drop(s376_writer_access) ve bir drop(s376_irq_guard) vardır.",
"Guarded source slice acquire_s376_production_scheduler_writer_access → addr_of_mut!(SCHEDULER) → scheduler.notification_signal(notification_id, authority.generation, bits) → drop(s376_writer_access) exact sırasını taşır.",
"Owned signal result scheduler forward'ı tamamlandıktan sonra local değerdir. drop(s376_writer_access) writer state'i, sonraki drop(s376_irq_guard) local IRQ maskesini sonuç incelenmeden bırakır.",
"Coalesced ve Wake kprintln/set_notification_result dalları ile Err set_ipc_error dalı writer ve IRQ bırakıldıktan sonra çalışır; downstream result branches under writer=0'dır.",
"Notification signal synchronous'tir; guarded slice ipc_call_commit_and_park, ipc_recv_or_park, context_switch veya durable resume/rejoin taşımaz.",
"Scheduler notification_signal existing IPC_TRANSACTION_LOCK, notification registry, deadline ve waiter graph lock sırasını korur.",
"Scheduler current signaler task'ı ve CNode'daki exact Notification authority generation + NOTIFICATION_SIGNAL right'ı yeniden doğrular; stale grant commit'i açmaz.",
"Pending bits coalescing exact object üzerinde yapılır; waiter yoksa durable pending maskesi döner ve ready queue mutasyonu oluşmaz.",
"Waiter varsa notification id/generation, blocked state ve deadline identity aynı transaction altında doğrulanır; stale waiter veya generation fail-closed kalır.",
"Waiter CNode'daki NOTIFICATION_WAIT authority ile object generation eşleşir; başka object veya revoked grant wake'i açmaz.",
"Ready capacity wake commit'inden önce reserve edilir; capacity failure kısmi waiter/deadline/CNode publication bırakmaz.",
"Wake yolunda exact waiter ve deadline retire edilir, pending bits durable payload'a taşınır, task Ready olur ve ready queue publication aynı scheduler transaction'ında tamamlanır.",
"Tarihsel S306 yalnız writer-authority audit modelidir. Canlı S376 membership'i S306 sequence kimliğini veya kapanış anındaki inventory snapshot'ını değiştirmez.",
"S377 handle_notification_wait_timeout branch'i S376 acquire taşımadığı source assertion'ıyla ayrı tutulur; wait-timeout writer kapısı açık kalır.",
"CPU1 coverage service timer zincirinde S375'ten sonra ve S242 sender service'ten önce çalışır; yalnız pending S245 view inspect eder, request take veya production writer acquire etmez.",
"İlk production focused koşu 47/49 verdi. İki RED davranış veya üyelik değil; modül açıklamasındaki exact S306 adı ile 20-open-writer cümlesinin source-literal biçimiydi.",
"İlk production logu 5138 B / 93da93977fe74e5df6d1798c2dce1dcb3f52d43c97ab5149bee337fb1a19583a SHA-256; artifact /tmp/aselsanos-s376-focused-production.vQxYkV'dir.",
"Bir incremental rustc denemesi G8lS376WriterGuardIntegrationError Freeze query ICE ile durdu. Bu ürün RED'i sayılmadı; destructive cleanup yapılmadan CARGO_INCREMENTAL=0 ile tekrarlandı.",
"ICE logu 18387 B / 86b931fff762f9c49920d536a2318414666d15a64a42dcea2fa8bf42135df5a5 SHA-256; artifact /tmp/aselsanos-s376-focused-final.KWJ41N'dir.",
"Rustfmt exact notification_signal call'ını tek satıra getirdikten sonra iki source assertion gerçek spelling ile hizalandı; ürün kodu, coverage veya fail-closed assertion gevşetilmedi.",
"Final focused S376 49/49 PASS / 0 fail verdi. Log 3951 B / 0b53e8a52761d2deff920ce2225e4b84e2b3bbbd3ee335c0bc0796850cad7aae; artifact /tmp/aselsanos-s376-focused-green.1E40na'dır.",
"Seçili 11 grupluk ilk koşu 345 PASS / 6 fail verdi; yalnız S306'nın beş ve S307'nin bir tarihsel source assertion'ı eski inline notification_signal yazımını bekliyordu.",
"S306/S307 testleri canlı exact scheduler.notification_signal(notification_id, authority.generation, bits) spelling'ini tanıyacak şekilde hizalandı; tarihsel authority/inventory kapsamları korunup product assertion gevşetilmedi.",
"Final seçili regresyon S376/S375/S306/S307/S358/S363/S370/S371 ve üç notification runtime grubunda 11 grup / 351/351 PASS / 0 fail verdi.",
"Selected final summary 1544 B / 24f93f13da34b29dfc435f94b0452fc3f302e991f547d28bdef67573debc56f6 SHA-256; artifact /tmp/aselsanos-s376-selected-final.8jdgkW'dir.",
"S238–S376 dependency listesi 140 gruptur. İki bağımsız seri koşunun her biri 3213/3213 PASS / 0 fail verdi.",
"İki süre-dışı kanonik dependency özeti 23106 B ve 6f20622bfe38cad1af63dd45e3d46172168ea8470b62e0aed84f677f6be3c854 SHA-256 ile byte-eşittir; artifact /tmp/aselsanos-s376-dependency.MuSqJu'dur.",
"Exact yedi frozen G8h assertion dışındaki seri workspace 339 sonuç grubu / 5080 PASS / 0 fail / 7 filtered verdi.",
"Filtered workspace log 72801 B / 0715326b9544264b72f5c78a4becae85b1df26ede4c15234a0ddb0b71cd8d501; summary 25644 B / 59d9ec93d3a13e1a3253beaec6ab8849c6f67fc73d3a82e5e911bb7fbfa5edae'dir.",
"Filtresiz workspace exit 101 ile yalnız frozen S96 wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope reddinde durdu: 292 grup / 4825 PASS / 1 fail; global workspace GREEN iddia edilmez.",
"Filtresiz log 68023 B / 96af9f3f84455c3b9b6255010638ea406b2b1b0782349fa353719cc94685afb4; summary 22118 B / 70e0beb3a56249b755f3c4e9c8dfb3d07ef6e069867849b8603925cf146017f6'dır. Workspace artifact /tmp/aselsanos-s376-workspace.2YZxyM'dir.",
"Fresh izole AArch64 profilleri 4/4 exit 0 verdi. board-qemu log 111450 B / 171043bb132dc7d6faa1d4a3cf24515799388ade1a9a5252a68314cdfdc94145, ELF 12216992 B / af52cbb350d69b6f6e09403faf041492cf77709df4fd8757e9b9a93d82fd4d71'dir.",
"board-rpi4 log 150191 B / 22d34513c824e46b0a49fff3ec80e97c521afddfac128468bbb451d3ba91a8af, ELF 7421608 B / f2783373582e0b79349a7e300a9dffa580da31148eef9fbd3e59d71c5c06b5fe'dir.",
"board-rpi5 log 618654 B / 4ed61a50cc7a63bbe1f473ebd28e0c1c23f9d3726b9f296e3f85e7eb7d656dea, ELF 10809552 B / 5a2baeb5567de922542f0d19eb9e6d32c14d411977b797e3f7ac24ac7159b5da'dır.",
"board-rpi5+smp log 618596 B / 6322110aef74ea60b5f5c5f68651e44f3fa8df57b1b675f3a99986ddd8b769cc, ELF 10836352 B / c9d7489a5fdc4d86800afe30d993c0458d3db592514befb99dfe5553d83d603c'dir. Zero-warning iddiası yoktur.",
"CARGO_INCREMENTAL=0 make verify-qemu exit 0 verdi. 116431 B log / 83f01fe09538843afb4fa46940e8780b4e9a6b20e18751c318f60d04acdc3b7d SHA-256 ile W^X 31/31, S130–S154+S271, RuntimePmm, EL0x4096, IPC reply 20/20 ve scheduler SEC5 PASS'tir.",
"Ortak board-qemu regresyonu RPi5-only S376 production wrapper invocation kanıtı değildir; supported-profile runtime observations=0 kalır.",
"cargo fmt --all -- --check exit 0 ve boş çıktı verdi. Format log 0 B / e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855'tir.",
"Source-bound Kod hedefi S1–S376 376/376 ayrı kapı, pre-S328 S1–S327 327/327, missing=none ve duplicate=0'dır. S376 kartı S306/S375/S377 kartlarıyla birleştirilmez.",
"S376 Code kartı gerçek handle_notification_signal tam Rust öğesini ve exact acquire→single alias→notification_signal→release focus'unu, ayrı guard modülünü, focused testi ve exact Operations object'ini yayımlar.",
"Her Code excerpt exact repository path, tam kaynak birimi satır aralığı, file SHA-256 ve snippet SHA-256 taşır; stale registry test/build/deploy öncesi fail-closed reddedilir.",
"S1–S327 tarihsel kapılar Operations sequence kimliğiyle 327/327 ayrı kart olarak korunur; S328 öncesi kayıtlar generic placeholder içinde birleştirilmez veya S328 kartına eklenmez.",
"İlk source-bound registry S1–S376 aralığında 376/376 unique kapı / 1069 exact excerpt / pre-S328 S1–S327 327/327 / missing=none / duplicate=0 üretti; JSON 7751958 B / e48224bf7699dacf6c9dd05577e8363c6d87c7d816e49fc3bd2cda7dab3d43a7 dosya SHA-256 ve f6ad56fa4f17698ae86d2aee11d75fd67e80d446eadee8888bab4f2d102b4806 registry SHA-256 taşır.",
"İlk website kabulü 664/664 test, lint, boş TypeScript çıktısı ve 24/24 static page PASS verdi; export 201 dosyadır.",
"İlk production/main deployment 086f3c6b ile 116 uploaded + 84 existing = 200 asset olarak tamamlandı; deploy logu 1800 B / a2975812f79daa4e489d2d96f456b21e86d73f9ec968b5bff4105f7c14f1322f SHA-256'dır.",
"Cache-busted custom-domain /code/ 22241967 B / a29d7a9adcd34251f27b37599c3bed0589d70d1130b95579a8be96bf8ddaf7c2, /operations/ 13290109 B / 46c6fdd7be0090b164834366efaa45837bf44c4a298746d7657438c7115cde0b, /timeline/ 5253311 B / 63ed865d51bd9af7f1d8c0d4b1ed53cf2976aeca1d38f54a34f1624598a9fae9 ve /yol-haritasi/ 5253059 B / 03b7ba6b4b30a55a8591ad8e5a36a9391ab1e4a2b1c54897aa74603f8df9f14d ile HTTP 200 ve yerel out'a raw byte-exact PASS verdi.",
"Canlı /code/ no-transform header'ı taşır; literal data-code-gate sayımı 376/376 unique, pre-S328 S1–S327 327/327, S1=1, S327=1, S328=1 ve S376=1'dir. Immutable 086f3c6b hostname probe'u curl exit 28 / HTTP 000 verdi; custom-domain PASS bunun yerine geçirilmez.",
"S376 sırasında güç, SD kart, Mac kart erişimi, UART capture, raw validation, archive veya promotion yapılmadı: physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S376=NO.",
"S376 bazlı bağlayıcı olmayan planlama görünümü R1 S376–S406, R2 S431–S481, R3 S560+, kaba S536–S586 ve risk paylı merkez yaklaşık S561'dir; ürün veya sıra taahhüdü değildir.",
],
commands: [
"CARGO_INCREMENTAL=0 cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s376_el0_notification_signal_writer_guard_integration -- --test-threads=1",
"run S376, S375, S306, S307, S358, S363, S370, S371 and three notification runtime groups serially",
"run four fresh isolated AArch64 profiles; run S238-S376 dependency list twice; run filtered and unfiltered serial workspace audits; CARGO_INCREMENTAL=0 make verify-qemu",
"python3 scripts/render-project-status.py --write && python3 scripts/render-project-status.py --check; CARGO_INCREMENTAL=0 cargo test -p aselsan_microkernel_simulation --test project_status_manifest -- --test-threads=1",
"npm run code:generate && npm test && npm run lint && npx tsc --noEmit && npm run build",
"npm run deploy; cache-busted curl + cmp for /code/, /operations/, /timeline/ and /yol-haritasi/",
],
terminalSessions: [
{
id: "g8l-s376-focused-source-contract",
title: "S376 focused notification-signal writer membership",
commandLines: [
"CARGO_INCREMENTAL=0 cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s376_el0_notification_signal_writer_guard_integration -- --test-threads=1",
],
outputLines: [
"initial result: compile RED; separate S376 module/source registration and production boundary absent",
"first production result: 47 passed; 2 exact documentation-literal assertions failed",
"incremental rustc query ICE recorded separately; rerun with CARGO_INCREMENTAL=0; not a product RED",
"final result: ok; S376 focused 1 group / 49 passed / 0 failed",
"shared S247 gate: 44 guarded readers + 49/69 guarded writers; 20 writers open",
"arguments/identity/CNode authority < IRQ < writer < exact signal commit < writer/IRQ release < result branches",
"direct production caller paths=1; context switch under writer=0; runtime observations=0; provider authority=0",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s376-selected-regression",
title: "S376 selected notification source/authority/runtime regression",
commandLines: [
"run S376, S375, S306, S307, S358, S363, S370, S371 and three notification runtime groups serially",
],
outputLines: [
"initial result: 345 passed; 6 historical exact source-spelling assertions failed",
"S306/S307 aligned to live exact notification_signal spelling; historical authority/inventory scope preserved",
"final result: 11 groups / 351 passed / 0 failed",
"S376 49/49; S375 51/51; S306 15/15; S307 15/15; S358 47/47; S363 48/48; S370 50/50; S371 48/48",
"summary 1544 bytes; SHA-256 24f93f13da34b29dfc435f94b0452fc3f302e991f547d28bdef67573debc56f6",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s376-full-acceptance",
title: "S376 four-profile, dependency, workspace and QEMU acceptance",
commandLines: [
"run four fresh isolated AArch64 profile builds with CARGO_INCREMENTAL=0",
"run S238-S376 dependency list twice and compare canonical summaries",
"run filtered and unfiltered serial workspace audits",
"CARGO_INCREMENTAL=0 make verify-qemu",
],
outputLines: [
"four AArch64 profiles: 4/4 exit 0; individual log/ELF byte and SHA-256 identities recorded",
"dependency: 140 groups / 3213/3213 twice; 23106-byte canonical summaries byte-equal",
"filtered workspace: 339 groups / 5080 PASS / 0 fail / 7 frozen filtered",
"unfiltered workspace: exit 101; 292 groups / 4825 PASS / 1 frozen S96 failure; global GREEN=false",
"QEMU: W^X 31/31 + S130-S154/S271 + RuntimePmm + EL0x4096 + IPC 20/20 + scheduler SEC5 PASS",
"QEMU common regression is not an S376 RPi5 runtime observation",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s376-production-publication",
title: "S376 source-code registry and production publication",
commandLines: [
"npm run code:generate && npm test && npm run lint && npx tsc --noEmit && npm run build",
"npm run deploy",
"cache-busted curl + cmp for /code/, /operations/, /timeline/ and /yol-haritasi/",
],
outputLines: [
"target source registry: S1-S376 376/376 unique gates; pre-S328 S1-S327 327/327; missing=none; duplicate=0",
"S376 code layers: complete handle_notification_signal + exact writer focus + S247 guard + focused test + Operations object",
"website: 664/664 tests; lint PASS; TypeScript empty; static pages 24/24; export files=201",
"initial production deployment 086f3c6b: 116 uploaded + 84 existing = 200 assets",
"custom-domain four-route HTTP 200 and raw byte-exact=true; /code/ no-transform",
"live /code/: 376/376 unique; pre-S328 327/327; S1=1; S327=1; S328=1; S376=1",
],
exitCode: 0,
outputMode: "complete",
},
],
terminalSessionsNote:
"TAM ÇIKTI kayıtları S376 focused 49/49, seçili 11 grup / 351 PASS, iki kez 140 grup / 3213 PASS, filtreli workspace 339 grup / 5080 PASS, filtresiz yalnız frozen-S96 RED, dört AArch64 profil 4/4 ve ortak QEMU kabulünü ayrı oturumlar halinde taşır. İlk production deployment 086f3c6b ve dört özel-alan-adı rotasının raw byte-exact readback'i PASS'tir. `/code` S1–S376 aralığını 376 ayrı source-bound kart olarak yayımlar; S1–S327 tarihsel kapsam 327/327 tekildir. S377 yine ayrı ve açık kalır.",
limitations: [
"S377 notification wait-timeout writer guard entegrasyonu ve kalan 20 production writer açıktır.",
"Production provider authority=0 ve whole-scheduler exclusion=false kalır; S245 request take veya S244 admission publication yoktur.",
"Supported-profile S376 production writer runtime invocation gözlenmedi; QEMU ortak regresyonu bunun yerine geçirilmez.",
"Generic SMP cross-CPU scheduler ownership, transient-contention liveness/soak ve fiziksel cihaz kabulü açıktır.",
"İlk production publication ve canlı dört-rota byte-exact readback PASS'tir; evidence-sync deployment/readback bu ilk snapshot'tan ayrı doğrulanır.",
],
},snippet sha256: f54e24b5a96e…file sha256: 9726dbf00f84…
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s376_el0_notification_signal_writer_guard_integration -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S376-EL0-Notification-Signal-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 3050638b71a684d8f8f947a8a6faa237a17fa8db5dc0db04fb207b668b462af9