2.8 KiB
Next Release (tentatively 0.2.1) - Date TBD
TODO: performance improvements need to improve both runtime speed and compiler optimizations TODO: SRFI 113
Features:
- Added support for SRFI 106: a basic socket interface, and SRFI 128: Comparators.
- Improved library support to recognize all of the import set forms:
only
,except
,prefix
, andrename
. - Allow explicit renaming macros to be declared interactively. This is the first limited support for calling
define-syntax
fromeval
. - Added the
get-environment-variables
function from R7RS.
Bug Fixes
- Improved macro hygiene support to properly rename temporary variables in the
let-values
macro. - Improve output of
error
by usingwrite
to output objects as they are represented in memory. - Check for duplicate lambda parameters during compilation.
- Fixed an error that was being raised when calling
(random-source-randomize! default-random-source)
when using SRFI 27. - Raise an error if
list->string
encounters a list element that is not a character.
0.2 - September 7, 2016
Features:
- Added the following libraries from R7RS-large red edition (data structures):
- SRFI 1 list library
- SRFI 133 vector library
- SRFI 111 boxes
- SRFI 117 mutable queues
- SRFI 132 sorting library
- Added SRFI 2,
and-let*
- Added
parameterize
from section 4.2.6 of R7RS to the(scheme base)
library. - Added
let-values
andlet*-values
to(scheme base)
. - Added
infinite?
,finite?
, andnan?
to(scheme inexact)
. - Added string ports to
(scheme base)
-open-input-string
,open-output-string
, andget-output-string
. - Added bytevector ports to
(scheme base)
-get-output-bytevector
,open-input-bytevector
, andopen-output-bytevector
. - Modified
cyclone
to also search the current working directory for built-in headers and libraries.
Bug Fixes:
-
Thanks to Mark Meyer, identified and fixed several segfaults in
write
anddisplay
. -
Updated
write
to display escaped character sequences (EG:\t
) instead of literal characters. -
Prevent C compilation errors when building a program that only contains basic primitives or a constant at the top level.
-
Fixed the compiler to allow application of a function that can take any number of arguments. For example:
((lambda test (write test)) 1 2 3 4)
-
Updated
eval
to handle functions that take an optional number of arguments. -
Updated
number->string
to omit leading zeros for binary conversions. -
Fixed
apply
to use the proper semantics when receiving more than one data argument. -
Changed the
assoc
andmember
functions to accept an optional comparison function, and modified both families of functions to be native Scheme functions instead of C primitives. -
Allow libraries to contain multiple
import
,begin
, andexport
sections.