Corman Lisp 以MIT许可开源
jopen 10年前
【Corman Lisp (Common Lisp for MS Windows) 以MIT许可开源】Corman Lisp是一个上世纪90年代开发的Common Lisp版本,现在宣布开源,项目主页:http://www.cormanlisp.com/features.html,介绍了它的主要特性。GitHub托管地址:https://github.com/sharplispers/cormanlisp,喜欢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.
- No interpreter. 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).
- Multi-threading. 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 Petzold's Programming Windows . These aren't intended to demonstrate good Lisp programming style ¾ rather to show it can be done.
- Optimizing Compiler. 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 possible.
- Source Code. 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 this package.
- COM Server. 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 package.
- 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 Hyperspec.
- SAVE-IMAGE function. The SAVE-IMAGE function, as well as its LOAD-IMAGE counterpart, 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.
- SAVE-APPLICATION function. The SAVE-APPLICATION 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.