<?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 empty.wast</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>ab1d845a - Refactor fuzzing configuration and sometimes disable debug verifier. (#3664)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/misc_testsuite/empty.wast#ab1d845a</link>
        <description>Refactor fuzzing configuration and sometimes disable debug verifier. (#3664)* fuzz: Refactor Wasmtime&apos;s fuzz targetsA recent fuzz bug found is related to timing out when compiling amodule. This timeout, however, is predominately because Cranelift&apos;sdebug verifier is enabled and taking up over half the compilation time.I wanted to fix this by disabling the verifier when input modules mighthave a lot of functions, but this was pretty difficult to implement.Over time we&apos;ve grown a number of various fuzzers. Most are`wasm-smith`-based at this point but there&apos;s various entry points forconfiguring the wasm-smith module, the wasmtime configuration, etc. I&apos;vehistorically gotten quite lost in trying to change defaults and feelinglike I have to touch a lot of different places. This is the motivationfor this commit, simplifying fuzzer default configuration.This commit removes the ability to create a default `Config` forfuzzing, instead only supporting generating a configuration via`Arbitrary`. This then involved refactoring all targets and fuzzers toensure that configuration is generated through `Arbitrary`. This shouldactually expand the coverage of some existing fuzz targets since`Arbitrary for Config` will tweak options that don&apos;t affect runtime,such as memory configuration or jump veneers.All existing fuzz targets are refactored to use this new method ofconfiguration. Some fuzz targets were also shuffled around orreimplemented:* `compile` - this now directly calls `Module::new` to skip all the  fuzzing infrastructure. This is mostly done because this fuzz target  isn&apos;t too interesting and is largely just seeing what happens when  things are thrown at the wall for Wasmtime.* `instantiate-maybe-invalid` - this fuzz target now skips instantiation  and instead simply goes into `Module::new` like the `compile` target.  The rationale behind this is that most modules won&apos;t instantiate  anyway and this fuzz target is primarily fuzzing the compiler. This  skips having to generate arbitrary configuration since  wasm-smith-generated-modules (or valid ones at least) aren&apos;t used  here.* `instantiate` - this fuzz target was removed. In general this fuzz  target isn&apos;t too interesting in isolation. Almost everything it deals  with likely won&apos;t pass compilation and is covered by the `compile`  fuzz target, and otherwise interesting modules being instantiated can  all theoretically be created by `wasm-smith` anyway.* `instantiate-wasm-smith` and `instantiate-swarm` - these were both merged  into a new `instantiate` target (replacing the old one from above).  There wasn&apos;t really much need to keep these separate since they really  only differed at this point in methods of timeout. Otherwise we much  more heavily use `SwarmConfig` than wasm-smith&apos;s built-in options.The intention is that we should still have basically the same coverageof fuzzing as before, if not better because configuration is nowpossible on some targets. Additionally there is one centralized point ofconfiguration for fuzzing for wasmtime, `Arbitrary for ModuleConfig`.This internally creates an arbitrary `SwarmConfig` from `wasm-smith` andthen further tweaks it for Wasmtime&apos;s needs, such as enabling variouswasm proposals by default. In the future enabling a wasm proposal onfuzzing should largely just be modifying this one trait implementation.* fuzz: Sometimes disable the cranelift debug verifierThis commit disables the cranelift debug verifier if the input wasmmodule might be &quot;large&quot; for the definition of &quot;more than 10 functions&quot;.While fuzzing we disable threads (set them to 1) and enable thecranelift debug verifier. Coupled with a 20-30x slowdown this means thata module with the maximum number of functions, 100, gives:    60x / 100 functions / 30x slowdown = 20msWith only 20 milliseconds per function this is even further halved bythe `differential` fuzz target compiling a module twice, which meansthat, when compiling with a normal release mode Wasmtime, if anyfunction takes more than 10ms to compile then it&apos;s a candidate fortiming out while fuzzing. Given that the cranelift debug verifier canmore than double compilation time in fuzzing mode this actually meansthat the real time budget for function compilation is more like 4ms.The `wasm-smith` crate can pretty easily generate a large function thattakes 4ms to compile, and then when that function is multiplied 100x inthe `differential` fuzz target we trivially time out the fuzz target.The hope of this commit is to buy back half our budget by disabling thedebug verifier for modules that may have many functions. Furtherrefinements can be implemented in the future such as limiting functionsfor just the differential target as well.* Fix the single-function-module fuzz configuration* Tweak how features work in differential fuzzing* Disable everything for baseline differential fuzzing* Enable selectively for each engine afterwards* Also forcibly enable reference types and bulk memory for spec tests* Log wasms when compiling* Add reference types support to v8 fuzzer* Fix timeouts via fuelThe default store has &quot;infinite&quot; fuel so that needs to be consumedbefore fuel is added back in.* Remove fuzzing-specific testsThese no longer compile and also haven&apos;t been added to in a long time.Most of the time a reduced form of original the fuzz test case is addedwhen a fuzz bug is fixed.

            List of files:
            /wasmtime-44.0.1/tests/misc_testsuite/empty.wast</description>
        <pubDate>Fri, 07 Jan 2022 21:12:25 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>6be0f82b - Fix a panic with an invalid name section (#3509)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/misc_testsuite/empty.wast#6be0f82b</link>
        <description>Fix a panic with an invalid name section (#3509)This commit fixes a panic which can happen on a module with an invalidname section where one of the functions named has the index `u32::MAX`.Previously Wasmtime would create a new `FuncIndex` with the indicesfound in the name section but the sentinel `u32::MAX` causes a panic.Cranelift otherwise limits the number of functions through `wasmparser`which has a hard limit (lower than `u32::MAX`) so this commit applies afix of only recording function names for function indices that areactually present in the module.

            List of files:
            /wasmtime-44.0.1/tests/misc_testsuite/empty.wast</description>
        <pubDate>Fri, 05 Nov 2021 20:08:58 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>ae86822c - Move stray top-level misc_testsuite to tests (#528)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/tests/misc_testsuite/empty.wast#ae86822c</link>
        <description>Move stray top-level misc_testsuite to tests (#528)I think this may have been a mistake from #523?

            List of files:
            /wasmtime-44.0.1/tests/misc_testsuite/empty.wast</description>
        <pubDate>Fri, 08 Nov 2019 23:03:10 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
</channel>
</rss>
