<?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 codegen.wast</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>e50d897b - Add `bulk_memory` to wast configuration (#12883)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/misc_testsuite/memory64/codegen.wast#e50d897b</link>
        <description>Add `bulk_memory` to wast configuration (#12883)Allows enabling/disabling this wasm proposal on a per-test basis.

            List of files:
            /wasmtime-44.0.1/tests/misc_testsuite/memory64/codegen.wast</description>
        <pubDate>Mon, 30 Mar 2026 12:44:15 +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/memory64/codegen.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/memory64/codegen.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>e68aa995 - Implement the memory64 proposal in Wasmtime (#3153)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/misc_testsuite/memory64/codegen.wast#e68aa995</link>
        <description>Implement the memory64 proposal in Wasmtime (#3153)* Implement the memory64 proposal in WasmtimeThis commit implements the WebAssembly [memory64 proposal][proposal] inboth Wasmtime and Cranelift. In terms of work done Cranelift ended upneeding very little work here since most of it was already prepared for64-bit memories at one point or another. Most of the work in Wasmtime islargely refactoring, changing a bunch of `u32` values to something else.A number of internal and public interfaces are changing as a result ofthis commit, for example:* Acessors on `wasmtime::Memory` that work with pages now all return  `u64` unconditionally rather than `u32`. This makes it possible to  accommodate 64-bit memories with this API, but we may also want to  consider `usize` here at some point since the host can&apos;t grow past  `usize`-limited pages anyway.* The `wasmtime::Limits` structure is removed in favor of  minimum/maximum methods on table/memory types.* Many libcall intrinsics called by jit code now unconditionally take  `u64` arguments instead of `u32`. Return values are `usize`, however,  since the return value, if successful, is always bounded by host  memory while arguments can come from any guest.* The `heap_addr` clif instruction now takes a 64-bit offset argument  instead of a 32-bit one. It turns out that the legalization of  `heap_addr` already worked with 64-bit offsets, so this change was  fairly trivial to make.* The runtime implementation of mmap-based linear memories has changed  to largely work in `usize` quantities in its API and in bytes instead  of pages. This simplifies various aspects and reflects that  mmap-memories are always bound by `usize` since that&apos;s what the host  is using to address things, and additionally most calculations care  about bytes rather than pages except for the very edge where we&apos;re  going to/from wasm.Overall I&apos;ve tried to minimize the amount of `as` casts as possible,using checked `try_from` and checked arithemtic with either errorhandling or explicit `unwrap()` calls to tell us about bugs in thefuture. Most locations have relatively obvious things to do with variousimplications on various hosts, and I think they should all be roughly ofthe right shape but time will tell. I mostly relied on the compilercomplaining that various types weren&apos;t aligned to figure outtype-casting, and I manually audited some of the more obvious locations.I suspect we have a number of hidden locations that will panic on 32-bithosts if 64-bit modules try to run there, but otherwise I think weshould be generally ok (famous last words). In any case I wouldn&apos;t wantto enable this by default naturally until we&apos;ve fuzzed it for some time.In terms of the actual underlying implementation, no one should expectmemory64 to be all that fast. Right now it&apos;s implemented with&quot;dynamic&quot; heaps which have a few consequences:* All memory accesses are bounds-checked. I&apos;m not sure how aggressively  Cranelift tries to optimize out bounds checks, but I suspect not a ton  since we haven&apos;t stressed this much historically.* Heaps are always precisely sized. This means that every call to  `memory.grow` will incur a `memcpy` of memory from the old heap to the  new. We probably want to at least look into `mremap` on Linux and  otherwise try to implement schemes where dynamic heaps have some  reserved pages to grow into to help amortize the cost of  `memory.grow`.The memory64 spec test suite is scheduled to now run on CI, but as withall the other spec test suites it&apos;s really not all that comprehensive.I&apos;ve tried adding more tests for basic things as I&apos;ve had to implementguards for them, but I wouldn&apos;t really consider the testing adequatefrom just this PR itself. I did try to take care in one test to actuallyallocate a 4gb+ heap and then avoid running that in the poolingallocator or in emulation because otherwise that may fail or takeexcessively long.[proposal]: https://github.com/WebAssembly/memory64/blob/master/proposals/memory64/Overview.md* Fix some tests* More test fixes* Fix wasmtime tests* Fix doctests* Revert to 32-bit immediate offsets in `heap_addr`This commit updates the generation of addresses in wasm code to alwaysuse 32-bit offsets for `heap_addr`, and if the calculated offset isbigger than 32-bits we emit a manual add with an overflow check.* Disable memory64 for spectest fuzzing* Fix wrong offset being added to heap addr* More comments!* Clarify bytes/pages

            List of files:
            /wasmtime-44.0.1/tests/misc_testsuite/memory64/codegen.wast</description>
        <pubDate>Thu, 12 Aug 2021 14:40:20 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
</channel>
</rss>
