ChezScheme

As 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