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.

Why another Lisp?

OpenLisp implements the ISO/IEC 13816 ISLisp language. See discussions on ISLISP.

What is the official site for OpenLisp?

Is there a discussion group?

Why call it 'Open' while it is not Open Source?

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?


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).

   ;; In your .emacs add something like:
   (setq inferior-lisp-program "/usr/bin/env openlisp -emacs")

Why OpenLisp is not Open Source?

I would like to have a "dual license" (Open Source and Commercial) in the spirit of MySQL. My customers have the source code, they are also free to make any changes they want.

May I have the sources?

If you send me an email with your real motivations, I generally give source access for free. In that case, you're not able to redistribute the source code (private copy) or use it commercially.

I got a GPF (or core dump) with the following code...

Please send me a bug report.

I have another question.

Please post your question to the forum (best choice) or ask me by mail.