<?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 lib.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>90ac295e - Update Wasmtime to the 2024 Rust Edition (#10806)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.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/cranelift/module/src/lib.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>71cb94be - Burn down the `allow_attributes_without_reason` backlog (#9712)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#71cb94be</link>
        <description>Burn down the `allow_attributes_without_reason` backlog (#9712)* Burn down the `allow_attributes_without_reason` backlogJust a bit, not everything fixed.* Fix wasi-nn annotations* Tweak `#[cfg]`

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Tue, 03 Dec 2024 16:57:45 +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/cranelift/module/src/lib.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/cranelift/module/src/lib.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>5856590f - Configure workspace lints, enable running some Clippy lints on CI (#7561)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#5856590f</link>
        <description>Configure workspace lints, enable running some Clippy lints on CI (#7561)* Configure Rust lints at the workspace levelThis commit adds necessary configuration knobs to have lints configuredat the workspace level in Wasmtime rather than the crate level. Thisuses a feature of Cargo first released with 1.74.0 (last week) of the`[workspace.lints]` table. This should help create a more consistent setof lints applied across all crates in our workspace in addition topossibly running select clippy lints on CI as well.* Move `unused_extern_crates` to the workspace levelThis commit configures a `deny` lint level for the`unused_extern_crates` lint to the workspace level rather than theprevious configuration at the individual crate level.* Move `trivial_numeric_casts` to workspace level* Change workspace lint levels to `warn`CI will ensure that these don&apos;t get checked into the codebase andotherwise provide fewer speed bumps for in-process development.* Move `unstable_features` lint to workspace level* Move `unused_import_braces` lint to workspace level* Start running Clippy on CIThis commit configures our CI to run `cargo clippy --workspace` for allmerged PRs. Historically this hasn&apos;t been all the feasible due to theamount of configuration required to control the number of warnings onCI, but with Cargo&apos;s new `[lint]` table it&apos;s possible to have aone-liner to silence all lints from Clippy by default. This commit bydefault sets the `all` lint in Clippy to `allow` to by-default disablewarnings from Clippy. The goal of this PR is to enable selective accessto Clippy lints for Wasmtime on CI.* Selectively enable `clippy::cast_sign_loss`This would have fixed #7558 so try to head off future issues with thatby warning against this situation in a few crates. This lint is stillquite noisy though for Cranelift for example so it&apos;s not worthwhile atthis time to enable it for the whole workspace.* Fix CI errorprtest:full

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Mon, 20 Nov 2023 23:23:41 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>b23f534c - riscv64: Implement ELF TLS GD Relocations  (#7003)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#b23f534c</link>
        <description>riscv64: Implement ELF TLS GD Relocations  (#7003)* cranelift: Add support for public labels* cranelift: Allow targeting labels with relocations* cranelift: Emit label related relocations in module* riscv64: Implement TLS GD* cranelift: Rename `label_is_public` field* cranelift: Avoid making MachLabel part of the exposed API

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Mon, 18 Sep 2023 14:44:06 +0000</pubDate>
        <dc:creator>Afonso Bordado &lt;afonso360@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>62fdafa1 - Remove clippy configuration from repo and crates (#6927)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#62fdafa1</link>
        <description>Remove clippy configuration from repo and crates (#6927)Wasmtime&apos;s CI does not run clippy so there&apos;s no enforcement of thisconfiguration. Additionally the configuration per-crate is not uniformlyapplied across all of the Wasmtime workspace and is only on somehistorical crates. Because we don&apos;t run clippy in CI this commit removesall of the clippy annotations for allow/warn/deny from the source.

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Tue, 29 Aug 2023 21:07:27 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>3dfbfb61 - x64: Add non-SSSE3 lowerings of `pshufb` (#6606)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#3dfbfb61</link>
        <description>x64: Add non-SSSE3 lowerings of `pshufb` (#6606)* x64: Add non-SSSE3 lowerings of `pshufb`Or, more accurately, add lowerings which don&apos;t use `pshufb`&apos;sfunctionality at all where possible or otherwise fall back to a newlibcall. This particular instruction seemed uniquely difficult toimplement in the backend so I decided to &quot;cop out&quot; and use libcallinstead. The libcall will be used for `popcnt`, `shuffle`, and`swizzle` instructions when SSSE3 isn&apos;t available.* Implemente SSE2 popcnt with Hacker&apos;s Delight* x64: Implement passing vector arguments in the fastcall conventionWindows says that vector arguments are passed indirectly so handle thathere through the `ABIArg::ImplicitPtrArg` variant. Some additionalhandling is added to the general machinst backend.* Update `gen_load_base_offset` for x64* Fill out remaining bits of fastcall and vector parameters* Remove now-unnecessary `Clone` bound

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Tue, 20 Jun 2023 18:19:12 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>91d1d246 - Allow serializing all cranelift-module data structures (#6172)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#91d1d246</link>
        <description>Allow serializing all cranelift-module data structures (#6172)* Remove ModuleCompiledFunctionThe same information can be retrieved usingctx.compiled_code().unwrap().code_info().total_sizeIn addition for Module implementations that don&apos;t immediately compile thegiven function there is no correct value that can be returned.* Don&apos;t give anonymous functions and data objects an internal nameThis internal name can conflict if a module is serialized and thendeserialized into another module. It also wasn&apos;t used by any of theModule implementations anyway.* Allow serializing all cranelift-module data structuresThis allows a Module implementation to serialize it&apos;s internal state anddeserialize it in another compilation session. For example to implementLTO or to load the module into cranelift-interpreter.* Use expect

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Fri, 21 Apr 2023 12:39:15 +0000</pubDate>
        <dc:creator>bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>67c85b88 - Remove the DataContext wrapper around DataDescription (#6170)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#67c85b88</link>
        <description>Remove the DataContext wrapper around DataDescription (#6170)* Remove the DataContext wrapper around DataDescriptionIt doesn&apos;t have much of a purpose while making it harder to for examplerewrite the function and data object declarations within it as isnecessary for deserializing a serialized module.* Derive Debug for DataDescription

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Thu, 06 Apr 2023 17:13:55 +0000</pubDate>
        <dc:creator>bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>0667a412 - Export a couple of types from cranelift_module that were meant to be exported (#5074)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#0667a412</link>
        <description>Export a couple of types from cranelift_module that were meant to be exported (#5074)

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Wed, 19 Oct 2022 15:52:24 +0000</pubDate>
        <dc:creator>bjorn3 &lt;17426603+bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>9a8bd5be - cranelift: Add LibCalls to the interpreter (#4782)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#9a8bd5be</link>
        <description>cranelift: Add LibCalls to the interpreter (#4782)* cranelift: Add libcall handlers to interpreter* cranelift: Fuzz IshlI64 libcall* cranelift: Revert back to fuzzing udivi64* cranelift: Use sdiv as a fuzz libcall* cranelift: Register Sdiv in fuzzgen* cranelift: Add multiple libcalls to fuzzer* cranelift: Register a single libcall handler* cranelift: Simplify args checking in interpreter* cranelift: Remove unused LibCalls* cranelift: Cleanup interpreter libcall types* cranelift: Fix Interpreter Docs

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Mon, 29 Aug 2022 20:36:33 +0000</pubDate>
        <dc:creator>Afonso Bordado &lt;afonso360@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>8a9b1a90 - Implement an incremental compilation cache for Cranelift (#4551)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#8a9b1a90</link>
        <description>Implement an incremental compilation cache for Cranelift (#4551)This is the implementation of https://github.com/bytecodealliance/wasmtime/issues/4155, using the &quot;inverted API&quot; approach suggested by @cfallin (thanks!) in Cranelift, and trait object to provide a backend for an all-included experience in Wasmtime. After the suggestion of Chris, `Function` has been split into mostly two parts:- on the one hand, `FunctionStencil` contains all the fields required during compilation, and that act as a compilation cache key: if two function stencils are the same, then the result of their compilation (`CompiledCodeBase&lt;Stencil&gt;`) will be the same. This makes caching trivial, as the only thing to cache is the `FunctionStencil`.- on the other hand, `FunctionParameters` contain the... function parameters that are required to finalize the result of compilation into a `CompiledCode` (aka `CompiledCodeBase&lt;Final&gt;`) with proper final relocations etc., by applying fixups and so on.Most changes are here to accomodate those requirements, in particular that `FunctionStencil` should be `Hash`able to be used as a key in the cache:- most source locations are now relative to a base source location in the function, and as such they&apos;re encoded as `RelSourceLoc` in the `FunctionStencil`. This required changes so that there&apos;s no need to explicitly mark a `SourceLoc` as the base source location, it&apos;s automatically detected instead the first time a non-default `SourceLoc` is set.- user-defined external names in the `FunctionStencil` (aka before this patch `ExternalName::User { namespace, index }`) are now references into an external table of `UserExternalNameRef -&gt; UserExternalName`, present in the `FunctionParameters`, and must be explicitly declared using `Function::declare_imported_user_function`.- some refactorings have been made for function names:  - `ExternalName` was used as the type for a `Function`&apos;s name; while it thus allowed `ExternalName::Libcall` in this place, this would have been quite confusing to use it there. Instead, a new enum `UserFuncName` is introduced for this name, that&apos;s either a user-defined function name (the above `UserExternalName`) or a test case name.  - The future of `ExternalName` is likely to become a full reference into the `FunctionParameters`&apos;s mapping, instead of being &quot;either a handle for user-defined external names, or the thing itself for other variants&quot;. I&apos;m running out of time to do this, and this is not trivial as it implies touching ISLE which I&apos;m less familiar with.The cache computes a sha256 hash of the `FunctionStencil`, and uses this as the cache key. No equality check (using `PartialEq`) is performed in addition to the hash being the same, as we hope that this is sufficient data to avoid collisions.A basic fuzz target has been introduced that tries to do the bare minimum:- check that a function successfully compiled and cached will be also successfully reloaded from the cache, and returns the exact same function.- check that a trivial modification in the external mapping of `UserExternalNameRef -&gt; UserExternalName` hits the cache, and that other modifications don&apos;t hit the cache.  - This last check is less efficient and less likely to happen, so probably should be rethought a bit.Thanks to both @alexcrichton and @cfallin for your very useful feedback on Zulip.Some numbers show that for a large wasm module we&apos;re using internally, this is a 20% compile-time speedup, because so many `FunctionStencil`s are the same, even within a single module. For a group of modules that have a lot of code in common, we get hit rates up to 70% when they&apos;re used together. When a single function changes in a wasm module, every other function is reloaded; that&apos;s still slower than I expect (between 10% and 50% of the overall compile time), so there&apos;s likely room for improvement. Fixes #4155.

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Fri, 12 Aug 2022 16:47:43 +0000</pubDate>
        <dc:creator>Benjamin Bouvier &lt;public@benj.me&gt;</dc:creator>
    </item>
<item>
        <title>c5bc368c - cranelift: Add COFF TLS Support (#4546)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#c5bc368c</link>
        <description>cranelift: Add COFF TLS Support (#4546)* cranelift: Implement COFF TLS Relocations* cranelift: Emit SecRel relocations* cranelift: Handle _tls_index symbol in backend

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Thu, 11 Aug 2022 16:33:40 +0000</pubDate>
        <dc:creator>Afonso Bordado &lt;afonso360@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>50fcab29 - s390x: Implement tls_value (#4616)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#50fcab29</link>
        <description>s390x: Implement tls_value (#4616)Implement the tls_value for s390 in the ELF general-dynamic mode.Notable differences to the x86_64 implementation are:- We use a __tls_get_offset libcall instead of __tls_get_addr.- The current thread pointer (stored in a pair of access registers)  needs to be added to the result of __tls_get_offset.- __tls_get_offset has a variant ABI that requires the address of  the GOT (global offset table) is passed in %r12.This means we need a new libcall entries for __tls_get_offset.In addition, we also need a way to access _GLOBAL_OFFSET_TABLE_.The latter is a &quot;magic&quot; symbol with a well-known name definedby the ABI and recognized by the linker.  This patch introducesa new ExternalName::KnownSymbol variant to support such names(originally due to @afonso360).We also need to emit a relocation on a symbol placed in aconstant pool, as well as an extra relocation on the callto __tls_get_offset required for TLS linker optimization.Needed by the cg_clif frontend.

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Wed, 10 Aug 2022 17:02:07 +0000</pubDate>
        <dc:creator>Ulrich Weigand &lt;ulrich.weigand@de.ibm.com&gt;</dc:creator>
    </item>
<item>
        <title>709716bb - cranelift: Implement scalar FMA on x86 (#4460)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#709716bb</link>
        <description>cranelift: Implement scalar FMA on x86 (#4460)x86 does not have dedicated instructions for scalar FMA, lowerto a libcall which seems to be what llvm does.

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Wed, 03 Aug 2022 17:29:10 +0000</pubDate>
        <dc:creator>Afonso Bordado &lt;afonso360@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>f0e821b9 - Remove all Sink traits</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#f0e821b9</link>
        <description>Remove all Sink traits

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Tue, 11 Jan 2022 18:03:10 +0000</pubDate>
        <dc:creator>bjorn3 &lt;bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>c266f7f4 - Cranelift: Add `LibCall::Memcmp`</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#c266f7f4</link>
        <description>Cranelift: Add `LibCall::Memcmp`The comment says the enum is &quot;likely to grow&quot; and the function&apos;s been in libc since C89, so hopefully this is ok.I&apos;d like to use it for emitting things like array equality.

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Mon, 31 May 2021 19:27:29 +0000</pubDate>
        <dc:creator>Scott McMurray &lt;scottmcm@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>5df5bbbd - Fix usage of default_libcall_names (#2378)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#5df5bbbd</link>
        <description>Fix usage of default_libcall_names (#2378)* Fix usage of default_libcall_names* Add basic cranelift-object testIt is based on a test with the same name in cranelift-simplejit

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Mon, 09 Nov 2020 16:33:56 +0000</pubDate>
        <dc:creator>bjorn3 &lt;bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>c9e8889d - Update clippy annotation to use latest version (#2375)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#c9e8889d</link>
        <description>Update clippy annotation to use latest version (#2375)

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Mon, 09 Nov 2020 15:24:59 +0000</pubDate>
        <dc:creator>Andrew Brown &lt;andrew.brown@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>8af2dbfb - Allow offloading compilation in cranelift-object (#2371)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/module/src/lib.rs#8af2dbfb</link>
        <description>Allow offloading compilation in cranelift-object (#2371)This commit is a slight refactoring of the `Module` trait and backend in`cranelift-object`. The goal is to enable parallelization of compilationwhen using `cranelift-object`. Currently this is difficult because`ObjectModule::define_function` requires `&amp;mut self`. This insteadsoups up the `define_function_bytes` interface to handle relocations socompilation can happen externally before defining it in a `Module`. Thisalso means that `define_function` is now a convenience wrapper around`define_function_bytes`.

            List of files:
            /wasmtime-44.0.1/cranelift/module/src/lib.rs</description>
        <pubDate>Fri, 06 Nov 2020 15:56:44 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
</channel>
</rss>
