diff --git a/java/wasm/pom.xml b/java/wasm/pom.xml index b389c57ed1..01803a5448 100644 --- a/java/wasm/pom.xml +++ b/java/wasm/pom.xml @@ -63,14 +63,19 @@ 10.0.4.0 test + + io.roastedroot + redline + 0.0.1 + - com.dylibso.chicory - chicory-compiler-maven-plugin - ${chicory.version} + io.roastedroot + redline-compiler-maven-plugin + 0.0.1 prism diff --git a/java/wasm/src/main/java/org/ruby_lang/prism/wasm/Prism.java b/java/wasm/src/main/java/org/ruby_lang/prism/wasm/Prism.java index 21bace0a3c..7ccc618bbd 100644 --- a/java/wasm/src/main/java/org/ruby_lang/prism/wasm/Prism.java +++ b/java/wasm/src/main/java/org/ruby_lang/prism/wasm/Prism.java @@ -2,7 +2,7 @@ import com.dylibso.chicory.runtime.ByteArrayMemory; import com.dylibso.chicory.runtime.ImportValues; -import com.dylibso.chicory.runtime.Instance; +import io.roastedroot.redline.api.RedlineInstance; import com.dylibso.chicory.wasi.WasiOptions; import com.dylibso.chicory.wasi.WasiPreview1; import org.ruby_lang.prism.Loader; @@ -13,7 +13,7 @@ public class Prism implements AutoCloseable { private final WasiPreview1 wasi; protected final Prism_ModuleExports exports; - private final Instance instance; + private final RedlineInstance instance; public Prism() { this(WasiOptions.builder().build()); @@ -21,12 +21,10 @@ public Prism() { public Prism(WasiOptions wasiOpts) { wasi = WasiPreview1.builder().withOptions(wasiOpts).build(); - instance = Instance.builder(PrismParser.load()) - .withMemoryFactory(ByteArrayMemory::new) - .withMachineFactory(PrismParser::create) + instance = PrismParser.builder() .withImportValues(ImportValues.builder().addFunction(wasi.toHostFunctions()).build()) .build(); - exports = new Prism_ModuleExports(instance); + exports = new Prism_ModuleExports(instance.instance()); } public String version() { @@ -150,6 +148,9 @@ public ParseResult serializeParse(byte[] packedOptions, String source) { @Override public void close() { + if (instance != null) { + instance.close(); + } if (wasi != null) { wasi.close(); }