Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Intended extensibility mechanism? #22

Open
asthasr opened this issue Apr 2, 2022 · 3 comments
Open

Intended extensibility mechanism? #22

asthasr opened this issue Apr 2, 2022 · 3 comments
Labels
question Further information is requested

Comments

@asthasr
Copy link

asthasr commented Apr 2, 2022

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.

@mcobzarenco
Copy link
Collaborator

mcobzarenco commented Apr 2, 2022

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)

@mcobzarenco mcobzarenco added the question Further information is requested label Apr 2, 2022
@asthasr
Copy link
Author

asthasr commented Apr 4, 2022

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. 🤔

@gaetgu
Copy link

gaetgu commented Apr 6, 2022

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).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants