<?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 dynamic.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>39e910be - [44.0.0] Merged backports for security advisories (#13007)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#39e910be</link>
        <description>[44.0.0] Merged backports for security advisories (#13007)* fix(environ): repair unsound StringPool::try_clone()The 43.0 release introduced a soundness bug in StringPool::try_clone(): thecloned map retains &amp;&apos;static str keys pointing into the original pool&apos;sstrings storage. Once the original Linker is dropped those keys dangle.Cloning a Linker, then dropping the original one, leaves a linker whoseregistered imports could no longer be found, causing instantiation tofail with &quot;unknown import&quot;.Signed-off-by: Flavio Castelli &lt;fcastelli@suse.com&gt;* Fix pooling allocator predicate to reset VM permissionsThis commit fixes a mistake that was introduced in #9583 where the logicto reset a linear memory slot in the pooling allocator used the wrongpredicate. Specifically VM permissions must be reset if virtual memorycan be relied on at all, and the preexisting predicate of`can_elide_bounds_check` was an inaccurate representation of this. Thecorrect predicate to check is `can_use_virtual_memory`.* winch: Fix the type of the `table.size` output registerThis commit corrects the tagged size of the output of the `table.size`instruction. Previously this was hardcoded as a 32-bit integer insteadof consulting the table&apos;s index type to use theindex-type-sized-register instead.* winch: Fix a host panic when executing `table.fill`This commit fixes a possible panic when a Winch-compiled module executesthe `table.fill` instruction. Refactoring in #11254 updated Craneliftbut forgot to update Winch meaning that Winch&apos;s indices were still usingthe module-level indices instead of the `DefinedTableIndex` space. Thisadds some tests and updates Winch&apos;s translation to use preexistinghelpers.* x64: Fix `f64x2.splat` without SSE3Don&apos;t sink a load into `pshufd` which loads 16 bytes, instead force`put_in_xmm` to ensure only 8 bytes are loaded.* Properly verify alignment in string transcodingThis commit updates string transcoding between guest modules to properlyverify alignment. Previously alignment was only verified on the firstallocation, not reallocations, which is not spec-compliant. Thisadditionally fixes a possible host panic when dealing with unalignedpointers.* Fix type confusion in AArch64 amode RegScaled folding* winch: Add add_uextend to perform explicit extension when needed.This commit fixes an out-of-bounds access caused by the lack zeroextension in the code responsible for calculating the heap address forloads/stores.This issue manifests in aarch64 (unlike x64) given that no automaticextension is performed, resulting in an out-of-bounds access.An alternative approach is to emit an extend for the index, howeverthis approach is preferred given that it gives the MacroAssemblerlayer better control of how to lower addition, e.g., in aarch64 we caninline the desired extension in a single instruction.* winch: Correctly type the result of table.growThis commit fixes an out-of-bounds access caused by the lack of typenarrowing from the `table.grow` builtin. Without explicit narrowing,the type is treated as 64-bit value, which could cause issues whenpaired with loads/stores.* Review comments* Properly handle table index typesOnly narrow when dealing with the 64-bit pointer/32-bit tables* Fix panic with out-of-bounds flags in `Value`This commit fixes a panic when a component model `Value` is lifted froma flags value which specifies out-of-bounds bits as 1. This is specifiedin the component model to ignore the out-of-bounds bits, which `flags!`correctly did (and thus `bindgen!`), but `Value` treated out-of-boundsbits as a panic due to indexing an array.* Fix bounds checks in FACT&apos;s `string_to_compact` methodWe need to bounds check the source byte length, not the number of code units.* Add missing realloc validation in string transcodingThis commit adds a missing validation that a return value of `realloc`is inbounds during string transcoding. This was accidentally missing onthe transcoding path from `utf8` to `latin1+utf16` which meant that anearly-raw pointer could get passed to the host to perform thetranscode.* winch: Refine zero extension heuristicThis commit refines the zero extension heuristic such that itunconditionally emits a zero extension when dealing with 32-bitheaps. This eliminates any ambiguity related to the value of thememory indices across ISAs.* Fix failure on 32-bit* Fix miri test---------Signed-off-by: Flavio Castelli &lt;fcastelli@suse.com&gt;Co-authored-by: Flavio Castelli &lt;fcastelli@suse.com&gt;Co-authored-by: Shun Kashiwa &lt;shunthedev@gmail.com&gt;Co-authored-by: Sa&#250;l Cabrera &lt;saulecabrera@gmail.com&gt;Co-authored-by: Nick Fitzgerald &lt;fitzgen@gmail.com&gt;

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Thu, 09 Apr 2026 17:40:49 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>1b59b579 - Add support for map type (#12216)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#1b59b579</link>
        <description>Add support for map type (#12216)* Add support for map typeSigned-off-by: Yordis Prieto &lt;yordis.prieto@gmail.com&gt;* Add Map and MapEntry classes to support key/value pairs in component modelThis commit introduces the Map and MapEntry classes, enabling the representation of map values in the component model. The Map class allows for the creation and iteration of key/value pairs, enhancing the functionality of the wasmtime component API. Additionally, the .gitignore file is updated to exclude build artifacts from the crates/c-api directory.* Add wasm_component_model_map configuration support* Format code* Format C code* Enhance component model to support HashMap&lt;K, V&gt; typeThis commit introduces support for HashMap&lt;K, V&gt; in the component model, allowing maps to be represented as list&lt;tuple&lt;K, V&gt;&gt; in the canonical ABI. It includes implementations for the ComponentType, Lower, and Lift traits for HashMap, enabling type checking, lowering to flat representations, and lifting from memory. Additionally, the maximum depth for type generation in the fuzzing utility is updated to accommodate the new map type.* Refactor component configuration to introduce map supportThis commit removes the previous wasm features configuration and adds new functions for creating a map-configured engine. The `map_config` and `map_engine` functions are introduced to facilitate the use of the component model with maps in tests, ensuring that the engine is properly configured for map types in the component model.* Add new WAST test for map types and remove map type definitions from existing testsThis commit introduces a new WAST test file specifically for testing various map types in the component model. Additionally, it removes the redundant map type definitions from the existing types.wast file to streamline the test suite.* Update component fuzzing and dynamic tests to replace call_and_post_return with call* Format code* Refactor HashMap usage in typed.rs to use wasmtime_environ collections* Fix HashMap initialization and insertion to handle potential errors in typed.rs* Refactor HashMap handling in typed.rs to use lower_map_iter for improved iteration and memory management. Introduce new implementations for ComponentType, Lower, and Lift traits for std::collections::HashMap, enhancing support for map types in the component model.* Fix map adapter trampoline compilation and alignment bugsThe translate_map function had two categories of bugs preventing mapadapter trampolines from working:1. Wasm stack discipline: local_set_new_tmp emits LocalSet which pops   from the stack, but was called when the stack was empty (to   &quot;pre-allocate&quot; locals). Fixed by computing values first, then   calling local_set_new_tmp to consume them&#8212;matching translate_list&apos;s   pattern. Also removed an erroneous LocalTee that left an orphan   value on the stack. Affected: src_byte_len, dst_byte_len,   cur_src_ptr, cur_dst_ptr.2. Pointer advancement: after value translation, the pointer still   points at the value start. The code only advanced by trailing   padding instead of value_size + trailing_padding, causing every   loop iteration to re-read the same memory.Also fixes entry layout to use proper record alignment rules (entryalign = max(key_align, value_align), value at aligned offset).* Refactor map entry layout calculations to use canonical ABI* Remove unnecessary clone of map pairs during loweringVal::Map already holds Vec&lt;(Val, Val)&gt; which derefs to &amp;[(Val, Val)],matching lower_map&apos;s signature directly. The intermediate Vec allocationand deep clone of every key/value pair was redundant.* Deduplicate map lift logic between HashMap implementations* Deduplicate list and map sequence translation scaffolding* Fix cargo fmt formatting issues* Deduplicate map typecheck logic* Deduplicate map lowering with linear_lower_map_to_flat and linear_lower_map_to_memory helpers* Clean up lift_try_map: use drop, move TryHashMap import to module scope* Fix CI: arbtest overflow and no-std HashMap lift_map- component_fuzz: use saturating_sub in generate_hashable_key to prevent  underflow when fuel is 0 and Enum variant is chosen- typed: remove incorrect ? operators in lift_map for hashbrown::HashMap  (with_capacity and insert don&apos;t return Result)* Store map tuple layout in TypeMapCompute map entry ABI and value offsets once during type building, and reuse that metadata in runtime map lift/lower paths instead of recalculating tuple layout at each call site.* Refactor map ABI argument passingBundle map lift/lower layout and type metadata into a small MapAbi32 helper so map helper calls stay concise without changing behavior.* Fix CI: enable component_model_map in fuzzing and handle map in arbitrary_valThe fuzzer&apos;s component_api oracle was generating map types but the enginedidn&apos;t have the map feature enabled, and arbitrary_val had no arm forType::Map. Enable component_model_map in the store helper (matching howcomponent_model_async is forced on) and implement arbitrary value generationfor map types.---------Signed-off-by: Yordis Prieto &lt;yordis.prieto@gmail.com&gt;

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Mon, 09 Mar 2026 23:34:21 +0000</pubDate>
        <dc:creator>Yordis Prieto &lt;yordis.prieto@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>c09aa380 - deprecate `[Typed]Func::post_return[_async]` and make them no-ops (#12498)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#c09aa380</link>
        <description>deprecate `[Typed]Func::post_return[_async]` and make them no-ops (#12498)* deprecate `[Typed]Func::post_return[_async]` and make them no-opsWith the advent of the Component Model concurrency ABI and it&apos;s `task.return`intrinsic, post-return functions have been informally deprecated and areexpected to be removed for WASI 1.0 and the corresponding stable edition of theComponent Model.  Consequently, it does not make sense anymore to requireembedders to explicitly call the post-return function after using`[Typed]Func::call[_async]`.As of this commit, `[Typed]Func::post_return[_async]` are no-ops.  Instead, thepost-return function is called automatically as part of`[Typed]Func::call[_async]` if present, which is how`[Typed]Func::call_concurrent` has worked all along.  In addition, this commitfixes and tests a couple of cases where the task and/or thread was beingdisposed of before the post-return function was called.* address review feedback* test post-return function in more scenariosSpecifically, I&apos;ve split the `invoke_post_return` test into multiple tests:- using `TypedFunc::call`- using `TypedFunc::call_async` with concurrency support enabled- using `TypedFunc::call_async` with concurrency support disabled- using `Func::call_async` with concurrency support disabled- using `TypedFunc::call_concurrent`* remove GCC/clang-specific deprecation attributeThis broke the MSVC build.* bless bindgen output* remove obsolete post-return functions and fieldsNow that post-return calls are handled internally without requiring explicitaction by the embedder, we can avoid unnecessary bookkeeping.

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Tue, 03 Feb 2026 19:13:45 +0000</pubDate>
        <dc:creator>Joel Dice &lt;joel.dice@fermyon.com&gt;</dc:creator>
    </item>
<item>
        <title>94740588 - Migrate the Wasmtime CLI to `wasmtime::error` (#12295)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#94740588</link>
        <description>Migrate the Wasmtime CLI to `wasmtime::error` (#12295)* Migrate wasmtime-cli to `wasmtime::error`* migrate benches to `wasmtime::error` as well* Remove new usage of anyhow that snuck in

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Fri, 09 Jan 2026 19:15:48 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>b221fca7 - update `component-model-async` plumbing (#11123)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#b221fca7</link>
        <description>update `component-model-async` plumbing (#11123)* [DO NOT MERGE] update `component-model-async` plumbingThis pulls in the latest Component Model async ABI code from the`wasip3-prototyping` repo, including various API refactors and spec updates.This includes all the changes to the `wasmtime` crate from `wasip3-prototyping`_except_ that the `concurrent` submodule and child submodules contain onlynon-functional stubs.  For that reason, and the fact thate.g. `Func::call_async` is now implemented in terms of `Func::call_concurrent`,most of the component model tests are failing.  This commit is not meant to bemerged as-is; a follow-up commit (to be PR&apos;d separately) will contain the real`concurrent` implementation, at which point the tests will pass again.  I&apos;msplitting these into separate PRs to make review easier.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* Undo wit-bindgen changesNo longer necessary after other refactors* Move back to crates.io-based wit-bindgen* Undo upgrade of http-body-util(deferred for future PR)* Add back in arbitrary use of asyncLooks like it may have been lost by accident* Make imports more conventional for Wasmtime* Some minor changes* Privatize a component field* Cut down a bit on #[cfg]* Undo a no-longer-necessary `pub`* add doc comments for `{Future,Stream,ErrorContext}Any`Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* rename `concurrent` stub module to `concurrent_disabled`...and avoid panicking in the stubs.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* fix test regressionSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* revert `call_async` and `post_return_impl` changesThese will need to wait until the `component-model-async` feature is fullyimplemented.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* remove unused structSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* add `Options::callback` fieldThis isn&apos;t used yet, but will be used when the real `component-model-async`implementation is merged.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* Remove no-longer-needed feature* Trim reexports from WasmtimeSome of these are no longer needed or can be avoided with small changes.Some deps are likely needed in the next commit but they&apos;ll be best addedthere.* Update test expectations* More trimming of Cargo.toml* Defer `*Buffer` traits to next PRNot needed for this PR I believe.* Use conventional Wasmtime imports + remove dummy_waker* Reduce duplication in `*_disabled`* Remove some unncessary bounds* Remove some `for&lt;&apos;a&gt;` bounds where unnecessary* Remove another bound* Defer more functions to the next PR`drop_fibers` is different in the next PR, so defer it to then.* Remove some reexports no longer necessaryBindings generation changed awhile back so these aren&apos;t needed, deferthe implementations to the next PR.* Remove unnecessary dropThis was already moved to `run_manual_drop_routines`* Defer a `pub(crate)` to a future PR* Expand comments in traphandlers* Defer some types to the next PR* Update linker documentation* Add `Send`/`Sync` bounds to `ComponentType`This commit is extracted from from review of #11123 and #11127. Whilenot literally present in those PRs it&apos;s my own personal conclusion thatit&apos;s best to just go ahead and add these bounds at the &quot;base&quot; of thecomponent trait hierarchy. The current implementation in #11123 addsbounds in many locations and this would remove the need to add boundseverywhere and instead have everything inherited through the `Lift` and`Lower` traits.This raises the question of: why? The main conclusion that I&apos;ve reachedleading to this change is that Wasmtime currently will store `R`, areturn value, on the stack during the lowering process back into linearmemory. This might involve allocation, however, meaning that wasm can beinvoked and a context switch could happen. For Wasmtime&apos;s `unsafe impl`of `Send` and `Sync` on fibers to be sound it requires that thisstack-local variable is also `Send` and `Sync` as it&apos;s an entirelyuser-provided type. Thus I&apos;ve concluded that for results it&apos;s alwaysrequired for these to be both `Send` and `Sync` (or at the very least,`Send`).Given that I&apos;ve gone ahead and updated to require both `Send` and `Sync`for both params and results. This is not expected to actually have anyimpact in practice since all primitives are already `Send`/`Sync` (minus`Rc` impls all removed here) and all `bindgen!`-generated types arecompositions of `Send`/`Sync` primitives meaning that they&apos;re also`Send` and `Sync`.* Remove some now-unnecessary bounds* Fix build after #11160* Remove some now-unnecessary duplicate bounds* Uncomment test that now works* Undo accidental doc wrap* Clarify comment on `Value` typesDon&apos;t leave `TODO` in public-facing documentation ideally* Actually resolve the conflict (forgot to commit)* Avoid returning boxed futures in APIs* Defer making constructors more public to a future PR* Make a method name more conventional* Refactor `linear_lift_into_from_memory`* Drop the `max_count` parameter in favor of slicing the `WasmList`  itself. Avoids situations such as what happens if `max_count` is  larger than the length of the list.* Don&apos;t have the default implementation collect to a vector and then  push all that onto a different vector. Instead push each item  individually through `extend`.* De-indent a block of code added* Remove unsafety from `prepare_call`Mostly move the parameters themselves to the closure to avoid rawpointers/drop/etc.This will have the consequence of in the future `call_async` is going tonow require `Params: &apos;static` but that seems more-or-less inevitable atthis point.* Go back to returning box, alas.* Apply same treatment to lift functionMake it a closure and reduce some levels of indirection of the variousfunctions in play.* Refactor `lower_params` to require less context.Relax the bounds on the closure specified since it&apos;s immediately calledand then additionally take out parameters/captures that the closure cancarry itself.* Don&apos;t pass extraneous `Instance` parameterThis can now be inferred from `Func`.* Clean up some SAFETY comments* Generalize the signature of `lift_results`* Move `lift_results` function to `Func`Also rename the lift/lower helpers to `with_{lift,lower}_context`* Remove parameter from `with_lift_context`Like `with_lower_context` this is fine to capture in the closure passedin.* Simplify the dynamic lifting logicDon&apos;t call `with_lift_context` in two locations, only call it once witha dynamic parameter.* Refactor away the `Func::lift_results_sync` helper* Use `with_lift_context` in `call_raw`* Simplify a call to `Func::call_unchecked_raw`* Ungate `with_lift_context` to fix non-cm-async build* Fix compile (bad cherry-pick conflict resolution)* Use `with_lower_context` in `call_raw`Trying to unify the async/concurrent paths as much as possible.* Move params out of `call_raw`Let closures capture the params, no need to thread it through as anunnecessary argument.* Clean up unsafety in `Func::call_raw`* Accurately mark `call_raw` itself as `unsafe`, then document why  callers should be safe.* Don&apos;t have one large `unsafe` block in `call_raw`, instead split it up  with separate safety comments.* Move a one-off type definition closer to its use* Avoid intermediate allocations in dynamic calls* Simplify a future-return site* Deduplicate checking parameter count* Simplify a future invocation with `?`* Simplify a variable declaration* Simplify some function signatures* Remove outdated safety comment* Refactor to not require `Params: &apos;static` on `call_async`* Remove no-longer-necessary SAFETY comment* Fix typos* Add a fast-path with no `Box` for sync host functionsSpeeds up host calls by ~20% and puts them back on parity with thebeforehand numbers Wasmtime has.* Synchronize signatures of async/concurrent dynamic callsUse slices for both instead of vecs for one and slices for the other.Required some slight rejiggering. Apparently one can solve a closureproblem with another closure, then one surely has no more closureproblems.* Fix non-cm-async build---------Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;Co-authored-by: Alex Crichton &lt;alex@alexcrichton.com&gt;

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Thu, 03 Jul 2025 22:03:59 +0000</pubDate>
        <dc:creator>Joel Dice &lt;joel.dice@fermyon.com&gt;</dc:creator>
    </item>
<item>
        <title>90ac295e - Update Wasmtime to the 2024 Rust Edition (#10806)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#90ac295e</link>
        <description>Update Wasmtime to the 2024 Rust Edition (#10806)* Update Wasmtime to the 2024 Rust EditionNow that our MSRV supports the 2024 edition it&apos;s possible to make thisswitch. This commit moves Wasmtime to the 2024 Edition to keepup-to-date with Rust idioms and access many of the edition featuresexclusive to the 2024 edition.prtest:full* Reformat with the 2024 edition

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Mon, 19 May 2025 16:40:55 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>ca7081a2 - Consolidate &quot;util&quot; crates for testing (#10423)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#ca7081a2</link>
        <description>Consolidate &quot;util&quot; crates for testing (#10423)* Consolidate &quot;util&quot; crates for testingThis commit consolidates all of the existing crates we have for testinginto a smaller set of crates. Specifically:* `crates/misc/component-fuzz-util` =&gt; `wasmtime-test-util` + `component-fuzz`  feature* `crates/misc/component-test-util` =&gt; `wasmtime-test-util` + `component`  feature* `crates/wast-util` =&gt; `wasmtime-test-util` + `wast` feature* `crates/misc/component-macro-test` =&gt; `wasmtime-test-macros`The goal is to have one location we put various test helpers/macrosrather than our current organically-grown many locations. This isinspired by the test failure on #10405 where I&apos;d like to refactor moreinfrastructure to a &quot;test util&quot; location but it wasn&apos;t clear where toput it so I wanted to do this refactoring first.* Remove unused file

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Thu, 20 Mar 2025 15:08:47 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>0cb6e7eb - Expose component parameter names in types (#9618)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#0cb6e7eb</link>
        <description>Expose component parameter names in types (#9618)* Expose component parameter names in typesThis commit plumbs through the parameter names since they&apos;re availablein the component for consumers of the type information exposed byWasmtime.Closes #9595* Fix fuzzer build

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Mon, 18 Nov 2024 18:03:07 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>9de6828e - Remove type information from `wasmtime::component::Val` (#8062)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#9de6828e</link>
        <description>Remove type information from `wasmtime::component::Val` (#8062)This commit is a large refactor of the `Val` type as used withcomponents to remove inherent type information present currently. The`Val` type is now only an AST of what a component model value looks likeand cannot fully describe the type that it is without further context.For example enums only store the case that&apos;s being used, not the fullset of cases.The motivation for this commit is to make it simpler to use andconstruct `Val`, especially in the face of resources. Some problemssolved here are:* With resources in play managing type information is not trivial and  can often be surprising. For example if you learn the type of a  function from a component and the instantiate the component twice the  type information is not suitable to use with either function due to  exported resources acquiring unique types on all instantiations.* Functionally it&apos;s much easier to construct values when type  information is not required as it no longer requires probing various  pieces for type information here and there.* API-wise there&apos;s far less for us to maintain as there&apos;s no need for a  type-per-variant of component model types. Pieces now fit much more  naturally into a `Val` shape without extra types.* Functionally when working with `Val` there&apos;s now only one typecheck  instead of two. Previously a typecheck was performed first when a  `Val` was created and then again later when it was passed to wasm. Now  the typecheck only happens when passed to wasm.It&apos;s worth pointing out that `Val` as-is is a pretty inefficientrepresentation of component model values, for example flags are storedas a list of strings. While semantically correct this is quiteinefficient for most purposes other than &quot;get something working&quot;. Tothat extent my goal is to, in the future, add traits that enablebuilding a custom user-defined `Val` (of sorts), but still dynamically.This should enable embedders to opt-in to a more efficientrepresentation that relies on contextual knowledge.

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Fri, 08 Mar 2024 15:33:36 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>8652011f - Refactor `wasmtime::FuncType` to hold a handle to its registered type (#7892)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#8652011f</link>
        <description>Refactor `wasmtime::FuncType` to hold a handle to its registered type (#7892)* Refactor `wasmtime::FuncType` to hold a handle to its registered typeRather than holding a copy of the type directly, it now holds a `RegisteredType`which internally is* A `VMSharedTypeIndex` pointing into the engine&apos;s types registry.* An `Arc` handle to the engine&apos;s type registry.* An `Arc` handle to the actual type.The last exists only to keep it so that accessing a `wasmtime::FuncType`&apos;sparameters and results fast, avoiding any new locking on call hot paths.This is helping set the stage for further types and `TypeRegistry` refactorsneeded for Wasm GC.* Update the C API for the function types refactorprtest:full* rustfmt* Fix benches build

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Fri, 09 Feb 2024 21:07:52 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>22885384 - feat: support component type introspection (#7804)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#22885384</link>
        <description>feat: support component type introspection (#7804)* feat: support component instance import type introspectionSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* refactor: implement `import_types` on `Linker`Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* refactor: flatten `types::ComponentItem` membersSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* refactor: remove `types` re-exportsSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* feat: implement component type introspectionSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* chore: derive `Debug` for `Field`Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* refactor: return `ExactSizeIterator` for component function parameters/resultsSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* tests: add `introspection` testSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* chore: derive `Clone` on `ComponentItem` typesSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;* feat: support module and instance type introspectionSigned-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;---------Signed-off-by: Roman Volosatovs &lt;rvolosatovs@riseup.net&gt;

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Fri, 26 Jan 2024 20:02:26 +0000</pubDate>
        <dc:creator>Roman Volosatovs &lt;rvolosatovs@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>35902366 - Remove component union types (#6913)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#35902366</link>
        <description>Remove component union types (#6913)- Bump wasm-tools deps- Use new TypeSectionReader::into_iter_err_on_gc_types method

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Sat, 26 Aug 2023 19:51:23 +0000</pubDate>
        <dc:creator>Lann &lt;lann.martin@fermyon.com&gt;</dc:creator>
    </item>
<item>
        <title>f928bf72 - Update to latest wasm-tools crates (#6378)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#f928bf72</link>
        <description>Update to latest wasm-tools crates (#6378)* Update to latest wasm-tools cratesThis commit pushes through the full update of the wasm-tools cratesthrough Wasmtime. There are two major features which changed, bothrelated to components, which required updates in Wasmtime:* Resource types are now implemented in wasm-tools and they&apos;re not yet  implemented in Wasmtime so I&apos;ve stubbed out the integration point with  panics as reminders to come back and implement them.* There are new validation rules about how aggregate types must be  named. This doesn&apos;t affect runtime internals at all but was done on  behalf of code generators. This did however affect a number of tests  which have to ensure that types are exported.* Fix more tests* Add vet entries

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Tue, 16 May 2023 00:14:31 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>c0bb341d - Run some tests in MIRI on CI (#6332)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#c0bb341d</link>
        <description>Run some tests in MIRI on CI (#6332)* Run some tests in MIRI on CIThis commit is an implementation of getting at least chunks of Wasmtimeto run in MIRI on CI. The full test suite is not possible to run in MIRIbecause MIRI cannot run Cranelift-produced code at runtime (aka itdoesn&apos;t support JITs). Running MIRI, however, is still quite valuable ifwe can manage it because it would have trivially detectedGHSA-ch89-5g45-qwc7, our most recent security advisory. The goal of thisPR is to select a subset of the test suite to execute in CI under MIRIand boost our confidence in the copious amount of `unsafe` code inWasmtime&apos;s runtime.Under MIRI&apos;s default settings, which is to use the [StackedBorrows][stacked] model, much of the code in `Instance` and `VMContext`is considered invalid. Under the optional [Tree Borrows][tree] model,however, this same code is accepted. After some [extremely helpfuldiscussion][discuss] on the Rust Zulip my current conclusion is thatwhat we&apos;re doing is not fundamentally un-sound but we need to model itin a different way. This PR, however, uses the Tree Borrows model forMIRI to get something onto CI sooner rather than later, and I hope tofollow this up with something that passed Stacked Borrows. Additionallythat&apos;ll hopefully make this diff smaller and easier to digest.Given all that, the end result of this PR is to get 131 separate unittests executing on CI. These unit tests largely exercise the embeddingAPI where wasm function compilation is not involved. Some tests compilewasm functions but don&apos;t run them, but compiling wasm through Craneliftin MIRI is so slow that it doesn&apos;t seem worth it at this time. This doesmean that there&apos;s a pretty big hole in MIRI&apos;s test coverage, but that&apos;sto be expected as we&apos;re a JIT compiler after all.To get tests working in MIRI this PR uses a number of strategies:* When platform-specific code is involved there&apos;s now `#[cfg(miri)]` for  MIRI&apos;s version. For example there&apos;s a custom-built &quot;mmap&quot; just for  MIRI now. Many of these are simple noops, some are `unimplemented!()`  as they shouldn&apos;t be reached, and some are slightly nontrivial  implementations such as mmaps and trap handling (for native-to-native  function calls).* Many test modules are simply excluded via `#![cfg(not(miri))]` at the  top of the file. This excludes the entire module&apos;s worth of tests from  MIRI. Other modules have `#[cfg_attr(miri, ignore)]` annotations to  ignore tests by default on MIRI. The latter form is used in modules  where some tests work and some don&apos;t. This means that all future test  additions will need to be effectively annotated whether they work in  MIRI or not. My hope though is that there&apos;s enough precedent in the  test suite of what to do to not cause too much burden.* A number of locations are fixed with respect to MIRI&apos;s analysis. For  example `ComponentInstance`, the component equivalent of  `wasmtime_runtime::Instance`, was actually left out from the fix for  the CVE by accident. MIRI dutifully highlighted the issues here and  I&apos;ve fixed them locally. Some locations fixed for MIRI are changed to  something that looks similar but is subtly different. For example  retaining items in a `Store&lt;T&gt;` is now done with a Wasmtime-specific  `StoreBox&lt;T&gt;` type. This is because, with MIRI&apos;s analyses, moving a  `Box&lt;T&gt;` invalidates all pointers derived from this `Box&lt;T&gt;`. We don&apos;t  want these semantics, so we effectively have a custom `Box&lt;T&gt;` to suit  our needs in this regard.* Some default configuration is different under MIRI. For example most  linear memories are dynamic with no guards and no space reserved for  growth. Settings such as parallel compilation are disabled. These are  applied to make MIRI &quot;work by default&quot; in more places ideally. Some  tests which perform N iterations of something perform fewer iterations  on MIRI to not take quite so long.This PR is not intended to be a one-and-done-we-never-look-at-it-againkind of thing. Instead this is intended to lay the groundwork tocontinuously run MIRI in CI to catch any soundness issues. This feels,to me, overdue given the amount of `unsafe` code inside of Wasmtime. Myhope is that over time we can figure out how to run Wasm in MIRI butthat may take quite some time. Regardless this will be adding nontrivialmaintenance work to contributors to Wasmtime. MIRI will be run on CI formerges, MIRI will have test failures when everything else passes,MIRI&apos;s errors will need to be deciphered by those who have probablynever run MIRI before, things like that. Despite all this to me it seemsworth the cost at this time. Just getting this running caught twopossible soundness bugs in the component implementation that could havehad a real-world impact in the future![stacked]: https://github.com/rust-lang/unsafe-code-guidelines/blob/master/wip/stacked-borrows.md[tree]: https://perso.crans.org/vanille/treebor/[discuss]: https://rust-lang.zulipchat.com/#narrow/stream/269128-miri/topic/Tree.20vs.20Stacked.20Borrows.20.26.20a.20debugging.20question* Update alignment comment

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Wed, 03 May 2023 21:02:33 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>0029ff95 - Use floats for `wasmtime::component::Val::Float*` (#5510)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#0029ff95</link>
        <description>Use floats for `wasmtime::component::Val::Float*` (#5510)The definitions of `wasmtime::component::Val::Float{32,64}` mirrored`wasmtime::Val::F{32,64}` by using integers as their wrapped types,storing the bit representation of their floating point values.This was necessary for the core Wasm `f32`/`f64` types because Rustfloats don&apos;t have guaranteed NaN bit representations.The component model `float32`/`float64` types require NaNcanonicalization, so we can use normal Rust `f{32,64}` instead.Closes #5480

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Tue, 03 Jan 2023 20:23:38 +0000</pubDate>
        <dc:creator>Lann &lt;lann.martin@fermyon.com&gt;</dc:creator>
    </item>
<item>
        <title>b305f251 - Update the wasm-tools family of crates (#5310)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#b305f251</link>
        <description>Update the wasm-tools family of crates (#5310)Most of the changes here are the updates to the component model whichincludes optional URL fields in imports/exports.

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Mon, 21 Nov 2022 21:37:16 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>57dca934 - Upgrade wasm-tools crates, namely the component model  (#4715)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#57dca934</link>
        <description>Upgrade wasm-tools crates, namely the component model  (#4715)* Upgrade wasm-tools crates, namely the component modelThis commit pulls in the latest versions of all of the `wasm-tools`family of crates. There were two major changes that happened in`wasm-tools` in the meantime:* bytecodealliance/wasm-tools#697 - this commit introduced a new API for  more efficiently reading binary operators from a wasm binary. The old  `Operator`-based reading was left in place, however, and continues to  be what Wasmtime uses. I hope to update Wasmtime in a future PR to use  this new API, but for now the biggest change is...* bytecodealliance/wasm-tools#703 - this commit was a major update to  the component model AST. This commit almost entirely deals with the  fallout of this change.The changes made to the component model were:1. The `unit` type no longer exists. This was generally a simple change   where the `Unit` case in a few different locations were all removed.2. The `expected` type was renamed to `result`. This similarly was   relatively lightweight and mostly just a renaming on the surface. I   took this opportunity to rename `val::Result` to `val::ResultVal` and   `types::Result` to `types::ResultType` to avoid clashing with the   standard library types. The `Option`-based types were handled with   this as well.3. The payload type of `variant` and `result` types are now optional.   This affected many locations that calculate flat type   representations, ABI information, etc. The `#[derive(ComponentType)]`   macro now specifically handles Rust-defined `enum` types which have   no payload to the equivalent in the component model.4. Functions can now return multiple parameters. This changed the   signature of invoking component functions because the return value is   now bound by `ComponentNamedList` (renamed from `ComponentParams`).   This had a large effect in the tests, fuzz test case generation, etc.5. Function types with 2-or-more parameters/results must uniquely name   all parameters/results. This mostly affected the text format used   throughout the tests.I haven&apos;t added specifically new tests for multi-return but I changed anumber of tests to use it. Additionally I&apos;ve updated the fuzzers to allexercise multi-return as well so I think we should get some goodcoverage with that.* Update version numbers* Use crates.io

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Wed, 17 Aug 2022 16:17:34 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>ed8908ef - implement fuzzing for component types (#4537)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#ed8908ef</link>
        <description>implement fuzzing for component types (#4537)This addresses #4307.For the static API we generate 100 arbitrary test cases at build time, each ofwhich includes 0-5 parameter types, a result type, and a WAT fragment containingan imported function and an exported function.  The exported function calls theimported function, which is implemented by the host.  At runtime, the fuzz testselects a test case at random and feeds it zero or more sets of arbitraryparameters and results, checking that values which flow host-to-guest andguest-to-host make the transition unchanged.The fuzz test for the dynamic API follows a similar pattern, the only differencebeing that test cases are generated at runtime.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Thu, 04 Aug 2022 17:02:55 +0000</pubDate>
        <dc:creator>Joel Dice &lt;joel.dice@fermyon.com&gt;</dc:creator>
    </item>
<item>
        <title>7c67e620 - support dynamic function calls in component model (#4442)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/all/component_model/dynamic.rs#7c67e620</link>
        <description>support dynamic function calls in component model (#4442)* support dynamic function calls in component modelThis addresses #4310, introducing a new `component::values::Val` type forrepresenting component values dynamically, as well as `component::types::Type`for representing the corresponding interface types. It also adds a `call` methodto `component::func::Func`, which takes a slice of `Val`s as parameters andreturns a `Result&lt;Val&gt;` representing the result.Note that I&apos;ve moved `post_return` and `call_raw` from `TypedFunc` to `Func`since there was nothing specific to `TypedFunc` about them, and I wanted toreuse them.  The code in both is unchanged beyond the trivial tweaks to makethem fit in their new home.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* order variants and match cases more consistentlySigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* implement lift for String, Box&lt;str&gt;, etc.This also removes the redundant `store` parameter from `Type::load`.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* implement code review feedbackThis fixes a few issues:- Bad offset calculation when lowering- Missing variant padding- Style issues regarding `types::Handle`- Missed opportunities to reuse `Lift` and `Lower` implsIt also adds forwarding `Lift` impls for `Box&lt;[T]&gt;`, `Vec&lt;T&gt;`, etc.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* move `new_*` methods to specific `types` structsPer review feedback, I&apos;ve moved `Type::new_record` to `Record::new_val` andadded a `Type::unwrap_record` method; likewise for the other kinds of types.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* make tuple, option, and expected type comparisons recursiveThese types should compare as equal across component boundaries as long as theirtype parameters are equal.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* improve error diagnostic in `Type::check`We now distinguish between more failure cases to provide an informative errormessage.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* address review feedback- Remove `WasmStr::to_str_from_memory` and `WasmList::get_from_memory`- add `try_new` methods to various `values` types- avoid using `ExactSizeIterator::len` where we can&apos;t trust it- fix over-constrained bounds on forwarded `ComponentType` implsSigned-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* rearrange code per review feedback- Move functions from `types` to `values` module so we can make certain struct fields private- Rename `try_new` to just `new`Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;* remove special-case equality test for tuples, options, and expectedsInstead, I&apos;ve added a FIXME comment and will open an issue to do recursivestructural equality testing.Signed-off-by: Joel Dice &lt;joel.dice@fermyon.com&gt;

            List of files:
            /wasmtime-44.0.1/tests/all/component_model/dynamic.rs</description>
        <pubDate>Mon, 25 Jul 2022 18:38:48 +0000</pubDate>
        <dc:creator>Joel Dice &lt;joel.dice@fermyon.com&gt;</dc:creator>
    </item>
</channel>
</rss>
