All skills
wado-lang avatar

/vendor-submodules

@9abda12
by Wadowado-lang/wado116 stars
2

Locate and sync the reference specs and runtimes vendored under vendor/ — the Wasm, WASI P3, and Component Model specs, and the wasm-tools and wasmtime sources. Use whenever an answer should come from one of those sources rather than memory, and whenever vendor/ is missing or stale.

  • 3 files
  • 8.8 KB
  • Updated last week
  • GitHub

Use this Skill: https://skilld.dev/gh/wado-lang/wado/vendor-submodules

This session only. Nothing lands on disk.

SKILL.md

≈76 tokens always: the name and description. ≈746 when used: this file.

What is under vendor/

  • vendor/wasm/ - WebAssembly/spec
  • vendor/wasi/ - WebAssembly/WASI
  • vendor/component-model/ - WebAssembly/component-model (CM spec)
    • Canonical built-ins: vendor/component-model/design/mvp/CanonicalABI.md
    • Concurrency (async, streams, futures): vendor/component-model/design/mvp/Concurrency.md
    • Explainer: vendor/component-model/design/mvp/Explainer.md
  • vendor/wasmtime/ - a Wasm runtime with WASI P3 support
  • vendor/wasm-tools/ - the Wasm toolchain the Wado compiler builds on
  • vendor/antlr4/ - ANTLR4, the grammar dialect Gale targets. Read package-gale/AGENTS.md first: most of this tree must not be read
  • vendor/wasi-webgpu/ - the wasi:webgpu proposal
  • vendor/protobuf-spec/ - protobuf.dev's source, which is the protobuf spec
    • Wire format: vendor/protobuf-spec/content/programming-guides/encoding.md
    • The .proto grammar, one file per syntax and edition: vendor/protobuf-spec/content/reference/protobuf/{proto2,proto3,edition-2023,edition-2024}-spec.md
    • Edition features: vendor/protobuf-spec/content/editions/features.md
  • vendor/protobuf/ - protocolbuffers/protobuf, for the .proto files the spec does not carry: src/google/protobuf/descriptor.proto, the well-known types, and the unittest*.proto / test_messages_*.proto Grog parses as a corpus

git submodule update --init --recommend-shallow fetches them.

Syncing

mise run sync-vendor

vendor/wasmtime goes to the exact version in Cargo.lock, which WASI P3 compatibility requires. The other submodules go to their remote HEAD.

Building against a patched wasmtime

To test a change to wasmtime itself, edit vendor/wasmtime in place and add to the workspace Cargo.toml:

[patch.crates-io]
wasmtime = { path = "vendor/wasmtime/crates/wasmtime" }
wasmtime-wasi = { path = "vendor/wasmtime/crates/wasi" }
wasmtime-wasi-http = { path = "vendor/wasmtime/crates/wasi-http" }
wasmtime-wasi-tls = { path = "vendor/wasmtime/crates/wasi-tls" }

Those four names redirect 31 crates. The cranelift-*, pulley-*, wasmtime-internal-* and wiggle* crates follow through the dependency graph. sync-vendor already holds the submodule at the Cargo.lock version, so the sources match what the workspace expects and nothing needs porting.

Keep the stanza on a throwaway branch. CI checks out without submodules (submodules: false, also actions/checkout's default), so on main every job dies while parsing the manifest. Landing it means turning submodule checkout on across every workflow.

reference/ holds patches written this way, each with its measurement:

  • current_thread_split.patch — splits the cold deferred-frame replay out of StoreOpaque::current_thread so the fast path inlines. Removes ~1 point of CPU; throughput flat.
  • trace_fiber_roots.patch — tracks fiber-owning reps instead of scanning the whole component ResourceTable per GC. Not measurable.

Source: SKILL.md on GitHub

No third-party reports yet.

Signed by skilld at 9abda12. This ties the file your Agent reads to that commit on GitHub. It does not review the instructions.

Last checked against GitHub yesterday.

Activeupdated last week

README badge

README badge for wado-lang/wado/vendor-submodules