diff --git a/public/images/hero-concept.png b/public/images/hero-concept.png new file mode 100644 index 0000000..5b16f9f Binary files /dev/null and b/public/images/hero-concept.png differ diff --git a/src/content/posts/two-phase-fingerprinting-buildxls-deep-magic.md b/src/content/posts/two-phase-fingerprinting-buildxls-deep-magic.md index eccb7c0..ca24b2a 100644 --- a/src/content/posts/two-phase-fingerprinting-buildxls-deep-magic.md +++ b/src/content/posts/two-phase-fingerprinting-buildxls-deep-magic.md @@ -140,59 +140,46 @@ Step by step: The Two-Phase Lookup Flow - 1. Compute Weak Fingerprint command + tool + globs + env + ABI - 2. Look up WF in pathset_store WF -> [Pathset_A, Pathset_B, ...] - - No pathsets (cold) - Candidate pathsets found - 3. For each candidate Pathset: SF = blake3(WF + content_hashes(reads)) - 4. Look up SF in output_store - - CACHE HIT replay outputs - No match: try next candidate - - 5. MISS: run task in sandbox, store new pathset + SF - @@ -253,78 +240,57 @@ Without ABI fingerprints, every change to `utils` invalidates every dependent. W ABI Early-Cutoff - Without ABI fingerprint - utils#build comment changed -> REBUILD - - api#build REBUILD - web#build REBUILD - - api#test REBUILD - web#test REBUILD - 5 tasks rebuilt - - With ABI fingerprint - utils#build comment changed -> REBUILD - .d.ts unchanged ABI hash: same - - api#build CACHE HIT - web#build CACHE HIT - api#test CACHE HIT - web#test CACHE HIT - 1 task rebuilt, 4 cache hits - The .d.ts file is the ABI surface of a TypeScript package. If it didn't change, downstream WF inputs are unchanged. The cascade stops at the boundary where the public surface is stable. - diff --git a/src/content/posts/typescript-7-makes-the-build-harness-more-important.md b/src/content/posts/typescript-7-makes-the-build-harness-more-important.md index 18f87c1..19de644 100644 --- a/src/content/posts/typescript-7-makes-the-build-harness-more-important.md +++ b/src/content/posts/typescript-7-makes-the-build-harness-more-important.md @@ -46,7 +46,6 @@ Parallelism compounds across three levels. Each multiplies. THE PARALLELISM STACK - LEVEL 1: PER-FILE tsgo + isolatedModules. Each file checked independently. @@ -55,7 +54,6 @@ Parallelism compounds across three levels. Each multiplies. 10x tsgo provides × - LEVEL 2: PER-PACKAGE DAG ordering. Independent branches run in parallel. @@ -64,7 +62,6 @@ Parallelism compounds across three levels. Each multiplies. Nx harness provides × - LEVEL 3: PER-MACHINE Distributed execution. DAG shards across build workers. @@ -72,11 +69,9 @@ Parallelism compounds across three levels. Each multiplies. Mx harness provides - Total speedup = 10x × Nx × Mx - tsgo @@ -115,49 +110,35 @@ tsgo handles type checking on a single machine. That is one piece. Here is the r
- WHAT tsgo SOLVES - Single-machine type checking 10.8x faster overall - Per-file parallelism goroutines + shared memory - Memory efficiency 2.9x less memory - Editor/LSP speed 9.6s → 1.2s startup - Solved. Genuinely. - WHAT THE HARNESS SOLVES - Cross-package DAG ordering - Distributed execution - Remote cache (CI → local dev) - Change scoping (skip unaffected) - isolatedModules enforcement - Bundling + lint orchestration - The bottleneck moved here.
diff --git a/src/pages/index.astro b/src/pages/index.astro index 56c9b5f..f8e270c 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -57,70 +57,7 @@ const rageSeries = [

By Ken Chau

@@ -259,7 +196,7 @@ const rageSeries = [ justify-self: start; } - .hero-illustration svg { + .hero-illustration img { width: 100%; height: auto; border-radius: var(--rounded-lg);