sweep is an embedding of SWI-Prolog in GNU Emacs. It
provides an interface for executing Prolog queries and consuming their
results from Emacs Lisp. sweep further builds on top of
this interface and on top of the standard Emacs facilities to provide
advanced features for developing SWI-Prolog programs in Emacs.
The sweeprolog Elisp package is available on NonGNU
ELPA, to install sweeprolog simply open Emacs and type M-x
package-install RET sweeprolog RET.
An alternative to installing from ELPA is to get the Elisp library
from the sweep Git repository:
sweep repository:
git clone https://git.sr.ht/~eshel/sweep
Or:
git clone https://github.com/SWI-Prolog/packages-sweep sweep
sweep to Emacs' load-path:
(add-to-list 'load-path "/path/to/sweep")
sweeprolog
Elisp library, load it into Emacs:
(require 'sweeprolog)
All set! sweeprolog automatically loads
sweep-module and initializes the embedded SWI-Prolog
runtime. For a full description of the different features of sweep,
see the sweep
manual.
Important note for Linux users: prior to version 29, Emacs
would load dynamic modules in a way that is not fully compatible with
the way the SWI-Prolog native library, libswipl, loads its
own native extensions. This may lead to sweep failing after
loading sweep-module. To work around this issue, users
running Emacs 28 or earlier on Linux can start Emacs with
libswipl loaded upfront via LD_PRELOAD, for
example:
LD_PRELOAD=/usr/local/lib/libswipl.so emacs