You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- SharedArrayBuffer removal must happen AFTER bridge bundle loads (applyTimingMitigationFreeze JS), not in Rust inject_globals
15
15
- V8 snapshot tests must be consolidated into a single #[test] fn (like execution::tests) — parallel V8 isolate teardown causes SIGSEGV
16
16
- v8::CreateParams::snapshot_blob() needs owned data (Deref<Target=[u8]> + Borrow<[u8]> + 'static); use Vec<u8> or StartupData, not &[u8]
17
+
- v8::StartupData is not Send/Sync (contains *const i8) — store snapshot blobs as Arc<Vec<u8>> for cross-thread sharing; SnapshotCache.get_or_create() returns Arc<Vec<u8>>
- Snapshot tests must be consolidated into a single #[test] function (same as execution::tests) to avoid V8 global state SIGSEGV when test runner runs tests in parallel
2675
2676
- `Allocated` trait is not re-exported from v8 crate — use equivalent trait bounds directly in function signatures
2676
2677
---
2678
+
2679
+
## 2026-03-19 - US-053
2680
+
- Added SnapshotCache struct with Mutex-guarded Vec<CacheEntry> and LRU eviction
2681
+
- get_or_create() hashes bridge code with SipHash (std DefaultHasher), returns cached Arc on hit, creates snapshot on miss
2682
+
- LRU moves accessed entries to end on hit; evicts front (oldest) when at max_entries capacity
2683
+
- Blob stored as Arc<Vec<u8>> instead of Arc<StartupData> for Send+Sync compatibility
2684
+
- 4 new test parts in consolidated snapshot test: cache hit (same Arc), cache miss (different Arc), LRU eviction, concurrent access (4 threads all get same Arc)
Copy file name to clipboardExpand all lines: scripts/ralph/prd.json
+2-2Lines changed: 2 additions & 2 deletions
Original file line number
Diff line number
Diff line change
@@ -897,8 +897,8 @@
897
897
"Typecheck passes"
898
898
],
899
899
"priority": 53,
900
-
"passes": false,
901
-
"notes": "Spec: docs-internal/specs/v8-startup-snapshot.md. Mutex hold time during snapshot creation (~20ms) is acceptable — happens once per variant."
900
+
"passes": true,
901
+
"notes": "Spec: docs-internal/specs/v8-startup-snapshot.md. Blob stored as Arc<Vec<u8>> (not Arc<StartupData>) because v8::StartupData contains raw pointers that are not Send/Sync. LRU moves accessed entries to end on hit. 4 new test parts: cache hit same Arc, cache miss different Arc, LRU eviction, concurrent access."
0 commit comments