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

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License