<?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 extern.rs</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>0dbb6f3d - Exceptions: implement C API. (#12861)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#0dbb6f3d</link>
        <description>Exceptions: implement C API. (#12861)* Exceptions: implement C API.This PR implements C (and C++) API support for Wasm exceptions, onefinal remaining hurdle (aside from fuzz-testing) for making exceptionstier-1 and on-by-default.* Review feedback, and add exnref case to `wasmtime_val_t`.* Review feedback: GC feature guard.* clang-format* add docs to exn.hh.* Remove tag size asserts: broken on 32-bit platforms, but not needed for correctness wrt C struct.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Tue, 31 Mar 2026 22:56:28 +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/crates/c-api/src/extern.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/crates/c-api/src/extern.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>0b4c754a - Exception and control tags (#10251)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#0b4c754a</link>
        <description>Exception and control tags (#10251)* Tags* Tag tests* Tests* Refer to tags issue* Engine index* Simplify* Fix clippy warnings

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Thu, 20 Feb 2025 15:49:20 +0000</pubDate>
        <dc:creator>Daniel Hillerstr&#246;m &lt;daniel.hillerstrom@ed.ac.uk&gt;</dc:creator>
    </item>
<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/extern.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/extern.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>288c1513 - Shared memory support (#9507)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#288c1513</link>
        <description>Shared memory support (#9507)* Trying to add shared memory :)* Adding initial support for shared memory in the memory type andthe C-API* Fixing dummies* Remving the SharedMemory(CMemoryType) variant from the wasm_extern_* types* Removing ExternType::SharedMemory as well! Not needed.* * Using MemoryTypeBuilder as suggested.* moving dummy shared memory* Fixing clang format errors* Try again to appease clang-format---------Co-authored-by: Alex Crichton &lt;alex@alexcrichton.com&gt;

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Fri, 01 Nov 2024 01:33:39 +0000</pubDate>
        <dc:creator>Juan Gomez &lt;atilag@gmail.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/crates/c-api/src/extern.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/crates/c-api/src/extern.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>420fc3d1 - c-api: Better differentiate between `wasm.h` and `wasmtime.h` APIs (#8344)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#420fc3d1</link>
        <description>c-api: Better differentiate between `wasm.h` and `wasmtime.h` APIs (#8344)This renames some types and adds some type aliases to help us better distinguishbetween `wasm.h` APIs and `wasmtime.h` APIs, primarily for `Store`-relatedtypes. In general, `WasmFoo` is related to `wasm.h` and `WasmtimeFoo` is relatedto `wasmtime.h`.* `StoreRef` -&gt; `WasmStoreRef`* Introduce the `WasmStore[Data]` and `WasmStoreContext[Mut]` aliases* `StoreData` -&gt; `WasmtimeStoreData`* `CStoreContext[Mut]` -&gt; `WasmtimeStoreContext[Mut]`* Introduce the `Wasmtime{Store,Caller}` aliases

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Fri, 12 Apr 2024 14:35:48 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>55bd797a - Extend C API with interfaces needed to use threads (#7940)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#55bd797a</link>
        <description>Extend C API with interfaces needed to use threads (#7940)

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Fri, 08 Mar 2024 01:55:34 +0000</pubDate>
        <dc:creator>Milek7 &lt;Milek7@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>8652011f - Refactor `wasmtime::FuncType` to hold a handle to its registered type (#7892)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#8652011f</link>
        <description>Refactor `wasmtime::FuncType` to hold a handle to its registered type (#7892)* Refactor `wasmtime::FuncType` to hold a handle to its registered typeRather than holding a copy of the type directly, it now holds a `RegisteredType`which internally is* A `VMSharedTypeIndex` pointing into the engine&apos;s types registry.* An `Arc` handle to the engine&apos;s type registry.* An `Arc` handle to the actual type.The last exists only to keep it so that accessing a `wasmtime::FuncType`&apos;sparameters and results fast, avoiding any new locking on call hot paths.This is helping set the stage for further types and `TypeRegistry` refactorsneeded for Wasm GC.* Update the C API for the function types refactorprtest:full* rustfmt* Fix benches build

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Fri, 09 Feb 2024 21:07:52 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2b52f47b - Add shared memories (#4187)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#2b52f47b</link>
        <description>Add shared memories (#4187)* Add shared memoriesThis change adds the ability to use shared memories in Wasmtime when the[threads proposal] is enabled. Shared memories are annotated as `shared`in the WebAssembly syntax, e.g., `(memory 1 1 shared)`, and areprotected from concurrent access during `memory.size` and `memory.grow`.[threads proposal]: https://github.com/WebAssembly/threads/blob/master/proposals/threads/Overview.mdIn order to implement this in Wasmtime, there are two main cases tocover:    - a program may simply create a shared memory and possibly export it;    this means that Wasmtime itself must be able to create shared    memories    - a user may create a shared memory externally and pass it in as an    import during instantiation; this is the case when the program    contains code like `(import &quot;env&quot; &quot;memory&quot; (memory 1 1    shared))`--this case is handled by a new Wasmtime API    type--`SharedMemory`Because of the first case, this change allows any of the currentmemory-creation mechanisms to work as-is. Wasmtime can still createeither static or dynamic memories in either on-demand or pooling modes,and any of these memories can be considered shared. When shared, the`Memory` runtime container will lock appropriately during `memory.size`and `memory.grow` operations; since all memories use this container, itis an ideal place for implementing the locking once and once only.The second case is covered by the new `SharedMemory` structure. It usesthe same `Mmap` allocation under the hood as non-shared memories, butallows the user to perform the allocation externally to Wasmtime andshare the memory across threads (via an `Arc`). The pointer address tothe actual memory is carefully wired through and owned by the`SharedMemory` structure itself. This means that there are differingviews of where to access the pointer (i.e., `VMMemoryDefinition`): forowned memories (the default), the `VMMemoryDefinition` is storeddirectly by the `VMContext`; in the `SharedMemory` case, however, this`VMContext` must point to this separate structure.To ensure that the `VMContext` can always point to the correct`VMMemoryDefinition`, this change alters the `VMContext` structure.Since a `SharedMemory` owns its own `VMMemoryDefinition`, the`defined_memories` table in the `VMContext` becomes a sequence ofpointers--in the shared memory case, they point to the`VMMemoryDefinition` owned by the `SharedMemory` and in the owned memorycase (i.e., not shared) they point to `VMMemoryDefinition`s stored in anew table, `owned_memories`.This change adds an additional indirection (through the `*mutVMMemoryDefinition` pointer) that could add overhead. Using an importedmemory as a proxy, we measured a 1-3% overhead of this approach on the`pulldown-cmark` benchmark. To avoid this, Cranelift-generated code willspecial-case the owned memory access (i.e., load a pointer directly tothe `owned_memories` entry) for `memory.size` so that onlyshared memories (and imported memories, as before) incur the indirectioncost.* review: remove thread feature check* review: swap wasmtime-types dependency for existing wasmtime-environ use* review: remove unused VMMemoryUnion* review: reword cross-engine error message* review: improve tests* review: refactor to separate prevent Memory &lt;-&gt; SharedMemory conversion* review: into_shared_memory -&gt; as_shared_memory* review: remove commented out code* review: limit shared min/max to 32 bits* review: skip imported memories* review: imported memories are not owned* review: remove TODO* review: document unsafe send + sync* review: add limiter assertion* review: remove TODO* review: improve tests* review: fix doc test* fix: fixes based on discussion with AlexThis changes several key parts: - adds memory indexes to imports and exports - makes `VMMemoryDefinition::current_length` an atomic usize* review: add `Extern::SharedMemory`* review: remove TODO* review: atomically load from VMMemoryDescription in JIT-generated code* review: add test probing the last available memory slot across threads* fix: move assertion to new location due to rebase* fix: doc link* fix: add TODOs to c-api* fix: broken doc link* fix: modify pooling allocator messages in tests* review: make owned_memory_index panic instead of returning an option* review: clarify calculation of num_owned_memories* review: move &apos;use&apos; to top of file* review: change &apos;*const [u8]&apos; to &apos;*mut [u8]&apos;* review: remove TODO* review: avoid hard-coding memory index* review: remove &apos;preallocation&apos; parameter from &apos;Memory::_new&apos;* fix: component model memory length* review: check that shared memory plans are static* review: ignore growth limits for shared memory* review: improve atomic store comment* review: add FIXME for memory growth failure* review: add comment about absence of bounds-checked &apos;memory.size&apos;* review: make &apos;current_length()&apos; doc comment more precise* review: more comments related to memory.size non-determinism* review: make &apos;vmmemory&apos; unreachable for shared memory* review: move code around* review: thread plan through to &apos;wrap()&apos;* review: disallow shared memory allocation with the pooling allocator

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Wed, 08 Jun 2022 17:13:40 +0000</pubDate>
        <dc:creator>Andrew Brown &lt;andrew.brown@intel.com&gt;</dc:creator>
    </item>
<item>
        <title>76b82910 - Remove the module linking implementation in Wasmtime (#3958)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#76b82910</link>
        <description>Remove the module linking implementation in Wasmtime (#3958)* Remove the module linking implementation in WasmtimeThis commit removes the experimental implementation of the modulelinking WebAssembly proposal from Wasmtime. The module linking is nolonger intended for core WebAssembly but is instead incorporated intothe component model now at this point. This means that very large partsof Wasmtime&apos;s implementation of module linking are no longer applicableand would change greatly with an implementation of the component model.The main purpose of this is to remove Wasmtime&apos;s reliance on the supportfor module-linking in `wasmparser` and tooling crates. With thisreliance removed we can move over to the `component-model` branch of`wasmparser` and use the updated support for the component model.Additionally given the trajectory of the component model proposal theembedding API of Wasmtime will not look like what it looks like todayfor WebAssembly. For example the core wasm `Instance` will not changeand instead a `Component` is likely to be added instead.Some more rationale for this is in #3941, but the basic idea is that Ifeel that it&apos;s not going to be viable to develop support for thecomponent model on a non-`main` branch of Wasmtime. Additionaly I don&apos;tthink it&apos;s viable, for the same reasons as `wasm-tools`, to support theold module linking proposal and the new component model at the sametime.This commit takes a moment to not only delete the existing modulelinking implementation but some abstractions are also simplified. Forexample module serialization is a bit simpler that there&apos;s only onemodule. Additionally instantiation is much simpler since the onlyinitializer we have to deal with are imports and nothing else.Closes #3941* Fix doc link* Update comments

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Wed, 23 Mar 2022 19:57:34 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>7a1b7cdf - Implement RFC 11: Redesigning Wasmtime&apos;s APIs (#2897)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#7a1b7cdf</link>
        <description>Implement RFC 11: Redesigning Wasmtime&apos;s APIs (#2897)Implement Wasmtime&apos;s new API as designed by RFC 11. This is quite a large commit which has had lots of discussion externally, so for more information it&apos;s best to read the RFC thread and the PR thread.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Thu, 03 Jun 2021 14:10:53 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>41caf67a - Update the C API with module linking support (#2472)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#41caf67a</link>
        <description>Update the C API with module linking support (#2472)* Update the C API with module linking supportThis commit does everything necessary (ideally) to support the modulelinking proposal in the C API. The changes here are:* New `wasm_{module,instance}type_t` types and accessors* New `wasm_{module,instance}_type` functions* Conversions between `wasm_extern_t` and `wasm_{instance,module}_t`, as  well as `wasm_externtype_t` and the new types.* Addition of `WASM_EXTERN_{MODULE,INSTANCE}` constants* New `wasm_config_t` modifier to enable/disable module linkingWith these functions it should be possible to pass instances/modules toinstances and also acquire them from exports. Altogether this shouldenable everything for module linking.An important point for this is that I&apos;ve opted to add all these itemsunder the `wasm_*` name prefix instead of `wasmtime_*`. I&apos;ve done thissince they&apos;re all following the idioms of existing APIs and while notstandard the intention would be to standardize them (unlike many otherWasmtime-specific APIs).cc #2094* Appease doxygen

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Thu, 03 Dec 2020 21:51:38 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>f003388e - Implement imported/exported modules/instances (#2461)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#f003388e</link>
        <description>Implement imported/exported modules/instances (#2461)* Implement imported/exported modules/instancesThis commit implements the final piece of the module linking proposalwhich is to flesh out the support for importing/exporting instances andmodules. This ended up having a few changes:* Two more `PrimaryMap` instances are now stored in an `Instance`. The value  for instances is `InstanceHandle` (pretty easy) and for modules it&apos;s  `Box&lt;dyn Any&gt;` (less easy).* The custom host state for `InstanceHandle` for `wasmtime` is now  `Arc&lt;TypeTables` to be able to fully reconstruct an instance&apos;s types  just from its instance.* Type matching for imports now has been updated to take  instances/modules into account.One of the main downsides of this implementation is that type matchingof imports is duplicated between wasmparser and wasmtime, leading toposssible bugs especially in the subtelties of module linking. I&apos;m notsure how best to unify these two pieces of validation, however, and itmay be more trouble than it&apos;s worth.cc #2094* Update wat/wast/wasmparser* Review comments* Fix a bug in publish script to vendor the right witxCurrently there&apos;s two witx binaries in our repository given the two wasispec submodules, so this updates the publication script to vendor theright one.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Thu, 03 Dec 2020 16:15:42 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>cca558cd - Remove `HostRef&lt;T&gt;` from the C API (#1926)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#cca558cd</link>
        <description>Remove `HostRef&lt;T&gt;` from the C API (#1926)This commit removes `HostRef&lt;T&gt;` from the C API which only served thepurpose now of converting each type to a `wasm_ref_t*`. Ourimplementation, however, does not guarantee that you&apos;ll get the same`wasm_ref_t*` for each actual underlying item (e.g. if you put a func ina table and then get the func as an export and from the table then`same` will report `false`). Additionally the fate of `wasm_ref_t*`seems somewhat unclear at this point.The change here is to make the `same` and cast functions all abortsaying they&apos;re unimplemented. (similar to the host info functions). Ifand when we get around to reimplementing these functions we can ensurethey&apos;re implemented uniformly and work well for all intended use cases.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Fri, 26 Jun 2020 19:34:34 +0000</pubDate>
        <dc:creator>Alex Crichton &lt;alex@alexcrichton.com&gt;</dc:creator>
    </item>
<item>
        <title>58b08b9d - Move `HostRef&lt;T&gt;` into the C API crate</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#58b08b9d</link>
        <description>Move `HostRef&lt;T&gt;` into the C API crateIt isn&apos;t used by anything except for the C API and all of our embedder-exposedAPIs are already internally `Rc`-based, so it doesn&apos;t make sense to use withthem.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Mon, 01 Jun 2020 21:48:45 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&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/extern.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/extern.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>f28b3738 - Rename `anyref` to `externref` across the board</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#f28b3738</link>
        <description>Rename `anyref` to `externref` across the board

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Wed, 20 May 2020 18:55:30 +0000</pubDate>
        <dc:creator>Nick Fitzgerald &lt;fitzgen@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>9364eb1d - Refactor (#1524)</title>
        <link>http://172.16.0.5:8080/history/wasmtime-44.0.1/crates/c-api/src/extern.rs#9364eb1d</link>
        <description>Refactor (#1524)* Compute instance exports on demand.Instead having instances eagerly compute a Vec of Externs, and bumpingthe refcount for each Extern, compute Externs on demand.This also enables `Instance::get_export` to avoid doing a linear search.This also means that the closure returned by `get0` and friends nowholds an `InstanceHandle` to dynamically hold the instance live ratherthan being scoped to a lifetime.* Compute module imports and exports on demand too.And compute Extern::ty on demand too.* Add a utility function for computing an ExternType.* Add a utility function for looking up a function&apos;s signature.* Add a utility function for computing the ValType of a Global.* Rename wasmtime_environ::Export to EntityIndex.This helps differentiate it from other Export types in the tree, anddescribes what it is.* Fix a typo in a comment.* Simplify module imports and exports.* Make `Instance::exports` return the export names.This significantly simplifies the public API, as it&apos;s relatively commonto need the names, and this avoids the need to do a zip with`Module::exports`.This also changes `ImportType` and `ExportType` to have public membersinstead of private members and accessors, as I find that simplifies theusage particularly in cases where there are temporary instances.* Remove `Instance::module`.This doesn&apos;t quite remove `Instance`&apos;s `module` member, it gets a stepcloser.* Use a InstanceHandle utility function.* Don&apos;t consume self in the `Func::get*` methods.Instead, just create a closure containing the instance handle and theexport for them to call.* Use `ExactSizeIterator` to avoid needing separate `num_*` methods.* Rename `Extern::func()` etc. to `into_func()` etc.* Revise examples to avoid using `nth`.* Add convenience methods to instance for getting specific extern types.* Use the convenience functions in more tests and examples.* Avoid cloning strings for `ImportType` and `ExportType`.* Remove more obviated clone() calls.* Simplify `Func`&apos;s closure state.* Make wasmtime::Export&apos;s fields private.This makes them more consistent with ExportType.* Fix compilation error.* Make a lifetime parameter explicit, and use better lifetime names.Instead of &apos;me, use &apos;instance and &apos;module to make it clear what thelifetime is.* More lifetime cleanups.

            List of files:
            /wasmtime-44.0.1/crates/c-api/src/extern.rs</description>
        <pubDate>Mon, 20 Apr 2020 20:55:33 +0000</pubDate>
        <dc:creator>Dan Gohman &lt;sunfish@mozilla.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/extern.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/extern.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>
