Download Picolisp
Stable version (recomended)
Release Notes for picoLisp-3.0.1
A. The CAR and CDR combinator functions (e.g. 'caddr') exist now also in the
32-bit version in all combinations of up to four 'a' and 'd' letters.
B. 'flip' now takes an optional 'cnt' argument, analog to 'rot'.
C. Fixed sporadic errors in the GUI involving nested calls to waitFd() and
out-of-band events in the Post/Redirect/Get protocol.
D. The HTML references (in "doc/ref*.html") for the core system with database,
Pilog and debug extensions are complete at last.
E. Analog to "lib/gcc.l" there is now a "lib/native.l" for the 64bit version. It
defines also a 'gcc' function, but with different semantics. While 'gcc' for
the 32-bit version takes a destination file name, a list of libraries, and an
arbitrary number of function symbols, e.g.
(gcc "tst" '("./lib1.so" "/usr/lib/lib2.so") 'foo 'bar)
and the C code for the functions 'foo', 'bar' etc. has to interface to the
interpreter by knowing about Lisp arguments and return values, takes the
64-bit version a destination file name, a list of libraries, and an arbitrary
number of list arguments, e.g.
(gcc "tst" '("./lib1.so" "/usr/lib/lib2.so")
(foo (X Y Z) '(Tim (8 B . 8))) X 3.14159 Y Z)
(bar (Fmt . @) 'I Fmt) )
Each list argument specifies the function symbol, a parameter list for the
function definition, and arguments to be passed to the 'native' function. The
C code does not need to care about interfacing to Lisp, accepting and
returning just plain C data types.
F. After some discussion in IRC, we re-introduced a feature that had been there
already once, in 2006/2007. It is called "transient symbol markup", and
changes how transient symbols are printed and edited in a terminal window.
Per default, transient symbols are no longer surrounded by double quotes, but
are instead shown with _underlines_. The idea is to visually emphasize the
fact that these symbols are not strings. In addition, pretty-printed
functions and other structured data become more readable.
There is a new global variable '*Tsm', which holds two strings (typically
escape sequences) in a dotted pair. The CAR is sent to the terminal (instead
of the opening double quote) before the symbol name is written, and the CDR
after that (instead of the closing double quote). With (off *Tsm) this
behavior can be switched off, and the system will accept and output transient
symbols with plain double quotes as before.
When typing a transient symbol in the line editor, the double quote is
visible at the moment it is entered, but will be hidden after that. While
moving within a line (for example with the 'h' and 'l' commands) the double
quotes pop up whenever the cursor is in their neighborhood, to make it easier
to change them, or to insert characters before or after them, but disappear
when the cursor moves away.
G. After the already mentioned discussion in IRC, an emacs mode has been created
to edit picolisp code with the "transient symbol markup" (Tsm).
The features it currently provides are:
* Syntax highlighting (a.k.a. font-locking).
* Closing parenthesis in multi-line s-exps are automatically spaced. #1
* Tsm rendering. #2
* Embedded picolisp repl in a buffer.
* Evaluate code on the go from any picolisp file buffer.
#1: This is user defined in the picolisp customization group.
#2: This is a sepparate minor-mode called "tsm-mode", which should be enabled
to make use of this feature.
Development version
- Devel-version: this is the most up-to-date version of PicoLisp, in a direct link to the main developer server. May contain bugs, but please help us resolving them.
Benchmarks
Editors
- PicoLisp mode for Vim: just insert the containing text in your .vimrc
- picolisp-mode: A major mode for Emacs.