Avatar for the web-infra-dev user
web-infra-dev
rspack
BlogDocsChangelog

Performance History

Latest Results

Fix deterministic content hashes when source maps contain build-local paths Rspack’s code generation hash currently hashes each generated `Source` structurally. For `SourceMapSource`, that structural hash includes the full source map, including path-like fields such as `sources`, `sourceRoot`, and `file`. In sandboxed or remote-execution CI environments, those fields can contain absolute worker paths like `/mnt/engflow/worker/work/N/exec/...`, where `N` varies between otherwise identical builds. Those path differences do not affect emitted JavaScript bytes, but they feed into per-module codegen hashes. The tainted module hashes then feed chunk content hashes, causing unstable asset filenames and reducing cross-build asset reuse. This change makes codegen hashing deterministic for that case by: - sorting codegen `SourceType` entries before hashing, avoiding hash-map iteration-order instability - hashing only content-relevant source-map fields for `SourceMapSource`; - deliberately excluding path-like source-map metadata from the source hash while preserving it in emitted source maps; - adding a regression test proving identical emitted code with different sandbox source-map paths produces the same source hash. This keeps debug/source-map output unchanged, while ensuring content hashes reflect emitted content and stable source-map content rather than ephemeral build-machine paths.
cellison-figma:ce/deterministic-sourcemap-codegen-hash
3 hours ago
revert: restore typed TSFN execution
codex/erase-js-tap-execution-types
5 hours ago
refactor(javascript): reuse walker and evaluator resolution results
seal/swc-next-side-effects-declarations
8 hours ago
perf(javascript): reuse semantic bindings in ScopeInfoDB
seal/swc-next-binding-state-metadata
9 hours ago
perf(binding): erase JS tap execution types
codex/erase-js-tap-execution-types
9 hours ago
refactor(javascript): separate binding state from variable metadata
seal/swc-next-binding-state-metadata
9 hours ago
fix: share parking_lot workspace dependency
codex/module-arc-cache
11 hours ago
fix(core): harden the beforeLoaders round-trip Three problems in the JS conversion layer, all found by review: - An entry a tap rebuilt from scratch (`{ ...loaders[0], options }`) drops the non-enumerable snapshot but keeps its `ident`, so the guard against reusing a configured ident did not fire and the rule's shared options object was overwritten for every other module it matched. The set of configured idents is now collected before the taps run and checked against that, instead of against the entry's own snapshot. - `JsLoaderItem::from(&Arc<dyn Loader>)` derives its fields by splitting the loader identifier on `'|'`, which drops the loader type entirely for JS loaders and truncates the path of any identifier containing a `'|'`. The hook now passes a `JsBeforeLoadersLoaderItem` built from `Loader::r#type()` and the module's loader options instead, so `type` is accurate and nothing is parsed out of the identifier. - `Rule.use[].cache` and `Rule.use[].parallel` were silently dropped from any loader a tap rewrote; both are carried over from the snapshot now. A generated ident no longer contains a `'|'` either, since module identifiers embed one and `module.loaders` still goes through the splitting conversion. The test gains the rebuilt-entry case, which reproduced the first problem, a `finishModules` assertion that the rule's options object survived, and a `.cjs` loader that reports `type: "commonjs"`. Documents that a tap should replace `options` rather than mutate it in place: the object is shared with every module the rule matched, and a mutation is invisible to the cache key the loader was resolved with.
kakiuwang-ui:feat/normal-module-before-loaders
12 hours ago

Latest Branches

CodSpeed Performance Gauge
0%
fix: omit build-local paths from sourcemap content hash#15599
8 hours ago
3fa223c
cellison-figma:ce/deterministic-sourcemap-codegen-hash
CodSpeed Performance Gauge
0%
5 hours ago
92a72a1
codex/erase-js-tap-execution-types
CodSpeed Performance Gauge
+3%
8 hours ago
f8c8aa4
seal/swc-next-side-effects-declarations
© 2026 CodSpeed Technology
Home Terms Privacy Docs