alisp now implements more than three quarters of Common Lisp. It has a basic profiler and also a debugger with stepping, a feature that most free implementations lack.
Homepage is https://savannah.nongnu.org/projects/alisp.
alisp is free software under GPL version 3 or later.
Quick assessment (2024-10-06)
- Tested with version 0.999 on Kubuntu Linux.
- Easy to build, but it does require the Autoconf toolkit.
- Unlike npt, all of the C source code is in one big main.c.
- Has one float type, which corresponds to a C double.
- For some reason the provided script test.pl just hangs.
Building
autoreconf -i ./configure make
The -i flag to autoreconf means to install any missing auxiliary files.
Not yet implemented
- &environment
- *debug-io*
- *query-io*
- *terminal-io*
- *trace-output*
- *, **, *** variables
- +, ++, +++ variables
- /, //, /// variables
- apropos
- char-name
- decode-float
- decode-universal-time
- define-symbol-macro
- get-universal-time
- load-time-value
- make-sequence
- name-char
- pathname-match-p
- rationalize
- stream-element-type
- stream-external-format
- with-input-from-string
- with-output-to-string
Profiling
An extremely simple example:
[CL-USER]> (al-start-profiling)
T
[CL-USER]> (+ (+ 2 2) 2)
6
[CL-USER]> (al-stop-profiling)
T
[CL-USER]> (al-report-profiling)
((+ 2 10))
[CL-USER]> (al-clear-profiling)
T
Note that:
- Here ((+ 2 10)) means that + was called twice, and the time taken was 10.
- The time taken is in the units of the C library's clock function, i.e. microseconds.
Topic: profiler