UNPKG

@grain/binaryen.ml

Version:

OCaml bindings for Binaryen.

663 lines (365 loc) 37.7 kB
# Changelog ## [0.34.0](https://github.com/grain-lang/binaryen.ml/compare/v0.33.0...v0.34.0) (2025-11-12) ### ⚠ BREAKING CHANGES * Update Passes api for Binaryen v124 * Upgrade to Binaryen v124 ([#241](https://github.com/grain-lang/binaryen.ml/issues/241)) ### Features * Update Passes api for Binaryen v124 ([305137a](https://github.com/grain-lang/binaryen.ml/commit/305137a264049f3f38bf8828c57aad190195ca49)) * Upgrade to Binaryen v124 ([#241](https://github.com/grain-lang/binaryen.ml/issues/241)) ([02829f8](https://github.com/grain-lang/binaryen.ml/commit/02829f805cd3133bb4b04c83abac8380996bd0ec)) ## [0.33.0](https://github.com/grain-lang/binaryen.ml/compare/v0.32.0...v0.33.0) (2025-11-12) ### ⚠ BREAKING CHANGES * Upgrade to Binaryen v123 ([#256](https://github.com/grain-lang/binaryen.ml/issues/256)) ### Features * Implement optimization settings api ([#243](https://github.com/grain-lang/binaryen.ml/issues/243)) ([1f25caf](https://github.com/grain-lang/binaryen.ml/commit/1f25cafc96a1f6969a1ecca8ea778aeefae893a8)) * Upgrade to Binaryen v123 ([#256](https://github.com/grain-lang/binaryen.ml/issues/256)) ([dd6bfa7](https://github.com/grain-lang/binaryen.ml/commit/dd6bfa7bd1c072b33bbc1731a046d169ceb9ea39)) ## [0.32.0](https://github.com/grain-lang/binaryen.ml/compare/v0.31.0...v0.32.0) (2025-11-12) ### ⚠ BREAKING CHANGES * Upgrade to Binaryen v122 ([#208](https://github.com/grain-lang/binaryen.ml/issues/208)) * Correct signature of `get_pass_argument` ([#247](https://github.com/grain-lang/binaryen.ml/issues/247)) ### Features * Upgrade to Binaryen v122 ([#208](https://github.com/grain-lang/binaryen.ml/issues/208)) ([434417d](https://github.com/grain-lang/binaryen.ml/commit/434417df5720205824b3fdfa3ce82fa72465c444)) ### Bug Fixes * Correct signature of `get_pass_argument` ([#247](https://github.com/grain-lang/binaryen.ml/issues/247)) ([986ecec](https://github.com/grain-lang/binaryen.ml/commit/986ecec07af320813f4137cfed4d454ae6c13f82)) ## [0.31.0](https://github.com/grain-lang/binaryen.ml/compare/v0.30.0...v0.31.0) (2025-11-02) ### ⚠ BREAKING CHANGES * Upgrade to Binaryen v121 ([#207](https://github.com/grain-lang/binaryen.ml/issues/207)) ### Features * Upgrade to Binaryen v121 ([#207](https://github.com/grain-lang/binaryen.ml/issues/207)) ([7e51d5d](https://github.com/grain-lang/binaryen.ml/commit/7e51d5da5bd2336dd0122468bcc1e3030e13f86c)) ## [0.30.0](https://github.com/grain-lang/binaryen.ml/compare/v0.29.0...v0.30.0) (2025-11-02) ### ⚠ BREAKING CHANGES * Upgrade to Binaryen v120 ([#206](https://github.com/grain-lang/binaryen.ml/issues/206)) ### Features * Upgrade to Binaryen v120 ([#206](https://github.com/grain-lang/binaryen.ml/issues/206)) ([4d69831](https://github.com/grain-lang/binaryen.ml/commit/4d6983154c19140af2ab2ac4451c5b69f0f2a736)) ## [0.29.0](https://github.com/grain-lang/binaryen.ml/compare/v0.28.0...v0.29.0) (2025-11-01) ### ⚠ BREAKING CHANGES * Upgrade to Binaryen v119 ([#205](https://github.com/grain-lang/binaryen.ml/issues/205)) ### Features * Upgrade to Binaryen v119 ([#205](https://github.com/grain-lang/binaryen.ml/issues/205)) ([3a6b775](https://github.com/grain-lang/binaryen.ml/commit/3a6b77594908b1585864160a1895c9ba25319b8f)) ## [0.28.0](https://github.com/grain-lang/binaryen.ml/compare/v0.27.0...v0.28.0) (2025-11-01) ### ⚠ BREAKING CHANGES * Upgrade to Binaryen v118 ([#204](https://github.com/grain-lang/binaryen.ml/issues/204)) ### Features * Upgrade to Binaryen v118 ([#204](https://github.com/grain-lang/binaryen.ml/issues/204)) ([6a5d0e8](https://github.com/grain-lang/binaryen.ml/commit/6a5d0e8ca24e306bc6d634bebc9f70efdf0896e0)) ## [0.27.0](https://github.com/grain-lang/binaryen.ml/compare/v0.26.0...v0.27.0) (2025-10-29) ### ⚠ BREAKING CHANGES * Upgrade to Binaryen v117 ([#225](https://github.com/grain-lang/binaryen.ml/issues/225)) * Require jsoo >= 6.0 ([#211](https://github.com/grain-lang/binaryen.ml/issues/211)) * Require node `22` or above ([#219](https://github.com/grain-lang/binaryen.ml/issues/219)) ### Features * Upgrade to Binaryen v117 ([#225](https://github.com/grain-lang/binaryen.ml/issues/225)) ([246d9fc](https://github.com/grain-lang/binaryen.ml/commit/246d9fc365bdfd40d8631e3a3b6ddd92efbb8fad)) ### Miscellaneous Chores * Require jsoo &gt;= 6.0 ([#211](https://github.com/grain-lang/binaryen.ml/issues/211)) ([cf53ffc](https://github.com/grain-lang/binaryen.ml/commit/cf53ffc132caed040ee9e7eca179cfd697bb5868)) * Require node `22` or above ([#219](https://github.com/grain-lang/binaryen.ml/issues/219)) ([3e1261e](https://github.com/grain-lang/binaryen.ml/commit/3e1261eabd76d8e5d546e104219c05201440053a)) ## [0.26.0](https://github.com/grain-lang/binaryen.ml/compare/v0.25.0...v0.26.0) (2025-05-17) ### ⚠ BREAKING CHANGES * Upgrade to Binaryen v116 ([#202](https://github.com/grain-lang/binaryen.ml/issues/202)) ### Features * Upgrade to Binaryen v116 ([#202](https://github.com/grain-lang/binaryen.ml/issues/202)) ([44bdd2a](https://github.com/grain-lang/binaryen.ml/commit/44bdd2a276b1478e0d5eb74cbd5135fdf504abcc)) ## [0.25.0](https://github.com/grain-lang/binaryen.ml/compare/v0.24.0...v0.25.0) (2025-05-15) ### ⚠ BREAKING CHANGES * Upgrade to Binaryen v115 ([#200](https://github.com/grain-lang/binaryen.ml/issues/200)) * Drop support for OCaml 4.12 * Pin CI dependencies and require Node 22 ([#214](https://github.com/grain-lang/binaryen.ml/issues/214)) ### Features * Upgrade to Binaryen v115 ([#200](https://github.com/grain-lang/binaryen.ml/issues/200)) ([e35c596](https://github.com/grain-lang/binaryen.ml/commit/e35c596aae01935b88aa3bbda5078517b1fae36a)) ### Miscellaneous Chores * Drop support for OCaml 4.12 ([971b06e](https://github.com/grain-lang/binaryen.ml/commit/971b06ee542b37b56a6041bbbd16017fa6510d45)) * Pin CI dependencies and require Node 22 ([#214](https://github.com/grain-lang/binaryen.ml/issues/214)) ([971b06e](https://github.com/grain-lang/binaryen.ml/commit/971b06ee542b37b56a6041bbbd16017fa6510d45)) ## [0.24.0](https://github.com/grain-lang/binaryen.ml/compare/v0.23.0...v0.24.0) (2023-10-30) ### ⚠ BREAKING CHANGES * Update to libbinaryen v114 ([#198](https://github.com/grain-lang/binaryen.ml/issues/198)) ### Features * Update to libbinaryen v114 ([#198](https://github.com/grain-lang/binaryen.ml/issues/198)) ([d11b8e1](https://github.com/grain-lang/binaryen.ml/commit/d11b8e1fae530fe36439805576f8103aafc34583)) ## [0.23.0](https://github.com/grain-lang/binaryen.ml/compare/v0.22.0...v0.23.0) (2023-09-27) ### ⚠ BREAKING CHANGES * Remove `type_system` * Remove `string_new_replace` operation * Remove `string_new_replace_array` operation * Upgrade to libbinaryen v113 ([#194](https://github.com/grain-lang/binaryen.ml/issues/194)) ### Features * Add `string_encode_lossy_utf8_array` operation ([7d222e0](https://github.com/grain-lang/binaryen.ml/commit/7d222e0f8ebc0cfb45e7c07304a59e9559accedc)) * Add `string_encode_lossy_utf8` operation ([7d222e0](https://github.com/grain-lang/binaryen.ml/commit/7d222e0f8ebc0cfb45e7c07304a59e9559accedc)) * Add `string_new_lossy_utf8_array` operation ([7d222e0](https://github.com/grain-lang/binaryen.ml/commit/7d222e0f8ebc0cfb45e7c07304a59e9559accedc)) * Add `string_new_lossy_utf8` operation ([7d222e0](https://github.com/grain-lang/binaryen.ml/commit/7d222e0f8ebc0cfb45e7c07304a59e9559accedc)) * Upgrade to libbinaryen v113 ([#194](https://github.com/grain-lang/binaryen.ml/issues/194)) ([7d222e0](https://github.com/grain-lang/binaryen.ml/commit/7d222e0f8ebc0cfb45e7c07304a59e9559accedc)) ### Miscellaneous Chores * Remove `string_new_replace_array` operation ([7d222e0](https://github.com/grain-lang/binaryen.ml/commit/7d222e0f8ebc0cfb45e7c07304a59e9559accedc)) * Remove `string_new_replace` operation ([7d222e0](https://github.com/grain-lang/binaryen.ml/commit/7d222e0f8ebc0cfb45e7c07304a59e9559accedc)) * Remove `type_system` ([7d222e0](https://github.com/grain-lang/binaryen.ml/commit/7d222e0f8ebc0cfb45e7c07304a59e9559accedc)) ## [0.22.0](https://github.com/grain-lang/binaryen.ml/compare/v0.21.0...v0.22.0) (2023-09-14) ### ⚠ BREAKING CHANGES * Rename `dataref` to `structref` * Rename `data` to `struct_` in `Heap_type` * Remove `equirecursive` in `Type_system` * Properly resolve ops externals to their type * Replace `Expression.Ref.is` with `Expression.Ref.is_null` * Remove Ops that no longer exist in Binaryen * Upgrade to libbinaryen v112 ([#188](https://github.com/grain-lang/binaryen.ml/issues/188)) ### Features * Add i31 expressions ([46c97c2](https://github.com/grain-lang/binaryen.ml/commit/46c97c2e92d95ffbe880c084ce3c13c503240e58)) * Add new Binaryen ops ([46c97c2](https://github.com/grain-lang/binaryen.ml/commit/46c97c2e92d95ffbe880c084ce3c13c503240e58)) * Add new optimization passes ([46c97c2](https://github.com/grain-lang/binaryen.ml/commit/46c97c2e92d95ffbe880c084ce3c13c503240e58)) * Replace `Expression.Ref.is` with `Expression.Ref.is_null` ([46c97c2](https://github.com/grain-lang/binaryen.ml/commit/46c97c2e92d95ffbe880c084ce3c13c503240e58)) * Upgrade to libbinaryen v112 ([#188](https://github.com/grain-lang/binaryen.ml/issues/188)) ([46c97c2](https://github.com/grain-lang/binaryen.ml/commit/46c97c2e92d95ffbe880c084ce3c13c503240e58)) ### Bug Fixes * Properly resolve ops externals to their type ([46c97c2](https://github.com/grain-lang/binaryen.ml/commit/46c97c2e92d95ffbe880c084ce3c13c503240e58)) ### Miscellaneous Chores * Remove `equirecursive` in `Type_system` ([46c97c2](https://github.com/grain-lang/binaryen.ml/commit/46c97c2e92d95ffbe880c084ce3c13c503240e58)) * Remove Ops that no longer exist in Binaryen ([46c97c2](https://github.com/grain-lang/binaryen.ml/commit/46c97c2e92d95ffbe880c084ce3c13c503240e58)) * Rename `data` to `struct_` in `Heap_type` ([46c97c2](https://github.com/grain-lang/binaryen.ml/commit/46c97c2e92d95ffbe880c084ce3c13c503240e58)) * Rename `dataref` to `structref` ([46c97c2](https://github.com/grain-lang/binaryen.ml/commit/46c97c2e92d95ffbe880c084ce3c13c503240e58)) ## [0.21.0](https://github.com/grain-lang/binaryen.ml/compare/v0.20.1...v0.21.0) (2023-07-04) ### ⚠ BREAKING CHANGES * Remove typed_function_reference feature which was removed in Binaryen * Add memory64 flag to `Memory.set_memory` * Upgrade to libbinaryen v111 ([#184](https://github.com/grain-lang/binaryen.ml/issues/184)) ### Features * Add array, none, noext, and nofunc heap types ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Add arrayref, nullref, null_externref, and null_funcref types ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Add is_64 check for memory ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Add memory64 flag to `Memory.set_memory` ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Add multi_memories module feature ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Add new BinaryenOps ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Add new optimization passes ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Add operations on array types ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Add operations on heap types ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Add operations on signature types ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Add operations on struct types ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Upgrade to libbinaryen v111 ([#184](https://github.com/grain-lang/binaryen.ml/issues/184)) ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) * Widen version range for js_of_ocaml ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) ### Miscellaneous Chores * Remove typed_function_reference feature which was removed in Binaryen ([f1c9fd7](https://github.com/grain-lang/binaryen.ml/commit/f1c9fd7a9aab97bd5f4e72d9c2b41bff88969128)) ## [0.20.1](https://github.com/grain-lang/binaryen.ml/compare/v0.20.0...v0.20.1) (2023-01-19) ### Features * Add gufa & gufa_optimizing passes ([#180](https://github.com/grain-lang/binaryen.ml/issues/180)) ([7395a1f](https://github.com/grain-lang/binaryen.ml/commit/7395a1fe0591a835eeeeb6e6e58c28c32b69342d)) ### Bug Fixes * Properly handle load & store instructions in JS ([#178](https://github.com/grain-lang/binaryen.ml/issues/178)) ([becd3b8](https://github.com/grain-lang/binaryen.ml/commit/becd3b82ac31c7f2ba1055b320c7ff537b58d971)) ## [0.20.0](https://github.com/grain-lang/binaryen.ml/compare/v0.19.0...v0.20.0) (2023-01-13) ### ⚠ BREAKING CHANGES * Require dune 3.0 to better support js_of_ocaml * Update memory operations to require memory name * Remove RttCanon and RttSub expression kinds * Add optimize argument to StackIR emitting functions * Require js_of_ocaml 4.1 to ensure optimization fix * Upgrade to libbinaryen v110 ([#173](https://github.com/grain-lang/binaryen.ml/issues/173)) * Properly accept the size argument to Memory_init.make ([#171](https://github.com/grain-lang/binaryen.ml/issues/171)) ### Features * Add functions for converting between Types and Heap Types ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) * Add operations on Heap Types ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) * Add operations on Packed Types ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) * Add operations on the Type System ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) * Add optimize argument to StackIR emitting functions ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) * Add Stringref and Stringview Types ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) * Add strings feature ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) * Support querying data segments ([#176](https://github.com/grain-lang/binaryen.ml/issues/176)) ([5a6141c](https://github.com/grain-lang/binaryen.ml/commit/5a6141cd585e5030f74ebdaaee1e664b4339c17e)) * Update memory operations to require memory name ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) * Upgrade to libbinaryen v110 ([#173](https://github.com/grain-lang/binaryen.ml/issues/173)) ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) ### Bug Fixes * Properly accept the size argument to Memory_init.make ([#171](https://github.com/grain-lang/binaryen.ml/issues/171)) ([9ea20fe](https://github.com/grain-lang/binaryen.ml/commit/9ea20fe141f4f39697382c786c8d7f13290ff26d)) ### Miscellaneous Chores * Remove RttCanon and RttSub expression kinds ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) * Require dune 3.0 to better support js_of_ocaml ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) * Require js_of_ocaml 4.1 to ensure optimization fix ([474e5cd](https://github.com/grain-lang/binaryen.ml/commit/474e5cd49b276b5becc54e6f1bf4d9c044ef5b76)) ## [0.19.0](https://github.com/grain-lang/binaryen.ml/compare/v0.18.0...v0.19.0) (2022-11-19) ### ⚠ BREAKING CHANGES * Upgrade to libbinaryen v109 (#165) ### Features * Add `Import.memory_import_get_module` and `Import.memory_import_get_base` functions ([b584500](https://github.com/grain-lang/binaryen.ml/commit/b5845005bd20c3813db11bebb9b47ad616c01c5d)) * Add function to print StackIR ([b584500](https://github.com/grain-lang/binaryen.ml/commit/b5845005bd20c3813db11bebb9b47ad616c01c5d)) * Add function to write StackIR ([b584500](https://github.com/grain-lang/binaryen.ml/commit/b5845005bd20c3813db11bebb9b47ad616c01c5d)) * Add gsi & spill_pointers passes ([b584500](https://github.com/grain-lang/binaryen.ml/commit/b5845005bd20c3813db11bebb9b47ad616c01c5d)) * Add operations on memory ([b584500](https://github.com/grain-lang/binaryen.ml/commit/b5845005bd20c3813db11bebb9b47ad616c01c5d)) * Upgrade to libbinaryen v109 ([#165](https://github.com/grain-lang/binaryen.ml/issues/165)) ([b584500](https://github.com/grain-lang/binaryen.ml/commit/b5845005bd20c3813db11bebb9b47ad616c01c5d)) ## [0.18.0](https://github.com/grain-lang/binaryen.ml/compare/v0.17.1...v0.18.0) (2022-07-05) ### ⚠ BREAKING CHANGES * Remove externref type * Update to libbinaryen v108 ([#163](https://github.com/grain-lang/binaryen.ml/issues/163)) * Support passive memory segments ([#158](https://github.com/grain-lang/binaryen.ml/issues/158)) ([21857f7](https://github.com/grain-lang/binaryen.ml/commit/21857f7cf653a52e558fb7ffaa5a1e6042e895a0)) ### Features * Add anyref type as replacement for externref type ([f0c7d7e](https://github.com/grain-lang/binaryen.ml/commit/f0c7d7e5aaad93eb75ad850387730a245db3a545)) * Add eqref, i31ref, and dataref types ([#162](https://github.com/grain-lang/binaryen.ml/issues/162)) ([b6808ee](https://github.com/grain-lang/binaryen.ml/commit/b6808ee4422a68aa27114573e642b2467df9cc3c)) * Remove externref type ([f0c7d7e](https://github.com/grain-lang/binaryen.ml/commit/f0c7d7e5aaad93eb75ad850387730a245db3a545)) * Support passive memory segments ([#158](https://github.com/grain-lang/binaryen.ml/issues/158)) ([21857f7](https://github.com/grain-lang/binaryen.ml/commit/21857f7cf653a52e558fb7ffaa5a1e6042e895a0)) * Update to libbinaryen v108 ([#163](https://github.com/grain-lang/binaryen.ml/issues/163)) ([f0c7d7e](https://github.com/grain-lang/binaryen.ml/commit/f0c7d7e5aaad93eb75ad850387730a245db3a545)) ### Bug Fixes * Convert JSOO lists to JS arrays before working with them ([#161](https://github.com/grain-lang/binaryen.ml/issues/161)) ([e4931f0](https://github.com/grain-lang/binaryen.ml/commit/e4931f00cffccefd5918b94b17b18883e120e444)) ### [0.17.1](https://github.com/grain-lang/binaryen.ml/compare/v0.17.0...v0.17.1) (2022-06-11) ### Bug Fixes * Remove upper bounds on dependencies ([#156](https://github.com/grain-lang/binaryen.ml/issues/156)) ([9ae4015](https://github.com/grain-lang/binaryen.ml/commit/9ae4015a4af6233e38d96a6f2ebabe55313fb8ea)) ## [0.17.0](https://github.com/grain-lang/binaryen.ml/compare/v0.16.0...v0.17.0) (2022-05-11) ### ⚠ BREAKING CHANGES * Update libbinaryen to 107 ([#152](https://github.com/grain-lang/binaryen.ml/issues/152)) ### Features * Add merge_similar_functions pass ([#154](https://github.com/grain-lang/binaryen.ml/issues/154)) ([54b03fd](https://github.com/grain-lang/binaryen.ml/commit/54b03fd854311f49aa1821868a8265116be922c2)) * Add signature_pruning pass ([#155](https://github.com/grain-lang/binaryen.ml/issues/155)) ([206b6cf](https://github.com/grain-lang/binaryen.ml/commit/206b6cf0ade48a778f4e991cf5d2ab0daf559bf8)) * Add support for extended_const feature ([260c2a1](https://github.com/grain-lang/binaryen.ml/commit/260c2a131a08720eac0f21abf68689fd201eb753)) * Update libbinaryen to 107 ([#152](https://github.com/grain-lang/binaryen.ml/issues/152)) ([260c2a1](https://github.com/grain-lang/binaryen.ml/commit/260c2a131a08720eac0f21abf68689fd201eb753)) ## [0.16.0](https://github.com/grain-lang/binaryen.ml/compare/v0.15.0...v0.16.0) (2022-05-11) ### ⚠ BREAKING CHANGES * Restrict OCaml < 4.14 temporarily * Update libbinaryen to 106 ([#151](https://github.com/grain-lang/binaryen.ml/issues/151)) * Expression.Return.get_value can be null ([#149](https://github.com/grain-lang/binaryen.ml/issues/149)) ### Features * Update libbinaryen to 106 ([#151](https://github.com/grain-lang/binaryen.ml/issues/151)) ([453b9de](https://github.com/grain-lang/binaryen.ml/commit/453b9dea8f0bda026b70f67d7c99311f9f6601e3)) ### Bug Fixes * Expression.Return.get_value can be null ([#149](https://github.com/grain-lang/binaryen.ml/issues/149)) ([559341d](https://github.com/grain-lang/binaryen.ml/commit/559341d13a7ba5abb8521f6d0d982d4f25b86ce0)) ### Miscellaneous Chores * Restrict OCaml < 4.14 temporarily ([453b9de](https://github.com/grain-lang/binaryen.ml/commit/453b9dea8f0bda026b70f67d7c99311f9f6601e3)) ## [0.15.0](https://github.com/grain-lang/binaryen.ml/compare/v0.14.1...v0.15.0) (2022-03-16) ### ⚠ BREAKING CHANGES * Rename segment name to data (#146) * Add Passes module & require `Passes.t` in `Module.run_passes` (#145) * Remove virtual modules * Remove the "jsoo hack" API * Update libbinaryen to v105 (#142) ### Features * Add Passes module & require `Passes.t` in `Module.run_passes` ([#145](https://github.com/grain-lang/binaryen.ml/issues/145)) ([c3e751c](https://github.com/grain-lang/binaryen.ml/commit/c3e751c4f869b9481e18c85a525100fbdcfa9072)) * Remove the "jsoo hack" API ([3c81209](https://github.com/grain-lang/binaryen.ml/commit/3c81209763e3d09d51a5ab68ebd705582fe02c54)) * Remove unneeded js_of_ocaml & js_of_ocaml-ppx deps ([3c81209](https://github.com/grain-lang/binaryen.ml/commit/3c81209763e3d09d51a5ab68ebd705582fe02c54)) * Remove virtual modules ([3c81209](https://github.com/grain-lang/binaryen.ml/commit/3c81209763e3d09d51a5ab68ebd705582fe02c54)) * Rename segment name to data ([#146](https://github.com/grain-lang/binaryen.ml/issues/146)) ([d55e577](https://github.com/grain-lang/binaryen.ml/commit/d55e5773d39fd5f21f556e0f5493d6c60bbc2198)) * Rewrite JS bindings as js_of_ocaml externals ([3c81209](https://github.com/grain-lang/binaryen.ml/commit/3c81209763e3d09d51a5ab68ebd705582fe02c54)) * Update libbinaryen to v105 ([#142](https://github.com/grain-lang/binaryen.ml/issues/142)) ([3c81209](https://github.com/grain-lang/binaryen.ml/commit/3c81209763e3d09d51a5ab68ebd705582fe02c54)) ### Bug Fixes * Make memory segments work with js_of_ocaml ([3c81209](https://github.com/grain-lang/binaryen.ml/commit/3c81209763e3d09d51a5ab68ebd705582fe02c54)) ### [0.14.1](https://github.com/grain-lang/binaryen.ml/compare/v0.14.0...v0.14.1) (2022-03-08) ### Bug Fixes * Update binaryen JS to v104 ([#140](https://github.com/grain-lang/binaryen.ml/issues/140)) ([eb9049e](https://github.com/grain-lang/binaryen.ml/commit/eb9049e4ec0ec2406e72c5bb9190b993a187f2d0)) ## [0.14.0](https://github.com/grain-lang/binaryen.ml/compare/v0.13.0...v0.14.0) (2022-03-04) ### ⚠ BREAKING CHANGES * Update libbinaryen to v104 (#138) ### Features * Update libbinaryen to v104 ([#138](https://github.com/grain-lang/binaryen.ml/issues/138)) ([81addf7](https://github.com/grain-lang/binaryen.ml/commit/81addf76dcc21dc1681b5a29b80ba31522911047)) ## [0.13.0](https://github.com/grain-lang/binaryen.ml/compare/v0.12.1...v0.13.0) (2022-02-07) ### Features * Add all `Module.Features` that were missing ([09c5d30](https://github.com/grain-lang/binaryen.ml/commit/09c5d3064e9fd80ea6adac8b2f40cf2b708ebb8c)) * Add functions for ref & table expressions ([09c5d30](https://github.com/grain-lang/binaryen.ml/commit/09c5d3064e9fd80ea6adac8b2f40cf2b708ebb8c)) * Upgrade to libbinaryen v103 ([#134](https://github.com/grain-lang/binaryen.ml/issues/134)) ([09c5d30](https://github.com/grain-lang/binaryen.ml/commit/09c5d3064e9fd80ea6adac8b2f40cf2b708ebb8c)) ### Miscellaneous Chores * Use a upload-release-action that works ([97dbcdc](https://github.com/grain-lang/binaryen.ml/commit/97dbcdc53e69ccdb6e88ef03ce0766443a024cf1)) ### [0.12.1](https://github.com/grain-lang/binaryen.ml/compare/v0.12.0...v0.12.1) (2022-02-03) ### Features * **ci:** Upgrade release-please ([#131](https://github.com/grain-lang/binaryen.ml/issues/131)) ([ca3bdb7](https://github.com/grain-lang/binaryen.ml/commit/ca3bdb7aa324a013205a80759bcc733fea64ae4a)) ### Bug Fixes * Restrict js_of_ocaml to version 3 ([fa39480](https://github.com/grain-lang/binaryen.ml/commit/fa39480fc74b19cf7052ec5c0764ee58b5783549)) ### Miscellaneous Chores * Fix release version ([5d1bd42](https://github.com/grain-lang/binaryen.ml/commit/5d1bd42a7132298a902060c46dae72507e702eb0)) ## [0.12.0](https://www.github.com/grain-lang/binaryen.ml/compare/v0.11.2...v0.12.0) (2022-01-26) ### ⚠ BREAKING CHANGES * Add table type to add_table signature * Rename Event to Tag to match Binaryen ### Features * Add table type to add_table signature ([5c50272](https://www.github.com/grain-lang/binaryen.ml/commit/5c502720943a8bf6e649891051db00336eec9451)) * Add update_maps function that Binaryen added ([5c50272](https://www.github.com/grain-lang/binaryen.ml/commit/5c502720943a8bf6e649891051db00336eec9451)) * Rename Event to Tag to match Binaryen ([5c50272](https://www.github.com/grain-lang/binaryen.ml/commit/5c502720943a8bf6e649891051db00336eec9451)) * Upgrade to libbinaryen v102 ([#120](https://www.github.com/grain-lang/binaryen.ml/issues/120)) ([5c50272](https://www.github.com/grain-lang/binaryen.ml/commit/5c502720943a8bf6e649891051db00336eec9451)) ### [0.11.2](https://www.github.com/grain-lang/binaryen.ml/compare/v0.11.1...v0.11.2) (2022-01-24) ### Bug Fixes * Handle JS global in non-node environments ([#125](https://www.github.com/grain-lang/binaryen.ml/issues/125)) ([74e94fe](https://www.github.com/grain-lang/binaryen.ml/commit/74e94fe8ac7b2c2a66b8118b5eaa3a81e5f9296a)) ### [0.11.1](https://www.github.com/grain-lang/binaryen.ml/compare/v0.11.0...v0.11.1) (2022-01-16) ### Bug Fixes * Make features work in 32-bit mode ([#123](https://www.github.com/grain-lang/binaryen.ml/issues/123)) ([e435c8b](https://www.github.com/grain-lang/binaryen.ml/commit/e435c8bd9f6619c42b82e53e5d1caa929b5d4ebf)) ## [0.11.0](https://www.github.com/grain-lang/binaryen.ml/compare/v0.10.0...v0.11.0) (2022-01-13) ### ⚠ BREAKING CHANGES * Mention implicit python dependency in the docs * Switch to libbinaryen dependency (#113) * Remove MacOS-specific library flags (#111) * Require OCaml 4.12 (#108) ### Features * Depend on libbinaryen ([59874ce](https://www.github.com/grain-lang/binaryen.ml/commit/59874ce785288d4a33ed5408ac4a0a33e16ff4c1)) * Remove MacOS-specific library flags ([#111](https://www.github.com/grain-lang/binaryen.ml/issues/111)) ([5a67f9f](https://www.github.com/grain-lang/binaryen.ml/commit/5a67f9f330332f8957976841819707d09124dc94)) * Require OCaml 4.12 ([#108](https://www.github.com/grain-lang/binaryen.ml/issues/108)) ([36eedea](https://www.github.com/grain-lang/binaryen.ml/commit/36eedea279fb19ee6131b72b21c24ba0a9d7f993)) * Switch to libbinaryen dependency ([#113](https://www.github.com/grain-lang/binaryen.ml/issues/113)) ([59874ce](https://www.github.com/grain-lang/binaryen.ml/commit/59874ce785288d4a33ed5408ac4a0a33e16ff4c1)) ### Miscellaneous Chores * Mention implicit python dependency in the docs ([59874ce](https://www.github.com/grain-lang/binaryen.ml/commit/59874ce785288d4a33ed5408ac4a0a33e16ff4c1)) ## [0.10.0](https://www.github.com/grain-lang/binaryen.ml/compare/v0.9.1...v0.10.0) (2021-05-09) ### ⚠ BREAKING CHANGES * Move expressions into namespaces * Move element segment into own module * Move `Features` into `Module.Feature` * Create Settings modules & move global functions * Convert some Settings from ints to bools * Remove SIMD methods that Binaryen replaced * Upgrade Binaryen to v101 (#99) ### Features * Add `Module.get_features` ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Add `Type.expandType` ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Add operations on element segments ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Add operations on exports ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Add operations on expressions ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Add operations on functions ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Add operations on globals ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Add operations on imports ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Add support for reference types ([#101](https://www.github.com/grain-lang/binaryen.ml/issues/101)) ([5058492](https://www.github.com/grain-lang/binaryen.ml/commit/50584929466b7aae5f7c9b48b8b9bab5676ed53e)) * Build vendored Binaryen with GCC 7 instead of 9 ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Convert some Settings from ints to bools ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Create Settings modules & move global functions ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Move `Features` into `Module.Feature` ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Move element segment into own module ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Move expressions into namespaces ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) * Upgrade Binaryen to v101 ([#99](https://www.github.com/grain-lang/binaryen.ml/issues/99)) ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) ### Miscellaneous Chores * Remove SIMD methods that Binaryen replaced ([3de1b28](https://www.github.com/grain-lang/binaryen.ml/commit/3de1b289ed4673f701801f3087e48ac9746d89d1)) ### [0.9.1](https://www.github.com/grain-lang/binaryen.ml/compare/v0.9.0...v0.9.1) (2021-04-02) ### Bug Fixes * Correct JS conversion of i64 & float64_bits literals ([#96](https://www.github.com/grain-lang/binaryen.ml/issues/96)) ([00b7093](https://www.github.com/grain-lang/binaryen.ml/commit/00b7093ad57c7698ff7f6e69f59fd426ee341fbf)) ## [0.9.0](https://www.github.com/grain-lang/binaryen.ml/compare/v0.8.1...v0.9.0) (2021-03-17) ### Features * add Function_table.unlimited constant ([#87](https://www.github.com/grain-lang/binaryen.ml/issues/87)) ([0d2fcde](https://www.github.com/grain-lang/binaryen.ml/commit/0d2fcde007b77e6edd5c66975fd7a611ae9a8ef8)) * write bindings for add_table ([6dc0fa8](https://www.github.com/grain-lang/binaryen.ml/commit/6dc0fa83d5873630cf7a0a6f2895600c68ad4f30)) ### Bug Fixes * **js:** cast the call_indirect string arguments to JS strings ([7b4136a](https://www.github.com/grain-lang/binaryen.ml/commit/7b4136a2e2fdae3efd85351dc40aad2ad4c3ed3e)) * **js:** utilize JSOO externals to convert between uint8array & bytes ([#85](https://www.github.com/grain-lang/binaryen.ml/issues/85)) ([61d28c5](https://www.github.com/grain-lang/binaryen.ml/commit/61d28c5e7e6ca6217759a75e2c96e7cb5c1b3d45)) * return JS null value from Expression.null ([#83](https://www.github.com/grain-lang/binaryen.ml/issues/83)) ([61861e2](https://www.github.com/grain-lang/binaryen.ml/commit/61861e2590816bccc5c6c17a2a5b77f3a3db3779)) ### Miscellaneous Chores * fix formatter & format the code ([#80](https://www.github.com/grain-lang/binaryen.ml/issues/80)) ([b9c485a](https://www.github.com/grain-lang/binaryen.ml/commit/b9c485a69cfb6ffbcc8a7a7611c2ea09386486e2)) * set dune language to the version of dune we use ([e9eb5c9](https://www.github.com/grain-lang/binaryen.ml/commit/e9eb5c927dbee84f9ab783a2bfb7f2e16c94e7f6)) * use test file directly in one rule so ocaml-lsp works ([34b7a13](https://www.github.com/grain-lang/binaryen.ml/commit/34b7a13864f81d5d2b8781f1b172d72f28354209)) ### Documentation * cleanup Binaryen submodule & building language (closes [#65](https://www.github.com/grain-lang/binaryen.ml/issues/65)) ([3bdb23d](https://www.github.com/grain-lang/binaryen.ml/commit/3bdb23dbca2734d58ee0802b796593016ac80c6e)) ### [0.8.1](https://www.github.com/grain-lang/binaryen.ml/compare/v0.8.0...v0.8.1) (2021-03-09) ### Bug Fixes * Module.optimize on macOS ([#77](https://www.github.com/grain-lang/binaryen.ml/issues/77)) ([0b92043](https://www.github.com/grain-lang/binaryen.ml/commit/0b920431372119d92b0077f51b91ca745fbfde87)) ### Continuous Integration * write opam CHANGES from environment var ([#78](https://www.github.com/grain-lang/binaryen.ml/issues/78)) ([4f25e0e](https://www.github.com/grain-lang/binaryen.ml/commit/4f25e0e96c3b1d2ad22d3b037695960cd6b2722a)) ## [0.8.0](https://www.github.com/grain-lang/binaryen.ml/compare/v0.7.0...v0.8.0) (2021-03-05) ### ⚠ BREAKING CHANGES * Table name must now be provided to the `Expression.call_indirect` and `Expression.return_call_indirect` instructions. ### Features * Upgrade to Binaryen 100 ([#75](https://www.github.com/grain-lang/binaryen.ml/issues/75)) ([d59f5f9](https://www.github.com/grain-lang/binaryen.ml/commit/d59f5f9fb5356f4ccd7f4a7fefe15d5d4b721412)) ### Continuous Integration * fix markdown escaping for opam release ([#72](https://www.github.com/grain-lang/binaryen.ml/issues/72)) ([a2e6052](https://www.github.com/grain-lang/binaryen.ml/commit/a2e605241376ffdfcbba7ecd2e7a7ac52b53019f)) ### Miscellaneous Chores * fix dune misdocumentation ([#73](https://www.github.com/grain-lang/binaryen.ml/issues/73)) ([341e718](https://www.github.com/grain-lang/binaryen.ml/commit/341e71805078dae312171d5985dec7ebc689bdbe)) ## [0.7.0](https://www.github.com/grain-lang/binaryen.ml/compare/v0.6.0...v0.7.0) (2021-02-24) ### ⚠ BREAKING CHANGES * memory_size and memory_grow are now toplevel functions in `Expression`. * removed `Type.nullref`, `Type.exnref` * removed `Op.any_true_vec_i64x2` and `Op.all_true_vec_i64x2` * Bump to Binaryen 98 ### Features * Bump to Binaryen 98 ([9a52a07](https://www.github.com/grain-lang/binaryen.ml/commit/9a52a077051441f8b0999bad1d77a8d3a6357460)) ### Continuous Integration * add opam & npm releases to workflow ([#69](https://www.github.com/grain-lang/binaryen.ml/issues/69)) ([d339608](https://www.github.com/grain-lang/binaryen.ml/commit/d3396085565e478b31a5819628be08bae1e2be16)) * run opam build on ubuntu 18 instead of 20 ([#67](https://www.github.com/grain-lang/binaryen.ml/issues/67)) ([7ee2009](https://www.github.com/grain-lang/binaryen.ml/commit/7ee20092da341f927acf552abcbcf8bfcca90c0b)) ### Miscellaneous Chores * memory_size and memory_grow are now toplevel functions in `Expression`. ([9a52a07](https://www.github.com/grain-lang/binaryen.ml/commit/9a52a077051441f8b0999bad1d77a8d3a6357460)) * removed `Op.any_true_vec_i64x2` and `Op.all_true_vec_i64x2` ([9a52a07](https://www.github.com/grain-lang/binaryen.ml/commit/9a52a077051441f8b0999bad1d77a8d3a6357460)) * removed `Type.nullref`, `Type.exnref` ([9a52a07](https://www.github.com/grain-lang/binaryen.ml/commit/9a52a077051441f8b0999bad1d77a8d3a6357460)) ## [0.6.0](https://www.github.com/grain-lang/binaryen.ml/compare/v0.5.0...v0.6.0) (2021-01-24) ### Features * Allow signed narrow-width loads ([#62](https://www.github.com/grain-lang/binaryen.ml/issues/62)) ([6448aeb](https://www.github.com/grain-lang/binaryen.ml/commit/6448aeb4ae00a07c98b0386fc1a82f6b653ac2c0)) ## [0.5.0](https://www.github.com/grain-lang/binaryen.ml/compare/v0.4.0...v0.5.0) (2021-01-12) ### Features * Allow optional return_type parameter when creating blocks ([ab737bd](https://www.github.com/grain-lang/binaryen.ml/commit/ab737bd4940a4534a84d1dcff2d0a42cd49cdd38)) ### Bug Fixes * add arch & os restrictions for opam ([#41](https://www.github.com/grain-lang/binaryen.ml/issues/41)) ([421b45d](https://www.github.com/grain-lang/binaryen.ml/commit/421b45d152bf8c5e15ba55e60357ab6c2d7a25f4)) * provide type to select instruction ([#46](https://www.github.com/grain-lang/binaryen.ml/issues/46)) ([2096a3c](https://www.github.com/grain-lang/binaryen.ml/commit/2096a3c2a219212519be3498c831d2e9d234a0ee)) ### Documentation * add section about static linking ([#37](https://www.github.com/grain-lang/binaryen.ml/issues/37)) ([f9afda1](https://www.github.com/grain-lang/binaryen.ml/commit/f9afda1bf80fbf06173cc1d6767164d4d93e12a5)) ### Miscellaneous Chores * Add --no-browser flag to opam-publish ([#43](https://www.github.com/grain-lang/binaryen.ml/issues/43)) ([f47f2bb](https://www.github.com/grain-lang/binaryen.ml/commit/f47f2bb1ed2016ab9f82e25e67dcc727958581c2)) * Switch back to official setup-opam action ([#44](https://www.github.com/grain-lang/binaryen.ml/issues/44)) ([f4338bd](https://www.github.com/grain-lang/binaryen.ml/commit/f4338bd110bf5c116a8a99f9b868a83a3da82d11)) ### Continuous Integration * Add release workflow ([#21](https://www.github.com/grain-lang/binaryen.ml/issues/21)) ([bd9d210](https://www.github.com/grain-lang/binaryen.ml/commit/bd9d210f26e7dc42ba452ee6283696d538e5bbc1)) * Add release-please-action to release process ([#55](https://www.github.com/grain-lang/binaryen.ml/issues/55)) ([5909560](https://www.github.com/grain-lang/binaryen.ml/commit/590956017550fb884c22c2681b924856a82c87b0))