<?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 stackswitch.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>f3156fe0 - Update fibers to avoid no-return functions (#12928)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/fiber/src/stackswitch.rs#f3156fe0</link>
        <description>Update fibers to avoid no-return functions (#12928)* Update fibers to avoid no-return functionsThis commit is aimed at fixing the ASAN false positives in #12899.Initially the fix there was to invoke some `__asan_*` intrinsics, andI ended up finding a sort of smaller set of `__asan_*` intrinsics tocall as well. In the end what&apos;s happening though is that fibers, uponterminating, have a few frames of Rust code on the stack beforeswitching off. To ASAN these frames never returned so when a stack issubsequently reused ASAN is tricked into thinking this is bufferoverflow or use-after-free since it&apos;s stomping on frames that haven&apos;treturned.The fix in this commit is to avoid this style of function which doesn&apos;treturns. Functions which don&apos;t return in Rust are easy to leak memoryfrom and are a hazard from a safety perspective as well (e.g. it&apos;sunsafe to skip running destructors of stack variables). I feel we&apos;ve hadbetter success over time with &quot;all Rust functions always return&quot; and sowhat&apos;s what was applied here. Unlike #12899 or my thoughts on that PRthis does not have any new `__asan_*` intrinsic calls. Instead what thisdoes is it shuffles around responsibility for what exact piece of theinfrastructure is responsible for what. Specifically `fiber_start`functions now actually return, meaning the `wasmtime_fiber_start` nakedfunction actually resumes execution, unlike before. The`wasmtime_fiber_start` then delegates to `wasmtime_fiber_switch`immediately to perform the final switch.Effectively there&apos;s now only two function frames that never return, andboth of these frames are handwritten inline assembly. This means thatASAN gets to see that all normal functions return and updates all of itsmetadata accordingly. The end result is that the original issue from #12899is fixed and this I feel is in general more robust as well.One caveat is that the handwritten `wasmtime_fiber_start` assembly needsto invoke a sibling `wasmtime_fiber_switch_` function. In lieu of tryingto figure out how to get PIC-vs-not calls working (e.g. static calls)I&apos;ve opted to use indirect function calls and pointers instead. Thismirrors historical changes in our fiber implementation too.* Fix CI builds* Fix miri

            List of files:
            /wasmtime-44.0.1/crates/fiber/src/stackswitch.rs</description>
        <pubDate>Wed, 01 Apr 2026 20:22:31 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>3dc6b5ec - Add fiber implementation for riscv32imac (#12506)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/fiber/src/stackswitch.rs#3dc6b5ec</link>
        <description>Add fiber implementation for riscv32imac (#12506)* Add fiber implementation for riscv32imac* Adjusted formatting around commas* Added padding infront of `last_sp`

            List of files:
            /wasmtime-44.0.1/crates/fiber/src/stackswitch.rs</description>
        <pubDate>Tue, 03 Feb 2026 22:52:14 +0000</pubDate>
        <dc:creator>max-dau &lt;36899255+max-dau@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>36a5339d - chore: fix some minor issues in the comments (#11742)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/fiber/src/stackswitch.rs#36a5339d</link>
        <description>chore: fix some minor issues in the comments (#11742)Signed-off-by: juejinyuxitu &lt;juejinyuxitu@outlook.com&gt;

            List of files:
            /wasmtime-44.0.1/crates/fiber/src/stackswitch.rs</description>
        <pubDate>Wed, 24 Sep 2025 16:30:19 +0000</pubDate>
        <dc:creator>juejinyuxitu &lt;juejinyuxitu@outlook.com&gt;</dc:creator>
    </item>
<item>
        <title>3e9eca8b - Use `naked_asm!`, delete `asm_func!` (#11405)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/fiber/src/stackswitch.rs#3e9eca8b</link>
        <description>Use `naked_asm!`, delete `asm_func!` (#11405)This deletes our home-grown `asm_func!` macro in favor of using`#[unsafe(naked)]` functions within Wasmtime. This is needed forfiber-related bits right now where we need tight control over the exactassembly of some functions. This additionally migrates s390x fiber bitsto Rust as inline assembly is now stable for s390x.prtest:full

            List of files:
            /wasmtime-44.0.1/crates/fiber/src/stackswitch.rs</description>
        <pubDate>Thu, 18 Sep 2025 20:23:41 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>4afa86b8 - Improve support for completely unknown architectures (#10107)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/fiber/src/stackswitch.rs#4afa86b8</link>
        <description>Improve support for completely unknown architectures (#10107)* Improve support for completely unknown architecturesThis commit is a step in the direction of trying to make Wasmtime moreportable by default. The goal here is to enable Wasmtime to compile forarchitectures that it has no prior knowledge of. There&apos;s a fewmiscellaneous locations through Wasmtime where we needarchitecture-specific intrinsics and such but that&apos;s all in service ofCranelift itself. Without Cranelift support none of them are necessary.This commit plumbs a custom `#[cfg]` from Wasmtime&apos;s `build.rs` scriptinto the crate about whether there&apos;s a supported Cranelift backend. Ifthis isn&apos;t available some architecture-specific intrinsics are turnedoff and not included. An example is that `vm::arch` entirely disappearswhich is only in service of `UnwindHost`, which also disappears.Furthermore the `helpers.c` file also entirely disappears as it&apos;s notnecessary on unknown architectures.To help keep this working I&apos;ve added CI to build Wasmtime for`powerpc64le-unknown-linux-gnu`. Wasmtime currently has no support forthis architecture, although if it grows such support in the futurethis&apos;ll need to be changed to some other unsupported architecture.* Review feedback* Fix powerpc build* Refactor windows trap handling to look like UnixShuffle some files around to be more amenable to #[cfg]* Move signal-handling tests to wasmtime crateThat way it&apos;s got easy access to the #[cfg]&apos;s from the build script* Disable signals support without a host compilerEven if custom signals are enabled, don&apos;t compile it in.prtest:full* Fix windows unused imports* Fix unused imports on Windows* Remove untested stubs for arch intrinsicsThese aren&apos;t needed any more to compile Pulley* Defer tunables validation to loading modulesInstead of validating at `Engine` config time instead validate at`Module` config time to enable cross-compilation.* Skip `Tunables` auto-configuration if cross-compilingThis commit* Tweak some Tunables based on PulleyEnsures that specific `--target pulleyNN` works most of the time.* Update host_segfault.rs to handle new 32-bit defaultsNo signal handlers are used at all with Pulley so when the async stackoverflows there&apos;s no message printed any more.* Disable Tunables::signals_based_traps on miri

            List of files:
            /wasmtime-44.0.1/crates/fiber/src/stackswitch.rs</description>
        <pubDate>Tue, 28 Jan 2025 01:06:27 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>0fff9c10 - Enable `missing-unsafe-on-extern` lint (#9963)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/fiber/src/stackswitch.rs#0fff9c10</link>
        <description>Enable `missing-unsafe-on-extern` lint (#9963)* Enable `missing-unsafe-on-extern` lintThis&apos;ll be a hard error in the 2024 edition so go ahead and opt-in to itnow to ease our future transition.* Fix adapter build* Fix custom c-api build* Fix fuzzer build* Fix some Windows `extern` blocks

            List of files:
            /wasmtime-44.0.1/crates/fiber/src/stackswitch.rs</description>
        <pubDate>Thu, 09 Jan 2025 20:21:25 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>abcd6acc - Port wasmtime-fiber to `no_std` and allow `async` feature in `no_std` Wasmtime. (#9689)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/fiber/src/stackswitch.rs#abcd6acc</link>
        <description>Port wasmtime-fiber to `no_std` and allow `async` feature in `no_std` Wasmtime. (#9689)This PR allows a `no_std` Wasmtime build to be configured with the`async` feature. (Previously, a minimal `no_std` configuration couldonly run with sync entry points, without suspending of stacks.)The main hurdle to this support was the `wasmtime-fiber` crate.Fortunately, the &quot;unix&quot; variant of fibers was almost entirely portableto a `no_std` environment, owing to the fact that it implementsstack-switching manually in assembly itself. I moved the per-ISAimplementations to a shared submodule and built the nostd platformbackend for `wasmtime-fiber` with a stripped-down version of the unixbackend.The nostd backend does not support mmap&apos;d stacks, does not supportcustom stack allocators, and does not propagate panics.prtest:full

            List of files:
            /wasmtime-44.0.1/crates/fiber/src/stackswitch.rs</description>
        <pubDate>Wed, 04 Dec 2024 19:31:21 +0000</pubDate>
        <dc:creator>Chris Fallin &lt;chris@cfallin.org&gt;</dc:creator>
    </item>
</channel>
</rss>
