<?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 strings.wast</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/misc_testsuite/component-model/strings.wast#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/misc_testsuite/component-model/strings.wast</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>83909b0b - Verify alignment of returned component-model strings (#12897)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/misc_testsuite/component-model/strings.wast#83909b0b</link>
        <description>Verify alignment of returned component-model strings (#12897)* Verify alignment of returned component-model stringsThe lifting code erroneously forgot to check for this. There&apos;s no actualconsequence to this in Wasmtime per-se, but it&apos;s required in thecomponent model spec to trap, so a trap is added here.* Fix tests* Optimize alignment check* Fix build

            List of files:
            /wasmtime-44.0.1/tests/misc_testsuite/component-model/strings.wast</description>
        <pubDate>Tue, 31 Mar 2026 00:03:08 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>60fc557c - Refactor how wasm features are calculated for `*.wast` tests (#9560)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/misc_testsuite/component-model/strings.wast#60fc557c</link>
        <description>Refactor how wasm features are calculated for `*.wast` tests (#9560)* Refactor how wasm features are calculated for `*.wast` testsThis commit refactors the `tests/wast.rs` test suite which runs all ofthe upstream spec tests as `*.wast` files as well as our own`misc_testsuite` which has its own suite of `*.wast` files. Previouslythe set of wasm features active for each test was a sort of randommishmash and convoluted set of conditionals which was updated and editedover time as upstream proposal test suites evolved. This was thenmirrored into our own conventions for `misc_testsuite` as well. Overallthough this has a number of downsides I&apos;m trying to fix here:* The calculation of what features are enabled is quite complicated and  effectively a random mishmash of `||` conditionals with hierarchies  that don&apos;t make any sense beyond &quot;this is just required to get things  to pass&quot;.* There is no means of per-test configuration. For example  `canonicalize-nans.wast` had hardcoded logic in `tests/wast.rs` that  it needed a different setting turned on in `Config`.* There was no easy means to write tests for Wasmtime which take a union  of a number of proposals together without having lots of sub-folders  that may not make sense.* Tests that require a particular proposal had to have duplicate logic  for Winch as it doesn&apos;t support the full suite of features of all  proposals that Cranelift does.The new system implemented in this commit takes a leaf out of the`disas` tests. There is a new `TestConfig` structure in the`tests/wast.rs` harness which is decoded from each test (leading `;;!`comments) which enables specifying, in each test, what&apos;s required. Thisencompasses many wasm proposals but additionally captures other behaviorlike nan-canonicalization. This means that all test files in`misc_testsuite/**/*.wast` are now manually annotated with what wasmfeatures they require and what&apos;s needed to run. This makes per-testconfiguration much easier, per-config-setting much easier, and blanketignore-by-proposal for Winch much easier as well.For spec tests we can&apos;t modify the contents of the upstream `*.wast`files. To handle this they&apos;re handled specially where `TestConfig` ismanually created and manipulated for each spec proposal and the maintest suite itself. This enables per-proposal configuration that doesn&apos;tleak into any others and makes it more obvious what proposals are doingwhat.* Hack around Winch support for aarch64

            List of files:
            /wasmtime-44.0.1/tests/misc_testsuite/component-model/strings.wast</description>
        <pubDate>Tue, 05 Nov 2024 21:26:25 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.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/misc_testsuite/component-model/strings.wast#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/misc_testsuite/component-model/strings.wast</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>29c7de73 - Update wasm-tools dependencies (#4970)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/misc_testsuite/component-model/strings.wast#29c7de73</link>
        <description>Update wasm-tools dependencies (#4970)* Update wasm-tools dependenciesThis update brings in a number of features such as:* The component model binary format and AST has been slightly adjusted  in a few locations. Names are dropped from parameters/results now in  the internal representation since they were not used anyway. At this  time the ability to bind a multi-return function has not been exposed.* The `wasmparser` validator pass will now share allocations with prior  functions, providing what&apos;s probably a very minor speedup for Wasmtime  itself.* The text format for many component-related tests now requires named  parameters.* Some new relaxed-simd instructions are updated to be ignored.I hope to have a follow-up to expose the multi-return ability to theembedding API of components.* Update audit information for new crates

            List of files:
            /wasmtime-44.0.1/tests/misc_testsuite/component-model/strings.wast</description>
        <pubDate>Tue, 27 Sep 2022 18:12:34 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>650979ae - Implement strings in adapter modules (#4623)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/misc_testsuite/component-model/strings.wast#650979ae</link>
        <description>Implement strings in adapter modules (#4623)* Implement strings in adapter modulesThis commit is a hefty addition to Wasmtime&apos;s support for the componentmodel. This implements the final remaining type (in the current typehierarchy) unimplemented in adapter module trampolines: strings. Stringsare the most complicated type to implement in adapter trampolinesbecause they are highly structured chunks of data in memory (accordingto specific encodings). Additionally each lift/lower operation canchoose its own encoding for strings meaning that Wasmtime, the host, mayhave to convert between any pairwise ordering of string encodings.The `CanonicalABI.md` in the component-model repo in general specifiesall the fiddly bits of string encoding so there&apos;s not a ton of wiggleroom for Wasmtime to get creative. This PR largely &quot;just&quot; implementsthat. The high-level architecture of this implementation is:* Fused adapters are first identified to determine src/dst string  encodings. This statically fixes what transcoding operation is being  performed.* The generated adapter will be responsible for managing calls to  `realloc` and performing bounds checks. The adapter itself does not  perform memory copies or validation of string contents, however.  Instead each transcoding operation is modeled as an imported function  into the adapter module.  This means that the adapter module  dynamically, during compile time, determines what string transcoders  are needed. Note that an imported transcoder is not only parameterized  over the transcoding operation but additionally which memory is the  source and which is the destination.* The imported core wasm functions are modeled as a new  `CoreDef::Transcoder` structure. These transcoders end up being small  Cranelift-compiled trampolines. The Cranelift-compiled trampoline will  load the actual base pointer of memory and add it to the relative  pointers passed as function arguments. This trampoline then calls a  transcoder &quot;libcall&quot; which enters Rust-defined functions for actual  transcoding operations.* Each possible transcoding operation is implemented in Rust with a  unique name and a unique signature depending on the needs of the  transcoder. I&apos;ve tried to document inline what each transcoder does.This means that the `Module::translate_string` in adapter modules is byfar the largest translation method. The main reason for this is due tothe management around calling the imported transcoder functions in theface of validating string pointer/lengths and performing the dance of`realloc`-vs-transcode at the right time. I&apos;ve tried to ensure that eachindividual case in transcoding is documented well enough to understandwhat&apos;s going on as well.Additionally in this PR is a full implementation in the host for the`latin1+utf16` encoding which means that both lifting and lowering hoststrings now works with this encoding.Currently the implementation of each transcoder function is likely farfrom optimal. Where possible I&apos;ve leaned on the standard library itselfand for latin1-related things I&apos;m leaning on the `encoding_rs` crate. Iinitially tried to implement everything with `encoding_rs` but wasunable to uniformly do so easily. For now I settled on trying to get aknown-correct (even in the face of endianness) implementation for all ofthese transcoders. If an when performance becomes an issue it should bepossible to implement more optimized versions of each of thesetranscoding operations.Testing this commit has been somewhat difficult and my general plan,like with the `(list T)` type, is to rely heavily on fuzzing to coverthe various cases here. In this PR though I&apos;ve added a simple test thatpushes some statically known strings through all the pairs of encodingsbetween source and destination. I&apos;ve attempted to pick &quot;interesting&quot;strings that one way or another stress the various paths in eachtranscoding operation to ideally get full branch coverage there.Additionally a suite of &quot;negative&quot; tests have also been added to ensurethat validity of encoding is actually checked.* Fix a temporarily commented out case* Fix wasmtime-runtime tests* Update deny.toml configuration* Add `BSD-3-Clause` for the `encoding_rs` crate* Remove some unused licenses* Add an exemption for `encoding_rs` for now* Split up the `translate_string` methodMove out all the closures and package up captured state into smallerlists of arguments.* Test out-of-bounds for zero-length strings

            List of files:
            /wasmtime-44.0.1/tests/misc_testsuite/component-model/strings.wast</description>
        <pubDate>Mon, 08 Aug 2022 16:01:57 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
</channel>
</rss>
