S371 · SOURCE-BOUND GATE EVIDENCE
S371 · Notification-object teardown commit production writer guard integration
tam production Rust öğesi + exact acquire→release odağı → S247 guard modülü → Operations-bound focused test Bu sayfa yalnız S371 kapısına aittir; komşu kapıların kaynakları bu kabulün içine katılmaz.
S371Production writer guardOperations id exactsource SHA exacttest target exact
operation: g8l-s371-notification-object-teardown-commit-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 öğesiL1739–L1796kapı odağı L1768–L1790
kernel/src/ui/capability.rs::teardown_notification_object_under_ipc_transaction
Tam kapsayıcı Rust öğesi gösterilir; vurgulu blok yalnız S371 exact production writer üyeliği sınırıdır. Komşu kod, guard kapsamı iddiası değildir.
fn teardown_notification_object_under_ipc_transaction(
id: CapId,
expected_owner: u64,
revoker: Option<u64>,
preflight: NotificationObjectTeardownPreflight,
wake_waiter: bool,
) -> NotificationObjectTeardown {
let mut deadlines = crate::ipc::IPC_CALL_DEADLINES.lock();
let mut registry = NOTIFICATION_REGISTRY.lock();
let position = registry
.iter()
.position(|object| object.id() == id && object.owner() == expected_owner)
.expect("preflighted notification object disappeared before commit");
let mut removed = registry.remove(position);
drop(registry);
if let Some(wait) = preflight.wait {
assert_eq!(
removed.cancel_waiter_exact(wait.waiter),
Ok(wait.waiter),
"notification object waiter changed after teardown preflight"
);
deadlines
.complete_peer_closed_exact(wait.deadline)
.expect("notification object teardown lost exact deadline retirement");
}
drop(deadlines);
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
let s371_writer_access = crate::g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s371_notification_object_teardown_commit_writer_guard_integration::acquire_s371_production_scheduler_writer_access()
.unwrap_or_else(|error| {
panic!(
"S371 notification-object teardown commit scheduler writer guard failed closed: {:?}",
error
)
});
let scheduler = unsafe { &mut *core::ptr::addr_of_mut!(crate::task::scheduler::SCHEDULER) };
let purged = scheduler.purge_notification_holders_exact(id, expected_owner);
assert_eq!(purged, preflight.holders);
assert_eq!(
get_capability_store().revoke_notification_provenance(id, revoker),
1,
"notification root must have exactly one provenance record"
);
let should_wake = wake_waiter && preflight.wait.is_some();
if let Some(wait) = preflight.wait.filter(|_| should_wake) {
scheduler.wake_revoked_notification_exact(wait.waiter.task_id(), id);
}
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
drop(s371_writer_access);
NotificationObjectTeardown {
cancelled_waiters: usize::from(preflight.wait.is_some()),
woken_waiters: usize::from(should_wake),
revoked_grants: purged.total.saturating_sub(1),
}
}snippet sha256: 8c22d24677e7…file sha256: 304e1227daf9…focus sha256: 7eeaa9d24e6e…
02 · Ortak exclusion üyeliği
S247 production writer guard
tam Rust öğesiL196–L208
kernel/src/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s371_notification_object_teardown_commit_writer_guard_integration.rs::acquire_s371_production_scheduler_writer_access
#[cfg(all(target_arch = "aarch64", target_os = "none", feature = "board-rpi5"))]
pub fn acquire_s371_production_scheduler_writer_access(
) -> Result<G8lS371ProductionSchedulerWriterAccess, 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(G8lS371ProductionSchedulerWriterAccess { _access: access })
}snippet sha256: edd8359e611f…file sha256: 11804ef5ab3a…
03 · Doğrulayan test kodu
Operations komutuna bağlı focused test
tam Rust öğesiL407–L418
simulation/tests/g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s371_notification_object_teardown_commit_writer_guard_integration.rs::teardown_helper_has_exactly_one_s371_acquire_and_release
#[test]
fn teardown_helper_has_exactly_one_s371_acquire_and_release() {
let helper = teardown_helper();
assert_eq!(
helper
.matches("acquire_s371_production_scheduler_writer_access")
.count(),
1
);
assert_eq!(helper.matches("drop(s371_writer_access)").count(), 1);
}snippet sha256: 51f13e89c575…file sha256: 7a4b0c4da7c8…
04 · Kapı kimlik kaydı
Operations sıra, kimlik ve başlık bağı
tam Operations kaydıL10278–L10434
website/src/lib/operations.ts::g8l-s371-notification-object-teardown-commit-writer-guard-integration-partial
{
id: "g8l-s371-notification-object-teardown-commit-writer-guard-integration-partial",
date: "2026-08-28",
sequence: 371,
status: "passed",
umbrella_status: "partial",
title:
"S371 · Notification-object teardown commit production writer guard integration",
summary:
"S371, teardown_notification_object_under_ipc_transaction içindeki tek mutable scheduler commit kesitini S370 ve 44 production reader'ın kullandığı aynı statik S247 state word'e bağlar. Exact notification-object removal, waiter cancellation, peer-closed deadline retirement ve registry/deadline lock release writer'dan önce kapanır. Gerçek per-CPU kimliğinden yalnız CPU0 için S371 exclusive writer alınır; exact tek mutable SCHEDULER aliası purge_notification_holders_exact, owned preflight holder snapshot eşitliği, root provenance revoke ve optional wake_revoked_notification_exact commit'ini kapsar. Writer owned NotificationObjectTeardown sonucu kurulmadan önce explicit bırakılır. S359 authority/preflight/capacity writer'ı helper'a girmeden bırakıldığı için nested shared-gate writer oluşmaz; S252 reader da task-lifecycle helper çağrısından önce düşer. Guarded writer 44/69, açık writer 25, provider authority 0 ve whole-scheduler exclusion false'dur. Root destroy ve task lifecycle olmak üzere iki direct production caller path vardır; supported-profile runtime observation=0'dır. Kaynak sırasındaki sonraki ayrı kapı S372 EL0 IPC reply writer'ıdır.",
evidence: [
"Focused S371 sözleşmesi yazılıp production membership, S359→S371 ayrımı ve CPU1 coverage service henüz bağlı değilken alınan ilk TDD sonucu 36/48 PASS ve 12 RED'dir. RED yüzeyi exact acquire/release, helper slice, caller separation, module registration ve service ordering assertion'larından oluştu.",
"Exact S371 acquire/drop, kernel/simulation module registration, S359 release-before-helper refactor'ı ve S370 service sonrasına CPU1 coverage service eklendikten sonra focused hedef 47/48 PASS kaldı. Tek kalan red ürün kodu değil, test parser'ının return signature içindeki ilk NotificationObjectTeardown { eşleşmesini seçmesiydi.",
"Parser exact helper result literalinin son occurrence'ını .rfind ile seçecek biçimde düzeltildi. Product veya coverage assertion'ı gevşetilmedi; final focused hedef 48/48 PASS ve format-sonrası quiet tekrar da 48/48 PASS verdi.",
"Final envanter module constants, pending-request outcome ve production source katmanlarında birlikte 44 guarded reader + 44/69 guarded writer + 25 open writer'dır.",
"Exact kaynak sırası root yolunda actor/root authority → object generation/CNode/holder/wait-graph/capacity preflight → S359 release → helper; task-lifecycle yolunda S252 immutable notification preflight → reader release → helper olarak başlar.",
"Helper içinde IPC_CALL_DEADLINES ve NOTIFICATION_REGISTRY lock'ları alınır; exact id/expected_owner notification object registry'den kaldırılır, waiter varsa cancel_waiter_exact ve complete_peer_closed_exact uygulanır, ardından iki lock da S371 writer alınmadan bırakılır.",
"Production wrapper exact target_arch=aarch64, target_os=none ve feature=board-rpi5 cfg kesişimindedir; try_current_cpu_id gerçek CPU kimliğini türetir ve yalnız CPU0 kabul edilir.",
"Wrapper exact S247_PRODUCTION_WHOLE_SCHEDULER_ACCESS_GATE üzerinde try_acquire_exclusive_for_valid_cpu kullanır. Caller-supplied CPU kimliği, ayrı model state word veya provider authority production'a taşınmaz.",
"teardown_notification_object_under_ipc_transaction içinde exact bir acquire_s371_production_scheduler_writer_access occurrence'ı, exact bir mutable SCHEDULER aliası ve exact bir drop(s371_writer_access) vardır.",
"S371 acquire-to-release kesiti exact scheduler.purge_notification_holders_exact(id, expected_owner) ile başlar; purge sonucu assert_eq!(purged, preflight.holders) ile mutation öncesi owned holder snapshot'ına bağlanır.",
"Holder equality, başka task/object/generation için purge kaymasını fail-closed durdurur. Preflight değeri owned olduğu için S252 reader veya başka scheduler referansı S371 writer scope'una sızmaz.",
"Exact root provenance mutation get_capability_store().revoke_notification_provenance(id, revoker) çağrısıdır ve sonuç tam 1 olmak zorundadır; eksik veya duplicate provenance kayıtları sessizce kabul edilmez.",
"Optional wake kararı wake_waiter && preflight.wait.is_some() ile owned skaler olarak kurulur. Yalnız matching preflight waiter varsa scheduler.wake_revoked_notification_exact(wait.waiter.task_id(), id) aynı S371 membership'i altında çalışır.",
"Root destroy caller wake_waiter=true geçirir ve cancelled waiter ile woken waiter eşitliğini helper sonucunda doğrular. Task-lifecycle caller yalnız waiter task id exiting owner'dan farklıysa wake kararı verir; exiting owner için gereksiz self-wake yapılmaz.",
"S371 writer drop, NotificationObjectTeardown { cancelled_waiters, woken_waiters, revoked_grants } owned sonucundan önce exact kaynak sırasındadır. Result construction global scheduler exclusion süresini büyütmez.",
"Upstream object registry removal, waiter cancellation ve deadline retirement S371 writer'a geriye doğru katılmaz. Registry/deadline lock'larının writer acquisition'dan önce bırakılması lock-order ve bounded-membership sözleşmesidir.",
"S359 root-destroy writer'ı exact authority, full teardown preflight ve wake-capacity commit'ini korur; commit_result çıkarıldıktan sonra drop(s359_writer_access) çalışır ve ancak sonra S371 helper'ı çağrılır. Aynı S247 state word üzerinde nested exclusive lease yoktur.",
"S359 tarihsel source assertion'ları helper mutation'larını S359 altında saymak yerine S359 exact upstream kesitini ve downstream distinct S371 membership'ini doğrulayacak biçimde hizalandı. S359 final 49/49 PASS kaldı ve ürün/coverage assertion'ı gevşetilmedi.",
"S370 notification-grant exact-revoke writer'ı S371 helper commit'inden ayrıdır; S370 final 50/50 PASS kaldı. S370→S371 token monotonluğu ve memberships arasında active exclusive token olmaması iki ayrı transaction'ı kanıtlar.",
"Tarihsel S294 notification-object teardown commit authority audit'i model-level exclusive sözleşme olarak ayrı kalır ve değişmeden 15/15 PASS verir. S371 gerçek board-rpi5 static wrapper ile exact production acquire/drop sınırını ekler.",
"Host-testable execute_s371_guarded_notification_object_teardown_commit yalnız CPU0 callback'ini nonzero token ile exact-once çalıştırır. Non-CPU0, active reader veya active writer callback başlamadan fail-closed olur.",
"Host callback success ve error yolları membership'i exact-once bırakır; success receipt owned output taşır, callback error sonrasında gate yeniden alınabilir ve active token kalmaz.",
"Live reader exclusive commit'i callback'ten önce engeller; live writer ikinci commit'i ve yeni reader'ı aynı state word üzerinde engeller. Release sonrasında reader ve sonraki writer yeniden alınabilir.",
"S371 preflight S370'in 44 reader / 43 guarded writer / 26 open snapshot'ını exact doğrular; yalnız doğru zincir 44/69 guarded ve 25 open sonucu üretir. Drift ayrı InventoryDrift error'ıdır.",
"Pending S245 request yalnız non-consuming view ile incelenir. Request id korunur, take edilmez, S244 admission yayınlanmaz ve provider authority oluşturulmaz.",
"CPU1 coverage service S370 service'inden sonra ve tarihsel S242 consumer'dan önce bağlıdır. Service S247 writer edinmez, mutation yapmaz ve S371 production teardown runtime'ını çalıştırmaz.",
"Direct production caller envanteri helper için iki path'tir: destroy_notification_object root-revoke yolu ve teardown_task_ipc_lifecycle owned-notification yolu. Bu statik source wiring envanteridir; S371-specific supported-profile invocation/observation kanıtı değildir.",
"Final seçili regresyon 19 grup / 376/376 PASS'tir: S371 48, S370 50, S359 49, S358 47, S294/S293/S282 45, S251/S259 23, notification runtime 28, runtime-OOM return/lifecycle grupları 27, S346 36, ipc_queue_source 18 ve task_lifecycle_source 5.",
"Seçili regresyon logu 61116 B / 26516ca98938815086c648aa9d1aeb4be19ae74f27e63992e7a66b51fd4f7081 olarak /tmp/aselsanos-s371-selected.4SWLwD altında ölçüldü.",
"Focused artifact dizini /tmp/aselsanos-s371-focused.AZ21VR'dir. İlk RED 9868 B / bf1a314193d2ba79eb1deb00532991708a091abe1bd7f6dde0cf3894b12808e3, 47/48 ara sonuç 4665 B / c06f02289e16552899c636d845bb890f38e470099029d2494ab8e867acbfc7ca ve final GREEN 3922 B / 91215154b76630c87c718ca1d19ad9893decc1d71d7102f88519eea702396a43 olarak ölçüldü.",
"Format-sonrası focused quiet log 163 B / b6690522de94b9d9d7ca4becd1a776d0e434deea204ec0b31fc80b403015c44b'dir. cargo fmt --all -- --check ve git diff --check aynı snapshot'ta boş çıktıyla exit 0 verdi.",
"Fresh izole dev/debug AArch64 profilleri 4/4 exit 0 verdi. Build logları board-qemu 111883 B / 00776876900e7fff722c71ee7614ddc05a614f989fe37830f7e440b907fe2738 / 293 warning header; board-rpi4 150780 B / 904f268e68ba2bc41901d9e5760ad6ff8613c86749c51d2ccd4ff47e1d6f197d / 391; board-rpi5 608052 B / 1bd527f3136a7a995bfc022173986829d87936eeb6fad839e13a1a427b7314a8 / 1378 ve board-rpi5+smp 607890 B / 17951072452b0d28121fb016f415b8b9325b299973dfb8a4e0dd931f3de9b5e8 / 1378'dir. Zero-warning iddiası yoktur.",
"Cargo final satırları qemu/rpi4/rpi5/rpi5+smp için sırasıyla 292/390/1377/1377 warning bildirir; önceki satırdaki değerler literal warning header sayısıdır ve ikisi birbirine karıştırılmaz.",
"Fresh ELF'ler qemu 17324400 B / 3610ea990f74abe9f3add2710ca10fb825ae2260ec6b15725ee68525034fc236; rpi4 12330288 B / b65873ae44c994d62f2339ea6b3b4e07d559360c2da5da7e8073ceb444f898f9; rpi5 18757536 B / d49c80fc5012bca57bc0ba0be35658a615f7c8faaf410b1e0b5c2957bc3fd8f3 ve rpi5+smp 18758712 B / 3003d3f438bd7142e8db24001a810846c9e9e618411ee07c2b06653b6e6f870f olarak loglardan ayrı ölçüldü.",
"Ana kabul tablosundan önce yanlışlıkla release modunda çalıştırılan dört fresh profil de exit 0 verdi; fakat karşılaştırılabilir ana matris dev/debug profilleridir ve release ölçümleri onun yerine kullanılmaz.",
"S238–S371 dependency matrisi S240'ın iki distinct grubuyla 135 gruptur ve iki bağımsız seri koşunun her biri 2911/2911 PASS verdi. 32160 B raw özetler 6dd7d185ed2a65ba391e2a4a46192532719e5cb0e2ce9266840f910d51fbc7bb / 42950d5393433048420cd7663091b4a07bacde462a49e77d49b648c44ef30cc4; fark yalnız timing alanlarındadır.",
"32295 B süre-normalize dependency özetleri 43a1c5cc20728659f7475e24657e2bfddbb206ad9490f7013235c3d22dd17e6d SHA-256 ile byte-eşittir. Dependency artifact'i /tmp/aselsanos-s371-dependency.PpuWs3'dür.",
"Exact yedi frozen G8h assertion dışındaki seri workspace 334 grup / 4773 PASS / 0 fail / 7 filtered verdi; 31612 B summary SHA-256 7a70639338e9b5fdda758ef922812e0a0efe55ef907493abe717d6ff904296fe'dir.",
"Filtresiz workspace exit 101 ile yalnız frozen S96 wiring_does_not_mutate_timer_gic_boot_or_expand_runtime_scope source-identity reddinde durdu; 287 grup / 4518 PASS / 1 fail, 27193 B / 008622eb9749da505491c4532d6d00cf9e01be470d6b32d611b7bbae8b71410e. Global workspace GREEN iddia edilmez.",
"Workspace artifact dizini /tmp/aselsanos-s371-workspace.8Ab75A'dır. Filtre listesine yeni S371 testi eklenmedi; yalnız adı sabit yedi tarihsel assertion dışlandı.",
"make verify-qemu 114881 B / 9dc54575d6a34ac6b6ffb58c18041244d3b1c9e0b4fdf7f13a0f96dfa359a20e ile W^X 31/31, S130–S154+S271, RuntimePmm, EL0x4096, IPC 20/20 ve SEC5 PASS verdi. Bu board-qemu ortak regresyonudur; RPi5-only S371 runtime invocation kanıtı değildir.",
"QEMU artifact dizini /tmp/aselsanos-s371-qemu-verify.VpSMdM'dir. QEMU PASS ile supported-profile runtime observations=0 alanı değiştirilmez.",
"Project-status manifesti yeni S371 model/katalog sınırlarını ayrı assertion'larla ilk seri koşuda 254/254 PASS doğruladı. JSON parse ve generated status README write/check boş çıktıyla PASS'tir; final publication değerlerinden sonra bağımsız tekrar yapılacaktır.",
"S1–S327 tarihsel Kod kataloğu 327/327 ayrı kimlik olarak korunur. S371 source-bound kart hedefi S1–S371 371/371 ayrı kapı, pre-S328 327/327, missing=none ve duplicate=0'dır.",
"S371 production paneli tam teardown_notification_object_under_ipc_transaction Rust fonksiyonunu taşır; nested exact focus acquire→purge_notification_holders_exact→preflight holder equality→root provenance revoke→optional wake_revoked_notification_exact→drop aralığıdır. Upstream object/waiter/deadline kodu yalnız tam-fonksiyon bağlamıdır ve focus dışında kalır; S359/S372 kodu fonksiyonun dışındadır.",
"İlk publication source registry'si S1–S371 aralığında 371/371 ayrı kapı, 1047 exact excerpt, pre-S328 327/327, missing=none ve duplicate=0 üretti. JSON payload 7232993 B / ee11784aed77a7db0c918cf4b6b6ff23de1e22494f3c1b6e9fc1ac9745ef5516; registry content SHA-256 d354aa3314a3cf0ad802833f3576ba5bb749c60176ed4c75ee34822f7741b87b'dir.",
"İlk website kabulü 646/646 PASS, lint PASS, TypeScript boş çıktılı exit 0 ve 24/24 static route verdi. Test 59687 B / 4d312e48d5a9cf674189ca4a5868ec407744a264ded545bafe46cc1858e4e4e2; lint 218 B / 79c084453e339ceb2efe76ed96d1d68be8ac51442957a7a048fd17dba3067ba2; build 1402 B / 02f92ed313b595218ed0254e8495f8e239256ac0a5c2c7434d51f4e34fffb766'dır.",
"S371 production/main deployment ece454dc ile https://ece454dc.aselsan-microkernel.pages.dev adresine 116 upload + 84 existing = 200 asset olarak tamamlandı; deploy log 1800 B / 0fb93a85569663578b426c8c0346b52618bfa3bc3352d531e93c9ccd8a38d63c'dir.",
"İlk cache-busted custom-domain doğrulamasında /code/ 21077108 B / 969bf107a0faeba2bad7cecee7091b8eb42ff56ade6f534d343337cb328784dc, /operations/ 12795260 B / ef381325d0cc0d52cc441a4e61eeecd2b551bfa372934a344e300c8b99de5b12, /timeline/ 4815281 B / 8eccd8e4b2903aa5eeee213f305fe99f151129812acb755639601d2f710fa922 ve /yol-haritasi/ 4815029 B / f5cba9ff760cd3148a5ced4305db619d691dd3acd8c277b58f6b77c24cf39a9c ile HTTP 200 ve yerel out'a raw byte-exact PASS verdi.",
"/code/ Cache-Control public, max-age=0, must-revalidate, no-transform taşıdı; canlı data-code-gate envanteri 371/371 unique, pre-S328 327/327, S371=1, S372=0 ve duplicate=0'dır. Immutable ece454dc hostname probe'u curl exit 28 / HTTP 000 verdi; custom-domain PASS bunun yerine geçirilmez.",
"İlk publication artifact dizini /tmp/aselsanos-s371-publication.evGpp5, website kabul artifact dizini /tmp/aselsanos-s371-web-acceptance.Rllm10'dur. Sonraki evidence-sync registry hash'i self-reference oluşturmamak için ilk snapshot hash'inden ayrı tutulur.",
"Operations, Timeline/Yol Haritası ve Phone OS konumlandırma S371'i S370'ten ayrı kartta gösterir. Tek kutuda birleşik S335–S400 iddiası veya toplu tamamlanma etiketi üretilmez.",
"S371 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_S371=NO.",
"S371 bazlı bağlayıcı olmayan planlama görünümü R1 S371–S401, R2 S426–S476, R3 S555+, kaba S531–S581 ve risk paylı merkez yaklaşık S556'dır. Bu projeksiyon yeni sıra veya ürün taahhüdü değildir.",
],
commands: [
"cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s371_notification_object_teardown_commit_writer_guard_integration -- --test-threads=1",
"run S371, S370, S359, S358, S294, S293, S282, S251, S259, notification/runtime-OOM and source regressions serially",
"run four fresh AArch64 dev/debug profile builds; run S238-S371 dependency list twice; run filtered and unfiltered serial workspace audits; make verify-qemu",
"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-s371-focused-source-contract",
title: "S371 focused notification-object teardown writer membership",
commandLines: [
"cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s371_notification_object_teardown_commit_writer_guard_integration -- --test-threads=1",
],
outputLines: [
"initial test result: RED; S371 focused 36 passed; 12 failed; production membership/separation/service not yet wired",
"first production result: 47 passed; 1 test-parser failed; product assertions unchanged",
"final test result: ok; S371 focused 1 group / 48 passed; 0 failed",
"shared S247 gate: 44 guarded readers + 44/69 guarded writers; 25 writers open",
"object remove + waiter cancel + deadline retire + lock release < S371 writer",
"S371 writer: holder purge < snapshot equality < provenance revoke < optional wake < writer release < owned result",
"direct production caller paths=2; runtime observations=0; provider authority=0",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s371-selected-regression",
title: "S371 selected notification teardown/lifecycle regression",
commandLines: [
"run 19 exact S371/S370/S359/S358/S294/S293/S282/S251/S259/notification/runtime-OOM/source groups serially",
],
outputLines: [
"historical S359 source contract aligned to release before distinct S371; final 49/49 PASS",
"S370 50/50 and S294 15/15 remain PASS",
"final result: 19 groups / 376 passed / 0 failed",
"log 61116 B; SHA-256 26516ca98938815086c648aa9d1aeb4be19ae74f27e63992e7a66b51fd4f7081",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s371-core-acceptance",
title: "S371 four-profile, dependency, workspace and QEMU acceptance",
commandLines: [
"run four fresh AArch64 dev/debug profiles",
"run S238-S371 dependency list twice and normalize timing fields",
"run filtered and unfiltered serial workspace audits",
"make verify-qemu",
],
outputLines: [
"four profiles 4/4 exit 0; warning headers measured separately; zero-warning not claimed",
"dependency 135 groups / 2911/2911 twice; normalized 32295-byte summaries are SHA-256 identical",
"filtered workspace 334 groups / 4773 PASS / 7 filtered; unfiltered frozen-S96 remains RED",
"QEMU W^X 31/31 + S130-S154 + IPC 20/20 + SEC5 PASS; not an S371 runtime observation",
],
exitCode: 0,
outputMode: "complete",
},
{
id: "g8l-s371-production-publication",
title: "S371 Operations/Timeline/code 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: [
"website 646/646 PASS; lint PASS; TypeScript empty-output exit 0; static routes 24/24",
"initial registry S1-S371: 371/371 gates; 1047 exact excerpts; pre-S328 327/327; missing=0; duplicate=0",
"initial deployment ece454dc: 116 uploaded + 84 existing = 200 assets",
"custom-domain four routes HTTP 200 + byte-exact; /code no-transform; S371=1; S372=0; edge rewrite=0",
"immutable hostname curl exit 28 / HTTP 000; custom-domain evidence not substituted",
],
exitCode: 0,
outputMode: "complete",
},
],
terminalSessionsNote:
"S371 yalnız notification-object teardown helper'ının exact production writer membership'ini kapatır. S359 authority/preflight/capacity ve S252 immutable reader üyelikleri helper'dan önce bırakılır; object registry removal, waiter cancellation ve deadline retirement writer öncesidir. Writer altında exact holder purge, snapshot equality, root provenance revoke ve optional exact wake vardır; owned result writer bırakıldıktan sonra kurulur. S372 EL0 IPC reply ayrı açık kapıdır. Provider authority, whole-scheduler exclusion, runtime/physical kabul ve filtresiz global workspace GREEN değildir.",
limitations: [
"Kalan 25 production writer ayrı kapılarda guard/commit entegrasyonu bekliyor; S371 bunları topluca kapatmaz.",
"S372 EL0 IPC reply writer'ı kaynak sırasındaki ayrı ve açık bir sonraki kapıdır.",
"Provider authority, S245 request take, S244 admission publisher ve whole-scheduler exclusion açık kalır.",
"Supported-profile S371 runtime invocation, default-parallel PTY determinism, transient-contention liveness/soak, Generic SMP cross-CPU arbitration ve CPU2/CPU3/hotplug kanıtlanmadı.",
"Filtresiz workspace frozen S96 source-identity assertion'ında RED'dir; global workspace GREEN iddia edilmez.",
"Fiziksel RPi kabulü çalıştırılmadı; physical/device operations=0 ve RUNBOOK_EXECUTED_IN_S371=NO.",
"Planlama aralığı S531–S581 ve merkez S556 tahmindir; ürün veya sıra taahhüdü değildir.",
],
},snippet sha256: cc48b9007dff…file sha256: 9726dbf00f84…
Focused test komutu
cargo test -p aselsan_microkernel_simulation --test g8l_target_dispatch_scheduler_owner_scheduler_mutation_production_migration_lifecycle_s371_notification_object_teardown_commit_writer_guard_integration -- --test-threads=1proof: docs/M8.1-RPi5-G8l-S371-Notification-Object-Teardown-Commit-Writer-Guard-Integration-Proof.md
Registry schema v5 · generator
website/scripts/generate-code-gates.mjs · Tam SHA-256: 91d38c7b6222f0b4c117be786454853543da55a160e543d9b951057cc20dcc06