<?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 engine.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>ae84e6ed - Enable `unsafe-attr-outside-unsafe` 2024 edition lint (#9964)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/engine.rs#ae84e6ed</link>
        <description>Enable `unsafe-attr-outside-unsafe` 2024 edition lint (#9964)* Enable `unsafe-attr-outside-unsafe` 2024 edition lintThis commit enables the `unsafe-attr-outside-unsafe` lint in rustc usedin transitioning to the 2024 edition. This requires that the`#[no_mangle]` attribute is replaced in favor of `#[unsafe(no_mangle)]`.This mostly affects the C API of wasmtime and most of the changes hereare a simple search/replace.* Another attribute update* Fix command adapter build

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/engine.rs</description>
        <pubDate>Thu, 09 Jan 2025 21:05:55 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>cb51a4f2 - Enable introspecting pulley at runtime (#9886)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/engine.rs#cb51a4f2</link>
        <description>Enable introspecting pulley at runtime (#9886)This commit includes a few assorted changes to improve detection ofwhether Wasmtime is using Pulley at runtime:* A new `Engine::is_pulley` API is added.* A new `wasmtime_engine_is_pulley` C API is added.* The `Config::target` method is now available regardless of compilation  features.* The `Engine::target` method now consults the `Config` to have the same  fallback logic for when a target is not explicitly configured.cc #1980

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/engine.rs</description>
        <pubDate>Mon, 30 Dec 2024 19:51:45 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>9e22c4e7 - Expose Engine::clone to c-api (#8907)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/engine.rs#9e22c4e7</link>
        <description>Expose Engine::clone to c-api (#8907)

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/engine.rs</description>
        <pubDate>Mon, 08 Jul 2024 14:34:23 +0000</pubDate>
        <dc:creator>Ryan Patterson &lt;cgamesplay@cgamesplay.com&gt;</dc:creator>
    </item>
<item>
        <title>78e098db - Gate logging in the C API on Cargo features (#7300)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/engine.rs#78e098db</link>
        <description>Gate logging in the C API on Cargo features (#7300)Help to excise more dependencies when building the C API.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/engine.rs</description>
        <pubDate>Thu, 19 Oct 2023 23:17:31 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>c22033bf - Delete historical interruptable support in Wasmtime (#3925)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/engine.rs#c22033bf</link>
        <description>Delete historical interruptable support in Wasmtime (#3925)* Delete historical interruptable support in WasmtimeThis commit removes the `Config::interruptable` configuration along withthe `InterruptHandle` type from the `wasmtime` crate. The originalsupport for adding interruption to WebAssembly was added pretty early onin the history of Wasmtime when there was no other method to prevent aninfinite loop from the host. Nowadays, however, there are alternativemethods for interruption such as fuel or epoch-based interruption.One of the major downsides of `Config::interruptable` is that even whenit&apos;s not enabled it forces an atomic swap to happen when enteringWebAssembly code. This technically could be a non-atomic swap if theconfiguration option isn&apos;t enabled but that produces even more branch-ycode on entry into WebAssembly which is already something we try tooptimize. Calling into WebAssembly is on the order of a dozens ofnanoseconds at this time and an atomic swap, even uncontended, can addup to 5ns on some platforms.The main goal of this PR is to remove this atomic swap on entry intoWebAssembly. This is done by removing the `Config::interruptable` fieldentirely, moving all existing consumers to epochs instead which aresuitable for the same purposes. This means that the stack overflow checkis no longer entangled with the interruption check and perhaps one daywe could continue to optimize that further as well.Some consequences of this change are:* Epochs are now the only method of remote-thread interruption.* There are no more Wasmtime traps that produces the `Interrupted` trap  code, although we may wish to move future traps to this so I left it  in place.* The C API support for interrupt handles was also removed and bindings  for epoch methods were added.* Function-entry checks for interruption are a tiny bit less efficient  since one check is performed for the stack limit and a second is  performed for the epoch as opposed to the `Config::interruptable`  style of bundling the stack limit and the interrupt check in one. It&apos;s  expected though that this is likely to not really be measurable.* The old `VMInterrupts` structure is renamed to `VMRuntimeLimits`.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/engine.rs</description>
        <pubDate>Mon, 14 Mar 2022 20:25:11 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>54c07d8f - Implement shared host functions. (#2625)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/engine.rs#54c07d8f</link>
        <description>Implement shared host functions. (#2625)* Implement defining host functions at the Config level.This commit introduces defining host functions at the `Config` rather than with`Func` tied to a `Store`.The intention here is to enable a host to define all of the functions oncewith a `Config` and then use a `Linker` (or directly with`Store::get_host_func`) to use the functions when instantiating a module.This should help improve the performance of use cases where a `Store` isshort-lived and redefining the functions at every module instantiation is anoticeable performance hit.This commit adds `add_to_config` to the code generation for Wasmtime&apos;s `Wasi`type.The new method adds the WASI functions to the given config as host functions.This commit adds context functions to `Store`: `get` to get a context of aparticular type and `set` to set the context on the store.For safety, `set` cannot replace an existing context value of the same type.`Wasi::set_context` was added to set the WASI context for a `Store` when using`Wasi::add_to_config`.* Add `Config::define_host_func_async`.* Make config &quot;async&quot; rather than store.This commit moves the concept of &quot;async-ness&quot; to `Config` rather than `Store`.Note: this is a breaking API change for anyone that&apos;s already adopted the newasync support in Wasmtime.Now `Config::new_async` is used to create an &quot;async&quot; config and any `Store`associated with that config is inherently &quot;async&quot;.This is needed for async shared host functions to have some sanity check during theirexecution (async host functions, like &quot;async&quot; `Func`, need to be called withthe &quot;async&quot; variants).* Update async function tests to smoke async shared host functions.This commit updates the async function tests to also smoke the shared hostfunctions, plus `Func::wrap0_async`.This also changes the &quot;wrap async&quot; method names on `Config` to`wrap$N_host_func_async` to slightly better match what is on `Func`.* Move the instance allocator into `Engine`.This commit moves the instantiated instance allocator from `Config` into`Engine`.This makes certain settings in `Config` no longer order-dependent, which is how`Config` should ideally be.This also removes the confusing concept of the &quot;default&quot; instance allocator,instead opting to construct the on-demand instance allocator when needed.This does alter the semantics of the instance allocator as now each `Engine`gets its own instance allocator rather than sharing a single one between allengines created from a configuration.* Make `Engine::new` return `Result`.This is a breaking API change for anyone using `Engine::new`.As creating the pooling instance allocator may fail (likely cause is not enoughmemory for the provided limits), instead of panicking when creating an`Engine`, `Engine::new` now returns a `Result`.* Remove `Config::new_async`.This commit removes `Config::new_async` in favor of treating &quot;async support&quot; asany other setting on `Config`.The setting is `Config::async_support`.* Remove order dependency when defining async host functions in `Config`.This commit removes the order dependency where async support must be enabled onthe `Config` prior to defining async host functions.The check is now delayed to when an `Engine` is created from the config.* Update WASI example to use shared `Wasi::add_to_config`.This commit updates the WASI example to use `Wasi::add_to_config`.As only a single store and instance are used in the example, it has no semanticdifference from the previous example, but the intention is to steer userstowards defining WASI on the config and only using `Wasi::add_to_linker` whenmore explicit scoping of the WASI context is required.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/engine.rs</description>
        <pubDate>Thu, 11 Mar 2021 16:14:03 +0000</pubDate>
        <dc:creator>Peter Huene &lt;peter@huene.dev&gt;</dc:creator>
    </item>
<item>
        <title>a8ee0554 - wasmtime: Initial, partial support for `externref`</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/engine.rs#a8ee0554</link>
        <description>wasmtime: Initial, partial support for `externref`This is enough to get an `externref -&gt; externref` identity functionpassing.However, `externref`s that are dropped by compiled Wasm code are (safely)leaked. Follow up work will leverage cranelift&apos;s stack maps to resolve thisissue.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/engine.rs</description>
        <pubDate>Sat, 23 May 2020 00:12:45 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>68f0d2f6 - Enable `env_logger` in the C API (#1737)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/engine.rs#68f0d2f6</link>
        <description>Enable `env_logger` in the C API (#1737)This commit ensures that `env_logger` and `RUST_LOG` are configured towork with the C API.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/engine.rs</description>
        <pubDate>Thu, 21 May 2020 16:02:49 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>6ef09359 - Refactor and fill out wasmtime&apos;s C API (#1415)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/engine.rs#6ef09359</link>
        <description>Refactor and fill out wasmtime&apos;s C API (#1415)* Refactor and improve safety of C APIThis commit is intended to be a relatively large refactoring of the CAPI which is targeted at improving the safety of our C API definitions.Not all of the APIs have been updated yet but this is intended to be thestart.The goal here is to make as many functions safe as we can, expressinginputs/outputs as native Rust types rather than raw pointers whereverpossible. For example instead of `*const wasm_foo_t` we&apos;d take`&amp;wasm_foo_t`. Instead of returning `*mut wasm_foo_t` we&apos;d return`Box&lt;wasm_foo_t&gt;`. No ABI/API changes are intended from this commit,it&apos;s supposed to only change how we define all these functionsinternally.This commit also additionally implements a few more API bindings forexposed vector types by unifying everything into one macro.Finally, this commit moves many internal caches in the C API to the`OnceCell` type which provides a safe interface for one-timeinitialization.* Split apart monolithic C API `lib.rs`This commit splits the monolithic `src/lib.rs` in the C API crate intolots of smaller files. The goal here is to make this a bit more readableand digestable. Each module now contains only API bindings for aparticular type, roughly organized around the grouping in the wasm.hheader file already.A few more extensions were added, such as filling out `*_as_*`conversions with both const and non-const versions. Additionally manyAPIs were made safer in the same style as the previous commit, generallypreferring Rust types rather than raw pointer types.Overall no functional change is intended here, it should be mostly justcode movement and minor refactorings!* Make a few wasi C bindings saferUse safe Rust types where we can and touch up a few APIs here and there.* Implement `wasm_*type_as_externtype*` APIsThis commit restructures `wasm_externtype_t` to be similar to`wasm_extern_t` so type conversion between the `*_extern_*` variants tothe concrete variants are all simple casts. (checked in the case ofgeneral to concrete, of course).* Consistently imlpement host info functions in the APIThis commit adds a small macro crate which is then used to consistentlydefine the various host-info-related functions in the C API. The goalhere is to try to mirror what the `wasm.h` header provides to provide afull implementation of the header.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/engine.rs</description>
        <pubDate>Fri, 27 Mar 2020 14:50:32 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
</channel>
</rss>
