ChezSchemeAs a superset of R6RS, Chez Scheme supports all standard features of Scheme, including first-class procedures, proper treatment of tail calls, continuations, user-defined records, libraries, exceptions, and hygienic macro expansion.
Chez Scheme also includes extensive support for interfacing with C and other languages, support for multiple threads possibly running on multiple cores, non-blocking I/O, and many other features.
The Chez Scheme implementation consists of a compiler, run-time system, and programming environment. The compiler produces optimized machine code, and can be directed to perform whole-program compilation which does full cross-library optimization.
The run-time system supports binary and textual (Unicode) I/O, generational garbage collection, library management, and exception handling.
The programming environment includes source-level debugger and profiling, and an interactive shell interface.
GitHub: https://github.com/cisco/ChezScheme
Implementing SRFIs: SRFI-0 SRFI-1 SRFI-2 SRFI-4 SRFI-5 SRFI-6 SRFI-8 SRFI-9 SRFI-11 SRFI-13 SRFI-14 SRFI-16 SRFI-17 SRFI-19 SRFI-23 SRFI-25 SRFI-26 SRFI-27 SRFI-28 SRFI-29 SRFI-31 SRFI-34 SRFI-35 SRFI-37 SRFI-38 SRFI-39 SRFI-41 SRFI-42 SRFI-43 SRFI-45 SRFI-48 SRFI-51 SRFI-54 SRFI-60 SRFI-61 SRFI-64 SRFI-67 SRFI-69 SRFI-78 SRFI-98 SRFI-99 SRFI-115 SRFI-117 SRFI-125 SRFI-126 SRFI-127 SRFI-128 SRFI-129 SRFI-130 SRFI-131 SRFI-132 SRFI-133 SRFI-141 SRFI-143 SRFI-145 SRFI-149 SRFI-151 SRFI-152 SRFI-156 SRFI-158 SRFI-188
Debugging
trace-lambda, trace-let, trace, untrace,
trace-output-port, trace-print, trace-define
debug, inspect, source-directories,
inspect/object
Foreign interface
system, process
foreign-procedure, foreign-entry?, load-shared-object,
provide-foreign-entries, load-foreign, default-foreign-libraries,
remove-foreign-entry
Binding forms
case-lambda, rec, fluid-let,
define-top-level-value, set-top-level-value!,
top-level-value, top-level-bound?
Control Structures
record-case, when, unless, ormap, andmap
call/1cc
make-engine, engine-block, engine-return
Operations on Objects
atom?, last-pair, list-copy, list*, make-list,
sort, sort!, merge, merge!,
remq, remv, remove, remq!, remv!, remove!,
subst, substq, substv, subst!, substq!, substv!,
reverse!, append!
substring-fill!
char-
vector-copy
box?, box, unbox, set-box!, #&
string->uninterned-symbol, gensym, gensym-prefix, gensym-count,
uninterned-symbol?, putprop, getprop, remprop,
property-list, oblist
void
define-record, make-record-type, record-type-descriptor?,
record-constructor, record-predicate, record-field-accessor,
record-field-accessible?, record-field-mutator,
record-field-mutable?, record-type-name, record-type-field-names,
record?, record-type-descriptor, record-reader?,
define-structure
Numeric Operations
fixnum?, bignum?, ratnum?, flonum?, cflonum?
most-positive-fixnum, most-negative-fixnum,
fx=, fx<, fx>, fx<=, fx>=, fxzero?,
fxpositive?, fxnegative?, fxnonpositive?, fxnonnegative?,
fxeven?, fxodd?, fx+, fx-, fx*, fx/,
fx1+, fx1-, fxquotient, fxremainder, fxmodulo,
fxabs, fxmax, fxmin, fxlogand, fxlogor, fxlogxor,
fxlognot, fxsll, fxsrl, fxsra
fixnum->flonum, flonum->fixnum, fl=, fl<, fl<=,
fl>, fl>=, fl+, fl-, fl*, fl/,
flabs, decode-float, fllp
fl-make-rectangular, cfl-real-part, cfl-imag-part,
cfl=, cfl+, cfl-, cfl*, cfl/,
cfl-conjugate, cfl-magnitude-squared
random, random-seed
1+, add1, 1-, sub1, expt-mod, isqrt,
integer-length, ash, nonpositive?, nonnegative?,
conjugate, magnitude-squared, sinh, cosh, tanh,
asinh, acosh, atanh
Input/output operations
make-input-port, make-output-port, make-input/output-port,
port-handler, port-input-buffer, port-input-size,
port-input-index, set-port-input-size!, set-port-input-index!,
port-output-buffer, port-output-size, port-output-index,
set-port-output-size!, set-port-output-index!,
mark-port-closed!, port?, close-port, port-closed?,
port-name, file-length, file-position, clear-input-port,
clear-output-port, flush-output-port,
open-input-string, open-output-string, get-output-string,
console-input-port, current-input-port, unread-char,
block-read, read-token?
console-output-port, current-output-port,
open-output-file, call-with-output-file, with-output-to-file,
block-write, pretty-print, pretty-file,
format, printf, fprintf
char-name, case-sensitive, print-graph, print-level,
print-length, print-radix, print-gensym,
print-brackets, print-vector-length, pretty-line-length,
pretty-one-line-limit, pretty-initial-indent,
pretty-standard-indent, pretty-maximum-lines
fasl-write, fasl-file
current-directory, file-exists?, delete-file
Syntactic Extension
fluid-let-syntax, syntax-case, syntax,
identifier?, identifier-syntax,
bound-identifier=?, free-identifier=?, literal-identifier=?,
with-syntax, syntax-object->datum, datum->syntax-object,
include, generate-temporaries
module, import, import-only,
scheme, r5rs, r5rs-syntax, ieee
System Operations
error, error-handler, warning, warning-handler,
break, break-handler, keyboard-interrupt-handler,
set-timer, timer-interrupt-handler, disable-interrupts,
enable-interrupts, critical-section, register-signal-handler
eval, ieee-environment, current-eval,
compile, interpret, load, visit,
compile-file, compile-port, machine-type,
expand, current-expand, sc-expand, eps-expand,
eval-when, eval-syntax-expanders-when
optimize-level, generate-interrupt-trap,
compile-interpret-simple, generate-inspector-information,
compile-profile, profile-clear,
run-cp0, cp0-effort-limit, cp0-score-limit, cp0-outer-unroll-limit,
new-cafe, transcript-cafe, waiter-prompt-string,
waiter-prompt-and-read, waiter-write,
abort, abort-handler, reset, reset-handler
exit, exit-handler
scheme-start, suppress-greeting
time, display-statistics, cpu-time, real-time,
bytes-allocated, statistics, make-sstats,
sstats?, sstats-cpu, sstats-real, sstats-bytes,
sstats-gc-count, sstats-gc-cpu, sstats-gc-real,
sstats-gc-bytes, set-sstats-cpu!, set-sstats-real!,
set-sstats-bytes!, set-sstats-gc-count!,
set-sstats-gc-cpu!, set-sstats-gc-real!, set-sstats-gc-bytes!
sstats-difference sstats-print
make-parameter, parameterize
date-and-time, getenv
subset-mode
Storage Management
collect, collect-maximum-generation, collect-notify,
collect-request-handler, collect-trip-bytes
weak-cons, weak-pair?, bwp-object?, make-guardian
lock-object, unlock-object
Compatibility Features
install-expander, define-syntax-expander,
extend-syntax, with
|