Skip to content

Latest commit

 

History

History
53 lines (49 loc) · 2.52 KB

CHANGELOG.md

File metadata and controls

53 lines (49 loc) · 2.52 KB

Changelog

This changelog uses the style from Keep a Changelog.

Added

  • Common Lisp implementations of the Scheme character and string functionality, including a wrapper over sb-unicode, the Unicode functionality of SBCL, when present.
  • Common Lisp implementations of the main Scheme equality predicates.
  • A separate false value from nil, which is not false in Scheme.
  • A define-scheme-type macro family, which partially Lisp-1ifies the separate type namespace by creating a predicate for each type that is defined, using the predicate's name as the type name, e.g. number?.
    • Some efficient, custom types that match CL's type system, including %list? for lists that aren't necessarily proper lists.
  • A custom reader for the R7RS-small version of Scheme.
    • A CL-style syntax extension for specifying short, single, double, and long floats, which is permitted by the R7RS standard.
    • A few other minor syntax extensions, particularly around numbers, to permit some commonly allowed syntax that is technically not fully portable. For instance, both 2i and +2i are read as 0+2i, but 2i is technically an extension to the syntax.
    • Many potential numbers become symbols, especially starting with + and -. This is necessary to interoperate with CL +foo+ style constants.
  • A custom writer that displays s-expressions in Scheme syntax instead of Common Lisp syntax.
  • An internal representation for Scheme that supports tail recursion and continuations.
  • Macros for writing parts of this Scheme from Common Lisp, as define-scheme-procedure (nil is the empty list) and define-scheme-predicate (nil is turned into #f).
  • A hello world example file and an example library that exports that hello world.
  • A substantial number of standard procedures from R7RS-small:
    • Almost all of sections 6.1 through 6.9, only excluding rationalize.
    • Section 6.13, i.e. ports (streams in CL).
  • Some Scheme libraries:
    • Library definitions for the (scheme) libraries described in R7RS-small Appendix A.
    • Some SRFIs entirely contained within R7RS-small: 6, 9, 87, and 98.
    • SRFI 112 and SRFI 172.