Resolve wasm traps to unit source
This commit is contained in:
@@ -222,8 +222,8 @@ Freshness still stats every distinct source on every entry check. Exact repeated
|
||||
load paths are deduplicated before canonicalization, while distinct aliases are
|
||||
resolved independently so symlink retargets remain immediately visible.
|
||||
When a current serialized module exists, the worker scans wasm section headers
|
||||
and reads only `dylink.0` and `uce.abi`; it does not fault the multi-megabyte code
|
||||
and data bodies into every new worker. A missing/stale/invalid serialized module
|
||||
and reads only `dylink.0`, `uce.abi`, and the tiny `uce.module` identity; it does
|
||||
not fault the code and data bodies into every new worker. A missing/stale/invalid serialized module
|
||||
still reads, validates, compiles, and republishes the complete wasm artifact.
|
||||
The proactive compiler also creates that serialization immediately after source
|
||||
compilation, keeping first-worker native compilation off the request path.
|
||||
@@ -257,6 +257,19 @@ intentional unreadable-source regression request as an expected source-read
|
||||
failure, keeping production log scans focused on real runtime failures while
|
||||
preserving the failing compile result and diagnostic artifacts.
|
||||
|
||||
Unit linking retains DWARF only long enough for
|
||||
`scripts/build_unit_source_map.py` to extract a compact address/file/line table.
|
||||
The published `.wasm` is debug-stripped and the table is stored beside it as
|
||||
`.wasm.source-map`, keyed to the exact temporary module identity recorded in
|
||||
the wasm's `uce.module` custom section. Normal module loading never reads this
|
||||
sidecar. On a Wasmtime trap, the worker uses structured frame module offsets to
|
||||
load only the matching map and appends source locations to the error. A missing,
|
||||
stale, or malformed map is deliberately non-fatal: the ordinary named wasm
|
||||
backtrace remains available. Generated C++ uses a `#line` directive naming the
|
||||
original `.uce` file, so application frames resolve to application source rather
|
||||
than the generated cache file. Artifact invalidation removes the wasm, serialized
|
||||
module, and source map together.
|
||||
|
||||
---
|
||||
|
||||
## 4. The workspace runtime
|
||||
|
||||
Reference in New Issue
Block a user