Version 1.4.4
Date: 2020-03-30
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
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 ofMath.scm - New libraries:
(lisppad speech),(lispkit markdown),(lispkit disjoint-set),(srfi 175),(srfi 167),(srfi 98),(srfi 87) - Extended library
(lispkit system)with proceduresasset-file-path,path-components,parent-path,path, andsource-directory - Extended library
(lispkit bytevector)with proceduresread-binary-fileandwrite-binary-file - Extended library
(lispkit string)with procedureswrite-file,read-file,string-pad-center,string-empty?;string-concatenatenow supports an optional separator character - Extended library
(lispkit port)with proceduresopen-input-asset,open-binary-input-asset,call-with-output-bytevector, andcall-with-output-string - Extended library
(lispkit hashtable)with procedurehashtable-empty-copy;hashtable-hash-functioncan now return a hash function for all hashtables - Extended library
(lispkit math)with procedurefxsqrt - Extended library
(lispkit core)with procedureopt - Extended library
(lispkit draw)to support assets, color lists and drawing of HTML - Added character set
char-set:newlinesto(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
Bug fixes:
- Replaced garbage collector with a more robust implementation
- Fixed several issues in library
(lispkit math):integer->fxrenamed tointeger->fixnum, introducedfxlogical-shift-rightandreal->flonum, fixedbit-count, fixedfxmoduloto 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
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
miniAdaptonin 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
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
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-keywordsandlet*-keywordsin 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
Bug fixes:
- Fixed font handling in session windows
- Bug fixes affecting
bytevector-copy!,fold-left,max,min,numerator,denominator,log,magnitude,gcdandlcm, 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
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
Bug fixes:
- The help book was missing in the last release; it's included again
Version 1.2.1
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
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
importinvocation, as required by R7RS current-input-port,current-output-port, andcurrent-error-porthave 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
.txtand.mdtext 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
Bug fixes:
- Prelude and libraries path preferences are now handled correctly and do not result in access issues anymore
- Programs blocking on functions like
readcan now be terminated - Minor bugs in bitwise operations for exact integers of arbitrary size fixed
string-splitnow 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?andread-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
Bug fixes:
- Support tail patterns in
syntax-rulesand fix varioussyntax-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
featuresandcond-expand - Support
includeandinclude-library-definitionsin library definitions - Implement missing R7RS functionality:
define-values,syntax-error,scheme-report-environmentandnull-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
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
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