The format is based on Keep a Changelog. This project adheres to Semantic Versioning.
- Removed separate cargo workspaces for
crates/guest
andtest
and separate cargo projects for test wasms. Now all crates are members of a single cargo workspace.
- Bumped wasmer version to 5.x
- BREAKING CHANGE The
wasmer_sys
feature has been renamed towasmer_sys_dev
- The error variant
WasmErrorInner::Compile
has been renamed toWasmErrorInner::ModuleBuild
to clarify that the error is related to constructing a wasmerModule
. Only with the feature flagswasmer_sys_dev
orwasmer_sys_prod
, is this when wasm compilation occurs. On the feature flagwasmer_wamr
, wasms are interpreted and thus no compilation occurs.
- A new feature flag,
wasmer_sys_prod
which enables the Wasmer LLVM compiler. The default, with thewasmer_sys_dev
feature is the Cranelift compiler. The Cranelift compiler is fast, and recommended for development, but the LLVM compiler is supposed to be faster and more optimized for production. In testing so far, the compile step is slower with LLVM but the runtime is faster. More testing is needed yet to confirm the difference. - A new public function
build_module
, which builds a wasmer Module directly, bypassing theModuleCache
. It is only implemented for the feature flagwasmer_wamr
. On the feature flagswasmer_sys_dev
andwasmer_sys_prod
it will panic as unimplemented. This enforces the use of theModuleCache
when wasmer is used in a compiled mode, and allows bypassing the cache when wasmer is used in interpreter mode as caching is not relevant.
- Bumped holochain_serialized_bytes version
- Bumped wasmer version
- Fixed memory deallocation for rust 1.78
- Bump Criterion version
- BREAKING CHANGE: Holochain serialization updated to v0.0.54 which in turn contains a breaking change in how the conductor API serializes enums.
- Deserialized module cache
DeserializedModuleCache
was reinstated. - An abstraction for caching (serialized & deserialized modules) called
ModuleCache
was added. - All logic related to modules and wasmer caching from
holochain
has been moved to the host crate. Consequently functions for wasmer development under iOS need to be imported from there.
- BREAKING CHANGE: Instance cache in host crate has been removed in favor of a deserialized module cache
DeserializedModuleCache
.
- Bump wasmer to 4.2.4
- support file cache for serialized modules
- host function metering support
- Support wasmer 4.x
- Bumped holochain_serialized_bytes version
- Support for 3 level serialized -> deserialized -> instance caching with PLRU
HostShortCircuit
variant forWasmError
- moved a lot of memory handling to the
WasmerEnv
handling - added a simple
MODULE_CACHE
as a status
- Uses wasmer 1+
- Uses latest holonix
- Externs follow (ptr, len) -> ptrlen as (u32, u32) -> u64
- all guest functions are
#[inline(always)]
- PR#66 - workaround a memory leak in (our usage of) wasmer
- Changed
SerializedBytes
toholochain_serialized_bytes::encode()
globally
- Removed the
Cargo.lock
file
- added holochain_externs!() macro