zee
zee copied to clipboard
Intended extensibility mechanism?
I'm curious whether any thought has been given to extensibility yet. Given the emacs references, of course using a lisp seems appropriate, but with Neovim using Lua and VSCode using (Java|Type)script, that might close off future avenues of interoperability.
Emacs is my main inspiration and I want Emacs users to feel at home, including by having identical default bindings / macros etc.
When it comes to extensibility, my plan is to add a language agnostic plug-in system based on wasm -- so as long as there's a Lisp to wasm compiler, yes, although my immediate focus will likely be on Rust compiled to wasm plugins.
N.B. given the boost in exposure this project recently received, I'm working on expanding README with goals as well as a roadmap and website (as well as release a new version on crates.io)
Are there drawbacks to using wasm directly as an extension mechanism? I was under the impression that it's a very limited runtime (e.g. no built-in gc). That seems like it could be a bit gnarly. :thinking:
Regarding lisp-to-wasm, there are a couple of projects that do this. There is wasCm (https://github.com/FemtoEmacs/wasCm), which operates on a form of lisp, as well as schism (https://github.com/google/schism, from scheme and discontinued, but possibly still useful).