OpenLisp FAQ

What is ISLISP?

ISLISP was designed on the bases of KL (proposed by Japan) and
CLOS (proposed by US), reflecting experiences of COMMON LISP,
EULISP, LE LISP, and SCHEME, and taking into account common
practices in the Lisp community. ISLISP is a small Lisp, but it
is designed with extensibility in mind, trying to keep
compatibility with existing Lisp dialects, too.
ISLISP would be embeddable in COMMON LISP implementations without
big efforts, but ISLISP will promote efficient implementations if
it is implemented from scratch. ISO ISLISP, ANSI COMMON LISP and
IEEE SCHEME would be co-existing and complementary in the Lisp
community, since they have their own distinctive features in
languages, systems, and applications.

When development started (back in 1988), 'Open' was used to design
Open Systems as with POSIX. OpenLisp meant a Lisp open to external
world. Wikipedia give the following definition:
"Open system (computing), one of a class of computers and associated
software that provides some combination of interoperability, portability
and open software standards, particularly Unix and Unix-like systems"
That was clearly the initial goal for OpenLisp that, later, followed
the ISLISP standard.

How fast is it?

OpenLisp interpreter is probably the world fastest Lisp interpreter
and the C backend complier compares to the best CLtL
implementations (see the benchmarks).

Where can I find documentation for OpenLisp.

You must first read Public Domain ISLISP standard (islisp.doc)
then read the OpenLisp specific extensions (olus.doc). You can
get both documentations from the site.

Is it a toy implementation?

NO! OpenLisp is used daily used in 24/7 servers with a lot of Mb
core images.

SETQ does not work at toplevel.

ISLISP standard requires variable declaration at toplevel.

(DEFGLOBAL x 100)
(SETQ x 0)

I got an error when trying to get the car of nil, i.e. (CAR nil).

Yes, that's the expected behavior of ISLISP, see the Public Domain ISLISP
standard (islisp.doc) or ISO document.

How can I use dynamic variables?

Use (DEFDYNAMIC, DYNAMIC-LET, DYNAMIC and SET-DYNAMIC forms).

How can I exit from the toplevel?

Try (QUIT) or (END) function.

&aux, &optional and other lambda-list keywords are missing.

Yes, ISLISP supports only &rest but you can add a new syntax with
lambda-list-hook function (see example in contrib/defhook.lsp)

My favorite CLtL function XXX is missing.

ISLISP (and OpenLisp) has not the goal to be CLtL compatible.

It there a compiler?

Yes, the compiler can generate portable LAP file (2x faster)
and/or C code (15-20x faster). Check the benchmark page.
The C backend version allows you to make single .exe file standalone
applications in less than 500Kb.
NOTE: The C backend requires the full version.

Can I make a GUI application with OpenLisp?

Not directly but you easly can bind OpenLisp with your C/C++ GUI
code. I've made some C/C+ MFC code that way. You can also bind a
graphic library (a sample exists for SDL).

Can I make standalone executable?

Yes, but you need the complete (non-free) system for that.

What are fasl (.fsl) files?

The fasl format was made to provide a fast way to load interpreted files
when OpenLisp was only interpreted. With LAP format and the C backend,
compiler fasl is now obsolete. As a good advice, you should delete all
fasl files from your system and never use .fsl files again.

There is no OpenLisp version for my favorite UNIX system.

Ask me.

Is there any UNICODE support?

Yes. OpenLisp can be compiled to support UNICODE natively. In that mode
all characters are 16 or 32 bits. This mode is supported on most systems:
Windows, Linux, unix ... You may have to configure your system and install
fonts for the caracter range you want to display.

How can I use UNICODE text version on Windows?

You need a terminal that can display UNICODE characters.
For example, you can use mintty that comes with cygwin an run:

mintty openlisp-unicode -emacs -utf8

You can install a fixed font with UNICODE characters you want to use
(simsun.ttc works well)

Can I run OpenLisp as GNU Emacs inferior-lisp-mode?

Yes, launch openlisp with -emacs option.
This option is supported since 8.1.0 version
You can download my .emacs from OpenLisp site (under Free Software).