Files
xahaud/cmake
tequ 0e8cedc7a9 feat(hook): add Wasmtime engine backend behind featureWasmtimeEngine amendment
Add Wasmtime v44.0.1 as a second WebAssembly execution engine, selectable at runtime via the new featureWasmtimeEngine Amendment. When the Amendment is enabled, hook execution and WASM validation switch from WasmEdge to Wasmtime.
sfHookInstructionCount changes semantics to fuel consumed (initial budget: 10,000,000,000 units); fee calculation is redefined accordingly.

New files:
- external/wasmtime/conanfile.py + conandata.yml — prebuilt C API binary package (macOS arm64, Linux x86_64; SHA256-pinned at v44.0.1)
- cmake/deps/Wasmtime.cmake — find_package(wasmtime REQUIRED)
- src/.../WasmtimeEngine.h/.cpp — IWasmEngine implementation

Build system changes:
- CMakeLists.txt, conanfile.py: with_wasmtime option (default on)
- cmake/RippledCore.cmake: link wasmtime::wasmtime alongside wasmedge::wasmedge

Protocol changes:
- features.macro: XRPL_FEATURE(WasmtimeEngine, Supported::yes, DefaultNo)
- WasmEngine.h: constexpr kWasmtimeInitialFuel = 10'000'000'000ULL (consensus-fixed)
- applyHook.cpp, SetHook.cpp, Change.cpp: engine selected by featureWasmtimeEngine

Implementation notes:
- Consensus-fixed config: consume_fuel=true, wasm_simd=true, relaxed_simd=false, reference_types=true, bulk_memory=true,  multi_value=false, nan_canonicalization=true
- Termination ABI: accept/rollback sets ExecState::terminated flag then returns a wasm_trap_t* to unwind the guest; execute() checks the flag before inspecting callErr to distinguish clean termination from errors
- Memory access workaround (ensureMemoryExported): Wasmtime lacks an index-based memory accessor equivalent to WasmEdge_CallingFrameGetMemoryInstance. The binary is patched before instantiation to inject a "memory" export when the module owns memory without exporting it, enabling wasmtime_caller_export_get() inside host callbacks.
2026-05-08 16:49:10 +09:00
..
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:25:13 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00
2026-02-20 07:11:11 +09:00

These are modules and sources that support our CMake build.

== FindBoost.cmake ==

In order to facilitate updating to latest releases of boost, we've made a local copy of the FindBoost cmake module in our repo. The latest official version can generally be obtained here.

The latest version provided by Kitware can be tailored for use with the version of CMake that it ships with (typically the next upcoming CMake release). As such, the latest version from the repository might not work perfectly with older versions of CMake - for instance, the latest version might use features or properties only available in the version of CMake that it ships with. Given this, it's best to test any updates to this module with a few different versions of cmake.