OpenLisp by Eligis

A full and efficient ISO/IEC 13816:2007(E) ISLISP Implementation

 

 

Resources

HOME
Version History
Downloads
Price
FAQ
Discussion group

Benchmarks

Gabriel's Benchmarks

Documentation

OpenLisp doc
Public Domain ISLISP 23.0
Public Domain ISLISP 21.0
Public Domain ISLISP 20.3

ISLISP Working Group

ISO/IEC 13816:2007(E) - Programming Language ISLISP

Other ISLISP implementations

TISL by Nobuto Izumi and Takayasu Ito
G-LISP (ISLISP subset in JAVA) by Jelinek Josef
OKI ISLISP by Taiichi Yuasa
dayLISP by Matthew Denson Prime-Lisp by Mikhail Semenov tiny Lisp ISLisproid by Gomi Hiroshi

Other LISP implementations by Eligis

Le-Lisp by INRIA (All x86 Eligis ports)

Free softwares

EmACT (emacs clone)
openlisp.el for GNU emacs. .emacs for GNU emacs.

OpenLisp by Eligis

A full and efficient ISO/IEC 13816:2007(E) ISLISP Implementation

(The latest stable version is 11.7.0 - Release date: 2022-12-13)

Home site is always: http://www.eligis.com


OpenLisp is a KISS (Keep It Stupid Simple) full conforming implementation of ISO/IEC 13816:2007 ISLISP Language, the International Standard version of Lisp. Entirely written in C, OpenLisp has been ported on around 200 different architectures (compiler/OS/processor) from small 16 bits MS-DOS systems to 64 bits systems such as DEC Alpha processor. All major processors (Intel 16/32 bits, Intel IA64, AMD/Intel EM64T, RISC-V, ARM/ARM64, Sparc 32/64 bits, Loongarch64, Motorola 68k and 88k, RS6000, PowerPC, Loongarch, MIPS R3000/R4x00/R8000/R10000, HP PA 32 and 64 bits mode, Alpha 32 and 64 bits mode, IBM s390, VAX) are supported. It even runs on Pocket PC.

OpenLisp is essentially a very fast interpreter (see benchmarks) that competes in speed with some CLtL compilers. It also has a compiler that produce LAP to be interpreted by a native virtual machine. You can even make standalone applications using the C code backend that also will make your code run from 10 to 20 times faster. OpenLisp is written in ISO C for the kernel and using POSIX like interface for the operating System when available. In the usual case, a new UNIX port is as simple as:

$ ./configure; make; make install

The goal of OpenLisp is to provide an efficient, modern and complete Lisp System for those whom want embedded Lisp processing in more conventional applications written in C, C++, Java or Visual Basic. Even if OpenLisp can be used with a toplevel loop and with all goodies that an old-timer lisp user enjoy, it is more tailored to be transparently integrated in native C or C++ applications. For this purpose, OpenLisp is distributed mainly as a Lisp library (or DLL on Microsoft world) that you can integrate into your main application. It can also be compiled as a COM or CORBA server. The memory footprint is very small with less than 200 Kbytes for the complete kernel and less than 400 Kbytes for a usable Lisp System data. There is no limit on the maximum memory that the System can use. With little efforts, you can exchange data between C and Lisp. OpenLisp extends the ISLISP standard to ease port from other Lisp Language, mainly Common Lisp. The kernel can be compiled to support the UNICODE IS0/IEC 10646-1:1993 (16 bits) character sets with UTF-16 encoding instead of the IS0 8859-1 (8 bits) character sets. It also provides a consistent interface to communicate using Lisp streams with BSD, POSIX sockets and/or WinSocks sockets.


Main features:

  • Conforming implementation of ISO/IEC 13816:2007(E) ISLISP Language.
  • Library extensions: defstructs, hash-tables, profiler, editors, sequences, regular expressions, simple bit vector...
  • High level of portability (> 100 systems from 16 to 64 bits processors - list here).
  • Entirely written using ISO/IEC 9899:1990 C Programming Language. (no external package or library required).
  • Extension of ISLISP I/O streams to support BSD, Winsock or POSIX sockets when available.
  • Extension of ISLISP to support UNICODE character sets (on Windows NT and some unixes like Linux and Solaris).
  • Easily extensible in C or C++ with automatic external interface. (see sample)
  • Portable LAP compiler (code is from 2 to 4 times faster). (see sample)
  • C backend compiler (code is from 10 to 20 times faster). (see sample)
  • Execore that combine a core image and OpenLisp into a standalone executable.
  • Daemon mode where OpenLisp can be used as a daemon process (Unix).
  • Virtual allocator and memory manager.
  • Fully integrated with GNU Emacs editor. (screenshot)
  • OpenLisp Server Page module (call Lisp from an HTML page). (see sample)
  • Process functions to act as a server (fork, wait, waitpid, kill).
  • Code can be compiled as DLL or shared library.
  • Can be used with a database (using ODBC link).
  • Can be used with MySQL and PostgreSQL server (both using ODBC and native client interface).
  • Can read from an write to pipes (UNIX and WIN32).
  • Can be compiled as COM, DCOM or CORBA server.
  • Can be used as a shell language (#!/usr/bin/openlisp). (see sample)
  • Can be used as CGI script language.
  • Can be used as a JNI JAVA module. (see sample)
  • Can run as a standalone HTTP server. (see sample)
  • Can get URL using HTTP/1.1 protocol. (see sample)
  • Can send mails using SMTP protocol. (see sample)
  • Can read news using NNTP protocol. (see sample)
  • Can be used to read XML file as easily as 'read'. You can read the complete file or only sub-trees, one at a time.
  • Can be used with mod_lisp, an Apache module to write Internet applications in Lisp.
  • ...

LICENSE

OpenLisp is a commercial product that is sold with binaries and sources (excepted memory management and evaluator). Full source licenses to make ports may be discussed.

The author, Christian Jullien, is an active AFNOR expert of ISLISP normalization for more than 10 years.

You can download the following OpenLisp ports free of charge for an exclusive non-commercial usage. Please download the LICENSE file if it's not already in the archive.

  • Non-commercial license : LICENSE
  • Commercial license : price

Files with taz suffixes are Unix compressed tar (tar.Z) format. Files with tgz suffixes are Unix gzipped tar.


Other downloads

You can also get :

  • a free DVI copy of the public domain specifications of ISLISP Language: pd-islisp.dvi.gz
  • a free PDF copy of the public domain specifications of ISLISP Language (v21.0): pd-islisp.pdf.zip
  • a free PDF copy of the public domain specifications of ISLISP Language (v20.3): pd-islisp.pdf.zip
  • a free Word copy of the public domain specifications of ISLISP Language: pd-islisp.doc.zip
  • a free ISLISP port of Gabriel benchmark's : gabriel.zip
  • a free Word copy of OpenLisp Language: openlisp.doc.zip
  • a free non-regression tests suite for ISLISP (part of OpenLisp tests) : testfn.zip
  • a free bunch of OpenLisp code and samples form repository: repository

Hints to test the UNICODE version.

The Windows UNICODE version works only on Windows NT/2000/XP (not on Windows 95/98). After launching OpenLisp, select Option and choose a font that supports UNICODE (MingLiU works well for Japanese on my computer - even on US NT). You can play with a rudimentary Emacs like editor and edit a sample file UNICODE that reside on ./contrib/fibwide.lsp.

(edit "./contrib/fibwide.lsp") (see screenshot)


Other ISLISP implementations

ISLISP resources


Contact

Eligis - 4, villa des Reinettes - 95390 Saint-Prix (France)

mailto: jullienσeligis.com or by phone +33 (0) 1.34.27.60.09

© 1988 - 2019 Eligis. All Rights Reserved.


OpenLisp development support

I want to support OpenLisp development and make a gift
Gift for OpenLisp development support optional message

See C. Jullien sur LinkedIn Valid XHTML 1.1! Valid CSS! Level Triple-A conformance icon, 
                    W3C-WAI Web Content Accessibility Guidelines 1.0 EmACT editor