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-file
andwrite-binary-file
- Extended library
(lispkit string)
with procedureswrite-file
,read-file
,string-pad-center
,string-empty?
;string-concatenate
now 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-function
can 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: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
Bug fixes:
- Replaced garbage collector with a more robust implementation
- Fixed several issues in library
(lispkit math)
:integer->fx
renamed tointeger->fixnum
, introducedfxlogical-shift-right
andreal->flonum
, fixedbit-count
, fixedfxmodulo
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
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
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-keywords
andlet*-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
Bug fixes:
- Fixed font handling in session windows
- Bug fixes affecting
bytevector-copy!
,fold-left
,max
,min
,numerator
,denominator
,log
,magnitude
,gcd
andlcm
, 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
import
invocation, as required by R7RS current-input-port
,current-output-port
, andcurrent-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
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?
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-rules
and 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
features
andcond-expand
- Support
include
andinclude-library-definitions
in library definitions - Implement missing R7RS functionality:
define-values
,syntax-error
,scheme-report-environment
andnull-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