Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
154 commits
Select commit Hold shift + click to select a range
a34ea2c
Create a new structure for encoding components that have been instrum…
ejrgilbert Dec 17, 2025
c866872
got a couple of the tests working with the new structure
ejrgilbert Dec 17, 2025
8c9934f
get more tests passing (encode the custom section)
ejrgilbert Dec 18, 2025
1fb4e2b
add more todos to mark where to extend
ejrgilbert Dec 18, 2025
3d7d3fa
Use my old index space implementation (manages spaces with relation t…
ejrgilbert Dec 18, 2025
0819257
Encode a component in the order of its parsed sections
ejrgilbert Dec 18, 2025
6900cd2
fill in more gaps
ejrgilbert Dec 18, 2025
4b2b558
finish implementing the ASSIGN phase
ejrgilbert Dec 18, 2025
086cab5
continue
ejrgilbert Dec 19, 2025
2a2f39c
fix how i collect canonical functions
ejrgilbert Dec 19, 2025
dff15dc
fix encoding bugs, 3 test passing now
ejrgilbert Dec 19, 2025
1618439
fix import func idx space
ejrgilbert Dec 19, 2025
dd34161
fix some bugs
ejrgilbert Dec 19, 2025
71b7112
fix indexing bug
ejrgilbert Dec 19, 2025
6d15f55
Centralize index space logic
ejrgilbert Dec 19, 2025
a45ad4e
refactor function name after removing old one
ejrgilbert Dec 19, 2025
a3128ba
uncomment tests
ejrgilbert Dec 20, 2025
fe0bd5e
refactor ID assignment to use new space logic
ejrgilbert Dec 20, 2025
de4e0cb
clean up the code and copy in all tests that pass (right now)
ejrgilbert Dec 20, 2025
ed42470
begin refactoring encode logic to use new spaces
ejrgilbert Dec 20, 2025
eb492ad
some cleanup, and add alias.wast as next task
ejrgilbert Dec 29, 2025
48a1407
fix visiting of components
ejrgilbert Dec 29, 2025
d4ba119
remove unneeded imports
ejrgilbert Dec 29, 2025
811fe23
refactor encoding of componentinstance
ejrgilbert Dec 29, 2025
5c7320a
add in a documentation snippet to explain unsupported cases
ejrgilbert Dec 29, 2025
fa24726
flesh out more of the canonicalfunction encoding logic
ejrgilbert Dec 29, 2025
ac8ded4
flesh out more canon func encoding
ejrgilbert Dec 30, 2025
cf6d7b9
upgrade wasmparser/wasm_encoder libs
ejrgilbert Dec 30, 2025
349c5cd
flesh out instance node encoding
ejrgilbert Dec 30, 2025
2928295
more tests
ejrgilbert Dec 30, 2025
2988493
remove old space code
ejrgilbert Dec 30, 2025
2178071
encode aliases
ejrgilbert Dec 30, 2025
ae3e3fc
encode custom sections
ejrgilbert Dec 30, 2025
2d897b7
flesh out alias encoding
ejrgilbert Dec 30, 2025
79b2cd4
comment out things i don't think i need
ejrgilbert Dec 30, 2025
d72f687
add in test
ejrgilbert Dec 30, 2025
1cfe959
comment out failing tests (temporarily) and support start func
ejrgilbert Dec 30, 2025
209d8bd
add in all passing tests
ejrgilbert Dec 30, 2025
78ab1a1
fmt
ejrgilbert Dec 30, 2025
e1b7128
comment out failing test (temporarily)
ejrgilbert Dec 30, 2025
a632643
cleanup
ejrgilbert Dec 30, 2025
ff0e3f2
Add helper function for whamm use AND fix how exports are handled (st…
ejrgilbert Jan 2, 2026
d7f7abc
make sure to collect alias refs in the collect phase. comment out tes…
ejrgilbert Jan 6, 2026
08f19d6
fix ids in alias
ejrgilbert Jan 6, 2026
e0fdbbe
fix indices of ComponentExport
ejrgilbert Jan 6, 2026
b82bcaa
flesh out all of the collect phase logic (and comment out tests that …
ejrgilbert Jan 7, 2026
046f72d
fmt
ejrgilbert Jan 7, 2026
3f31e62
add some printlns for debugging
ejrgilbert Jan 7, 2026
edf8c30
Encode phase now has a substep to fix the indices before entering the…
ejrgilbert Jan 7, 2026
1f1eef2
flesh out all simpler reindexable nodes
ejrgilbert Jan 8, 2026
fd78bf4
now i can more generically pass encoder helpers
ejrgilbert Jan 8, 2026
22ac479
refactor the encode logic to simplify implementation (easier to maint…
ejrgilbert Jan 9, 2026
96c6dcd
remove unnecessary funcs
ejrgilbert Jan 9, 2026
f40c867
fix a bug in index space for component type dtor func
ejrgilbert Jan 9, 2026
34509f3
add comments to document why we aren't doing traits for the Encode ph…
ejrgilbert Jan 9, 2026
29e8937
flesh out todos in idx spaces (now ready to add scoping)
ejrgilbert Jan 9, 2026
511c836
fix formatting of fix_indices (ignore cargo fmt to enable oneliners)
ejrgilbert Jan 9, 2026
eb41425
fmt
ejrgilbert Jan 9, 2026
8c29f9f
note all the places that a new index space scope should be entered
ejrgilbert Jan 9, 2026
4eb6698
ignore tmp files
ejrgilbert Jan 9, 2026
b1be054
finished the first pass at implementation with scoped index spaces
ejrgilbert Jan 12, 2026
d56b037
make sure to parse declarations in scoped nodes
ejrgilbert Jan 12, 2026
4253252
fix scope_id logic during parser
ejrgilbert Jan 12, 2026
f4a7d3b
Fix parsing, wrote section variant
ejrgilbert Jan 12, 2026
2d5acd0
specify index space of a TypeRef struct
ejrgilbert Jan 12, 2026
9c122ed
mark outer as todo
ejrgilbert Jan 12, 2026
309d4fe
ignore collect phase for nested index scope items (no extra planning …
ejrgilbert Jan 12, 2026
1221796
passed my first index scoping test
ejrgilbert Jan 15, 2026
bb2a76c
remove unneeded param for Collect trait
ejrgilbert Jan 15, 2026
4a15233
fix the broken test build
ejrgilbert Jan 16, 2026
65cd8f3
passing many more tests
ejrgilbert Jan 16, 2026
54f2a56
back to where all non-scoping tests are passing
ejrgilbert Jan 16, 2026
8a933d2
uncomment tests that are now working
ejrgilbert Jan 16, 2026
7496e77
implemented (outer ...)
ejrgilbert Jan 16, 2026
32f7e6f
fix bug during parse where objects are reallocated
ejrgilbert Jan 16, 2026
c63c55e
almost done with all round trip tests
ejrgilbert Jan 16, 2026
e2b728b
need to keep a component stack for IR node lookup
ejrgilbert Jan 16, 2026
daffbf4
(component (component ...)) -- subcomponents are actually component T…
ejrgilbert Jan 16, 2026
82ecee5
make 'whamm' compile and add public API docs
ejrgilbert Jan 19, 2026
73df44c
some code cleanup
ejrgilbert Jan 19, 2026
a04a21c
fix some warnings
ejrgilbert Jan 19, 2026
a39da53
remove logic that tracks export names
ejrgilbert Jan 19, 2026
aeac882
add a cache to make index_spaces lookup logic more efficient
ejrgilbert Jan 19, 2026
4132359
fix indices of recgroup
ejrgilbert Jan 19, 2026
ccef0da
add lots of tests from wasm-tools and update wasmparser version to be…
ejrgilbert Jan 20, 2026
d91ec91
work with new wasmparser version and comment out failing tests (tempo…
ejrgilbert Jan 20, 2026
78c2bbe
rec groups can insert multiple types into the coretypes index space
ejrgilbert Jan 20, 2026
10e3b64
fix idx assignment in parse
ejrgilbert Jan 20, 2026
58bfb6d
ignore code snippets during test
ejrgilbert Jan 20, 2026
70a2fe3
add test to exercise what whamm does with instrumentation
ejrgilbert Jan 20, 2026
69f6a70
fmt
ejrgilbert Jan 20, 2026
f3629a4
remove the complexity of the ComponentHandle, increase ergonomics
ejrgilbert Jan 21, 2026
707a57a
lock down the instrumentation capabilities to prevent breaking encodi…
ejrgilbert Jan 21, 2026
6309093
huge cleanup/clippy/fmt
ejrgilbert Jan 21, 2026
2623bf1
more cleanup
ejrgilbert Jan 21, 2026
82ba319
flesh out undone todos
ejrgilbert Jan 21, 2026
7bfab29
remove todo
ejrgilbert Jan 21, 2026
585eba9
update the version of wasm-tools required by tests
ejrgilbert Jan 21, 2026
f63ea7c
move essential operations out of debug_assert_* -- fixes bug in relea…
ejrgilbert Jan 22, 2026
201e9e2
add helper traits for ergonomics of AppendOnlyVec
ejrgilbert Jan 23, 2026
6270b9c
Rename component_instance field in `Component` (#291)
arjunr2 Jan 23, 2026
5fc91ad
fix broken name refactor
ejrgilbert Jan 23, 2026
817265b
Fixes #285: Adding a custom section should actually work (#292)
ejrgilbert Jan 23, 2026
bb55674
Recreate the bugfix for #285 in new code
ejrgilbert Jan 23, 2026
b962be1
componentimport::type::eq(u32) should point to a componenttype
ejrgilbert Jan 28, 2026
2975900
add some docs
ejrgilbert Jan 28, 2026
015387c
BUGFIX: handle encoding async functions
ejrgilbert Feb 6, 2026
fb7b255
Add necessary APIs for component decompose (#293)
arjunr2 Feb 12, 2026
899a601
place components into the component index space
ejrgilbert Feb 12, 2026
7e0ca9f
change asserts to debug_asserts
ejrgilbert Feb 12, 2026
dba3048
fmt
ejrgilbert Feb 12, 2026
bbe1dbb
Merge branch 'main' into feature/support-components
ejrgilbert Feb 12, 2026
78aca16
enable the addition of a custom section to a module
ejrgilbert Feb 12, 2026
25912ef
create a high-level design for visiting a component
ejrgilbert Feb 12, 2026
14776be
allow user to lookup and resolve refs during component visitation
ejrgilbert Feb 13, 2026
1445a5e
track name section
ejrgilbert Feb 16, 2026
d7484a5
add lots of documentation around the 'visitor' capability
ejrgilbert Feb 16, 2026
17b1f6b
fmt/clippy/tests
ejrgilbert Feb 16, 2026
4a06d7e
fmt/clippy
ejrgilbert Feb 19, 2026
39a54f1
centralize VisitCtx usage (in encode logic)
ejrgilbert Feb 20, 2026
43c1bab
create the bones for the new collector
ejrgilbert Feb 20, 2026
8b168e4
remove need to have idx in the 'seen' tracker
ejrgilbert Feb 20, 2026
3a856ef
split out subparts of visitor logic so structural/topological orderin…
ejrgilbert Feb 20, 2026
48ee760
clean up the structural/topological visitor implementations
ejrgilbert Feb 21, 2026
2824b16
add docs to public visitor api
ejrgilbert Feb 21, 2026
58f48e3
correctly enumerate topological events and begin encoder refactor
ejrgilbert Feb 23, 2026
ec8dd43
get lots of encoder tests working
ejrgilbert Feb 24, 2026
7b67861
fix the buggy handling of rec groups
ejrgilbert Feb 24, 2026
27e8096
Only add subitem order IF it's not an outer ref
ejrgilbert Feb 24, 2026
e705467
flesh out some todos in encoder
ejrgilbert Feb 24, 2026
821c661
remove unresolvable refs from list
ejrgilbert Feb 24, 2026
1ccf28d
don't assume the current scope when fixing ids
ejrgilbert Feb 24, 2026
64773d5
fix indices when encoding
ejrgilbert Feb 24, 2026
a084840
don't assign nested type IDs at decl level
ejrgilbert Feb 24, 2026
f416dae
remove lots of code i don't need
ejrgilbert Feb 25, 2026
7e5e0db
fmt/clippy/cleanup
ejrgilbert Feb 25, 2026
dc60db5
make events same for structural and topological
ejrgilbert Feb 25, 2026
29ed922
add in tests for visitors
ejrgilbert Feb 25, 2026
ec47bd5
get events once to reduce time
ejrgilbert Feb 25, 2026
430d2d3
add more docs on the rec core type
ejrgilbert Feb 25, 2026
5b6ecc2
add in path in docs
ejrgilbert Feb 25, 2026
4c9ca0c
clippy
ejrgilbert Feb 25, 2026
4a1e094
clean up definition of 'depth'
ejrgilbert Feb 25, 2026
edb8924
add docs on how to pull references from an IR node
ejrgilbert Feb 25, 2026
ed9c776
add the ability to look up names using the VisitCtx
ejrgilbert Feb 25, 2026
2cf51b5
make sure to fix the names for reorganized binaries
ejrgilbert Feb 25, 2026
eb38f0c
Clean up some of the encoder
ejrgilbert Feb 25, 2026
6657567
add information about visitors to readme
ejrgilbert Feb 25, 2026
5947fe4
make when I call enter/exit type consistent in the driver (before exi…
ejrgilbert Feb 25, 2026
f687762
uncomment test, fmt/clippy
ejrgilbert Feb 25, 2026
6b056fa
Add in-depth testing to visitors
ejrgilbert Feb 25, 2026
ee70eef
refactor the error handling to use Result where relevant (#298)
ejrgilbert Feb 26, 2026
d672b36
update actions
ejrgilbert Feb 26, 2026
0876ba9
uncomment test
ejrgilbert Feb 26, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
# TODO: Remove the dependency on wasm-tools when have time.
- name: Install wasm-tools
run: |
cargo install wasm-tools --version 1.235.0 --locked
cargo install wasm-tools --version 1.244.0 --locked

- name: Build
run: cargo build --locked --verbose
Expand Down
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,6 @@ fac_wirm/Cargo.lock
**/out.**
output

# Test wasm files
a.wasm
# Some helper files
test.wat
test.wasm
Loading