librep

librep is a shared library implementing a Lisp dialect that is lightweight, reasonably fast, and highly extensible. It contains an interpreter, byte-code compiler and virtual machine. Applications may use the interpreter as an extension language, or it may be used for standalone scripts.

The Lisp dialect was originally inspired by Emacs Lisp. However one of the main deficiencies of elisp--the reliance on dynamic scope--has been removed. Also, rep only has a single namespace for symbols.

librep is released under the terms of the GNU General Public License, copyright John Harper, and is known to compile on at least the following architectures:

  • Solaris/sparc
  • Linux/ix86,alpha,ppc
  • Compaq Tru64/alpha
  • FreeBSD
  • IRIX 6.5

features

Some of the features in recent versions of librep:

  • bytecode compiler and virtual machine
  • choice of lexical and dynamic scope for variables
  • single name space for symbols
  • a module system (modelled largely on Scheme48)
  • support for running Scheme code (currently targets r4rs)
  • tail-call elimination
  • mostly Scheme-like numbers (bignums, rationals, floats)
  • supports call-with-current-continuation
  • software preemptive threading
  • mostly Perl-like regular expression handling
  • extensible type, I/O and file handling
  • shared objects (a.k.a. plugins) appear as lisp libraries to the user
  • comprehensive support for spawning and controlling subprocesses

bindings

Librep bindings exist for the following libraries:

those missing URLs are included in the main librep distribution.

downloading

The latest released version of librep is available from:

You also need the GNU MP and GNU dbm libraries installed (and optionally GNU readline as well)

Alternatively you may use anonymous CVS to access the latest development sources (with no guarantees that they will work correctly, or even compile).

    cvs -d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome login
    cvs -d:pserver:anonymous@anoncvs.gnome.org:/cvs/gnome co librep

When prompted for a password for anonymous, simply press the Enter key. Updates from within the module's directory do not need the -d parameter. You can also browse the source tree.

mailing list

There is a librep mailing list, use the mailman interface to subscribe; you can also browse the archives.

miscellaneous

An HTML version of the manual is available here.

The permanent location for this page is http://librep.sourceforge.net/.

The sourceforge project page is http://sourceforge.net/project/?form_grp=580

John Harper <jsh@unfactored.org>