<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in trap_encoding.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>f820750b - Fix double read/writes on stream/future handles (#12873)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#f820750b</link>
        <description>Fix double read/writes on stream/future handles (#12873)* Fix double read/writes on stream/future handlesThis should result in a first-class trap, not a bug.* Fix CI

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Mon, 30 Mar 2026 14:54:50 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>a2cc11f3 - Update object to 0.39.0 (#12866)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#a2cc11f3</link>
        <description>Update object to 0.39.0 (#12866)* Update object to 0.39.0* Add vets for `object`---------Co-authored-by: Alex Crichton &lt;alex@alexcrichton.com&gt;

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Mon, 30 Mar 2026 09:35:59 +0000</pubDate>
        <dc:creator>Philip Craig &lt;philipjcraig@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>da093747 - Relax panics in async/futures to traps/errors (#12688)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#da093747</link>
        <description>Relax panics in async/futures to traps/errors (#12688)* Relax panics in async/futures to traps/errorsThis commit is an admittance that I don&apos;t believe we&apos;re going to getto a point where we are confident enough in the fuzzing ofcomponent-model-async such that we could confidently say we&apos;reexercising the vast majority of possible panics. Development ofcomponent-model-async has shown a steady trickle of panics over thecourse of the development of the feature, and this trend has beenpersistent over time as well.An attempt was made in #12119 to add a fuzzer dedicated to async eventsbut that didn&apos;t actually find anything in development and it has misseda number of panics present before and discovered after its introduction.Overall I do not know how to improve the fuzzer to the point that itwould find pretty much all of the existing async-related panics overtime.To help address this concern of the `concurrent.rs` implementation thiscommit goes through and replaces things like `unwrap()`, `assert!`,`panic!`, and `unreachable!` with an error-producing form. The benefitof this is that a bug in the implementation is less likely to result ina panic and instead just results in a non-spec-compliant trap. Thedownside of doing this though is that it can become unclear what errorsare &quot;first class traps&quot;, or expected to be guest reachable, and whichare expected to be bugs in Wasmtime. To help address this I&apos;ve performeda few refactorings here as well.* Some traps previously present as error strings are now promoted to  using `Trap::Foo` instead. This has some refactoring of the Rust/C  side as well to make it easier to define new variants. Tests were  additionally added for any trap messages that weren&apos;t previously  tested as being reachable.* A new `bail_bug!` macro was added (internally) for Wasmtime. This is  coupled with a concrete `WasmtimeBug` error type (exported as  `wasmtime::WasmtimeBug`). The intention is that `bail!` continues to  be &quot;here&apos;s a string and I&apos;m a bit too lazy to make a concrete error&quot;  while `bail_bug!` indicates &quot;this is a bug in wasmtime please report  this if you see it&quot;.The rough vision is that if an error condition is reached, and the systemis not broken in such a way that panicking is required, then `bail_bug!`can be used to indicate a bug in Wasmtime as opposed to panicking. Thisreduces the real-world impact of hitting these scenarios by downgrading aCVE-worthy `panic!` into a bug-worthy non-spec-compliant trap. Not allpanics are able to be transitioned to this as some are load bearing froma safety perspective or similar (or indicate something equally broken),but the vast majority of cases are suitable for &quot;return a trap, lockdown the store, and let destructors take care of everything else&quot;.This change additionally has resulted in API changes for `FutureReader`and `StreamReader`. For example creation of these types now returns a`Result` for when the `ResourceTable` is full, for example, instead ofpanicking.* Fix CI build* Translate `WasmtimeBug` to panics in debug mode* Review comments* Refactor some stream methods for fewer panics

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Mon, 02 Mar 2026 21:26:40 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>b856261d - refactor recursive reentrance checks (#12349)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#b856261d</link>
        <description>refactor recursive reentrance checks (#12349)* refactor recursive reentrance checksThis commit makes a few changes related to recursive reentrance checks, instancepoisoning, etc.:- Implements the more restrictive lift/lower rules described in https://github.com/WebAssembly/component-model/pull/589 such that a component instance may not lower a function lifted by one of its ancestors, nor vice-versa.  Any such lower will result in a fused adapter which traps unconditionally, preventing guest-to-guest recursive reentrance without requiring data flow analysis.    - Note that this required updating several WAST tests which were violating the new rule, including some in the `tests/component-model` Git submodule, which I&apos;ve updated.    - This is handled entirely in the `fact` module now; I&apos;ve removed the `AlwaysTrap` case previously handled by `wasmtime-cranelift`.- Removes `FLAG_MAY_ENTER` from `InstanceFlags`.  It is no longer needed for guest-to-guest calls due to the above, and for guest-to-host-to-guest calls we can rely on either `FLAG_NEEDS_POST_RETURN` for sync-lifted functions or the `GuestTask` call stack for async-lifted functions.- Adds a `StoreOpaque::trapped` field which is set when _any_ instance belonging to that store traps, at which point the entire store is considered poisoned, meaning no instance belonging to it may be entered.  This prevents indeterminant concurrent task state left over from the trapping instance from leaking into other instances.Note that this does _not_ include code to push and pop `GuestTask` instances forguest-to-guest sync-to-sync calls, nor for host-to-guest calls using e.g. thesynchronous `Func::call` API, so certain intrinsics which expect a `GuestTask`to be present such as `backpressure.inc` will still fail in such cases.  I&apos;lladdress that in a later PR.Also note that I made a small change to `wasmtime-wit-bindgen`, adding a `Send`bound on the `T` type parameter for `store | async` functions.  This allowed meto recursively call `{Typed}Func::call_concurrent` from inside a host function,and it doesn&apos;t have any downsides AFAICT.Fixes #12128* bless bindgen expansions* bless disas tests* address review feedback* sync `trap.h` with `trap_encoding.rs`...and add const assertions to `trap.rs` to help avoid future divergence.

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Wed, 14 Jan 2026 22:27:49 +0000</pubDate>
        <dc:creator>Joel Dice &lt;joel.dice@fermyon.com&gt;</dc:creator>
    </item>
<item>
        <title>967f4601 - generate precise traps in component adapters (#12215)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#967f4601</link>
        <description>generate precise traps in component adapters (#12215)* generate precise traps in component adaptersPreviously, we generated a generic `unreachable` instruction for each trap in afused adapter, plus some metadata to recover the specific kind of trap.However, that metadata was never hooked up to anything, so we only got a generic`unreachable` message at runtime.This commit removes the metadata tracking and instead simply calls a hostintrinsic, passing the trap code as a parameter.  This is somewhate pessimalcompared with what we had before, but improves ergonomics and allows us to avoidforking as many tests from the component-model repo.If performance becomes an issue, we can easily add an option to skip the hostcall and only emit an `unreachable` instruction as before.Note that I&apos;ve removed forked versions of three tests in favor of their upstreamequivalents.Fixes #11683* update `strings.rs` tests* bless disas tests

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Tue, 23 Dec 2025 21:00:39 +0000</pubDate>
        <dc:creator>Joel Dice &lt;joel.dice@fermyon.com&gt;</dc:creator>
    </item>
<item>
        <title>8992b99b - trap on blocking call in sync task before return (#12043)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#8992b99b</link>
        <description>trap on blocking call in sync task before return (#12043)* trap on blocking call in sync task before returnThis implements a spec change (PR pending) such that tasks created for calls tosynchronous exports may not call potentially-blocking imports or return `wait`or `poll` callback codes prior to returning a value.  Specifically, thefollowing are prohibited in that scenario:- returning callback-code.{wait,poll}- sync calling an async import- sync calling subtask.cancel- sync calling {stream,future}.{read,write}- sync calling {stream,future}.cancel-{read,write}- calling waitable-set.{wait,poll}- calling thread.suspendThis breaks a number of tests, which will be addressed in follow-up commits:- The `{tcp,udp}-socket.bind` implementation in `wasmtime-wasi` is implemented  using `Linker::func_wrap_concurrent` and thus assumed to be async, whereas the  WIT interface says they&apos;re sync, leading to a type mismatch error at runtime.  Alex and I have discussed this and have a general plan to address it.- A number of tests in the tests/component-model submodule that points to the  spec repo are failing.  Those will presumably be fixed as part of the upcoming  spec PR (although some could be due to bugs in this implementation, in which  case I&apos;ll fix them).- A number of tests in tests/misc_testsuite are failing.  I&apos;ll address those in  a follow-up commit.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* call `check_may_leave` before `check_blocking``check_blocking` needs access to the current task, but that&apos;s not set forpost-return functions since those should not be calling _any_ imports at all, sofirst check for that.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* fix `misc_testsuite` test regressionsThis amounts to adding `async` to any exported component functions that mightneed to block.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* simplify code in `ConcurrentState::check_blocking`Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* make `thread.yield` a no-op in non-blocking contextsPer the proposed spec changes, `thread.yield` should return control to the guestimmediately without allowing any other thread to run.  Similarly, when anasync-lifted export or callback returns `CALLBACK_CODE_YIELD`, we should callthe callback again immediately without allowing another thread to run.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* fix build when `component-model-async` feature disabledSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* fix more test regressionsSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* fix more test regressionsNote that this temporarily updates the `tests/component-model` submodule to thebranch for https://github.com/WebAssembly/component-model/pull/577 until that PRis merged.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* tweak `Trap::CannotBlockSyncTask` messageThis clarifies that such a task cannot block prior to returning.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* fix cancel_host_future testSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* trap sync-lowered, guest-&gt;guest async calls in sync tasksI somehow forgot to address this earlier.  Thanks to Luke for catching this.Note that this commit doesn&apos;t include test coverage, but Luke&apos;s forthecomingtests in the `component-model` repo will cover it, and we&apos;ll pull that in withthe next submodule update.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* switch back to `main` branch of `component-model` repo...and skip or `should_fail` the tests that won&apos;t pass untilhttps://github.com/WebAssembly/component-model/pull/578 is merged.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* add `trap-if-block-and-sync.wast`We&apos;ll remove this again in favor of the upstream version oncehttps://github.com/WebAssembly/component-model/pull/578 has been merged.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* address review feedback- Assert that `StoreOpaque::suspend` is not called in a non-blocking context except in specific circumstances- Typecheck async-ness for dynamic host functions- Use type parameter instead of value parameter in `call_host[_dynamic]`Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* add explanation comments to `check_blocking` callsSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* fix fuzz test oracle for async functionsSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;---------Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Tue, 09 Dec 2025 15:41:57 +0000</pubDate>
        <dc:creator>Joel Dice &lt;joel.dice@fermyon.com&gt;</dc:creator>
    </item>
<item>
        <title>6751ea79 - disallow exiting a component instance during a post-return call (#11688)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#6751ea79</link>
        <description>disallow exiting a component instance during a post-return call (#11688)* disallow exiting a component instance during a post-return callThis is a relatively recent change to the spec.In order to check the `may_leave` flag in all the relevant intrinsics, I had toplumb the caller `RuntimeComponentInstanceIndex` through a bunch of trampolinesthat didn&apos;t previously need it, hence the large diff.Note that I&apos;ve added a slightly tweaked version of `trap-in-post-return.wast`and left the upstream version disabled in `test-util/src/wast.rs` due to #11683.Fixes #11676.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* fix test regressionsSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;---------Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Thu, 11 Sep 2025 23:26:34 +0000</pubDate>
        <dc:creator>Joel Dice &lt;joel.dice@fermyon.com&gt;</dc:creator>
    </item>
<item>
        <title>600783a3 - Synchronize p3 intrinsics/translation (#10953)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#600783a3</link>
        <description>Synchronize p3 intrinsics/translation (#10953)This commit synchronizes the list of intrinsics and notably libcallswith the wasip3-prototyping repository. This change alone does notreally do all that much but the goal is to reduce the diff between thisrepository and the wasip3-prototyping repository. The main changeincluded here is synchronizing the list of libcalls. That necessitateschanging various concrete signatures of libcalls and all implementationsare replaced with `todo!()` for now to get filled in in the future.Additionally this necessitates changes to the trampoline compilation aswell which is brought wholesale from the wasip3-prototyping repository.Note that this should all be well-tested and covered in thewasip3-prototyping repository so no extra tests are brought in at thistime. The intention is that once the runtime bits start landing hereupstream it&apos;ll be accompanied with appropriate tests.

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Fri, 06 Jun 2025 17:23:30 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>bb6c5de7 - Remove DeleteMeDebugAssertion trap (#10952)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#bb6c5de7</link>
        <description>Remove DeleteMeDebugAssertion trap (#10952)This trap was used during wasmfxtime development and was missedin the cleanup of #10388.

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Fri, 06 Jun 2025 15:59:25 +0000</pubDate>
        <dc:creator>Paul Osborne &lt;paul.osborne@fastly.com&gt;</dc:creator>
    </item>
<item>
        <title>63d482c8 - Stack switching: Infrastructure and runtime support (#10388)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#63d482c8</link>
        <description>Stack switching: Infrastructure and runtime support (#10388)* [pr1] base* prtest:full* make sure to use ControlFlow result in trace_suspended_continuation* stack-switching: cleanup: remove stray c-api changesThese are remnants of unrelated wasmfx wasmtime experiments, possiblysuitable for later submission against upstream.* stack-switching: reuse async_stack_size* stack-switching: delete delete_me debugging* stack-switching: address feedback in environ::types* stack-switching: remove unused code from vmoffsets* stack-switching: drop dependency on std* stack-switching: add compilation checks to ci matrix* stack-switching: remove debug_println cruft* stack-switching: export environ consts consistently* stack-switching: export vm pub items consistently* table_pool: reduced capacity for large elementsVMContRef elements which takes up two words and we don&apos;t want todouble the size of all tables in order to support storing these.This change changes the table to target storing the requestedmax number of elements if they are &quot;nominally&quot; sized with(potentially) reduced capacity for non-nominally sized types whenencountered.Continuations are the only type of element which may result infewer table slots being available than requested.* stack-switching: extend conditional compilationA fair bit of the definitions for stack switching are stillenabled, but this patch takes things a bit further to avoidcompilation problems; notably, cont_new is now not compiledin unless the feature is enabled.* stack-switching: formatting fixes* stack-switching: address new clippy checksIn addition, to get clippy to fully pass, plumbed inadditional config to make winch paths happy; there&apos;s noimpl for winch yet but plumbing through the feature isrequired to make paths incorporating macros at variouslayers satisfied (and it is expected we&apos;ll use thefeatures in the future).* stack-switching: more conditional compilation fixes* stack-switching: additional conditional compile on table builtins for continuations* stack-switching: additional conditional compile fixes* stack-switching: additional conditional compile in store* stack-switching: remove overly strict assertion* stack-switching: remove errantly dropped no_mangle in config c-api* stack-switching: VMContObj::from_raw_parts* stack-switching: remove duplicate async_stack_size feature check* stack-switching: VMArray -&gt; VMHostArray* stack-switching: remove unnecessary clippy exception* stack-switching: fix docs referenced VMRuntimeLimits* stack-switching: fix doc typo* stack-switching: follow recommendations for type casts* stack-switching: use usize::next_multiple_of* stack-switching: update outdated comment* stack-switching: use feature gate instead of allow(dead_code)* stack-switching: rework backtrace using chunks/zip* stack-switching: move tests to footer moduleThis is a bit more consistent with the prevailing stylein tree and (subjectively) makes finding the testsas a reader more straightforward.Tests left unchanged sans some import cleanup.* stack-swictchding: verify stack_chain offsets at runtime* fixup! stack-switching: use feature gate instead of allow(dead_code)* stack-switching: document continuation roots tracing using match arms---------Co-authored-by: Paul Osborne &lt;paul.osborne@fastly.com&gt;

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Wed, 04 Jun 2025 22:47:35 +0000</pubDate>
        <dc:creator>Frank Emrich &lt;git@emrich.io&gt;</dc:creator>
    </item>
<item>
        <title>eed7c104 - pulley: Allow disabling SIMD in the interpreter at compile-time (#10727)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#eed7c104</link>
        <description>pulley: Allow disabling SIMD in the interpreter at compile-time (#10727)This commit adds a new feature to Pulley which is used to reduce thecompiled code size of the interpreter itself by disabling SIMD opcodeinterpretation at compile-time. The goal here is to be low-impact onPulley itself to avoid needing `#[cfg]` all over the place and toadditionally avoid the need to redesign Pulley&apos;s opcode macro for use invarious parts of Wasmtime.Methods are annotated with a custom macro in the interpreter whichregisters a `#[cfg]` that either does the listed implementation orswitches to an implementation that emits a trap if executed. This meansthat it&apos;s safe to execute mismatched code where SIMD was enabled atcompile time but disabled at runtime, it just means the semantics may bea bit surprising to debug.Note that this SIMD is still enabled by default, and an explicit `--cfg`via `RUSTFLAGS` is required to compile-out the SIMD support. Cargofeatures aren&apos;t a great fit for this sort of feature so an explicit flagis used.

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Mon, 05 May 2025 20:34:13 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>3e406d2e - Add a `wasmtime objdump` subcommand (#10405)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#3e406d2e</link>
        <description>Add a `wasmtime objdump` subcommand (#10405)This commit adds an `objdump` subcommand to the `wasmtime` CLI. Like allother subcommands this can be disabled for a more minimal build of theCLI as well. The purpose of this subcommand is to provide aWasmtime-specific spin on the venerable native `objdump` itself. Notablythis brings Wasmtime-specific knowledge for filtering functions, showingWasmtime metadata, etc.This command is intended to look like `objdump` roughly but also hasconfigurable output with various flags and things that can be printed.For now the main Wasmtime additions are showing the address mapsection, stack map section, and trap section of a `*.cwasm` file.This new subcommand replaces the infrastructure of the `disas` testsuite, and now that test suite uses `wasmtime objdump` to generate testexpectations. Additionally the subcommand replaces the Pulley `objdump`example as a more full-featured objdump that also works natively withPulley.The hope is that if we add more binary metadata in the future (such asunwinding tables) that can be relatively easily added here forexploration as well. Otherwise this is mostly just a developerconvenience for Wasmtime developers as well and hopefully doesn&apos;t costtoo much in maintenance burden.Closes #10336

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Thu, 20 Mar 2025 19:23:59 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>c3aa6a53 - Change `allow(missing_docs)` to `expect(..)` (#10384)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#c3aa6a53</link>
        <description>Change `allow(missing_docs)` to `expect(..)` (#10384)This wasn&apos;t possible when `expect` was first introduced due to a changebeing required in upstream rust-lang/rust. That changerust-lang/rust#130025) has now rode enough trains to be in our MSRV, sowe can expect missing docs now instead of just allowing it.

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Wed, 12 Mar 2025 18:58:45 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>442003ad - async/stream/future plumbing for wasmtime-environ (#10047)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#442003ad</link>
        <description>async/stream/future plumbing for wasmtime-environ (#10047)* async/stream/future plumbing for wasmtime-environI&apos;ve split this out of #9582 to make review easier.This patch includes the plumbing needed to routeasync/stream/future/error-context data from `wit-parser`, through the variouslayers of `wasmtime-environ`, and on to `wasmtime-cranelift` and `wasmtime`.The `wasmtime::runtime`, `wasmtime_environ::fact`, and`wasmtime_cranelift::compiler::component` modules only contain `todo!()` stubsto begin with; I&apos;ll flesh those out in later PRs.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;remove debugging codeSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;revert comment formatting change in trap_encoding.rsSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;deduplicate code in inline.rsSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;remove `ComponentTypesBuilder::error_context_type`This was just an alias for `error_context_table_type`, which I&apos;ve made public.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;defer `VMComponentOffsets` changes to a future PRSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* fix fuzz buildSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;---------Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Wed, 22 Jan 2025 18:34:55 +0000</pubDate>
        <dc:creator>Joel Dice &lt;joel.dice@fermyon.com&gt;</dc:creator>
    </item>
<item>
        <title>9034e101 - Rely on `core::error::Error` (#9702)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#9034e101</link>
        <description>Rely on `core::error::Error` (#9702)* Rely on `core::error::Error`With Wasmtime&apos;s new MSRV at 1.81 this means that `core::error::Error` isavailable which means that in `no_std` mode the `Error` trait can beused. This has been integrated into `anyhow::Error` already upstream andmeans that we can remove our own local hacks such as the `Err2Anyhow` trait.This commit removes the `Err2Anyhow` trait and all usage, going back toidiomatic Rust error propagation and conversion even in the `no_std`world. This should make code more portable by default and remove someweird idioms we had for supporting this.prtest:full* Add some trusted vets* Audit object crate update* Disable backtraces on CI

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Tue, 03 Dec 2024 18:27:28 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>45b60bd6 - Start using `#[expect]` instead of `#[allow]` (#9696)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#45b60bd6</link>
        <description>Start using `#[expect]` instead of `#[allow]` (#9696)* Start using `#[expect]` instead of `#[allow]`In Rust 1.81, our new MSRV, a new feature was added to Rust to use`#[expect]` to control lint levels. This new lint annotation willsilence a lint but will itself cause a lint if it doesn&apos;t actuallysilence anything. This is quite useful to ensure that annotations don&apos;tget stale over time.Another feature is the ability to use a `reason` directive on theattribute with a string explaining why the attribute is there. Thisstring is then rendered in compiler messages if a warning or errorhappens.This commit migrates applies a few changes across the workspace:* Some `#[allow]` are changed to `#[expect]` with a `reason`.* Some `#[allow]` have a `reason` added if the lint conditionally fires  (mostly related to macros).* Some `#[allow]` are removed since the lint doesn&apos;t actually fire.* The workspace configures `clippy::allow_attributes_without_reason = &apos;warn&apos;`  as a &quot;ratchet&quot; to prevent future regressions.* Many crates are annotated to allow `allow_attributes_without_reason`  during this transitionary period.The end-state is that all crates should use`#[expect(..., reason = &quot;...&quot;)]` for any lint that unconditionally firesbut is expected. The `#[allow(..., reason = &quot;...&quot;)]` lint should be usedfor conditionally firing lints, primarily in macro-related code.The `allow_attributes_without_reason = &apos;warn&apos;` level is intended to bepermanent but the transitionary`#[expect(clippy::allow_attributes_without_reason)]` crate annotationsto go away over time.* Fix adapter buildprtest:full* Fix one-core build of icache coherence* Use `allow` for missing_docsWork around rust-lang/rust#130021 which was fixed in Rust 1.83 and isn&apos;tfixed for our MSRV at this time.* More MSRV compat

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Mon, 02 Dec 2024 17:19:20 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>d5652f52 - Implement the `ref.cast` Wasm GC instruction (#9437)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#d5652f52</link>
        <description>Implement the `ref.cast` Wasm GC instruction (#9437)

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Thu, 10 Oct 2024 15:19:51 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>ec3b2d22 - Implement most `array.*` instructions for the GC proposal (#9326)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#ec3b2d22</link>
        <description>Implement most `array.*` instructions for the GC proposal (#9326)* Implement most `array.*` instructions for the GC proposalThis does not implement `array.copy` and `array.init_elem` yet, but implementsall other `array.*` instructions:* `array.new`* `array.new_fixed`* `array.new_default`* `array.new_data`* `array.new_elem`* `array.fill`* `array.init_data`* `array.len`* `array.get`* `array.get_s`* `array.get_u`* `array.set`Note that the initial plumbing for `array.{copy,init_elem}` is in place, but theinstructions themselves are not implemented yet.* Fix no-gc builds* Fix some clippy warnings* cargo fmt* Fix another clippy error* Fix more clippy errors* Remove debug logging* Add array.fill helper* exit scope even on panic

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Mon, 30 Sep 2024 19:25:35 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>05e6a918 - Add the `ArrayOutOfBounds` trap code (#9301)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#05e6a918</link>
        <description>Add the `ArrayOutOfBounds` trap code (#9301)This is needed in the implementation of Wasm GC&apos;s array instructions.

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Tue, 24 Sep 2024 17:51:23 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>1dc9b628 - Remove the `NullI31Ref` trap code (#9299)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/environ/src/trap_encoding.rs#1dc9b628</link>
        <description>Remove the `NullI31Ref` trap code (#9299)To precisely match the Wasm spec tests, we would also need `NullStructRef` and`NullArrayRef`, etc... This is not practical, given the encoding space we haveavailable. We are already matching expected &quot;null FOO reference&quot; trap messageswhen running the spec tests to our own &quot;null reference&quot; messages, so we can dothat for `i31`s as well.

            List of files:
            /wasmtime-44.0.1/crates/environ/src/trap_encoding.rs</description>
        <pubDate>Tue, 24 Sep 2024 17:06:19 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
