Skip to content

Bump io.github.charlietap.chasm:chasm from 1.4.8 to 1.6.0 - #162

Closed
dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/gradle/io.github.charlietap.chasm-chasm-1.6.0
Closed

dependabot[bot] wants to merge 1 commit into
developfrom
dependabot/gradle/io.github.charlietap.chasm-chasm-1.6.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Aug 19, 2026

Copy link
Copy Markdown
Contributor

Bumps io.github.charlietap.chasm:chasm from 1.4.8 to 1.6.0.

Release notes

Sourced from io.github.charlietap.chasm:chasm's releases.

1.6.0

Whats Changed

A lot has changed...

Compiler 2.0

This release introduces a new single pass compiler, this is largely a port (albeit a more primitive one) of a compiler I recently worked on for another runtime. Previously Chasm decoded an AST, converted that representation to IR and then performed a multi pass compilation step before predecoding instructions into their dispatchable form.

The new compiler does away with all of that, it now directly takes the AST and compiles the dispatchable instructions in a single pass. We've reduced allocations at instantiation time by an order and magnitude and made instantiation as a result much much faster. Testing this on Chasms test corpus dropped instantiation time by roughly 57%.

New compiler optimisations

With the new compiler comes more than just speed, we've also baked in a bunch of new lowerings for compare-and-branch sequences, conditional result copies, direct calls, aggregate access chains, adjacent slot copies and packed aggregate reads. Constant control flow is now resolved during compilation, while more numeric, memory, call, branch and return sequences are emitted as superinstructions.

That's a whole lot of very specific terms but put simply, we now do more work in the compiler, do less work in certain instructions at runtime and we're also able to fuse certain sequences into a single instruction. We'll talk more about execution speed further down but just looking at the bytecode emitted from compiling Coremark we can see its been reduced by 9.3%, from 1,552 instructions to 1,407.

Faster everything

Chasm has made some huge strides recently on the performance front, and this release is no different... in fact it's the largest leap yet. Practically everything has seen large jumps, and as a result Chasms viability to be used as a driver of computation is now drastically different from where we were six months ago.

Phase 1.5.0 1.6.0 Difference
Decode 267.5 ms 219.3 ms 48.0 ms faster (-18.0%)
Validation 1.498 s 150.5 ms 1.347 s faster (−90.0%)
Instantiation 2.358 s 923.2 ms 1.435 s faster (−60.8%)
Execution 2.272 s 1.508 s 763.9 ms faster (−33.6%)

Note these numbers are leveraging the new coroutines variants of decode -> instantiate.

If you want to understand more about where these improvements come from I've made an effort to start adding more information in the commit descriptions so do check them out.

New Prepared function apis

You'll now find a new function in the embedding api:

fun prepareFunction(
    store: Store,
    instance: Instance,
    name: String,
): ChasmResult<PreparedFunction, ChasmError.ExecutionError> {

This function returns an invocable handle which can be used like this:

</tr></table> 

... (truncated)

Commits
  • db97d8b corpus: move read out of timing and regen baseline
  • 04d868d release: prepare version 1.6.0
  • 21aafae gradle: disable parallel IDE sync
  • f6b59b5 build: update project dependencies
  • 71d3d95 gradle: enable parallel IDE sync
  • 6563861 gradle: generate suspending service factories
  • 0d01ff9 corpus: exercise parallel embedding APIs
  • 065fc10 validator: parallelize function validation
  • 00bc1bf decoder: support parallel module decoding
  • 8f1c81f chasm-coroutines: add suspending parallel instantiation
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [io.github.charlietap.chasm:chasm](https://github.com/CharlieTap/chasm) from 1.4.8 to 1.6.0.
- [Release notes](https://github.com/CharlieTap/chasm/releases)
- [Commits](CharlieTap/chasm@1.4.8...1.6.0)

---
updated-dependencies:
- dependency-name: io.github.charlietap.chasm:chasm
  dependency-version: 1.6.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update java code labels Aug 19, 2026
@dependabot @github

dependabot Bot commented on behalf of github Aug 20, 2026

Copy link
Copy Markdown
Contributor Author

Superseded by #163.

@dependabot dependabot Bot closed this Aug 20, 2026
@dependabot
dependabot Bot deleted the dependabot/gradle/io.github.charlietap.chasm-chasm-1.6.0 branch August 20, 2026 04:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants