The XLISP family

From EDM2
Jump to: navigation, search

XLISP is a family of multi-platform LISP implementations, they comprise of a Scheme compatible interpreter (bytecode compiler for versions 3 and higher) called XLISP originally written by David Betz and he added few object oriented features taken from Smalltalk to the basic Scheme language. The core runtime is written in C while the rest is implemented in XLISP itself and the program was released into the public domain up until about version 2.1 where the license was changed. XLISP 2.1 is also the last version of the original XLISP package to be available in an OS/2 port.

The program was first released in 1983 as eXperimental LISP and was at the time a generic small LISP subset that was not Scheme compatible, when the first Scheme compatible version came out Mr. Betz changed the name of the package to XScheme but changed it back to XLISP after a couple of years. Various versions of the package are used in open source projects externally or internally as scripting engines, it is also the basis for the LISP that is used as an internal scripting engine by AutoCAD (AutoLISP) and some compatible packages like IntelliCAD.

XLISP-PLUS

Tom Almy had ported Xlisp to OS/2 and DOS and added a Microsoft Windows and Linux version, with Xlisp 2.1 he forked the program and introduced his own version called XLISP-PLUS. It is not known if the fork was due to the licence change introduced with version 2.1 or if it is due to Almy's interest in getting more Common Lisp features working on the XLISP system, but the original author resisted adding anything but an object system to the base Scheme specification.

XLISP-PLUS adds a host of Common Lisp features to Xlisp but also adds a huge amount of bug fixes, however changes to the original Xlisp such as the bytecode compiler that was introduced with version 3 have not been integrated in this fork. The maintainer stopped updating XLISP-PLUS in 1999 when CLisp was taken over by the Free Software Foundation since the maintainer believed that with the frequent CLisp updates, Xlisp would become "unnecessary". However, after 16 years of inactivity, Mr Almy suddenly kicked into life in early 2016 and created a new 3.05 version of XLISP-PLUS for MS Windows, Linux and Mac OS X, while neither the DOS not the OS/2 version got an update the libraries will function with the 3.04 OS/2 version, and he has also created a new Windows 3.x 16 bit version that will work under OS/2.

XLISP-STAT

A fork of XLISP 2.1 with statistical additions, originally developed for the Apple Macintosh by Luke Tierney in the 1980's but later ported to MS Windows, Atari ST, Amiga and most UNIX systems and a number of additional packages that add to the system are available although development of both the package and the add-ons has slowed down considerably in the last few years. There never was a native OS/2 version of XLISP-STAT but there is a currently maintained Win3x version that works fine under WinOS/2.

XLISP-STAT modifies some of the standard Lisp mathematical functions for to allow them to operate on lists and arrays of numbers and add some basic statistical and plot functions, including histograms, scatterplots, 3-dimensional rotatable plots and scatterplot matrices most of which are interactive to a degree.

Other forks

WINTERP is a derivative of XLISP-PLUS 2.1 that adds widget support for UNIX like operating systems that have the Motif widget library installed. Vienna LISP, also known as VLISP is an XLISP fork that is Common LISP compatible and adds a bytecode compiler, note that Vienna LISP is preferred usage over VLISP since there are at the least five other projects that use the VLISP moniker. Nyquist is a music programming language based on XLISP, while S-Lisp bolts s 3D graphics library onto XLISP. An Image Algebra or ANIMAL was an experimental version that handled image processing.

Versions

XLISP-PLUS
  • XLISP-PLUS v3.04 (1999-01-09)
Last known OS/2 version, note that the differences between 3.04 and 3.05 for other systems are primarily in the LISP portion of the code and if you download the xl305req.zip file from the XLISP-PLUS homepage you can run that version with the 3.04 version for OS/2.
  • XLISP-PLUS v3.05 (2016-02-19)
  • XLISP-PLUS v2.1gce (1998-05-28) - Last known Palm Pilot version
XLISP
  • XLISP v0.0 (1983)
  • XLISP v1.0 (1983)
  • XLISP v1.4 (1985)
  • XLISP v2.0 (1989)
  • XLISP v2.1 (1991)
  • XLISP v3 (1997 - some trivial bug fixes in 1998 and 2002)
Only released in a version for Microsoft Windows, introduces a bytecode compiler.
WINTERP
  • WINTERP 2.10 (2008) - Last known version.
Note that WINTERP release numbers are not synchronised with XLISP-PLUS, the 2.1 release is similar to a XP version 3.04 rather than the classic XP 2.1.
XLISP-STAT
  • XLISP-STAT v 3.52.23 (2013-03-20) - Last known version
Note that XLISP-STAT release numbers are not synchronised with XLISP

Links

Publications

Books

Articles & papers

XLISP
XLISP-PLUS
XLISP-STAT
Note that the homepage also contains a software package that runs on XLISP-STAT called ARC
ANIMAL
  • R. Brunelli & C. M. Modena: ANIMAL: An Image Algebra - An image processing enviroment based on XLISP - 1989 [PDF

Code examples

  • VEOS - An old experimental distributed system written in XLISP
  • VMAKE - A software configuration management tool written in Vienna LISP.

Licence and availability

Author

  • David Betz - Original Xlisp author
  • Tom Almy Original porter of XLISP to OS/2, maintainer of XLISP-PLUS
  • Luke Tierney - XLISP-STAT