GitShow/denoland/v8
denoland

v8

floating patches for rusty_v8

by denoland
Star on GitHubForknpm

TypeScript

80 stars17 forks865 contributorsActive · 15h agoSince 2021

Meet the team

See all 865 on GitHub →
backes
backes2.8k contributions
mi-ac
mi-ac2.8k contributions
bmeurer
bmeurer2.3k contributions
hashseed
hashseed1.6k contributions
schuay
schuay1.5k contributions
GeorgNeis
GeorgNeis1.3k contributions
isheludko
isheludko1.2k contributions
mlippautz
mlippautz1.2k contributions

Languages

View on GitHub →
TypeScript100%

Commit activity

Last 12 weeks · 3 commits

Full graph →

Community health

1 of 6 standards met

Community profile →
25
✓README○License○Contributing○Code of Conduct○Issue Template○PR Template

Recent PRs & issues

Active · 1 in progress · Last activity 15h ago
See all on GitHub →
littledivy
snapshot: experimental warm-start heap-image (env-gated, draft)OpenPR

Summary Experimental warm-start heap-image for the snapshot deserializer: on a warm run, restore the pre-context isolate heap by adopting whole mmap-able pages and a verbatim off-heap string-table blob, instead of running the per-object snapshot deserializer. Skips the object-graph walk and the string-table re-insertion. All behavior is off by default and env-gated — zero effect on a normal build unless / are set. This is posted as a draft for discussion, not for merge as-is (see Caveats). How it works 1. Bake (): after a normal startup deser, dump every adopted heap page (paged + large-object spaces, tagged by , global cage-offset order) plus the roots table, builtin table, startup/shared object caches, external-pointer slot table (by id+kind), and the off-heap string table as a raw blob. 2. Restore (): allocate each page via / at the next sequential cage offset (matches the bake since old/trusted space is empty), bulk- the used area, + the tail. Re-resolve external pointers by id. Restore the string table by of the baked blob (compressed element slots round-trip because pages land at identical cage offsets). 3. Pinned hash seed (, read in ): makes the baked cached hashes valid on restore, so no rehash pass is needed -- this is most of the speed win. Soundness relies on the post-deser boot heap being position-independent under pointer compression (cage-relative 32-bit slots), so a whole-page image adopted at identical cage offsets is valid without per-object relocation -- the same property ART boot.art / HotSpot CDS archived heaps depend on. Measured (arm64, release, deno console.log hello) Internal phase (): create_isolate phase: ~1.84ms -> ~1.23ms total: ~4.27ms -> ~3.34ms (~0.9ms) End-to-end wall-clock (warm, n=100, vs bun 1.3.5 for reference): ~0.4ms faster than baseline end-to-end; closes the deno-vs-bun gap from ~1.4ms to ~1.0ms. Most of the ~0.9ms internal win is absorbed by fixed process/exec/ teardown cost shared with bun. Caveats (why draft, not merge) Security tradeoff:* the win requires a pinned* hash seed, which disables per-isolate HashDoS randomization. A shippable version needs a design here (e.g. a per-install random-but-fixed seed baked into the image), not a global constant. Only the pre-context (isolate) phase is replayed; context deser still runs normally. Includes pre-existing snapshot diagnostics (, , , ). Base branch is (what rusty_v8 v149.4.0 currently pins); retarget as appropriate. Env knobs

littledivy · 2mo ago

Recent fixes

View closed PRs →
nathanwhit
autoroll: start maintaining 15.2-lkgr-denolandMergedPR
nathanwhit · 3w ago
nathanwhit
autoroll: start maintaining 15.3-lkgr-denolandMergedPR
nathanwhit · 3w ago
crowlKats
Add patch: apply V8_TLS_USED_IN_LIBRARY to V8 internal_configMergedPR

Summary Adds a new floated patch () that fixes a V8 build-system bug surfacing when rusty_v8's archive is linked into a downstream / on Linux. V8 already declares as a GN arg, but the only place it adds the define is the config -- which is consumed only by external embedders, not by the that V8's own files use. So V8 internal sources (where etc. live) stay in TLS model and emit relocations: This breaks for any downstream that links rusty_v8 into a shared library (e.g. Deno's cdylib). Patch contents Add to under . Drop the redundant part of the existing condition (the arg's name already implies the scope, and requiring excludes us since rusty_v8 doesn't build the static lib target). Companion PR denoland/rusty_v8#1970 will start passing once this lands and gets rolled into the next autoroll. Test plan [ ] Verify autoroll picks up the new patch and applies cleanly to . [ ] After the rusty_v8 companion PR lands, verify of Deno's cdylib succeeds on Linux.

crowlKats · 3mo ago
Structured data for AI agents

Repository: denoland/v8. Description: floating patches for rusty_v8 Stars: 80, Forks: 17. Primary language: TypeScript. Languages: TypeScript (100%). Open PRs: 1, open issues: 0. Last activity: 15h ago. Community health: 25%. Top contributors: backes, mi-ac, bmeurer, hashseed, schuay, GeorgNeis, isheludko, mlippautz, verwaest, ngzhian and others.

·@ofershap

Replace github.com with gitshow.dev