Corman Lisp is a Common Lisp development environment for
Microsoft Windows operating systems running on Intel platforms. Corman Lisp
consists of a Common Lisp native code compiler for Intel processors, 80x86
assembler and disassembler, incremental linker and multi-window text editor. It
requires a system running a Microsoft Windows operating system (such as Windows XP,
Windows 2000, Windows ME or Windows NT). It is fully
integrated with the Win32 API, and all the Windows API functions are readily
available from Lisp.
Corman Lisp incorporates
state-of-the-art compiler technology to bring you a Common Lisp system
unmatched on Windows platforms.
Among the highlights of Corman Lisp:
Fast multi-generational garbage collector.
A state-of-the-art garbage collector supports extremely fast
collection of short-lived objects, avoiding pauses for collection (which
normally takes only a few milliseconds). The collector also supports compaction
(automatic defragmentation of the heap), weak pointers, finalization functions
and per-thread allocators.
Code is compiled 100% of the time. It feels like an interpreter,
and acts like one, but always gives you the best possible performance
of compiled, optimized code.
Compilation is extremely fast.
The sources to Corman Lisp (consisting of 90 common Lisp source files and
40,000 lines of code) load, compile and save to disk in under 10 seconds on a typical
workstation. You can try it yourself if you like (all sources are included).
Foreign Function Interface.
All functions in DLLs may be called directly from Corman Lisp code, including all
Win32 API functions. Most Win32 datatypes and many Win32 API functions come
predefined and ready to be used in the WIN32 package. A special C declaration
parser is built-in which allows Win32 C API functions to be used with little or
no modifications (obtained from Microsoft C header files).
The compiler has been designed to support multiple threads of execution, with special
variable bindings on a per thread basis. These threads are managed by the
operating system, affording you the full advantage of the features provided by
the operating system.
DLL and EXE Generation.
You can create Windows native DLLs and executable programs from Corman Lisp.
Foreign Callbacks into Lisp.
The Foreign Function Interface supports definition of callback functions which can
be used as Windows procedures or for other uses. This allows straight Win32 SDK
applications to be built, exploiting the whole power of the operating system.
These callbacks can be interactively edited and replaced, even while being used
by the operating system or another program. Several sample programs are
included which were translated line by line from C language programs in Charles
. These aren't intended to demonstrate
good Lisp programming style
rather to show it can be done.
Several key optimizations allow the compiler to generate very fast code. These include
automatic inlining of small commonly used Common Lisp functions, automatic
stack allocation of lexical variables which do not persist after the function
exits, and tail recursion elimination.
Integrated Intel Assembler.
Most Intel assembler instructions are supported, and can be used to do
special-purpose tasks from Corman Lisp for which a Lisp function is not
The source code for Corman Lisp is included with this release. Most of this source is in Common
Lisp, and self-compiles. The bootstrap kernel code is written in C/C++, and
Intel assembler, and is included with the standard Corman Lisp release.
Complete instructions for rebuilding Corman Lisp from sources are included with
Corman Lisp is built as an in-process COM server, and can be accessed as such to increase its
flexibility for use in different programming environments. The included
development environment interacts with Corman Lisp exclusively via COM
interfaces. The COM interface information is included in the Corman Lisp
sources in this package.
Integrated Development Environment (IDE).
A multi-windowed text editor for editing, compiling and
executing Corman Lisp programs is included. The IDE runs in a different thread
than Corman Lisp programs, always allowing full control even while Corman Lisp
is running. Note that the sources for this application are not included in this
Common Lisp Hyperspec Support.
The ANSI Common Lisp standard, along with much useful accompanying
documentation, has been made available in a package called the Common Lisp
function, as well as its
allow saving the entire Corman Lisp heap to a file, for later reloading. This
capability may be used to build standalone applications which do not require
the presence of the IDE.
function allows you to build standalone applications with Corman Lisp which
consist of a single .EXE file or (optionally) an .EXE file and a .DLL file.
These can be regular Windows applications, or console applications.
Source Code Management.
The compiler remembers the file and line number of every Lisp function you load.
You can right-click on a function or macro to find its source code for editing.