Releases: lum1n0us/wasm-micro-runtime
WAMR-2.3.1
Breaking Changes
- Revert the location to install public headers (bytecodealliance#4295). This restores compatibility (of installed headers) with WAMR-2.2.0 and earlier.
New Features
- feat: Add instruction metering for interpreter (bytecodealliance#4122)
Bug Fixes
- updating WASI stdio handle initialization and build options for UVWASI (bytecodealliance#4260)
- Fix SIMD load lane to avoid incompatible pointer types (bytecodealliance#4278)
- Fixed unit tests on X86_32 (bytecodealliance#4279)
- Improve Embedding WAMR guideline (bytecodealliance#4284)
- Fix Compiler Error C2491 (bytecodealliance#4286)
- Enhance type checking for function types in loader and improve error handling (bytecodealliance#4294)
- Dockerfile.vx-delegate build error fix (bytecodealliance#4273)
- Enable runtime API exposure for MSVC builds (bytecodealliance#4287)
Enhancements
- feat(yml): Add ESP32-P4 and ESP32-C5 support (bytecodealliance#4270)
- add a sample to use cmake package (bytecodealliance#4291)
Others
- build(deps): Bump github/codeql-action from 3.28.17 to 3.28.18 (bytecodealliance#4285)
WAMR-2.2.0
Breaking changes
New features
- Add support for multi-memory proposal in classic interpreter (bytecodealliance#3742)
- wasi-nn: Add a new target for llama.cpp as a wasi-nn backend (bytecodealliance#3709)
- Add memory instance support apis (bytecodealliance#3786)
- Implement a first version of shared heap feature (bytecodealliance#3789)
- Support dynamic aot debug (bytecodealliance#3788)
- Implement shared heap for AOT (bytecodealliance#3815)
- Support table64 extension in classic-interp and AOT running modes (bytecodealliance#3811)
Bug fixes
- Enable merged os_mmap for aot data sections (bytecodealliance#3681)
- Fix arm64 issues on mac (bytecodealliance#3688)
- aot loader: Call os_mmap with MMAP_MAP_32BIT only when target is x86-64 or riscv64 (bytecodealliance#3755)
- Fix building iwasm_shared and iwasm_static libs on win32 (bytecodealliance#3762)
- Fix compile error when multi-module and tags are enabled (bytecodealliance#3781)
- Fix aot multi export memory support (bytecodealliance#3791)
- Fix Windows compile error when uvwasi is enabled (bytecodealliance#3810)
- Fix missing symbols when using aot mode on riscv platforms (bytecodealliance#3812)
- Fix mac build of libc_emcc_wrapper.c (bytecodealliance#3836)
- aot_comp_option.h: Add missing stdint.h header (bytecodealliance#3834)
- Fix compilation error found in tflite test (bytecodealliance#3820)
- Fix exec_env_tls assertion in module instantiation (bytecodealliance#3844)
- Fix issues of destroy_shared_heaps (bytecodealliance#3847)
Enhancements
- aot loader: Refine os_mmap related code (bytecodealliance#3711)
- Enable merged os_mmap for aot data sections and aot text (bytecodealliance#3743)
- Improve posix mmap retry logic (bytecodealliance#3714)
- Remove unnecessary code duplication in aot runtime (bytecodealliance#3767)
- Add wamrc parameter to configure stack frame features (bytecodealliance#3763)
- refactoring: Re-use commit IP functionality between exception handling and other cases (bytecodealliance#3768)
- AOT call stack optimizations (bytecodealliance#3773)
- Appease GCC strict prototypes warning (bytecodealliance#3775)
- Appease GCC -Wformat (bytecodealliance#3783)
- Fix compiler warnings (bytecodealliance#3784)
- Implement option for skipping function index in the callstack (bytecodealliance#3785)
- Fix a compile warning in aot_emit_function.c (bytecodealliance#3793)
- Restore cmake hidden compile symbol visibility (bytecodealliance#3796)
- Refactor shared heap feature for interpreter mode (bytecodealliance#3794)
- Add no_resolve to LoadArgs and wasm_runtime_resolve_symbols (bytecodealliance#3790)
- shared heap: Fix some issues and add basic unit test case (bytecodealliance#3801)
- Add shared heap sample (bytecodealliance#3806)
- Fix unused param warning when GC is enabled (bytecodealliance#3814)
- Add scoreboard CI for supply-chain security (bytecodealliance#3819)
- Emit load_addr and load_size if WAMR_ENABLE_COMPILER is set (bytecodealliance#3835)
- libc-emcc: Use alternate method to check getrandom support (bytecodealliance#3848)
- Enable libc-wasi for windows msvc build (bytecodealliance#3852)
- Remove unused folder samples/gui and samples/littlevgl (bytecodealliance#3853)
- Fix some compile warnings and typos (bytecodealliance#3854)
- Allow to set native stack boundary to exec_env (bytecodealliance#3862)
- Refine wasm/aot function instance lookup (bytecodealliance#3865)
- Fix quadratic runtime for duplicate export name detection (bytecodealliance#3861)
Others
- Add a comment on AOT_SECTION_TYPE_SIGNATURE (bytecodealliance#3746)
- CI: Freeze version of bloaty for NuttX compilation (bytecodealliance#3756)
- aot compiler: Allow to control stack boundary check when boundary check is enabled (bytecodealliance#3754)
- Update ref to the multi-memory tests (bytecodealliance#3764)
- compilation_on_nuttx.yml: Update checkout action to suppress warnings (bytecodealliance#3765)
- CI: Disable parallel test in spectest for NuttX (bytecodealliance#3780)
- spec_test_on_nuttx.yml: Disable riscv32_ilp32f for now (bytecodealliance#3777)
- Ignore temporary file from aider (bytecodealliance#3787)
- Add CODEOWNERS (bytecodealliance#3822)
- build(deps): bump github/codeql-action from 2.2.4 to 3.26.9 (bytecodealliance#3826)
- build(deps): bump actions/upload-artifact from 3.1.0 to 4.4.0 (bytecodealliance#3827)
- build(deps): bump ossf/scorecard-action from 2.3.1 to 2.4.0 (bytecodealliance#3828)
- build(deps): bump github/codeql-action from 3.26.9 to 3.26.11 (bytecodealliance#3843)
- build(deps): bump actions/upload-artifact from 4.4.0 to 4.4.3 (bytecodealliance#3855)
- build(deps): bump github/codeql-action from 3.26.11 to 3.26.12 (bytecodealliance#3856)
- Add Windows wamrc and iwasm build in release CI (bytecodealliance#3857)
- Fix syntax error in codeql_buildscript.sh (bytecodealliance#3864)
- release CI: Add another iwasm binary that supports Garbage Collection and Exception Handling (bytecodealliance#3866)
- Fix lookup function issue reported in nightly run (bytecodealliance#3868)
WAMR-1.2.0
Breaking Changes
New Features
Implement two-level Multi-tier JIT engine: tier-up from Fast JIT to LLVM JIT to get quick cold startup and better performance
Enable running mode control for runtime, wasm module instance and iwasm
Implement wasi-threads feature
Upgrade toolkits: upgrade to llvm-15.0, wasi-sdk-19.0, emsdk-3.1.28 and so on
Port WAMR to the FreeBSD platform
Refactor wasi-nn to simplify the support for multiple frameworks
wasi-nn: Enable GPU support
wasi-nn: Support multiple TFLite models
Add WAMR API bindings in Python
Add libsodium benchmark
Bug Fixes
Fix wasm-c-api import func link issue in wasm_instance_new
Fix watchpoint segfault when using debug interp without server
libc-wasi: Fix spurious poll timeout
Fix typo verify_module in aot_compiler.c
Fix failure about preopen of reactor modules
Fix equal check in AOT XIP float cmp intrinsic
Fix issue of resolving func name in custom name section
Fix go language binding build on macos arm64
Prevent undefined behavior from c_api_func_imports == NULL
Fix potential block issue in source debugger
SGX IPFS: Fix a segfault and support seeking beyond the end of files while using SEEK_CUR/SEEK_END
Fix undef error about WAMR_BUILD_MEMORY_PROFILING
Fix jit memory overwritten after instance deinstantiate
Fix stack alignment issue on ia32
Fix explicit casts and types in espidf_socket.c
Fix potential integer overflow issue in wasm-c-api
Fix libc-wasi build failure when using clang
Fix wamrapi python binding for darwin
Fix getting port issue in posix os_socket_bind
Fix key error in build_llvm.py
nuttx: Add missing pthread.h header
Fix os_socket_addr_resolve() for IPv6
Enhance/Fix sample socket-api and workload
Fix fast-jit build error
Fix dead lock in source debugger
fix debugger: Set termination flags also when in debug mode
Enhancements
Add WAMR-IDE vscode extension to the Visual Studio Marketplace
Refine Windows thread waiting list operations
Improve wasm-c-api instantiation-time linking
Enable platform support for esp-idf v5.0.1
Readme refactoring
Add architecture diagram for wasm function
Add architecture document for wasm export
Add architecture diagram for wasm globals and classic-interp stack frame
Use boringssl instead of openssl to implement wasm cache loading
Implement i32.rem_s and i32.rem_u intrinsic
Perfect the codebase for wamr-ide
Remove unnecessary ret value control when spec test is enabled
Use float version library routine for XIP aot_intrinsic_xxx APIs
Register missing symbols for f32 to 64 bit integer conversion
Report error in instantiation when meeting unlinked import globals
Add more types and APIs for attr_container
Simplify fcmp intrinsic logic for AOT/XIP
Add some missing macros for int literals in wamr-sdk libc-builtin-sysroot stdint.h
nuttx: Mock socket APIs if NET is disabled
Main thread spread exception when thread-mgr is enabled
Implement opcode atomic.wait and atomic.notify for Fast JIT
Add docker images auto check and setup support for WAMR-IDE
Make memory profiling show native stack usage
Enable gcc-4.8 compilation
Enable specifying out-of-source platform configuration cmake file
Add gh api call for fetching llvm version (bytecodealliance#1942) Fixes
Don't terminate other threads when create thread failed
Modify poll_oneoff in libc-wasi to make it interruptible
Expose wasm_runtime_call_indirect
Make a workaround for EGO when fstat returns NOT_SUPPORT
Re-org calling post instantiation functions
Enable custom llvm build flags
support SSH for git clone llvm
Support dump call stack on exception and dump call stack on nuttx
Update document for source debugging
Document some info about estimating memory usage
Others
Enable XIP in CI daily test
Integrate wasi test suite to wamr-test-suites and CI
Add CI for wasi-threads tests
Update CIs and documents to make naming of generated binaries consist
Enable CI wasi test suite for x86-32 classic/fast interpreter
CI: Enable libc-wasi compilation test on NuttX
CI: Enable Multi-tier JIT by default for released iwasm binary