Repository navigation
Releases
Releases · WebAssembly/wabt
1.0.42
What's Changed
- [wasi-interp] fix integer overflow in wasi getMemPtr size calculation by @aizu-m in #2752
- Use unsigned shift in GetAlignment to avoid signed overflow by @aizu-m in #2755
- [wasm2c] Avoid size_t overflow in wasm_rt_grow table reallocation by @aizu-m in #2756
- parse decimal float literals independent of the C locale by @aizu-m in #2757
- [wasm-decompile] Avoid out-of-range shift in load/store rewrite by @aizu-m in #2758
- [wasm2c] Use locale-independent ctype in GenerateHeaderGuard by @aizu-m in #2759
- Avoid unbounded alloca in FloatParser::ParseFloat by @aizu-m in #2754
- [interp] Use u64 table operands so out-of-range table64 indices trap by @aizu-m in #2760
- Avoid string_view underflow in ParseCodeMetadataAnnotation by @aizu-m in #2761
- Avoid Var::name() on function-level branches in decompiler by @aizu-m in #2762
- Update man pages and html docs by @sbc100 in #2763
- Avoid front() on an empty element expression in the validator by @aizu-m in #2765
- Add ruff python linter. NFC by @sbc100 in #2770
- Remove wasm-decompile by @sbc100 in #2769
- Support 64 bit limits for tables by @zherczeg in #2767
- [binary-reader] Templatize LEB reading functions. NFC by @sbc100 in #2771
- Update from C++17 to C++20 by @sbc100 in #2772
- Add -Wno-gnu-folding-constant when compiling c api examples by @sbc100 in #2774
- Use C++20 standard bit utilities and std::bit_cast. NFC by @sbc100 in #2773
- [wasm2c] Write float constants independent of the host locale by @aizu-m in #2768
- Avoid out-of-bounds section_starts_ read on invalid reloc index by @aizu-m in #2777
- Remove ReadLeb128 type argument by @zherczeg in #2776
- [interp] Stop on first error in the binary reader fuzzer by @aizu-m in #2778
- [cpp20] Modernize binary reader and writer APIs to use std::span by @sbc100 in #2775
- Fix DecodeInvalidOpcode for 9-bit opcode codes by @sbc100 in #2781
- wasm2c: (Security) fix runtime overflows when running Wasm modules with memory64 by @shravanrn in #2783
- [validator] Allow call_indirect/return_call_indirect table elements to be subtypes of funcref by @6d6f6d656e746f in #2780
- Check size overflow and calloc failure in wasm_rt_allocate_memory by @aizu-m in #2786
- wasm2c: fix errors in atomic ops implementation by @shravanrn in #2784
- wasm2c: fix to check address + offset addition for memory64 by @shravanrn in #2785
- Bounds-check function index in name section local handlers by @aizu-m in #2787
- wasm2c: Move to O3 optimizations for wasm2c spec compliance tests by @shravanrn in #2788
- Zero-init an InitInst to avoid accessing unintialized memory by @lexi-nadia in #2789
- Mark Result as [[nodiscard]] and fix associated errors by @lexi-nadia in #2791
- Add WABT_USE annotations for Result values only used in assertions by @lexi-nadia in #2793
- Fix WABT_PRINTF_TYPE_CODE to correctly handle INT_MIN by @lexi-nadia in #2792
- Check memory64 addr+offset overflow in wasm2c store/atomic/simd ops by @aizu-m in #2790
- Fix operand arity of v128.storeN_lane in GetExprArity by @aizu-m in #2764
- Fix out-of-bounds read in BinaryReaderLogging::WriteIndent by @aizu-m in #2795
- Fix out-of-bounds write in MakeTypeBindingReverseMapping by @aizu-m in #2796
- Avoid out-of-bounds imports read in wasm_instance_new by @aizu-m in #2797
- Fix out-of-bounds type stack read after rethrow in c-writer by @aizu-m in #2798
- [interp] Pop memory.copy/table.copy length using the minimum index type by @aizu-m in #2800
- Fix out-of-bounds read when tracing global.set and table ops by @aizu-m in #2802
- wasm2c: Extend segue to simd and unshared atomics by @shravanrn in #2803
- Fix memory64 offset truncation in the interp istream by @aizu-m in #2799
- Fix use-after-free resolving reference type names in wast-parser by @aizu-m in #2805
- wasm2c: Optimize call indirect code footprint for better performance by @shravanrn in #2807
- Fix float argument types in wasm-interp --run-export by @XX-Q in #2811
- wasm2c: Remove unnecessary force_read in bounds check mode for performance by @shravanrn in #2814
- [binary-reader] Fix out-of-bounds read on invalid name sub-section by @aizu-m in #2801
- Fix validation of typed select with empty result types (#2708) by @ANAMASGARD in #2810
- Give the tools an 8MB stack on msvc by @Nishuuzz in #2815
- Assert that ReadBinaryIr is not used with skip_function_bodies by @Nishuuzz in #2817
- [interp] Fix out-of-bounds read tracing call_ref and return_call_ref by @aizu-m in #2819
- wasm2c: optimize performance of float handling by @shravanrn in #2822
- Don't abort on an empty input file by @Nishuuzz in #2821
- interp: assert stop_on_first_error in ReadBinaryInterp by @ANAMASGARD in #2816
- wasm2c: Optimize force_read performance by @shravanrn in #2808
- wasm2c: reject contradictory imports instead of aborting by @ANAMASGARD in #2813
- wasm2c: Save memory base/size locally as a perf optimization by @shravanrn in #2804
- Write init expressions folded so they can be parsed back by @Nishuuzz in #2830
- Support (module definition ...) constructs by @zherczeg in #2829
- Propagate parse errors out of instruction and expression lists by @Nishuuzz in #2824
- Don't generate a bare "$" from an empty export name by @Nishuuzz in #2832
- wasm2c: missing guard force_read error with escape hatch by @shravanrn in #2826
- Enable supported stage 5 proposals by default by @sbc100 in #2837
- Support u64 limits for wasm 3.0 by @zherczeg in #2836
- Reject delegate depth overflow in TypeChecker::OnDelegate by @aizu-m in #2841
- [cmake] Require Python 3.8 to run tests by @sbc100 in #2843
- wasm2c: Re-enable s390x CI with some tests disabled (Fix #2655) by @shravanrn in #2855
- [interp] Fix operand types when tracing table.set by @aizu-m in #2825
- Update ruff version from 0.15.7 -> 0.16.6 by @sbc100 in #2844
- [interp] Fix wasm-interp stack cleanup for tail calls by @KKiiim in #2835
- ci: add -y to apt-get commands and unify cross-build install by @kevmoo in #2717
- Fix validating imported global refs by @zherczeg in #2848
- Support (module instance ...) constructs by @zherczeg in #2847
- Bump version to 1.0.42 by @sbc100 in #2859
New Contributors
- @aizu-m made their first contribution in #2752
- @6d6f6d656e746f made their first contribution in #2780
- @lexi-nadia made their first contribution in #2789
- @XX-Q made their first contribution in #2811
- @ANAMASGARD made their first contribution in #2810
- @Nishuuzz made their first contribution in #2815
Full Changelog: 1.0.41...1.0.42
1.0.41
What's Changed
- Implement quoted identifier parsing by @zherczeg in #2715
- feat(demo): Run js in worker in wat2wasm demo by @spotandjake in #2568
- Refactor browser demos and Emscripten build output by @kevmoo in #2721
- Fix wasm2wat demo by @kevmoo in #2722
- Cleanup how emscripten is invoked by @kevmoo in #2723
- [demo] Use arrow functions by @kevmoo in #2725
- Fix Emscripten warnings by removing deprecated writeAsciiToMemory by @kevmoo in #2724
- [wasm2c] Fix exception testing on macOS by @kevmoo in #2716
- bug fix for wat2wasm demo to remove call to module.resolveNames by @yuvraj-sahu in #2726
- [wast-parser] Optimize Consume() by @zherczeg in #2727
- Move filename out of Location by @zherczeg in #2728
- Add declaration limit checks to parser by @zherczeg in #2736
- [lexer] Simplify GetLineOffsets by @zherczeg in #2735
- Remove debug-parser option and other unused variables by @zherczeg in #2739
- Use unsigned line info in Locations by @zherczeg in #2738
- Validator: thread table limits through
OnReturnCallIndirectby @ggreif in #2744 - Include error information on error opening output file by @sbc100 in #2745
- Bump version to 1.0.41 by @sbc100 in #2746
New Contributors
- @spotandjake made their first contribution in #2568
- @kevmoo made their first contribution in #2721
- @yuvraj-sahu made their first contribution in #2726
- @ggreif made their first contribution in #2744
Full Changelog: 1.0.40...1.0.41
1.0.40
What's Changed
- Remove macos-13 from CI. NFC by @sbc100 in #2661
- Lower the Ubuntu version for the release by @KKiiim in #2662
- Add support for (ref ...) / (ref null ...) constructs by @zherczeg in #2562
- Implement return_call_ref, ref.as_non_null, br_on_[non_]null instructions by @zherczeg in #2567
- Support table initializer expressions; completes function references support by @zherczeg in #2593
- Code improvements for call ref and br_on_[non_]null by @zherczeg in #2663
- Fix use of uninitialized value in WastParser::ParseSimdV128Const. by @wffurr in #2668
- Fix reference tracking in SharedValidator by @zherczeg in #2672
- Save local set data in EndTryTable by @zherczeg in #2673
- wast-parser: make IsPowerOfTwo support memory64 addresses by @sjamesr in #2681
- [binary-reader] Validate import type earlier. NFC by @sbc100 in #2683
- [binary-reader] Re-use ReadExternalKind for import as well as exports. NFC by @sbc100 in #2684
- Add initial support for compact import section. NFC by @sbc100 in #2685
- Update gtest from release-1.10.0 -> release-1.12.0. NFC by @sbc100 in #2687
- Add bounds check for function body size in binary reader by @sumleo in #2693
- Fix integer overflow in section and subsection size checks by @sumleo in #2694
- Fix wrong iterator variable in InterpDropKeep ref tracking by @sumleo in #2702
- Fix incorrect parameter index in WASI fd_read by @sumleo in #2700
- [wasm-objdump] Fix missing error on bad opcode by @sbc100 in #2696
- Fix CanonNaN template to use correct type for f64 NaN canonicalization by @sumleo in #2701
- Fix off-by-one in Select instruction ref tracking by @sumleo in #2704
- Fix GC root leak in RefPtr assignment operators by @sumleo in #2699
- Initial support for wide arithmetic by @sbc100 in #2697
- Fix typed select pushing Type::Any instead of expected type by @sumleo in #2707
- Prevent fuzzer allocation errors by @zherczeg in #2713
- Update minimum CMake version to 3.10 in wabt-config.cmake by @alexreinking in #2714
New Contributors
Full Changelog: 1.0.39...1.0.40
1.0.39
There were a couple of issues with the 1.0.38 release, such as some binaries being missing, and also that version not being updated.
Versions 1.0.39 should address those.
Note: The names of the release binaries have changed and are now standardized between all platforms and architectures.
What's Changed
- [CI] Disable
fail-fastfor release builder by @sbc100 in #2651 - Update flake8 version. NFC by @sbc100 in #2653
- [wasm2c] Add more debugging for sigaltstack failures. NFC by @sbc100 in #2652
- Temporarily disable macos-latest testing. NFC by @sbc100 in #2657
- Temporarily disable s390 CI build by @sbc100 in #2656
- CMakeLists.txt: Update version to 1.0.38 by @sbc100 in #2659
- Add arm64 linux release binaries. NFC by @KKiiim in #2650
- Bump version to 1.0.39 by @sbc100 in #2660
New Contributors
Full Changelog: 1.0.38...1.0.39
1.0.38
What's Changed
- [CI] Remove macos-12 build by @sbc100 in #2552
- Bump version to 1.0.37 by @sbc100 in #2553
- wasm-interp: Handle refs_ correctly by @SoniEx2 in #2484
- Fix tail-call handling in interpreter and wasm2c by @keithw in #2563
- wasm2c: Fix platform specific mutex support by @shravanrn in #2566
- wasm2c: Add Segue support for FreeBSD by @shravanrn in #2564
- Fix ElemSegment CheckType in shared validator by @zherczeg in #2570
- Pull fuzzers from oss-fuzz into tree by @SoniEx2 in #2573
- Remove -sSINGLE_FILE and other emscripten link flags by @sbc100 in #2577
- Enable CMake deprecation warnings by @SoniEx2 in #2579
- Add Type comparison methods by @zherczeg in #2580
- libwabt.js: Add
checkoption, equiv to wasm2wat's --no-check by @pdubroy in #2582 - [wast-parser] Add parse_binary_modules option by @sjamesr in #2583
- Move parser related data from IR to the parser and improve reference type parsing by @zherczeg in #2581
- wasm2c: remove use of inline enum declarations by @shravanrn in #2589
- wasm2c: Remove enum types from variadic get_func_type API by @shravanrn in #2588
- Add missing in_function_body check to objdump by @zherczeg in #2591
- Fixed typo in wasm2c --module-name help message by @niansa in #2592
- Validate type references by index by @zherczeg in #2584
- wasm2c: Simplify load_data for big endian platforms by @shravanrn in #2601
- wasm2c: Remove implicit void* conversions in tail calls by @shravanrn in #2590
- wasm2c: add check to avoid mprotect on zero sizes by @shravanrn in #2600
- wasm2c: allow test script to specify a runner app by @shravanrn in #2603
- chore: edited the link to the CI badge by @Olexandr88 in #2605
- wasm2c: format source and regenerate tests and examples by @shravanrn in #2619
- wasm2c: Mmap+guard on big-endian won't move memory (fix #2599) by @shravanrn in #2602
- wasm2c: fix big endian guard page support by @shravanrn in #2621
- gh-2616 Fix wrong validation of code metadata function index by @Lukasdoe in #2617
- Fix for empty CMAKE_OSX_SYSROOT by @sbc100 in #2634
- fix mismatch between ExprTypeName and ExprType by @Inginnng in #2632
- Fix
wat2wasm -o -for writing to stdout. NFC by @sbc100 in #2638 - Update HTML doc by @qouteall in #2644
New Contributors
- @pdubroy made their first contribution in #2582
- @niansa made their first contribution in #2592
- @Olexandr88 made their first contribution in #2605
- @Lukasdoe made their first contribution in #2617
- @Inginnng made their first contribution in #2632
- @qouteall made their first contribution in #2644
Full Changelog: 1.0.37...1.0.38
1.0.37
What's Changed
- Harden against invalid alignment by @SoniEx2 in #2411
- Install wasm-rt-impl include files by @remko in #2452
- Add missing relocation types (and delete a non-existent one) by @SingleAccretion in #2457
- wasm2c: Segue support for CPUs without wrgsbase instructions by @shravanrn in #2441
- [wasm-interp] Fix memory corruption with recursive call_indirect by @SoniEx2 in #2464
- wasm2c: Add segue option to make exclusive use of the segment register by @shravanrn in #2458
- Use intrinsic for Popcount on arm64 msvc by @Changqing-JING in #2468
- Fix bug in wasm2c runtime's alternate stack deallocation by @squk in #2466
- wasm2c: Use wrappers for function references by @SoniEx2 in #2465
- Fix error message for ref.is_null by @SoniEx2 in #2471
- Fix handling of data count without data section by @SoniEx2 in #2432
- Fix call_ref on empty stack by @SoniEx2 in #2472
- wasm-interp: Fix catch handlers' value stack sizes by @SoniEx2 in #2478
- wasm2c: Fix handling of locals in setjmp targets by @SoniEx2 in #2479
- wasm-interp: Fix catch handlers correctly by @SoniEx2 in #2483
- Raise parse error on NaN in i32 and i64 literals by @sjamesr in #2485
- wasm-decompile: add function index comments by @python273 in #2482
- wasm-interp: Fix off-by-one in DoThrow by @SoniEx2 in #2486
- wasm2c: Cleanup of handling of WASM_RT_USE_SEGUE macro by @shravanrn in #2487
- type.h: Introduce ExnRef by @SoniEx2 in #2489
- wasm2c: Reset the segment register after call_indirect as the register may have changed by @shravanrn in #2490
- [EH] Fix exnref's opcode by @aheejin in #2492
- lexer-keywords.txt: Recognize exn and exnref by @SoniEx2 in #2493
- wasm2c: Cleanup TLS: check for __thread and declare TLS vars only when needed by @shravanrn in #2488
- binary-reader-ir: Track usage of exception handling in features_used by @SoniEx2 in #2496
- interp: Handle ref.null exn by @SoniEx2 in #2497
- Fix label 'for' attributes to match input 'id's in demo by @bragle in #2499
- Update testsuite by @keithw in #2495
- test(interp): Move legacy exception handling tests (NFC) by @SoniEx2 in #2498
- wasm-decompile: Fix unescaped characters in data output. by @fedosgad in #2500
- wat-writer.cc: update text serialization of data memuse by @keithw in #2501
- Add support for the custom-page-sizes proposal by @keithw in #2502
- test/run-roundtrip.py: test roundtrip even with --stdout by @keithw in #2505
- wasm2c: disable segue in clang8 due to missing fsgsbase support by @shravanrn in #2503
- wasm2c: minor code cleanup for OS checks for segue by @shravanrn in #2504
- wast-parser.cc: Fix a crash from failing (module quote ...) by @keithw in #2509
- binary/wat: Implement EHv4 by @SoniEx2 in #2470
- interp: Implement EHv4 by @SoniEx2 in #2512
- add installation section to README.md by @andrewbiang888 in #2514
- CI: Use latest macOS images by @SoniEx2 in #2517
- Issue a nicer error message on wasm components. by @sunfishcode in #2515
- wasm2c: update memory/table operations to use u64 + harmonize checks by @keithw in #2506
- Set CMAKE_OSX_DEPLOYMENT_TARGET to 10.14 in CMakeLists.txt by @sbc100 in #2528
- wasm2c: Implement EHv4 by @SoniEx2 in #2513
- CI: Update to upload-artifact v4 by @SoniEx2 in #2539
- CI: Use safer GITHUB_OUTPUT by @SoniEx2 in #2540
- Fix lint task by @SoniEx2 in #2546
- wasm2c: support the custom-page-sizes proposal by @keithw in #2508
- build.yml: fix s390x build by @keithw in #2548
- Update testsuite submodule by @keithw in #2549
New Contributors
- @SingleAccretion made their first contribution in #2457
- @sjamesr made their first contribution in #2485
- @python273 made their first contribution in #2482
- @bragle made their first contribution in #2499
- @fedosgad made their first contribution in #2500
- @andrewbiang888 made their first contribution in #2514
- @sunfishcode made their first contribution in #2515
Full Changelog: 1.0.36...1.0.37
1.0.36
1.0.35
1.0.34
Major changes since 1.0.33:
- Parse & write custom-section annotations (#2284)
- Partial wasm2c support for the threads proposal (#2233)
- wasm2c support for the tail-call proposal (#2272)
- Update multi-memory support to match upstream proposal (#2294)
- wasm-opcodecnt renamed to wasm-stats (#2298)
- wasm2c fixes for MIPS (#2274)
- Support global.get in constant expressions (#2288)
- Better spec-compliant parsing on some edge cases (#2247, #2248, #2251, #2252)
- Improved parsing and validation for memory64 (#2253, #2255, #2256)