Version 1.7.0
Date: 2022-02-19
Bug fixes:
- Fixed several bugs in math libraries:
- Prevent crash on division by zero for
fx/ - Make
exactalso work for negative numbers - Improve
inexactwhen used with rationals with a very large numerator or denominator
- Prevent crash on division by zero for
- 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, andfxrandom - Support unary arguments for
fx-,fl-, andfl/ - Remove
fixnum-width,least-fixnumandgreatest-fixnum - New procedures
make-flonum,flexponent,flsignificand,flnext,flprev,fx-width,fx-greatest,fx-least,fl-epsilon,fl-greatest, andfl-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<=, andfl>=
- Introduce consistent interface for:
- New procedures in library
(lispkit math util):make-nan,nan-negative?,nan-quiet?,nan-payload, andnan=? - New procedures in library
(lispkit system):physical-memory,memory-footprint, andsystem-uptime - New procedure in library
(lispkit port):display* - New procedures in library
(lispkit debug):stack-size,call-stack-procedures,call-stack-trace, andset-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
Version 1.6.3
Date: 2021-12-17
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
loadinto 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
Version 1.6.2
Date: 2021-10-10
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)andexptin(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-directoryto 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 codeMath.scm
Version 1.6.1
Date: 2021-08-21
Bug fixes:
- Fixed behavior of "Play" button in editor windows, now setting the source directory correctly
- Bug fixes in library
(lispkit system):home-directoryalso supports a non-sandboxed mode,file-pathhandles tilde correctly - Bug fixes for a few procedures of library
(lispkit archive zip) - Bug fix in procedure
load(previously,loadalways 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-pathof 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 codeMath.scm - Minor update of the LispPad and LispKit library documentation
Version 1.6.0
Date: 2021-05-28
Bug fixes:
- Allow
let*andletrec*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 proceduresstring-decode-named-charsandstring-encode-named-chars - Extended library
(lispkit char)with procedurechar-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, andenvironment-assign-documentation! - Extended library
(lispkit sqlite)with proceduressqlite-database?andsqlite-statement? - Support custom environments for the
compileprocedure of(lispkit debug) - New sample code:
PlayMusic.scm,ObliqueProjection.scm,VisualizePointSets.scm,Schelog.scm
Version 1.5.2
Date: 2020-12-26
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 syntaxlog-time - Extended library
(lispkit debug)with syntaxtime-values - Extended library
(lispkit math)with proceduresfxodd?,fxeven?,fx-width,fx-greatest, andfx-leastin library(lispkit math).; generalized procedurenumber->string - Included new documentation for library
(lispkit debug) - Included new sample code:
DrawTrees.scm,DisplayTrees.scm, andEditDistance.scm
Version 1.5.1
Date: 2020-10-05
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 procedurestest-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)
Version 1.5.0
Date: 2020-07-01
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-valuescan now be used whereverdefinecan 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 proceduresdate-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>=?, anddate-time-hash. - Extended library
(lispkit core)with proceduresthunk,thunk*, andapply-with-values - Extended library
(lispkit string)with proceduresstring-normalize-diacriticsandstring-normalize-separators - Extended library
(lispkit dynamic)with proceduresunwind-protectandtry - Extended library
(lispkit control)with procedureletrec-values - Extended library
(lispkit system)with procedureshome-directory,system-directory,path-extension,append-path-extension,remove-path-extension,file-readable?,file-writeable?,file-deletable?,directory-readable?,directory-writeable?, anddirectory-deletable?. - Extended library
(lispkit draw)with proceduresset-image-size!,bitmap-size,bitmap-pixels,bitmap-exif-data, andset-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, andScriptingMacOS.scm