- 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)
- Complete re-write of library import and export logic fixing numerous bugs and incompatibilities with R7RS
- Improved reporting of errors in library definitions
- Support call tracing for individual procedures
- Make the last three REPL results available via
*1
,*2
, and*3
- Allow
@
as initial character in identifiers
- New libraries:
(lispkit log)
,(lispkit char-set)
,(scheme char)
,(srfi 14 ascii)
,(srfi 101)
,(srfi 125)
- Support 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)
- Extended library
(lispkit test)
: support nested test groups, approximate tests, and handle exceptions correctly - Handle closing of ports correctly in library
(lispkit port)
- Fix major bug in library
(lispkit system)
affecting the composition of file paths - Bug fixes affecting
fold-left
,max
,min
,numerator
,denominator
,log
,magnitude
,gcd
andlcm
, as well as the escaping of symbols - Move from
#\dx????
syntax to#\x????
to represent character literals - Return more user-friendly error messages for operating system errors
- Migrated project to Xcode 10.1 and ported code to Swift 4.2.1
- Included implementation of "Tiny CLOS" as library
(lispkit clos)
- New SRFI libraries: SRFI 23, SRFI 34, SRFI 39, SRFI 95
- Migrated project to Xcode 10.0 and ported code to Swift 4.2
- Small bug fixes in library
(lispkit draw)
- Fixed serious hashing bug (crashing LispKit)
- New SRFI library: SRFI 14, SRFI 16
- Several substantial extensions of library
(lispkit draw)
- Support for turtle graphics via library
(lispkit draw turtle)
- New example code showcasing
(lispkit draw turtle)
features - New SRFI library: SRFI 11, SRFI 51, SRFI 161
- Bugfixes and name changes in
(lispkit draw)
- New example code showcasing
(lispkit draw)
features
- Allow importing multiple libraries with one
import
invocation - Mark continuations correctly and fix
continuation?
- Turn
current-input-port
,current-output-port
, andcurrent-error-port
into parameter objects - New library:
(lispkit draw)
- New SRFI libraries: SRFI 111, SRFI 112, SRFI 113
- Fixed bugs in SRFI 69
- Extend
(lispkit test)
to be more compatible to similar libraries
- Fix memory leaks
- Provide a comfortable command-line interface supporting both a read-eval-print loop and the execution of scripts
- 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- 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
- Migrated project to Xcode 9.3 and Swift 4
- Bug fixes (esp. in
syntax-rules
) - Fixed logic for referencing
unquote
, etc. inbackquote
. - Include native date/time operations and functionality for accessing user data
- Native support for a few common string functions
- Support for
read-token
(generalization ofread-line
) - Added libraries
(lispkit stack)
,(lispkit queue)
,(lispkit logic)
- Implement bitwise operations for exact integers of arbitrary size
- Complete rewrite of the error reporting and representation sub-system
- Preparations for managing source locations
- Support simple HTTP API
- Support compression for bytevectors
- Implement call tracing
- Fixed bug preventing some internal definitions to not work
- Support all standard R7RS small Scheme libraries
- Support for:
(srfi 158)
,(lispkit wt-tree)
,(lispkit object)
- Support for tail patterns in
syntax-rules
- Support for
features
andcond-expand
- Support for
include
andinclude-library-declarations
- Support for
syntax-error
- Support for
define-values
- Support a new lightweight custom type declaration mechanism via
make-type
- Added SRFI 112-style support for human-readable information about the hardware and software configuration on which LispKit is being executed
- Added support for the following libraries:
(srfi 63)
,(srfi 64)
,(srfi 128)
,(lispkit iteration)
,(lispkit json)
- Migrated project to Xcode 9 and Swift 4
- Adopted Swift 4-version of NumberKit
- Support for custom ellipsis in
syntax-rules
- Fixed serious scoping issues in
syntax-rules
- Fixed hash functions to prevent overflows
- Support for R6RS enumeration operations
- Implemented native support for fixnum (fx*) and flonum (fl*) operations
- Completed support for all R7RS string operations
- Completed support for all R7RS character operations
- Added common list operations (sort, filter, partition)
- Completed support for all R7RS vector operations
- Automatically load libraries
- Made stack grow automatically
- Support externally triggered termination of evaluation – Implemented new system library; added new file functions
- Implemented support for R7RS-compliant exceptions
- Implemented support for multiple return values – Ported various SRFIs and included them in the LispKit package
- Implemented environments as first-class values
- Introduced a new R7RS-compatible library abstraction
- Reimplemented all functions using libraries
- Migration from Swift 2.2 to Swift 3.0
- Implemented R6RS-compliant hash tables
- Implemented R7RS-compliant parameters (supporting dynamic scoping)
- Implemented R7RS-compliant record types
- Implemented R7RS-compliant promises
- Implemented R7RS-compliant port library, supporting both textual ports and binary ports; built on top of Foundation API (not using low-level C port abstractions)
- Fixed a few cases where the runtime didn't do proper tail calls
- Implemented full support for
call/cc
- Revised bytecode instruction set. Added documentation to the LispKit Wiki.
- Implemented compiler optimization framework. Turned compiler into a two-phase compiler.
- Optimized usage of variables for function arguments.
- Initial version consisting of the framework and a very simple read-eval-print loop
- The LispKit framework implements a subset of the
R5RS Scheme standard; the
biggest feature missing is support for
call/cc
- LispKit coonsists of a compiler generating bytecode and a virtual machine which interprets the bytecode
- The framework is incomplete and work in progress