LispKit 2.6
Monday, December 22, 2025
After more than one year of work, LispKit 2.6.0 was released. This release focuses on bug fixes, extensions of existing libraries, and a number of new libraries making macOS and iOS APIs available to LispKit programs.
New Libraries
🏛️ (lispkit image): This library provides a comprehensive interface to Apple's Core Image framework for advanced image processing operations. The library supports creating image processing pipelines using abstract images, applying various filters, and performing coordinate transformations.
🏛️ (lispkit image process): Library (lispkit image process) defines a high-level API for all the image filters provided by the Core Image framework of iOS and macOS. As opposed to the generic, imperative interface as implemented by library (lispkit image), the API of (lispkit image process) is functional: The main building blocks are image processors which transform abstract images. Since image processors are simply functions, they can be composed easily with existing functional composition operators, e.g. as provided by library (lispkit combinator).
🏛️ (lispkit vision): Library (lispkit vision) provides computer vision capabilities through Apple's Vision framework. The library supports optical character recognition (OCR), shape detection, barcode recognition, and image classification. All vision operations return future objects that execute asynchronously.
🏛️ (lispkit pdf): Library (lispkit pdf) provides an API for manipulating and analyzing PDF documents. The library supports creating PDF documents, managing pages, adding annotations, handling bookmarks, managing outlines, extracting content, and rendering pages.
🏛️ (lispkit draw web): Library (lispkit draw web) provides web page snapshotting capabilities through a WebKit-based web client. The library enables capturing images and generating PDFs from HTML content, local files, data streams, and remote URLs with configurable viewport settings and cropping options.
Local REPL Installation
As of version 2.6.0, LispKit now supports a simple way to build and install the read-eval-print loop and the required resource tree. Simply clone the repository from GitHub or download a distribution and type:
make installThis will build a release version of the REPL and install it under /user/local. By changing the PREFIX variable, it is possible to install the REPL anywhere. Here is an example:
make install PREFIX=/tmp/lispkit-testNow the interpreter can be invoked like this:
/tmp/lispkit-test/bin/lispkitThe distribution can be uninstalled in the following way:
make uninstall PREFIX=/tmp/lispkit-testRelease Notes
Here are the detailed release notes for LispKit 2.6.0:
Documentation for libraries is now included in this repository
New library for handling locations:
(lispkit location)New library for creating and editing PDF documents:
(lispkit pdf)New library for solving computer vision problems:
(lispkit vision); the library supports optical character recognition (OCR), shape detection, barcode recognition, and image classification.New libraries for processing/manipulating images, providing access to Apple's Core Image framework:
(lispkit image),(lispkit image process)New library for drawing maps:
(lispkit draw map)New library for making and drawing snapshots of web pages:
(lispkit draw web)New exported definitions in library
(lispkit draw):clip-drawing,bitmap-ppi,closed-polygon,inset-rect,size-ratio,rect-mid-point,rect-mid-x,rect-mid-y,zero-size,transpose.make-shapeaccepts a second optional argumentfreeze?which makes it possible to create a new shape from an existing one without introducing a dependency.Improvements for reading and writing images via
(lispkit draw): PDF files can now be read viaload-image,load-image-assetandbytevector->imagealso on iOS. New proceduressave-imageandimage->bytevectorsupport saving images as PDF.save-bitmapandbitmap->bytevectornow support a "quality factor" which indicates how strongly an image should be compressed.New procedures in library
(lispkit core):generate-uninterned-symbol,symbol<?New functionality for library
(lispkit enum): procedureenum-tag-mapperand enum constructors without name (to return the enum type)Make it easier to generate
date-timestrings with proceduredate-time->iso8601-stringand parse date-time strings viastring->date-timeconforming with ISO 8601/RFC 3339.Fixes
quasiquotefor expressions involving array literalsFixes the
(library ...)directive ofcond-expandFixes classes in library
(lispkit object); generic procedureobject->stringwas renamed toobject-descriptionNew sample code:
ImageComposition.scm,OCR.scm,MermaidDiagrams.scm,Pinterest.scm
Last updated