https://github.com/jackrusher/scimacs
The Small Clojure Interpreter (SCI) integrated with emacs as a loadable module
https://github.com/jackrusher/scimacs
Last synced: about 2 months ago
JSON representation
The Small Clojure Interpreter (SCI) integrated with emacs as a loadable module
- Host: GitHub
- URL: https://github.com/jackrusher/scimacs
- Owner: jackrusher
- License: bsd-3-clause
- Created: 2023-03-17T02:40:45.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2023-03-30T10:01:12.000Z (about 2 years ago)
- Last Synced: 2025-01-15T11:57:25.719Z (3 months ago)
- Language: Emacs Lisp
- Size: 28.3 KB
- Stars: 99
- Watchers: 11
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# scimacs
The [Small Clojure Interpreter](https://github.com/babashka/sci) (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):``` shell
$ 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):``` shell
$ ./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:``` shell
$ 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.