|
Revision tags: dev, v36.0.9, v44.0.1, v43.0.2, v36.0.8, v24.0.8, v44.0.0, v43.0.1, v42.0.2, v36.0.7, v24.0.7, v43.0.0, v42.0.1, v41.0.4, v42.0.0, v40.0.4, v36.0.6, v24.0.6, v41.0.3, v41.0.2, v41.0.1, v36.0.5 |
|
| #
c4a38d67 |
| 26-Jan-2026 |
Philip Craig <[email protected]> |
Use `gimli::write::Dwarf::convert_with_filter` for DWARF transform (#12428)
Replace parts of the transform code with `gimli`'s generic DWARF transformation support. Most of the remaining code is spe
Use `gimli::write::Dwarf::convert_with_filter` for DWARF transform (#12428)
Replace parts of the transform code with `gimli`'s generic DWARF transformation support. Most of the remaining code is specific to the needs of Wasmtime.
The overall behaviour is the same as the previous implementation. We build a graph of the DIE dependencies, and prune DIEs that don't have valid code ranges. Then we traverse the DIE tree again and transform the DIEs. However, there are some differences.
Previously, unresolved references to DIEs were stored in `PendingUnitRefs` and `PendingDebugInfoRefs`, then at the end of the transformation we went back and fixed up these references. The new behaviour reserves IDs for all of the DIEs in the dependency tree before transformation, which avoids the need to fix up references later. It also allows gimli to correctly handle references in DWARF expressions, although that doesn't currently matter for Wasmtime because it doesn't handle references in expressions yet. The visible effect of this in Wasmtime is that the order of transformed attributes will now always match the original DWARF.
The DIE tree pruning is slightly different. We no longer add back-edges pointing to namespace DIEs or the root DIE, which previously caused some DIEs to be reachable when they should not have been. In particular, this affects DW_TAG_variable DIEs for global variables. Wasmtime can't currently translate the location for globals, so they were added without a valid DW_AT_location. These DIEs are now omitted from the transformed DWARF. In the future when global variables can be translated correctly, they can be included by calling `ReserveUnitSection::require_entry`.
Performance measurements for `wasmtime compile -D debug-info=y` show minimal change.
show more ...
|
|
Revision tags: v40.0.3 |
|
| #
7ee620a5 |
| 24-Jan-2026 |
Philip Craig <[email protected]> |
Update gimli and addr2line dependencies (#12424)
* Update gimli and addr2line dependencies
gimli has a significant number of breaking changes to adapt to.
* Add vets
---------
Co-authored-by: Al
Update gimli and addr2line dependencies (#12424)
* Update gimli and addr2line dependencies
gimli has a significant number of breaking changes to adapt to.
* Add vets
---------
Co-authored-by: Alex Crichton <[email protected]>
show more ...
|
|
Revision tags: v41.0.0, v36.0.4, v39.0.2, v40.0.2, v40.0.1, v40.0.0, v39.0.1, v39.0.0, v38.0.4, v37.0.3, v36.0.3, v24.0.5, v38.0.3, v38.0.2, v38.0.1 |
|
| #
bd7b59da |
| 19-Oct-2025 |
Philip Craig <[email protected]> |
Delete DWARF `Reader` trait, also use `gimli::UnitRef` (#11883)
* Delete DWARF Reader trait
Use the existing Reader type alias instead. Most places were already using this.
* Use `gimli::UnitRef`
Delete DWARF `Reader` trait, also use `gimli::UnitRef` (#11883)
* Delete DWARF Reader trait
Use the existing Reader type alias instead. Most places were already using this.
* Use `gimli::UnitRef`
This reduces parameter counts and makes it harder to use the wrong DWARF sections for split DWARF.
A drawback is that `UnitRef<'a, R>` is invariant over `R`, so additional lifetime annotations are needed in some places.
This probably also fixes a bug with the parsing of `AttributeValue::LocationListsRef`, but I didn't try to test this.
show more ...
|
|
Revision tags: v37.0.2, v37.0.1, v37.0.0, v36.0.2, v36.0.1, v36.0.0, v35.0.0, v24.0.4, v33.0.2, v34.0.2, v34.0.1, v33.0.1, v24.0.3, v32.0.1, v34.0.0 |
|
| #
8a42768f |
| 06-Jun-2025 |
Alex Crichton <[email protected]> |
Update nightly used in CI (#10957)
A new lint was added to rustc so this updates the nightly used in CI and then additionally fixes the lints that are firing.
|
|
Revision tags: v33.0.0 |
|
| #
90ac295e |
| 19-May-2025 |
Alex Crichton <[email protected]> |
Update Wasmtime to the 2024 Rust Edition (#10806)
* Update Wasmtime to the 2024 Rust Edition
Now that our MSRV supports the 2024 edition it's possible to make this switch. This commit moves Wasmtim
Update Wasmtime to the 2024 Rust Edition (#10806)
* Update Wasmtime to the 2024 Rust Edition
Now that our MSRV supports the 2024 edition it's possible to make this switch. This commit moves Wasmtime to the 2024 Edition to keep up-to-date with Rust idioms and access many of the edition features exclusive to the 2024 edition.
prtest:full
* Reformat with the 2024 edition
show more ...
|
|
Revision tags: v32.0.0, v31.0.0, v30.0.2, v30.0.1, v30.0.0, v29.0.1, v29.0.0, v28.0.1 |
|
| #
1c521e17 |
| 14-Jan-2025 |
SingleAccretion <[email protected]> |
[DWARF] Add logging to range building (#9969)
|
| #
0b2c9d72 |
| 27-Dec-2024 |
SingleAccretion <[email protected]> |
[DWARF] Transform instance methods into static methods with a `__this` parameter (#9898)
* Add an instance method test
* Transform instance methods into static methods with a '__this' parameter
|
| #
41ff8e7b |
| 26-Dec-2024 |
SingleAccretion <[email protected]> |
Add `WASMTIME_LOG_NO_CONTEXT` (#9902)
* Documentation
* Add WASMTIME_LOG_NO_CONTEXT
When using trace logging for compiler debugging, the usual 'context': time, level, target, are just visual noise
Add `WASMTIME_LOG_NO_CONTEXT` (#9902)
* Documentation
* Add WASMTIME_LOG_NO_CONTEXT
When using trace logging for compiler debugging, the usual 'context': time, level, target, are just visual noise.
Add an environment variable to disable them.
show more ...
|
|
Revision tags: v28.0.0, v27.0.0 |
|
| #
a126152d |
| 06-Nov-2024 |
SingleAccretion <[email protected]> |
Do not GC `DW_AT_declaration` `DW_TAG_subprogram`s (#9578)
* Add a test
* Log section-relative offsets of DIEs
For easier correlation to llvm-dwarfdump's output.
* Do not GC function declarations
Do not GC `DW_AT_declaration` `DW_TAG_subprogram`s (#9578)
* Add a test
* Log section-relative offsets of DIEs
For easier correlation to llvm-dwarfdump's output.
* Do not GC function declarations
Declarations must be consistent across compilation units.
show more ...
|
|
Revision tags: v26.0.1, v25.0.3, v24.0.2 |
|
| #
92cc0ad7 |
| 04-Nov-2024 |
SingleAccretion <[email protected]> |
Add very basic logging to the debug info transform (#9526)
* Add very basic logging to the debug info transform
The DI transform is a kind of compiler and logging is a very good way to gain insight
Add very basic logging to the debug info transform (#9526)
* Add very basic logging to the debug info transform
The DI transform is a kind of compiler and logging is a very good way to gain insight into compilers.
* Fix C&P
* Bubble the "trace-log" feature up the dependency tree
And switch logging macros to always be enabled in debug.
Verified "trace-log" **does not** show up when running 'cargo tree -f "{p} {f}" -e features,normal,build'
* Fix dead code warnings
show more ...
|