Ecaml is a library for writing Emacs plugins in OCaml. It uses Emacs 25 support for plugins to load native OCaml compiled code.
Published: 03 Jan 2018
Emacs plugin in OCaml
Ecaml is a library for writing Emacs plugins in OCaml. It uses Emacs 25 support for plugins to load native OCaml code into Emacs.
Building a plugin
Using Jane Street jenga rules
(only_shared_object true) to the
executables stanza in your jbuild. For instance:
my_plugin.so with jenga. This has been tested in opam using jane-build.
Using other build systems
You need to use the
-output-complete-obj option of ocamlopt to produce a self-contained shared object file. For instance to build the plugin in the
$ ocamlfind ocamlopt -linkpkg -package ecaml -thread -output-complete-obj \
-runtime-variant _pic -pp ppx-jane example_plugin.ml -o example_plugin.so
As of Emacs version 25, Emacs supports plugins. Here is the API:
Here's a tutorial:
Here's an example plugin:
Note that Emacs modules must be GPL compatible, so you must make sure that your work based on Ecaml is released under a GPL compatible license.
Ecaml itself is released under the Apache 2.0 license which is GPL compatible.