LispPad
Search…
⌃K
🖥

LispPad

The latest version of LispPad for macOS can always be found on the Mac App Store. Below is a history of all releases, including links to the corresponding binaries.
Date: 2022-08-14 Download: LispPad 1.7.1 (1361)
Bug fixes:
  • Bug fixes to indentation with spaces and semicolons
  • Bug fixes in library (lispkit draw chart bar) and (lispkit enum)
  • Fixed division by zero issues with truncate and floor procedures
  • Fixed bug preventing LispKit to correctly determine the maximum number of threads
  • Optimized display of objects of custom types
  • Removed duplicates in results of procedures available-fonts and available-font-families in library (lispkit draw)
  • Changed defaults for procedure string-insert! of library (lispkit string)
  • Made procedure open-file of library (lispkit system) work on iOS
New features:
  • Performance improvements: Optimized code generation for lambdas without captured expressions
  • Major revamp of all type-related functionality: each type is now represented by a type tag/symbol; procedure type-for from library (lispkit type) can be used to determine the type tag of a given object; breaking change for make-type, which now returns 5 values (the first is a new type tag)
  • Major revision of library (lispkit clos)
  • Support complex numbers for trigonometric and inverse trigonometric functions in library (lispkit math): sin, cos, tan, asin, acos, and atan
  • Reimplemented and extended library (lispkit enum) making it compatible with SRFI 209
  • New procedures in library (lispkit draw): bytevector->image, draw-styled-text, styled-text-size
  • New procedure in library (lispkit core): procedure-rename
  • Included new libraries: (lispkit math matrix), (lispkit bitset), (lispkit styled-text), (lispkit draw chart bar), (srfi 118), (srfi 141), (srfi 149), and (srfi 232)
  • New sample code: ObjectOrientation.scm, DrawBarCharts.scm, and StyledTextDoc.scm
Date: 2022-02-19 Download: LispPad 1.7.0 (1344)
Bug fixes:
  • Fixed several bugs in math libraries:
    • Prevent crash on division by zero for fx/
    • Make exact also work for negative numbers
    • Improve inexact when used with rationals with a very large numerator or denominator
  • Fixed scope of <sym> in (let <sym> ...) form, making it not accessible in the bindings
New features:
  • Allow preserving window setup when LispPad quits even if the setting "Close windows when quitting an app" is enabled.
  • Multi-threaded evaluator, executing multiple virtual machines in parallel
  • Go-inspired channels for synchronizing threads
  • Revamp of math libraries, addressing incompatibilities and fixing numerous bugs:
    • Introduce consistent interface for: random, flrandom, and fxrandom
    • Support unary arguments for fx-, fl-, and fl/
    • Remove fixnum-width, least-fixnum and greatest-fixnum
    • New procedures make-flonum, flexponent, flsignificand, flnext, flprev, fx-width, fx-greatest, fx-least, fl-epsilon, fl-greatest, and fl-least
    • Support for many arguments for procedures flmin, flmax, fxmin, fxmax, fx+, fx-, fx*, fx/, fx=, fx<, fx>, fx<=, fx>=, fl+, fl-, fl*, fl/, fl=, fl<, fl>, fl<=, and fl>=
  • New procedures in library (lispkit math util): make-nan, nan-negative?, nan-quiet?, nan-payload, and nan=?
  • New procedures in library (lispkit system): physical-memory, memory-footprint, and system-uptime
  • New procedure in library (lispkit port): display*
  • New procedures in library (lispkit debug): stack-size, call-stack-procedures, call-stack-trace, and set-max-call-stack!
  • Enabled concurrency support for library (srfi sicp)
  • Included new libraries: (lispkit thread), (lispkit thread channel), (scheme flonum), (srfi 18), (srfi 144), (srfi 208), (srfi 230)
  • Exceptions now include more information about the active call stack
  • Include tutorial for channels as new example code
Date: 2021-12-17 Download: LispPad 1.6.3 (1329)
Bug fixes:
  • Increased stack size of interpreter
  • Fixed file/editor loader
  • Fixed bug compiling every procedure twice
  • Fixed implementation of procedure expt
  • Fixed overflow issues in procedure approximate
  • Fixed crashes in the rounding functions when used with rational big integers
  • Moved procedure load into library (lispkit core)
New features:
  • Integrated simple bytecode optimizer
  • Implemented support for tagged procedures
  • Implemented support for procedures with optional arguments
  • Included new libraries: (lispkit math util), (lispkit math stats), (srfi 166), (srfi 227), and (srfi 229)
  • Included new documentation for libraries (lispkit prolog), (lispkit math stats), (lispkit math util), (srfi 166), (srfi 227), and (srfi 229)
  • Ported Peter Norvig's pattern matcher and algebraic simplifier from Common Lisp to Scheme and included it as new example code
  • Extended sample code Math.scm
  • Updated PDF library reference manual
Date: 2021-10-10 Download: LispPad 1.6.2 (1300)
Bug fixes:
  • Fixed bug in logic to detect valid local definitions
  • Handle libraries with errors more carefully to prevent crashes
  • Fixed bit counting bug in library (srfi 143) and expt in (lispkit math)
New features:
  • Include all libraries in the library inspector, including libraries that are not loaded
  • Support filtering in the libraries inspector
  • New procedures in library (lispkit core): thunk?, procedure-of-arity?, procedure-name, procedure-arity, procedure-arity-range, procedure-arity-includes?, arity-at-least?, arity-at-least-value
  • Added procedure icloud-directory to library (lisppad system)
  • Included new libraries: (srfi sicp), (srfi 102), (srfi 217), (srfi 224)
  • Included new documentation for library (lispkit text-table)
  • New sample code: Simplifier.scm; extended sample code Math.scm
Date: 2021-08-21 Download: LispPad 1.6.1 (1241)
Bug fixes:
  • Fixed behavior of "Play" button in editor windows, now setting the source directory correctly
  • Bug fixes in library (lispkit system): home-directory also supports a non-sandboxed mode, file-path handles tilde correctly
  • Bug fixes for a few procedures of library (lispkit archive zip)
  • Bug fix in procedure load (previously, load always returned no result instead of the result of the last executed expression)
New features:
  • New procedures in library (lispkit draw): bitmap->bytevector, bitmap-blur, bitmap-crop
  • Support tables and definition lists in library (lispkit markdown)
  • Support gzip and zlib container formats for deflate compression via library (lispkit bytevector)
  • Support symlink resolution via procedure file-path of library (lispkit system)
  • Included new libraries: (lisppad location), (lispkit text-table), (srfi 215), (srfi 216), (srfi 219), (srfi 221), (srfi 222), (srfi 223)
  • Included new sample code EUStats.scm; extended sample code Math.scm
  • Minor update of the LispPad and LispKit library documentation
Date: 2021-05-28 Download: LispPad 1.6.0 (1226)
Bug fixes:
  • Allow let* and letrec* to redefine variables
  • Minor bug fixes in LispKit libraries
New features:
  • Execute LispPad code on iOS with LispPad Go
  • Sync LispPad code via iCloud and use it with LispPad Go on iPhones and iPads
  • Show Markdown document structure in editor windows
  • Associate descriptions and help text with definitions (in Common Lisp style)
  • New libraries: (lisppad audio), (lispkit archive zip), (lispkit prolog), (srfi 143), (srfi 189), (srfi 214), (srfi 219), (scheme red), (scheme fixum), (scheme bitwise), (scheme division)
  • Extended library (lispkit string) with procedures string-decode-named-chars and string-encode-named-chars
  • Extended library (lispkit char) with procedure char-name
  • Extended library (lispkit core) with new environment procedures: interaction-environment?, custom-environment?, the-environment, environment-definable?, environment-define, environment-define-syntax, environment-import, environment-documentation, and environment-assign-documentation!
  • Extended library (lispkit sqlite) with procedures sqlite-database? and sqlite-statement?
  • Support custom environments for the compile procedure of (lispkit debug)
  • New sample code: PlayMusic.scm, ObliqueProjection.scm, VisualizePointSets.scm, Schelog.scm
Date: 2020-12-26 Download: LispPad 1.5.2 (1200)
Bug fixes:
  • Fixed several editor-related bugs
  • Fixed crash of virtual machine when execution gets aborted while loading and executing a file
  • Minor bug fixes in LispKit libraries
New features:
  • Complete revamp of user interface optimized for macOS Big Sur
  • Introduced key equivalents for session and editor windows
  • Rewrote line number display; allow selection of line ranges
  • Introduced feature to automatically indent Scheme code
  • Updated and extended documentation (accessible via "Help > LispPad Help" and "Help > LispPad Library Reference")
  • Included new libraries: (srfi 9), (srfi 180), (srfi 209), (srfi 210)
  • Extended library (lispkit log) with syntax log-time
  • Extended library (lispkit debug) with syntax time-values
  • Extended library (lispkit math) with procedures fxodd?, fxeven?, fx-width, fx-greatest, and fx-least in library (lispkit math).; generalized procedure number->string
  • Included new documentation for library (lispkit debug)
  • Included new sample code: DrawTrees.scm, DisplayTrees.scm, and EditDistance.scm
Date: 2020-10-05 Download: LispPad 1.5.1 (1150)
Bug fixes:
  • Fixed comparison of complex numbers and numbers involving NaN in library (lispkit test)
  • Fixed small bugs in (lispkit match) and included support for =.., *.., and **1
New features:
  • Improved Scheme automatic indentation algorithm
  • Redesigned Scheme definitions menu in editor windows
  • Revision of library (lispkit test) involving procedures test-group-failed-tests, test-group-passed-tests, failed-tests, passed-tests, current-test-epsilon
  • Refactored debugging functionality into library (lispkit debug)
  • New libraries: (srfi 194), (srfi 204), (lispkit sxml), (lispkit sxml html), and (lispkit sxml xml)
  • New documentation for libraries: (lispkit iterate), (lispkit comparator), (lispkit match), (lispkit csv), (lispkit log), and (lispkit test)
Date: 2020-07-01 Download: LispPad 1.5.0 (1100)
Bug fixes:
  • Speed up output in console windows by 10x
  • Save command history in session documents
  • Add "~/Documents/LispPad" as standard search path and search in external libraries and assets always first
  • Fixed a few path creation functions in library (lispkit system) which failed for corner cases
  • define-values can now be used wherever define can be used, fixing a long-standing bug
  • Distinguish between empty response and failed request for HTTP requests in library (lispkit port)
  • Fixed bugs in PDF library documentation and extended it to cover the new libraries
New features:
  • Reorganized menus and shortcuts; improved "Help" menu
  • Support for marking up identifiers for standard Scheme procedures and special-forms when syntax-highlighting is enabled
  • Support for auto completions, including setting a custom delay both in console and editor windows
  • New libraries: (lisppad applescript), (lispkit sqlite), (lispkit combinator), (lispkit system os), (srfi 195) and (srfi 196)
  • New documentation for libraries: (lispkit combinator), (lispkit stream), (lispkit iterate), (lispkit stack), (lispkit queue), and (lispkit system os)
  • Renamed library (lispkit iteration) into (lispkit iterate)
  • Extended library (lispkit date-time) with procedures date-time-add, date-time-add-seconds, date-time-diff-seconds, date-time-in-timezone, date-time-same?, date-time=?, date-time<?, date-time>?, date-time<=?, date-time>=?, and date-time-hash.
  • Extended library (lispkit core) with procedures thunk, thunk*, and apply-with-values
  • Extended library (lispkit string) with procedures string-normalize-diacritics and string-normalize-separators
  • Extended library (lispkit dynamic) with procedures unwind-protect and try
  • Extended library (lispkit control) with procedure letrec-values
  • Extended library (lispkit system) with procedures home-directory, system-directory, path-extension, append-path-extension, remove-path-extension, file-readable?, file-writeable?, file-deletable?, directory-readable?, directory-writeable?, and directory-deletable?.
  • Extended library (lispkit draw) with procedures set-image-size!, bitmap-size, bitmap-pixels, bitmap-exif-data, and set-bitmap-exif-data!
  • Support for timeouts in procedures handling HTTP ports in library (lispkit port)
  • Small tweaks to library (lispkit csv)
  • Library (lispkit box) now supports multi-value boxes
  • New sample code Covid.scm, ComposePhotos.scm, CovidGraph.scm, and ScriptingMacOS.scm
Date: 2020-03-30 Download: LispPad 1.4.4 (1089)
Bug fixes:
  • Fixed serious memory leak in the compiler and implemented several garbage collector enhancements
  • Made field access of records type safe
New features:
  • Link documentation for SRFI libraries directly from the libraries info panel of session windows
  • New example code: RenderMarkdown.scm, Polynomials.scm
  • New libraries: (srfi 6), (srfi 54), (srfi 162)
  • Extended library (lispkit dynamic) with assertion support: make-assertion-error, assertion, assert
  • New documentation for libraries (lispkit record), (lispkit regexp), (srfi 6), (srfi 54), (srfi 162)
  • Make LispPad Library Reference available in PDF form via the "Help" menu
Date: 2020-01-24 Download: LispPad 1.4.3 (1081)
Bug fixes:
  • Fixed bug in library (lispkit set) which was leading to multi-set behavior
  • Fixed garbage collection issue in library (lispkit hashtable)
  • Fixed cosmetic issues in the line number viewer of the text editor
New features:
  • Library documentation now directly accessible in the "Libraries" tab of session windows
  • Support for document type-specific text completions
  • Support logging of garbage collection runs
  • New mechanism for providing/configuring assets such as images, documents, etc., enabling libraries to depend on data in an extensible fashion
  • New example code: SpellNumbers.scm, Sudoku.scm; extension of Math.scm
  • New libraries: (lisppad speech), (lispkit markdown), (lispkit disjoint-set), (srfi 175), (srfi 167), (srfi 98), (srfi 87)
  • Extended library (lispkit system) with procedures asset-file-path, path-components, parent-path, path, and source-directory
  • Extended library (lispkit bytevector) with procedures read-binary-file and write-binary-file
  • Extended library (lispkit string) with procedures write-file, read-file, string-pad-center, string-empty?; string-concatenate now supports an optional separator character
  • Extended library (lispkit port) with procedures open-input-asset, open-binary-input-asset, call-with-output-bytevector, and call-with-output-string
  • Extended library (lispkit hashtable) with procedure hashtable-empty-copy; hashtable-hash-function can now return a hash function for all hashtables
  • Extended library (lispkit math) with procedure fxsqrt
  • Extended library (lispkit core) with procedure opt
  • Extended library (lispkit draw) to support assets, color lists and drawing of HTML
  • Added character set char-set:newlines to (lispkit char-set)
  • New documentation for libraries (lisppad speech), (lispkit port), (lispkit heap), (lispkit markdown), (lispkit disjoint-set), (srfi 175), (srfi 167), (srfi 98), (srfi 87)
Date: 2019-10-21 Download: LispPad 1.4.2 (1044)
Bug fixes:
  • Replaced garbage collector with a more robust implementation
  • Fixed several issues in library (lispkit math): integer->fx renamed to integer->fixnum, introduced fxlogical-shift-right and real->flonum, fixed bit-count, fixed fxmodulo to work with negative numbers
  • Fixed explanations for symbols containing "->"
New features:
  • Simplified printed representation of procedures
  • Provided a more complete set of hash functions via library (lispkit hashtable)
  • New libraries: (lispkit comparator), (srfi 174), and (srfi 177)
  • New documentation for libraries (lispkit math) and (lispkit bytevector).
Date: 2019-09-10 Download: LispPad 1.4.1 (1030)
Bug fixes:
  • Fixed handling of option-clicks to show documentation popovers
  • Fixed memory leak involving recursive local functions
  • Implemented algebraic datatypes in terms of more efficient internal functions
New features:
  • Allow logging of input and output of sessions
  • Support for uninterned symbols
  • Support for custom keywords in let-keywords
  • Extension and re-implementation of library (lispkit type)
  • New libraries: (lispkit stream), (scheme mapping), (srfi 146), (srfi 165), (srfi 173)
  • Inclusion of miniAdapton in a new third-party directory
  • New example code for generating mazes
  • Included documentation for (lispkit control), (srfi 173)
Date: 2019-08-21 Download: LispPad 1.4.0 (1004)
Bug fixes:
  • Bug fixes in library (lispkit gvector)
  • Fixed memory leak involving recursive local functions
New features:
  • Significant performance improvements in the LispKit interpreter
  • Documentation popovers in session and editor windows (use menu item "View > Explain..." or option-click on symbol)
  • Documentation viewer in environment sidebar of session windows
  • New SRFI libraries: SRFI 26, SRFI 33, SRFI 46, SRFI 55, SRFI 146, and SRFI 165
  • New libraries: (scheme mapping), (lispkit stream), (lispkit graph)
  • Included documentation for SRFI 26, SRFI 33, SRFI 46, SRFI 55, SRFI 146, SRFI 161, SRFI 165, (lispkit core), (lispkit list), (lispkit dynamic), (lispkit char), (lispkit char-set), and (lispkit string)
Date: 2019-02-27 Download: LispPad 1.3.1 (950)
Bug fixes:
  • Complete re-write of library import and export logic fixing numerous bugs and incompatibilities with R7RS
  • Improved reporting of errors in library definitions
  • Fixed output of multi-value results in the session window
  • Allow @ as initial character in identifiers
New features:
  • New libraries: (lispkit csv), (lispkit match), (lispkit regexp), (lispkit gvector), (lispkit date-time)
  • Extended (lispkit vector) and (lispkit list) libraries
  • Support for let-keywords and let*-keywords in library (lispkit control)
  • Support call tracing for individual procedures
  • Include call traces in the session log
  • Make the last three session results available via *1, *2, and *3
Date: 2019-01-04 Download: LispPad 1.3.0 (930)
Bug fixes:
  • Fixed font handling in session windows
  • Bug fixes affecting bytevector-copy!, fold-left, max, min, numerator, denominator, log, magnitude, gcd and lcm, as well as the escaping of symbols
  • Handle closing of ports correctly in library (lispkit port)
  • Fixed major bug in library (lispkit system) affecting the composition of file paths
  • Moved from #\dx???? syntax to #\x???? to represent character literals
New features:
  • Session log (for making all log data available via one window)
  • New libraries: (lisppad log), (lispkit log), (lispkit char-set), (scheme char)
  • Support for most Scheme libraries from R7RS large/Red edition: (scheme box), (scheme charset), (scheme comparator), (scheme generator), (scheme hash-table), (scheme ideque), (scheme list), (scheme rlist), (scheme set), (scheme sort), (scheme stream), (scheme text), (scheme vector)
  • New SRFI libraries: SRFI 14 (full + ascii), SRFI 101, SRFI 125
  • New functionality in library (lispkit test):
    • Support for nested test groups
    • Approximate tests
    • Handling of exceptions
  • More user-friendly error messages for operating system errors
  • New example code showcasing LispPad's drawing library
  • Extended Help menu
Date: 2018-11-05 Download: LispPad 1.2.3 (920)
Bug fixes:
  • The "LispPad Help" menu item still didn't work in version 1.2.2; this is fixed now
New features:
  • Support jumping to a given line number and to the beginning and end of a text document
  • Included implementation of "Tiny CLOS" as library (lispkit clos)
  • New SRFI libraries: SRFI 23, SRFI 34, SRFI 39, SRFI 95
  • Documentation for libraries (lispkit set) and (lispkit enum)
Date: 2018-11-02 Download: LispPad 1.2.2 (907)
Bug fixes:
  • The help book was missing in the last release; it's included again
Date: 2018-10-30 Download: LispPad 1.2.1 (903)
Bug fixes:
  • Revised all hash functions; fixed several hashing-related bugs
  • Bug fixes in library (lispkit draw)
  • Renamed library (lisppad app) to (lisppad system)
New features:
  • Support for dark mode
  • Markdown syntax highlighting
  • New preferences pane: colors customizable for syntax highlighting
  • Extended library documentation in LispPad's help book
  • New SRFI libraries: SRFI 11, SRFI 14, SRFI 16, SRFI 51, SRFI 161
  • New libraries: (lispkit draw turtle), (lisppad turtle)
  • New functionality in library (lispkit draw):
    • New drawing functions
    • Comprehensive font API
    • Support for multi-page PDF files
Date: 2018-08-21 Download: LispPad 1.2.0 (850)
Bug fixes:
  • There is now a HelpBook available within LispPad
  • Printing of all documents now works correctly
  • Bugs in SRFI 69 are fixed
  • Continuations are now correctly tagged and continuation? works as documented
  • Multiple libraries can now be imported with one import invocation, as required by R7RS
  • current-input-port, current-output-port, and current-error-port have been turned into parameter objects, as required by R7RS
  • (lispkit test) was extended to be more compatible with similar libraries
New features:
  • The menu showing currently opened windows now groups the windows by type
  • LispPad is now able to create, open and edit .txt and .md text documents
  • The new (lispkit draw) library provides a powerful API for creating drawings and saving them as PDF documents or image files
  • The new (lisppad app) library allows users to script LispPad directly using Scheme
  • LispPad now supports graphics windows to display drawings created with (lispkit draw)
  • New SRFI libraries: SRFI 111, SRFI 112, SRFI 113
  • New example code showcases the new drawing and scripting features
Date: 2018-06-19 Download: LispPad 1.1.1 (755)
Bug fixes:
  • Prelude and libraries path preferences are now handled correctly and do not result in access issues anymore
  • Programs blocking on functions like read can now be terminated
  • Minor bugs in bitwise operations for exact integers of arbitrary size fixed
  • string-split now returns a list instead of a vector
New features:
  • Allow setting a default home directory outside of the application's sandbox (in preferences)
  • Complete rewrite of the error reporting subsystem, including support for file-error? and read-error?
  • New library: (lispkit test)
  • New SRFI libraries: SRFI 69, SRFI 129, SRFI 137, SRFI 145, SRFI 151
  • New example code for coroutines, HTTP support, and a small compiler for arithmetic expressions
Date: 2018-02-08 Download: LispPad 1.1.0 (700)
Bug fixes:
  • Support tail patterns in syntax-rules and fix various syntax-rules-related bugs
  • Fixed major bug in macro expansion logic
  • Fixed major bug preventing internal definitions to work in many cases
New features:
  • Complete refactoring of the default libraries to match the R7RS specification
  • New libraries: (lispkit json), (lispkit wt-tree), (lispkit object), (lispkit stack), (lispkit queue), (lispkit logic)
  • New SRFI libraries: SRFI 63, SRFI 64, SRFI 158
  • Support for features and cond-expand
  • Support include and include-library-definitions in library definitions
  • Implement missing R7RS functionality: define-values, syntax-error, scheme-report-environment and null-environment.
  • Added SRFI 112-style support for human-readable information about the hardware and operating system on which LispPad is running
  • Simple API for HTTP GET requests
  • Simple native API for date/time functions
  • Bitwise operations for exact integers of arbitrary size
  • Extension of hashtable API
  • Extension of bytevector API
  • Extension of list API
  • New lightweight type abstraction mechanism
  • Support call tracing (as a simple debugging mechanism)
  • Name new session windows differently than new editor windows
Date: 2017-09-18 Download: LispPad 1.0.2 (640)
Bug fixes:
  • Garbage collection now does not accidentally collect anymore parts of parameter objects
  • Record type creation now working also for records with fields that are not set by the constructor
  • More syntax-rules bug fixes
New features:
  • Support for algebraic datatypes
  • Added a few additional destructive string functions
  • Added pretty printer via library (lispkit prettify)
  • New library for implementing priority queues: (lispkit heap)
  • New library for creating PDF files: (lispkit pdf)
  • Support for SRFI 152
  • New example code
Date: 2017-08-14 Download: LispPad 1.0.1 (620)
Bug fixes:
  • Files can now be opened via the Finder
  • Several issues with macros have been resolved in the Scheme interpreter
  • Several issues with String functions have been fixed in the Scheme interpreter
New features:
  • Added new Open Internally… menu item to access example source code and the source code of internal libraries
  • Support R6RS-style enumerations
  • Support for SRFI 31
  • Support for SRFI 35
  • Support for SRFI 135
Date: 2017-07-17 Download: LispPad 1.0.0 (600)
New features:
  • First published version