Released Cyclone Scheme 0.2
September 7th, 2016
Cyclone Scheme 0.2 is now available:
http://justinethier.github.io/cyclone/
Cyclone consists of a compiler and interpreter targeting as well as written in R7RS Scheme. A garbage collector inspired by Cheney on the M.T.A. is also provided, with support for native threads.
New features in this release:
- 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
and
let*-valuesto
(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.
Thanks,
Justin
User Manual
http://justinethier.github.io/cyclone/docs/User-Manual
R7RS Compatibility
http://justinethier.github.io/cyclone/docs/Scheme-Language-Compliance
Bug Tracker