Announcing uLisp Release 4.9


#1

Release 4.9 of uLisp features new features and improvements in several areas:

Graphics

On most boards that include a built-in display uLisp now provides a read-pixel function that allows you to read a pixel from the display. This makes it possible to save a copy of the screen to an SD card, or design games that directly read the display. See Graphics extensions - read-pixel.

Boards with a touchscreen can use the new touchscreen function to read the coordinates of a touch on the screen. See Graphics extensions - touchscreen.

Finally, display-size returns a list giving the display width and height, making it easier to write functions that work on any display. See Graphics extensions - display-size.

Wi-Fi

The Wi-Fi extensions now automatically synchronise the board’s internal clock to the correct time and date, using an NTP server, and a new get-time function returns a list giving the time and date. See Wi-Fi extensions - get-time.

Terminal support

The uLisp built-in line editor now includes autocomplete, as provided on the PicoCalc, Cardputer, and T-Deck. Just press Tab to step through the alternative completions for a built-in symbol. See Using uLisp from a terminal - autocomplete.

When using parenthesis matching on terminals that provide VT100 emulation you can now configure the appearance of matching parentheses; see Using uLisp from a terminal - customising parenthesis matching.

Language features

uLisp now includes bind, a simplified version of the Common Lisp special form destructuring-bind, which lets you bind one or more variables to the values in a list returned by evaluating a function. See Language reference - bind.

Additional board support

The ARM version of uLisp adds support for the Adafruit PyPortal and PyPortal Pynt, based on the ATSAMD51 with an ESP32 coprocessor for Wi-Fi, and with a fast 320x240 colour display with a resistive touchscreen. See Adafruit PyPortal.

The ESP version of uLisp adds support for the M5Stack Tab5, based on the ESP32-P4 plus an ESP32-C6 coprocessor for Wi-Fi, and with a fast 1280 x 720 5" display and a touchscreen. See M5Stack Tab5.

Bug fixes

Fixed a bug in documentation (thanks @Ginkgo!).


#2

Hello,

Thank you very much for the new release and for adding support for the M5Stack Tab5!

Since the Tab5 uses the HY2.0-4P (Grove) interface on Port A (mapped to G53 and G54 ), will the Unit CardKB work “plug and play” with the default uLisp 4.9 firmware?

Best regards,


#3

The Unit CardKB uses I2C, and those pins are accessible in uLisp using with-i2c. I’m not sure if that’s what you meant by “plug and play”. You’d still have to write a Lisp program to read the keyboard and respond to the characters, so it wouldn’t immediately give you a “uLisp Machine” like the Cardputer uLisp Machine, which has additional code to handle the keyboard input.


#4

Hello David,

Ok, makes total sense. Thanks for the clarification!

Best regards