escriba-vm 0.1.10

Tatara-lisp runtime host for escriba — embeds tatara-lisp-eval's Interpreter<EscribaHost>, exposing editor operations as native Lisp fns that read a snapshot and emit typed, sandboxed effects.
docs.rs failed to build escriba-vm-0.1.10
Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.

escriba-vm — escriba's embedded tatara-lisp runtime.

Hosts a [tatara_lisp_eval::Interpreter] parameterized over [EscribaHost]. Lisp code runs the full language (arithmetic, lists, if/let/lambda/begin via install_primitives) and interacts with the editor through native functions:

  • reads (cursor-line, current-line, editor-mode, …) answer from a [EditorSnapshot] captured before eval, so the host owns no borrows and satisfies Interpreter<H>'s H: 'static bound;
  • writes (message, insert, set-option, run-command) push typed [HostEffect]s onto an accumulating log.

The effect boundary is the sandbox seam (the "terreiro"): Lisp can never corrupt editor state directly — it can only request typed, validated mutations that the runtime applies after eval. It is also the seam through which polyglot WASM/WASI plugins are hosted: a plugin authored in any language is driven by the same tatara-lisp host and emits the same typed effects, so the editor's apply path is identical regardless of plugin language.

This is the imperative tier of escriba's two-tier programmability model — the declarative tier is escriba-lisp's def-forms.