wamr 3.0.0-dev.9
Pre-release
Pre-release
Highlights — changes since v3.0.0-dev.8:
- AArch64 AOT register allocator — replaced the scratch-register cache with a real linear-scan allocator over X0–X30 and v0–v31, plus a peephole pass (ldp/stp fusion,
madd,csinc/csinv) and a conservative local instruction scheduler with refined latency classes (#226, #313, #366, #367, #369, #372, #375). - AArch64 SIMD lowering — feature-complete — full v128 lowering across i8x16/i16x8/i32x4/i64x2/f32x4/f64x2 families, including arithmetic, comparisons, min/max, shifts, lanes, shuffles, swizzle, popcnt, bitselect, all_true/any_true, bitmask, dot, narrowing/widening extends and extmul, pmin/pmax, rounding, trunc_sat, int↔float conversions,
loadN_lane/storeN_lane/loadN_splat/load_zero/load_extend, NEON FMLA/SDOT/UDOT fusion, and v128 locals/globals/params/results (#232–#251, #253–#270, #314–#351, #372–#375). - IR optimization stack — SSA/mem2reg, cross-block GVN with dominator-scoped CSE, general LICM, redundant-bounds-check hoisting and elision, strength-reduction for div/rem and mul,
foldBranchOnEqzre-enabled behind a target-aware cost model,foldLoadStoreOffset, branch-threading, broadenedinlineSmallFunctions(#143, #172, #195, #207–#217, #316, #368, #370). Note: small-trip-count loop unrolling (#371) was reverted (#377) after a CoreMark regression. - WASI Preview 2 component model — host adapters for
wasi:clocks,wasi:random,wasi:filesystem,wasi:sockets, andwasi:httpshipped end-to-end (real DNS, TCP/UDP lifecycle, socket options, configurable allow-list, real stat timestamps, full open/descriptor flags, outbound HTTP client). Stdio-echo regression un-gated; per-trampolineTypeRegistryextension; deferred corestartuntillinkImportsbinds host_funcs (#142, #145–#150, #156–#171, #176–#181, #184–#202, #308–#311, #355–#365). - WASI HTTP server mode + readiness-based poll — incoming-server adapter and a real
poll_oneoff-style readiness implementation (#218, #225). - Component-model tutorials — Zig and mixed Zig+Rust component examples (#354).
- Fuzzing — component-loader and interp-with-fuel harnesses, interp-vs-AOT diff, canonical-ABI pointer/length harness, WASI host-binding fuzzer, crasher reducer + regression-seed convention, OSS-Fuzz feasibility evaluation, local libFuzzer packaging (#250, #252, #256, #259, #262–#264, #266, #353).
- CoreMark aarch64 comparison harness for CI perf gating (#183), SIMD memory-loop benchmark, codegen-bench coverage expansion, Zig caches relocated outside
$GITHUB_WORKSPACEfor clean cross-ref comparisons (#216, #227, #374, #378). - Fixes — CoreMark AOT branch-fold regression (#352), x86-64 block ordering unified across clobbers/live-ranges/emission (#215), CLI version branding (#229), portable
codegen-benchtimer for aarch64-macos / aarch64-windows (#397). - Docs — sandbox security audit checklist, lightweight security process, security reporting policy, WASI preview-2 status (#182, #221, #241, #242).
Install:
ghr install cataggar/wamr@v3.0.0-dev.9
See INSTALL.md for more options.