Older versions

Version 2.4

The ARM version of uLisp now includes support for Adafruit's ATSAMD51-based series of boards: the Adafruit Metro M4, Adafruit ItsyBitsy M4, and Adafruit Feather M4. With 120MHz processors these are now the fastest platforms for running uLisp. For more information see Adafruit M4 boards.

A new ESP version of uLisp was released which supports the popular ESP8266 and ESP32-based boards. The ESP8266/ESP32 version includes wi-fi networking commands to allow you to take advantage of the wi-fi capabilities of the ESP8266 or ESP32 with the convenience of uLisp's compact syntax

The AVR version incorporates minor bug fixes.

AVR Version 2.4 - 9th October 2018

ARM Version 2.4b - 23rd September 2018

ESP Version 2.4 - 11th October 2018

Version 2.3

The 32-bit ARM version of uLisp now includes support for floating-point numbers in addition to the 32-bit integers supported in previous versions. Programs using integers will work exactly as in previous versions, and there should be no noticeable change in performance. For more information see Floating-point features.

The ARM, AVR, and MSP430 versions of uLisp also include a new Lisp Library feature, which allows you to compile uLisp with your own Lisp extensions. For more information see Lisp Library.

AVR Version 2.3 - 2nd June 2018

ARM Version 2.3 - 2nd June 2018

Version 2.2

uLisp ARM Version 2.2 adds support for the BBC Micro Bit; see BBC Micro Bit. uLisp MSP430 Version 2.2 adds support for the MSP430 FR5994 LaunchPad board.

AVR Version 2.2 - 19th May 2018

ARM Version 2.2a - 21st May 2018

MSP430 Version 2.2 - 19th May 2019

Version 2.1

uLisp Version 2.1 reduces the amount of workspace memory used by programs by about 25%. More of the example programs can now be run on an Arduino Uno.

Version 2.1 also adds a sleep function, which puts the processor into low-power mode for a specified time.

uLisp ATmega Version 2.1 - 21st April 2018

Version 2.0

uLisp Version 2.0 added an SD card interface to allow you to read from and write to SD cards. This allows applications such as:

  • Logging data to an SD card.
  • Reading and processing data from an SD card.
  • Reading uLisp programs from an SD card and adding them to the current workspace.

uLisp ATmega Version 2.0 - 10th February 2018

uLisp SAM/SAMD Version 2.0 - 10th February 2018

Version 1.9

uLisp Version 1.9 adds a number of new features, including: support for characters and the character functions charchar-codecode-char, and characterp; additional string functions string<string>read-from-stringprin1-to-string, and princ-to-string; the additional I/O functions read-linewrite-line, and write-string which support input/output via serial, SPI, and I2C where appropriate; and a sort function.

uLisp ATmega Version 1.9b - 3rd September 2017

uLisp SAM/SAMD Version 1.9a - 9th August 2017

Version 1.8

uLisp Version 1.8 allows arbitrary symbol names on platforms with more than the minimum 2Kbytes of RAM.

It also supports the MSP430F5529 and MSP430FR5969 LaunchPad boards, using the Energia IDE.

uLisp ATmega Version 1.8 - 15th April 2017

uLisp MSP430 Version 1.8 - 15th April 2017

Version 1.7

uLisp Version 1.7 adds the pretty printer function pprint, which allows you to print functions in a nicely formatted way, and a trace feature using trace and untrace, allowing you to trace the calls to and returns from up to three functions at a time.

It also fixes a long-standing bug which could give incorrect results when two functions using the same symbols called each other.

uLisp Version 1.7 - 27th March 2017

Version 1.6

uLisp Version 1.6 adds the &rest keyword to defun and lambda to allow you to define a function with a variable number of arguments, and adds the string functions concatenate and read-line.

It also improves the efficiency of save-image.

uLisp Version 1.6 - 4th March 2017

Version 1.5

uLisp Version 1.5 adds support for strings, allowing you to write programs that prompt the user for input, or manipulate strings. It includes the string functions subseq for extracting a substring from a string, string= for comparing strings, length for finding the length of a string, and stringp for testing for strings. It also includes several minor bug fixes.

1.5a fixes a problem affecting save-image/load-image.

uLisp Version 1.5a - 2nd March 2017

Version 1.4

uLisp Version 1.4 adds a built-in program editor edit that lets you step through a function definition, editing it a bit at a time, using a set of simple single-key editing commands you type at the keyboard; see Using the program editor.

It also includes room, which returns the number of free Lisp cells remaining.

uLisp Version 1.4 - 18th October 2016

Version 1.3

  • Adds setf which allows you to modify lists in place, allowing you to use lists as index-addressible arrays, and use association lists for efficient data storage.
  • The other in-place operations pushpopincf, and decf have been extended in the same way.
  • Fixes two bugs that affected append with null arguments, and with-spi.

uLisp Version 1.3 - 24th July 2016

Version 1.2

  • A simple, unified I2C and SPI interface using read-byte and write-byte to transmit data via the appropriate interface, and streams to identify which interface is being used. For more details see I2C and SPI serial interfaces.
  • The bitwise logical operators logandlogiorlogxorlognotlogbitp, and the bitwise shift operator ash.
  • 1.2a included a minor change that fixed a subtle problem affecting dolist.

uLisp Version 1.2a - 18th June 2016

Version 1.1

  • save-image and load-image allow you to save the uLisp image to EEPROM and reload it.
  • #x#o, and #b allow you to enter numbers in hexadecimal, octal, or binary respectively.
  • note now supports the ATmega1284P.

uLisp Version 1.1 - 6th June 2016

Version 1.0

Version 1.0 was the first version of uLisp.

uLisp Version 1.0 - 25th May 2016