LispPad

Lightweight Scheme Development on macOS

Version 1.4.2

Download

Date: 2019-10-21

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

Download

Date: 2019-09-10

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

Download

Date: 2019-08-21

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

Download

Date: 2019-02-27

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

Download

Date: 2019-01-04

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

Download

Date: 2018-11-05

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

Download

Date: 2018-11-02

Bug fixes:

  • The help book was missing in the last release; it's included again

Version 1.2.1

Download

Date: 2018-10-30

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

Download

Date: 2018-08-21

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

Download

Date: 2018-06-19

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

Download

Date: 2018-02-08

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

Download

Date: 2017-09-18

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

Download

Date: 2017-08-14

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

Release 1.0

Download

Date: 2017-07-17

First published version.