<?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 extname.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>0889323a - cranelift-codegen: rename most uses of std to core and alloc (#12237)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#0889323a</link>
        <description>cranelift-codegen: rename most uses of std to core and alloc (#12237)* rename most std uses to core and alloc* cargo fmt

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Sat, 03 Jan 2026 00:54:48 +0000</pubDate>
        <dc:creator>SSD &lt;96286755+the-ssd@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>efa236e5 - Cranelift: implement an &quot;unwinder&quot; crate and exception throws in filetests. (#10919)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#efa236e5</link>
        <description>Cranelift: implement an &quot;unwinder&quot; crate and exception throws in filetests. (#10919)This commit introduces the next major piece of machinery (after thepreviously-landed `try_call` support) that we will eventually use toimplement Wasm exceptions in Wasmtime. In particular, it implements ageneric unwinder as a new crate that supports (i) walking a stackproduced by Cranelift code, (ii) serializing Cranelift exceptionmetadata to compact tables (in a way very similar to address maps inWasmtime, so they will be mappable directly from disk), (iii) usingthese serialized tables to find handlers during a stack-walk, and (iv)jumping to handlers (i.e., actually unwinding). This crate is currentlyused in the filetests runner, and will next be used in Wasmtime.The commit first performs code-motion: it moves stack-walking code fromWasmtime to `cranelift-unwinder`. This itself has no functional effect,but isolates the code that understands contiguous sequences of Craneliftframes (&quot;activations&quot;) from that which is specific to Wasmtime&apos;sactivation delimiters and metadata.It then implements a compact exception-table format. This format usesthe `object` crate&apos;s mechanisms for directly referencing in-memoryarrays of little-endian `u32`s in a way that will allow us to findhandlers when mapping exception metadata directly from an ELF section ina `.cwasm` (for example). The format consists of four sorted `u32`arrays in a way that allows us to look up a callsite first, then searchits sorted array of handler offsets by tags.It next implements the actual unwind control flow: it contains anassembly stub for each supported architecture that transfers control toa PC, SP, and FP value &quot;up the stack&quot;, with payload values placed in thepayload registers we have defined per our exception ABI in Cranelift.Finally, it puts these pieces together in the filetest runner. Note thatthe runtest does a lot &quot;by hand&quot;: we don&apos;t have entry and exittrampolines as we do in Wasmtime, so the filetest contains threefunctions, with the middle one invoking the &quot;throw hostcall&quot; and entryand exit trampolines around it grabbing the appropriate entry/exit FPsand exit PC. The dance to call back to host code is also somewhatdelicate, as we haven&apos;t done this before. The `JITModule`&apos;s linking +relocation support does not seem sufficient to properly define a symbol,so instead we scan for `func_addr` instructions referencing a well-knownname (`__cranelift_throw`) and replace them with `iconst`s with thefunction address at runtime, baking it in. This is somewhat ugly, but itworks. All of these filetest-specific details will be handled much morenicely in the Wasmtime version of this functionality, as we have properabstractions for entry/exit trampolines and hostcalls.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Thu, 05 Jun 2025 01:39:23 +0000</pubDate>
        <dc:creator>Chris Fallin &lt;chris@cfallin.org&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/cranelift/codegen/src/ir/extname.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/codegen/src/ir/extname.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>a0442ea0 - Enforce `uninlined_format_args` for the workspace (#9065)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#a0442ea0</link>
        <description>Enforce `uninlined_format_args` for the workspace (#9065)* Enforce `uninlined_format_args` for the workspace* fix: failing `Monolith Checks` job* fix: formatting

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Mon, 05 Aug 2024 09:59:59 +0000</pubDate>
        <dc:creator>Hamir Mahal &lt;hamirmahal@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>9ec02f9d - Decouple `serde` from its `derive` crate (#6917)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#9ec02f9d</link>
        <description>Decouple `serde` from its `derive` crate (#6917)By not activating the `derive` feature on `serde`, the compilation speedcan be improved by a lot. This is because `serde` can then compile inparallel to `serde_derive`, allowing it to finish compilation possiblyeven before `serde_derive`, unblocking all the crates waiting for`serde` to start compiling much sooner.As it turns out the main deciding factor for how long the compile time of aproject is, is primarly determined by the depth of dependencies ratherthan the width. In other words, a crate&apos;s compile times aren&apos;t affectedby how many crates it depends on, but rather by the longest chain ofdependencies that it needs to wait on. In many cases `serde` is part ofthat long chain, as it is part of a long chain if the `derive` featureis active:`proc-macro2` compile build script &gt; `proc-macro2` run build script &gt;`proc-macro2` &gt; `quote` &gt; `syn` &gt; `serde_derive` &gt; `serde` &gt;`serde_json` (or any crate that depends on serde)By decoupling it from `serde_derive`, the chain is shortened and compiletimes get much better.Check this issue for a deeper elaboration:https://github.com/serde-rs/serde/issues/2584For `wasmtime` I&apos;m seeing a reduction from 24.75s to 22.45s whencompiling in `release` mode. This is because wasmtime through `gimli`has a dependency on `indexmap` which can only start compiling when`serde` is finished, which you want to happen as early as possible sosome of wasmtime&apos;s dependencies can start compiling.To measure the full effect, the dependencies can&apos;t by themselvesactivate the `derive` feature. I&apos;ve upstreamed a patch for`fxprof-processed-profile` which was the only dependency that activatedit for `wasmtime` (not yet published to crates.io). `wasmtime-cli` andco. may need patches for their dependencies to see a similarimprovement.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Tue, 29 Aug 2023 16:02:06 +0000</pubDate>
        <dc:creator>Christopher Serr &lt;christopher.serr@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2dd60640 - fuzzgen: Generate multiple functions per testcase (#5765)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#2dd60640</link>
        <description>fuzzgen: Generate multiple functions per testcase (#5765)* fuzzgen: Generate multiple functions per testcase* fuzzgen: Fix typoCo-authored-by: Jamey Sharp &lt;jamey@minilop.net&gt;---------Co-authored-by: Jamey Sharp &lt;jamey@minilop.net&gt;

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Tue, 28 Feb 2023 18:47:09 +0000</pubDate>
        <dc:creator>Afonso Bordado &lt;afonso360@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>7a9078d9 - cranelift: Allow `call` and `call_indirect` in runtests (#4667)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#7a9078d9</link>
        <description>cranelift: Allow `call` and `call_indirect` in runtests (#4667)* cranelift: Change test runner orderChanges the ordering of runtests to run per target and then per function.This change doesn&apos;t do a lot by itself, but helps future refactorings of runtests.* cranelift: Rename SingleFunctionCompiler to TestCaseCompiler* cranelift: Skip runtests per target instead of per run* cranelift: Deduplicate test namesWith the upcoming changes to the runtest infrastructure we require unique ExtNames for all tests.Note that for test names we have a 16 character limit on test names, and must be unique within those 16 characters.* cranelift: Add TestFileCompiler to runtestsTestFileCompiler allows us to compile the entire file once, and then call the trampolines for each test.The previous code was compiling the function for each invocation of a test.* cranelift: Deduplicate ExtName for avg_round tests* cranelift: Rename functions as they are defined.The JIT internally only deals with User functions, and cannot link test name funcs.This also caches trampolines by signature.* cranelift: Preserve original name when reporting errors.* cranelift: Rename aarch64 test functions* cranelift: Add `call` and `call_indirect` tests!* cranelift: Add pauth runtests for aarch64* cranelift: Rename duplicate s390x tests* cranelift: Delete `i128_bricmp_of` function from i128-bricmpIt looks like we forgot to delete it when it was moved to`i128-bricmp-overflow`, and since it didn&apos;t have a run invocationit was never compiled.However, s390x does not support this, and panics when lowering.* cranelift: Add `colocated` call tests* cranelift: Rename *more* `s390x` tests* cranelift: Add pauth + sign_return_address call tests* cranelift: Undeduplicate test namesWith the latest main changes we now support *unlimited* length test names.This commit reverts:52274676ff631c630f9879dd32e756566d3e700f7989edc172493547cdf63e180bb58365e8a43a4225c8a8395527d98976be6a34baa3b0b214776739792e8cfa8f748077f9d80fe7ee5e958b7124e83b* cranelift: Add LibCall tests* cranelift: Revert more test namesThese weren&apos;t auto reverted by the previous revert.* cranelift: Disable libcall tests for aarch64* cranelift: Runtest fibonacci tests* cranelift: Misc cleanup

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Fri, 26 Aug 2022 19:42:16 +0000</pubDate>
        <dc:creator>Afonso Bordado &lt;afonso360@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>9cb987c6 - Don&apos;t limit ExternalName::TestName length (#4764)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#9cb987c6</link>
        <description>Don&apos;t limit ExternalName::TestName length (#4764)In order to keep the `ExternalName` enum small, the `TestcaseName`struct was limited to 17 bytes: a 1 byte length and a 16 byte buffer.Due to alignment, that made `ExternalName` 20 bytes.That fixed-size buffer means that the names of functions in Craneliftfiletests are truncated to fit, which limits our ability to give testsmeaningful names. And I think meaningful names are important in tests.This patch replaces the inline `TestcaseName` buffer with aheap-allocated slice. We don&apos;t care about performance for test names, soan indirection out to the heap is fine in that case. But we do caresomewhat about the size of `ExternalName` when it&apos;s used duringcompiles.On 64-bit systems, `Box&lt;[u8]&gt;` is 16 bytes, so `TestcaseName` gets onebyte smaller. Unfortunately, its alignment is 8 bytes, so `ExternalName`grows from 20 to 24 bytes.According to `valgrind --tool=dhat`, this change has very little effecton compiler performance. Building wasmtime with `--no-default-features--release`, and compiling the pulldown-cmark benchmark from Sightglass,I measured these differences between `main` and this patch:- total number of allocations didn&apos;t change (`ExternalName::TestCase` is  not used in normal compiles)- 592 more bytes allocated over the process lifetime, out of 171.5MiB- 320 more bytes allocated at peak heap size, out of 12MiB- 0.24% more instructions executed- 16,987 more bytes written- 12,120 _fewer_ bytes read

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Wed, 24 Aug 2022 04:17:30 +0000</pubDate>
        <dc:creator>Jamey Sharp &lt;jsharp@fastly.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/codegen/src/ir/extname.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/codegen/src/ir/extname.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>50fcab29 - s390x: Implement tls_value (#4616)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.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/codegen/src/ir/extname.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>2fc964ea - Add serde serialization support for the full clif ir</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#2fc964ea</link>
        <description>Add serde serialization support for the full clif ir

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Sat, 19 Dec 2020 15:32:46 +0000</pubDate>
        <dc:creator>bjorn3 &lt;bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>832666c4 - Mass rename Ebb and relatives to Block (#1365)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#832666c4</link>
        <description>Mass rename Ebb and relatives to Block (#1365)* Manually rename BasicBlock to BlockPredecessorBasicBlock is a pair of (Ebb, Inst) that is used to represent thebasic block subcomponent of an Ebb that is a predecessor to an Ebb.Eventually we will be able to remove this struct, but for now itmakes sense to give it a non-conflicting name so that we can startto transition Ebb to represent a basic block.I have not updated any comments that refer to BasicBlock, aseventually we will remove BlockPredecessor and replace with Block,which is a basic block, so the comments will become correct.* Manually rename SSABuilder block types to avoid conflictSSABuilder has its own Block and BlockData types. These along withassociated identifier will cause conflicts in a later commit, sothey are renamed to be more verbose here.* Automatically rename &apos;Ebb&apos; to &apos;Block&apos; in *.rs* Automatically rename &apos;EBB&apos; to &apos;block&apos; in *.rs* Automatically rename &apos;ebb&apos; to &apos;block&apos; in *.rs* Automatically rename &apos;extended basic block&apos; to &apos;basic block&apos; in *.rs* Automatically rename &apos;an basic block&apos; to &apos;a basic block&apos; in *.rs* Manually update comment for `Block``Block`&apos;s wikipedia article required an update.* Automatically rename &apos;an `Block`&apos; to &apos;a `Block`&apos; in *.rs* Automatically rename &apos;extended_basic_block&apos; to &apos;basic_block&apos; in *.rs* Automatically rename &apos;ebb&apos; to &apos;block&apos; in *.clif* Manually rename clif constant that contains &apos;ebb&apos; as substring to avoid conflict* Automatically rename filecheck uses of &apos;EBB&apos; to &apos;BB&apos;&apos;regex: EBB&apos; -&gt; &apos;regex: BB&apos;&apos;$EBB&apos; -&gt; &apos;$BB&apos;* Automatically rename &apos;EBB&apos; &apos;Ebb&apos; to &apos;block&apos; in *.clif* Automatically rename &apos;an block&apos; to &apos;a block&apos; in *.clif* Fix broken testcase when function name length increasesTest function names are limited to 16 characters. This causesthe new longer name to be truncated and fail a filecheck test. Anoutdated comment was also fixed.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Fri, 07 Feb 2020 16:46:47 +0000</pubDate>
        <dc:creator>Ryan Hunt &lt;rhunt@eqrion.net&gt;</dc:creator>
    </item>
<item>
        <title>9f506692 - Fix clippy warnings.</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#9f506692</link>
        <description>Fix clippy warnings.This commit fixes the current set of (stable) clippy warnings in the repo.

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Thu, 24 Oct 2019 06:15:42 +0000</pubDate>
        <dc:creator>Peter Huene &lt;phuene@mozilla.com&gt;</dc:creator>
    </item>
<item>
        <title>bb8fa40e - Rustfmt</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#bb8fa40e</link>
        <description>Rustfmt

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Sat, 28 Sep 2019 14:43:00 +0000</pubDate>
        <dc:creator>bjorn3 &lt;bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>10e226f9 - Always use extern crate std in cranelift-codegen</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#10e226f9</link>
        <description>Always use extern crate std in cranelift-codegen

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Sat, 28 Sep 2019 13:52:23 +0000</pubDate>
        <dc:creator>bjorn3 &lt;bjorn3@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>747ad3c4 - moved crates in lib/ to src/, renamed crates, modified some files&apos; text (#660)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs#747ad3c4</link>
        <description>moved crates in lib/ to src/, renamed crates, modified some files&apos; text (#660)moved crates in lib/ to src/, renamed crates, modified some files&apos; text (#660)

            List of files:
            /wasmtime-44.0.1/cranelift/codegen/src/ir/extname.rs</description>
        <pubDate>Mon, 28 Jan 2019 23:56:54 +0000</pubDate>
        <dc:creator>lazypassion &lt;25536767+lazypassion@users.noreply.github.com&gt;</dc:creator>
    </item>
</channel>
</rss>
