Several improvements have been made to the plugin system:
plugin(...) now directly returns a module. This means we can use import with plugins and .with with plugin functions.plugin.transition API has been introduced for executing non-pure functions. Calling non-pure functions without using transition may lead to unpredictable results.1#import plugin("mycalc.wasm"): myadd, mymut2#myadd(3, 5) \3#mymut.with(3)(5)
1#let base = plugin("mut.wasm")2State before mutation: #base.get() \34#let mutated = plugin.transition(base.add, "hello")5State after mutation: #base.get() \6Returned mutated value: #mutated.get()