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
- IPC writes use per-session ChannelFrameSender (crossbeam channel) + one writer thread per connection — never use shared mutex for socket writes; serialize via frame_to_bytes() first
13
13
- V8 code caching: use `v8::script_compiler::compile()` (not `Script::compile()`) with `Source` + `CompileOptions`; generate cache via `UnboundScript::create_code_cache()`; resource name in ScriptOrigin is required
14
14
- SharedArrayBuffer removal must happen AFTER bridge bundle loads (applyTimingMitigationFreeze JS), not in Rust inject_globals
15
+
- V8 snapshot tests must be consolidated into a single #[test] fn (like execution::tests) — parallel V8 isolate teardown causes SIGSEGV
16
+
- v8::CreateParams::snapshot_blob() needs owned data (Deref<Target=[u8]> + Borrow<[u8]> + 'static); use Vec<u8> or StartupData, not &[u8]
- V8 ExternalReference union field `function` expects FunctionCallback type — use `.map_fn_to()` from MapFnTo trait to convert Rust function signatures
2673
+
- v8::CreateParams::snapshot_blob() requires `impl Allocated<[u8]>` which is `Deref<Target=[u8]> + Borrow<[u8]> + 'static` — &[u8] doesn't satisfy this; use owned types (Vec<u8>, StartupData, Box<[u8]>)
2674
+
- 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
+
- `Allocated` trait is not re-exported from v8 crate — use equivalent trait bounds directly in function signatures
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
@@ -880,8 +880,8 @@
880
880
"Typecheck passes"
881
881
],
882
882
"priority": 52,
883
-
"passes": false,
884
-
"notes": "Spec: docs-internal/specs/v8-startup-snapshot.md. ExternalReferences must be 'static (OnceLock). create_blob() consumes the isolate. Use v8::Isolate::snapshot_creator(Some(&EXTERNAL_REFS), None) not SnapshotCreator::new()."
0 commit comments