对插件系统做了一些改进, 具体包括:
plugin(...) 会直接返回 module. 于是我们可以对插件使用 import, 也可以对插件中的函数使用 .with.plugin.transition API 用于执行非纯函数. 如果不使用 transition 调用非纯函数, 可能会导致不可预测的结果.1#import plugin("mycalc.wasm"): myadd, mymut2#myadd(3, 5) \3#mymut.with(3)(5)
1#let base = plugin("mut.wasm")2变化前的 `base`: #base.get() \34#let mutated = plugin.transition(base.add, "hello")5变化后的 `base`: #base.get() \6变化后的返回值 `mutated`: #mutated.get()
base: []base: []mutated: [hello]