Skip to main content

Migrating from Chicory to Endive

Endive is a fork of Chicory by Dylibso, Inc. This guide documents all breaking changes for users migrating from Chicory.

Maven Coordinates

ChicoryEndive
com.dylibso.chicory:runtimerun.endive:runtime
com.dylibso.chicory:compilerrun.endive:compiler
com.dylibso.chicory:wasmrun.endive:wasm
com.dylibso.chicory:wasirun.endive:wasi
com.dylibso.chicory:annotationsrun.endive:annotations
com.dylibso.chicory:annotations-processorrun.endive:annotations-processor
com.dylibso.chicory:logrun.endive:log
com.dylibso.chicory:bomrun.endive:bom

All module artifact names (runtime, compiler, wasm, etc.) are unchanged.

Package Names

All packages have moved from com.dylibso.chicory to run.endive:

com.dylibso.chicory.runtime -> run.endive.runtime
com.dylibso.chicory.compiler -> run.endive.compiler
com.dylibso.chicory.wasm -> run.endive.wasm
com.dylibso.chicory.wasi -> run.endive.wasi

A global find-and-replace of com.dylibso.chicory to run.endive in your imports covers this.

Exception Classes

The base exception and interruption exception have been renamed to better reflect their semantics:

ChicoryEndiveRationale
ChicoryExceptionWasmEngineExceptionBase for engine errors, distinct from WasmException (Wasm-level tagged exceptions from the exception-handling proposal)
ChicoryInterruptedExceptionWasmInterruptedExceptionHost-initiated interruption of Wasm execution

All spec-aligned exception names are unchanged: TrapException, InvalidException, MalformedException, UnlinkableException, UninstantiableException.

Maven Plugin

ChicoryEndive
com.dylibso.chicory:chicory-compiler-maven-pluginrun.endive:endive-compiler-maven-plugin
Goal prefix: chicory:compileGoal prefix: endive:compile
Default output: generated-sources/chicory-compilerDefault output: generated-sources/endive-compiler

System Properties

ChicoryEndive
chicory.hugeMethodLimitendive.hugeMethodLimit
chicory.memCopyWorkaroundendive.memCopyWorkaround
chicory.compiler.printUseOfInterpretedFunctionsendive.compiler.printUseOfInterpretedFunctions

CLI Binaries

ChicoryEndive
chicoryendive
chicory-compilerendive-compiler

Logger Name

The JUL/System logger name has changed from "chicory" to "endive". If you configure logging levels for the runtime, update your logging configuration accordingly.