/scimacs

The Small Clojure Interpreter (SCI) integrated with emacs as a loadable module

Primary LanguageEmacs LispBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

scimacs

The Small Clojure Interpreter (sci) compiled to a native library and integrated with emacs as a loadable module.

This code is very not ready for general consumption! If you aren't excited about figuring out how to build it on your platform, it's probably not ready for you yet.

Build

Requires Clojure, babashka, GraalVM version 22.3.1, and Rust.

If you are using a recent version of MacOS, have all the deps installed, and are a relatively lucky person, it might be as easy as doing this from the top-level of this project's directory structure (making sure that the Java on your path is the GraalVM version mentioned above):

$ bb all

Testing

There's a small elisp file that can be used to make sure things work. It's invoked like this (chmod if you have to):

$ ./test.el

Note that the shebang line in this file assumes a particular version of emacs at the path where homebrew installs it. It's entirely likely that you have a different version installed in a different place, so you may prefer to use:

$ emacs --script test.el

Using

See test.el for how to load this module in emacs. It currently has a single function API. Additional Work will be required to make things more pleasant to use from within emacs, including the addition of some callback functions on the sci side to operate on buffers and such.