🖥️LispPad

Version 2.0

Date: 2024-02-09 Download: LispPad 2.0 (1575)

Bug fixes:

  • Enforce that imported (immutable) definitions cannot be mutated, unless it's in the read-eval-print loop; export-mutable in library definitions enable mutability

  • Improved display of OS-level exceptions and errors in read-eval-print loop

  • Bug fixes in window management API provided by (lisppad system macos)

New features:

  • Revamp of graphics windows with support for a toolbar, zoom, export of drawings, and editing of window properties

  • Ported universal formatting facility from Common Lisp and made it available via library (lispkit format)

  • Support customization of read-eval-print-loop result formatting

  • Library (lispkit records) now supports extensible records compatible with SRFI 131

  • Procedure type-of of library (lispkit type) now returns a list of type tags (from most specific to least specific type)

  • New library (lisppad turtle) supporting indicators for turtles

  • Support for currencies included in library (lispkit system)

  • Renamed library (lisppad system) to (lisppad system macos)

  • Renamed library (lispkit system os) to (lispkit system call)

  • Extended libraries: (lispkit system), (lispkit port), (lispkit bitset), (lispkit system), (lispkit draw), (lispkit draw turtle), (lispkit core), (lispkit type), (lispkit bytevector), and (lisppad location)

  • New libraries: (lisppad turtle), (lispkit format), (lispkit crypto), (lispkit archive tar), (lispkit list set), (srfi 239), and (srfi 235)

  • New sample code: Blockchain.scm

Version 1.7.3

Date: 2023-02-12 Download: LispPad 1.7.3 (1400)

Bug fixes:

  • Improved R7RS regression tests

  • Bugfixes in library (lispkit bytevector) for procedures bytevector-copy and bytevector-copy!

New features:

  • Revamp of library (lispkit graph) with new procedures: graph-topological-sort, graph-graph-weakly-connected-components, graph-strongly-connected-components, and graph-shortest-paths

  • New libraries: (srfi 228), (srfi 233), and (srfi 236)

  • New documentation for library (lispkit graph)

Version 1.7.2

Date: 2022-12-22 Download: LispPad 1.7.2 (1395)

Bug fixes:

  • Fixed bug leading to deadlocks when using text ports

  • Fixed bug allowing to execute empty lists

  • Fixed serious bug leading to an infinite loop when iterating through stack traces

New features:

  • New menu item "Show in Finder" to show the current document in the Finder

  • Display memory footprint in session inspector

  • Show call stack when errors are shown in sessions

  • Limit stack size to prevent application crashes

  • New settings for defining the maximum stack size and the maximum number of active calls to trace upon errors

  • New procedure in library (lispkit thread): thread-max-stack

  • Included new libraries: (lisppad draw map)

  • New sample code: DisplayMap.scm

Version 1.7.1

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

Version 1.7.0

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

Version 1.6.3

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

Version 1.6.2

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

Version 1.6.1

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

Version 1.6.0

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

Version 1.5.2

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

Version 1.5.1

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)

Version 1.5.0

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

Version 1.4.4

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

Version 1.4.3

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)

Version 1.4.2

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).

Version 1.4.1

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)

Version 1.4.0

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)

Version 1.3.1

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

Version 1.3.0

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

Version 1.2.3

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)

Version 1.2.2

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

Version 1.2.1

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

Version 1.2.0

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

Version 1.1.1

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

Version 1.1.0

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

Version 1.0.2

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

Version 1.0.1

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

Version 1.0.0

Date: 2017-07-17 Download: LispPad 1.0.0 (600)

New features:

  • First published version

Last updated