Skip to content

Releases: CharlieTap/chasm

0.9.2

08 Nov 23:23
Compare
Choose a tag to compare

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

14 Sep 14:00
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.9.0...0.9.1

0.9.0

31 Aug 15:30
Compare
Choose a tag to compare

What's Changed

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

⚠️ There is one exception and that is the ModuleInstance is now known as io.github.charlietap.chasm.embedding.shapes.Instance

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

31 Jul 09:37
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.7.0...0.7.1

0.7.0

11 Jul 18:54
Compare
Choose a tag to compare

What's Changed

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

15 May 18:56
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.6.0...0.6.1

0.6.0

15 May 07:33
Compare
Choose a tag to compare

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

23 Apr 20:12
Compare
Choose a tag to compare
  • Added transformation extension functions to ChasmResult
  • Fixed issue with incorrect maven module metadata

Full Changelog: 0.2.0...0.2.2

0.2.0

20 Apr 12:59
Compare
Choose a tag to compare

What's Changed

Full Changelog: 0.1.1...0.2.0

0.1.1

25 Mar 17:43
Compare
Choose a tag to compare
  • 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