Releases: CharlieTap/chasm
0.9.2
What's Changed
- Automation of the GC proposal testsuite
- Simplified GC approach
- 100% passing of all testsuite tests for all semantic phases of every proposal
- Module Information API
- Tags API
- Tons of bugfixes
Full Changelog: 0.9.1...0.9.2
0.9.1
What's Changed
- Update testsuite to latest by @CharlieTap in #26
- Wabt 1.0.36 by @CharlieTap in #27
- Migration from wabt to wasm-tools by @CharlieTap in #28
- Exception Handling Proposal by @CharlieTap in #29
Full Changelog: 0.9.0...0.9.1
0.9.0
What's Changed
- Kotlin 2.0.20 by @CharlieTap in #23
- Public API and Imports/Host Function DSL by @CharlieTap in #25
Breaking Changes
This version begins the stabilisation of a public api for chasm and hide its internals from downstream consumers. For this reason a layer of indirection has been introduced and all necessary public types are duplicated in chasm's public module.
A short summary of changes and basic migration guide are as follows:
- Creation of a store is now only possible using the factory method (previously you could call construct on the runtimes own store):
// The type will now be io.github.charlietap.chasm.embedding.shapes.Store
val store = store()
- Classes referenced in the chasms ast and runtime modules should now use the corresponding classes of the same name in the package io.github.charlietap.chasm.embedding.shapes.*
For example
// function
io.github.charlietap.chasm.embedding.shapes.Function
Other changes
There is also an experimental DSL builder api for defining imports and host functions, for now this will be undocumented as it may change as we develop a WASI layer on top of it. But as a sneak peak...
fun WasiPreview1(store: Store, memory: Memory) = imports(store) {
function {
moduleName = "wasi_preview_"
entityName = "fd_write"
type = functionType {
params { i32() }
results { i32() }
}
reference(fdWrite(memory))
}
}
Full Changelog: 0.7.1...0.9.0
0.7.1
What's Changed
- Gradle 8.9 by @CharlieTap in #19
- Multiple Memories Proposal Support by @CharlieTap in #21
Full Changelog: 0.7.0...0.7.1
0.7.0
What's Changed
- WABT 1.0.35 by @CharlieTap in #9
- Kotlin 2.0.0 by @CharlieTap in #11
- Fix x87 Float Rounding Issues by @CharlieTap in #12
- Wasm testsuite traps by @CharlieTap in #13
- Wasm testsuite malformations by @CharlieTap in #14
- Gradle 8.8 by @CharlieTap in #15
- Wasm testsuite exhaustion by @CharlieTap in #16
- Wasm testsuite linking by @CharlieTap in #17
- Wasm testsuite validation by @CharlieTap in #18
Notes
Chasm is now passing the entire wasm testsuite 🥳
There is also a new api for validating wasm modules, its designed to be chainable alongside the existing functions
module(reader)
.flatMap { module ->
validate(module)
}
Full Changelog: 0.6.1...0.7.0
0.6.1
0.6.0
What's Changed
- Wasm Test Suite Integration by @CharlieTap in #7
- Optimisation of bulk memory operations to use a single operation rather than the recursive byte by byte impls from the spec
- Rework of control flow to use a state machine implementation
- All the bugfixes
Full Changelog: 0.2.2...0.6.0
0.2.2
- Added transformation extension functions to ChasmResult
- Fixed issue with incorrect maven module metadata
Full Changelog: 0.2.0...0.2.2
0.2.0
What's Changed
- Gradle 8.7 by @CharlieTap in #3
- Wasm GC Decoding Phase by @CharlieTap in #4
- Upgrade library result to 2.0.0 by @CharlieTap in #5
- WASM GC Support by @CharlieTap in #6
Full Changelog: 0.1.1...0.2.0
0.1.1
- Full support of the Wasm 2.0 specification with the exception of VectorInstructions
- Tail call proposal support
- Extended constant expression proposal support
- Typed function references proposal support