Scheme Registry

A catalog of the defined symbols, identifiers and other pieces of data used by Scheme standards and implementations.

Administration happens on the schemeregistry mailing list (archives, subscribe). Feel free to suggest additions and corrections there. Source is in a git repository.

Scheme standards

Registry ID: scheme-standard

IDNameYear
r0rsScheme: An Interpreter for Extended Lambda Calculus (AI Memo No. 349)1975
r1rsThe Revised Report on Scheme (AI Memo No. 452)1978
r2rsThe Revised Revised Report on Scheme (AI Memo No. 848)1985
r3rsRevised3 Report on the Algorithmic Language Scheme1986
ieee-1178-1990IEEE Standard for the Scheme Programming Language (1178-1990)1990
r4rsRevised4 Report on the Algorithmic Language Scheme1991
dssslDocument Style Semantics and Specification Language (ISO/IEC 10179:1996)1996
r5rsRevised5 Report on the Algorithmic Language Scheme1998
r6rsRevised6 Report on the Algorithmic Language Scheme2007
r7rsRevised7 Report on the Algorithmic Language Scheme (small language)2013
r7rs-largeRevised7 Report on the Algorithmic Language Scheme (large language)

Scheme implementations

Registry ID: scheme-id

Scheme IDs for use in features, cond-expand, and many other places.

IDNameContact
airshipAirship SchemeMichael Babich
biglooBiglooManuel Serrano
chezschemeChez SchemeKent Dybvig
chibiChibi-SchemeAlex Shinn
chickenCHICKENFelix Winkelmann
cycloneCycloneJustin Ethier
gambitGambit SchemeMarc Feeley
gaucheGaucheShiro Kawai
gerbilGerbil SchemeDimitris Vyzovitis
guileGNU GuileAndy Wingo
ikarusIkarus SchemeAbdulaziz Ghuloum
ironschemeIronSchemeLlewellyn Pritchard
jazzJazzSchemeGuillaume Cartier
kawaKawaPer Bothner
larcenyLarcenyWilliam Clinger
lokoLoko SchemeGöran Weinholt
mitMIT SchemeChris Hanson
mzschemeMzSchemeMatthew Flatt
picrinPicrinYuichi Nishiwaki
racketRacketMatthew Flatt
s7s7Bill Schottstaedt
s9fesScheme 9 from Empty SpaceNils Holm
sagittariusSagittarius SchemeTakashi Kato
sigschemeSigSchemeKazuki Ohta
stklosSTklosErick Gallesio
tinyschemeTinySchemeDimitrios Souflis
unsyntaxUnsyntaxMarc Nieper-Wißkirchen
vicareVicareMarco Maggi
ypsilonYpsilonYoshikatsu Fujita

Operating systems

Registry ID: operating-system

IDDescription
bsdOperating system in BSD Unix family
cygwinCygwin Unix emulator on Windows
darwinOperating system based on Darwin kernel (Apple macOS X, iOS)
dragonflyDragonFly BSD operating system
freebsdFreeBSD operating system
gnuOperating system with GNU userland
gnu-linuxGNU/Linux operating system distribution
linuxOperating system based on Linux kernel
macosxApple MacOS X operating system (see also: darwin)
netbsdNetBSD operating system
openbsdOpenBSD operating system
posixPOSIX-compatible operating system
solarisOperating system in Solaris family
unixUnix-like operating system
windowsOperating system in Windows family

Machines

Registry ID: machine

IDDescription
i38632-bit Intel/AMD x86 processor
ppcPowerPC processor
sparcSun SPARC processor
x86-6464-bit AMD/Intel x86 processor

Feature identifiers

Registry ID: features

IDDescription
64bitRunning on a 64-bit CPU (note: symbol starts with number)
airshipAirship Scheme
big-endianThe CPU byte order is big-endian
biglooBigloo
bsdOperating system in BSD Unix family
chezschemeChez Scheme
chibiChibi-Scheme
chickenCHICKEN
clangLLVM clang compiler [Chicken]
clrRunning on a Common Language Runtime (.NET CLR)
complexComplex numbers are provided
cryptoCrypto interface [Sagittarius]
csiChicken Scheme interpreter
cycloneCyclone
cygwinCygwin Unix emulator on Windows
darwinOperating system based on Darwin kernel (Apple macOS X, iOS)
dloadDynamic loading of C libraries [Chicken]
dragonflyDragonFly BSD operating system
dynamic-loadingDynamic loading of C libraries [Chibi]
exact-closedThe algebraic operations +, -, *, and expt (where the second argument is a non-negative integer) produce exact values given exact inputs
exact-complexExact complex numbers are provided
ffi[Sagittarius]
ffi-vargs[Sagittarius]
freebsdFreeBSD operating system
full-numeric-towerAll RnRS number types are implemented [Chicken]
full-unicodeAll Unicode characters present in Unicode version 6.0 are supported as Scheme characters
gambitGambit Scheme
gaucheGauche
gerbilGerbil Scheme
gnuOperating system with GNU userland
gnu-linuxGNU/Linux operating system distribution
guileGNU Guile
i38632-bit Intel/AMD x86 processor
ieee-floatInexact numbers are IEEE 754 binary floating point values
ikarusIkarus Scheme
ilp32C language int, long and pointer types are all 32 bits wide
ilp64C language int, long, and pointer types are all 64 its wide
ironschemeIronScheme
jazzJazzScheme
jvmRunning on a Java Virtual Machine (JVM)
kawaKawa
larcenyLarceny
linuxOperating system based on Linux kernel
little-endianThe CPU byte order is little-endian
llvmRunning on the LLVM compiler infrastructure
lokoLoko Scheme
lp64C language int type is 32 bits, long and pointer 64 bits wide
macosxApple MacOS X operating system (see also: darwin)
manyargs[Chicken]
mitMIT Scheme
mit/gnuMIT/GNU Scheme
modules[Chibi]
mzschemeMzScheme
netbsdNetBSD operating system
odbcODBC interface [Sagittarius]
openbsdOpenBSD operating system
picrinPicrin
posixPOSIX-compatible operating system
ppcPowerPC processor
ptables[Chicken]
r7rsAll R7RS Scheme implementations have this feature
racketRacket
ratios/ with exact arguments produces an exact result when the divisor is nonzero
regexp-backrefs[SRFI 115]
regexp-look-around[SRFI 115]
regexp-non-greedy[SRFI 115]
regexp-unicode[SRFI 115]
s7s7
s9fesScheme 9 from Empty Space
sagittariusSagittarius Scheme
sigschemeSigScheme
socketSockets interface [Sagittarius]
solarisOperating system in Solaris family
sparcSun SPARC processor
srfi-*Scheme Request for Implementation number N implemented
stklosSTklos
swankCommon Lisp SWANK remote REPL protocol supported
syntax-casesyntax-case macros are available
termiosTermios interface [Sagittarius]
threadsMulti-threading is supported (either green threads or OS threads)
tinyschemeTinyScheme
unixUnix-like operating system
unsyntaxUnsyntax
uvector[Chibi]
vicareVicare
windowsOperating system in Windows family
x86-6464-bit AMD/Intel x86 processor
ypsilonYpsilon
zlibZlib interface [Sagittarius]

Tests cond-expand can do

Registry ID: cond-expand

IDDescription
(and expr ...)True iif every expr is true. [SRFI 0]
(compilation-target target ...)True iif at least one target is supported. [Gambit]
(library name)True iif library name is importable. [R7RS]
(not expr)True iif expr is false. [SRFI 0]
(or expr ...)True iif at least one expr is true. [SRFI 0]

Library name prefixes

Registry ID: library-name

IDDescription
airshipAirship Scheme
biglooBigloo
chezschemeChez Scheme
chibiChibi-Scheme
chickenCHICKEN
cycloneCyclone
gambitGambit Scheme
gaucheGauche
gerbilGerbil Scheme
guileGNU Guile
ikarusIkarus Scheme
ironschemeIronScheme
jazzJazzScheme
kawaKawa
larcenyLarceny
lokoLoko Scheme
mitMIT Scheme
mzschemeMzScheme
picrinPicrin
racketRacket
rnrsStandard Scheme (R6RS and up)
s7s7
s9fesScheme 9 from Empty Space
sagittariusSagittarius Scheme
schemeStandard Scheme (R7RS and up)
sigschemeSigScheme
srfiScheme Requests for Implementation
stklosSTklos
tinyschemeTinyScheme
unsyntaxUnsyntax
vicareVicare
ypsilonYpsilon

Library names under (scheme ...)

Registry ID: library-name-scheme

IDDescription
@vectorHomogeneous vectors [SRFI 160, R7RS Large: Tangerine Edition]
base[R7RS-small]
bitwiseBitwise operations [SRFI 151, R7RS Large: Tangerine Edition]
boxBoxes [SRFI 111, R7RS Large: Red Edition]
bytevectorByte vectors [R7RS Large: Tangerine Edition]
case-lambda[R7RS-small]
char[R7RS-small]
charsetCharset library [SRFI 14, R7RS Large: Red Edition]
comparatorComparators [SRFI 128, R7RS Large: Red Edition]
complex[R7RS-small]
cxr[R7RS-small]
divisionInteger division [SRFI 141, R7RS Large: Tangerine Edition]
ephemeronEphemerons [SRFI 124, R7RS Large: Red Edition]
eval[R7RS-small]
flonumFlonums [SRFI 144, R7RS Large: Tangerine Edition]
generatorGenerators [SRFI 158, R7RS Large: Tangerine Edition]
generatorGenerators [SRFI 121, R7RS Large: Red Edition]
hash-tableHash tables [SRFI 125, R7RS Large: Red Edition]
idequeImmutable deques [SRFI 134, R7RS Large: Red Edition]
ilistImmutable lists [SRFI 116, R7RS Large: Red Edition]
inexact[R7RS-small]
listList library [SRFI 1, R7RS Large: Red Edition]
list-queueQueued-based lists [SRFI 117, R7RS Large: Red Edition]
load[R7RS-small]
lseqLazy sequences [SRFI 127, R7RS Large: Red Edition]
mappingMappings [SRFI 146, R7RS Large: Tangerine Edition]
process-context[R7RS-small]
read[R7RS-small]
regexRegular expressions [SRFI 115, R7RS Large: Tangerine Edition]
repl[R7RS-small]
rlistFunctional, random-access pairs and lists [SRFI 101, R7RS Large: Red Edition]
setSets and bags [SRFI 113, R7RS Large: Red Edition]
showCombinator Formatting [SRFI 159, R7RS Large: Tangerine Edition]
sortSort libraries [SRFI 132, R7RS Large: Red Edition]
streamStreams library [SRFI 41, R7RS Large: Red Edition]
textImmutable strings [SRFI 135, R7RS Large: Red Edition]
time[R7RS-small]
vectorVector library [SRFI 133, R7RS Large: Red Edition]
write[R7RS-small]

#\ character names

Registry ID: character-name

IDEscapeDescription
alarm\aU+0007 [R6RS, R7RS]
backspace\bU+0008 [R6RS, R7RS]
deleteU+007F [R6RS, R7RS]
escU+001B [R6RS]
escapeU+001B [R7RS]
linefeed\nU+000A [R6RS]
newline\nU+000A [R6RS, R7RS]
nulU+0000 [R6RS]
nullU+0000 [R7RS]
pageU+000C [R6RS]
return\rU+000D [R6RS, R7RS]
spaceU+0020 [R6RS, R7RS]
tab\tU+0009 [R6RS, R7RS]
vtabU+000B [R6RS]

# lexical syntax

Registry ID: hash-syntax

IDDescription
#!Identifier follows [R6RS+]; Unix script [SRFI 22]; #! ... !# comment [Guile]
#"..."Interpolated string [Gauche]
#'Syntax datum [R6RS, syntax-case]
#(...)Vector [R7RS]
#*"..."Incomplete string [Gauche]
#,unsyntax [R6RS, syntax-case]; Reader constructor [SRFI 10]
#,@unsyntax-splicing [R6RS, syntax-case]
#/.../Regular expression [Gauche]
#:Keyword object [Chicken, Guile, S7]; Keyword marker [Kawa, Racket]; Uninterned symbol [Gauche]
#;S-expression comment [R6RS, R7RS, SRFI 62]
#<...>XML literal [SRFI 107]; Unreadable object [Gambit, Gauche]; import reader macro from this library [Sagittarius]
#<<Multi-line string literal [Gambit]
#<n>#Datum reference [R7RS]
#<n>=Datum label [R7RS]
#<n>dn-dimensional vector [s7]
#<n>rNumber in radix n [Chez Scheme]
#?Debug macro [Gauche]
#[...]Character set [Gauche]
#\Literal character [R2RS+]
#`quasisyntax [R6RS, syntax-case]; legacy interpolated string [Gauche]
#aArray [SRFI 58, SRFI 163]
#bBinary integer [R2RS+]
#ciChange to case insensitive identifiers [Chicken]
#csChange to case sensitive identifiers [Chicken]
#dDecimal number [R2RS+]
#eExact number [R2RS+]
#fBoolean false [R3RS+]
#falseBoolean false [R7RS]
#iInexact number [R2RS+]; n-dimensional integer vector [s7]
#langDeclare which programming language is used [Racket]
#oOctal integer [R2RS+]
#rn-dimensional real (i.e. float) vector [s7]
#tBoolean true [R3RS+]
#trueBoolean true [R7RS]
#u(...)n-dimensional bytevector [s7]
#u8(...)Bytevector [R7RS]
#vu8(...)Bytevector [R6RS]
#xHexadecimal integer [R2RS+]
#|...|#Block comment [R6RS, R7RS, SRFI 30]

#! lexical syntax

Registry ID: hash-bang-syntax

IDRoleDescription
bwpobjectbroken-weak-pair object [Chez Scheme]
chezschemedirectivechange to Chez Scheme read syntax
compatibledirectiveR6RS+R7RS+keywords compatible syntax [Sagittarius]
deprecateddirectivedisplay warning message of deprecated library [Sagittarius]
eofobjectend-of-file object [Chez Scheme, Chicken, Gambit, Kawa]
err5rsdirectivechange to R7RS/R6RS syntax with extensions [Larceny]
falseobjectthe boolean value false [R2RS, archaic]
fold-casedirectivechange to case insensitive identifiers [R7RS]
keykeywordstart keyword arguments in lambda list [DSSSL, SRFI 89]
larcenydirectiveimplies #!no-fold-case and #!err5rs [Larceny]
no-fold-casedirectivechange to case sensitive identifiers [R7RS]
no-overwritedirectivedeny overwriting exported variables [Sagittarius]
nocachedirectivedisable cache on the current loading file [Sagittarius]
nullobjectthe empty list [R2RS, archaic]; Java null [Kawa]
optionalkeywordstart optional arguments in lambda list [SRFI 89, MIT Scheme]
r5rsdirectivechange to R7RS syntax with #!fold-case [Larceny]
r6rsdirectivechange to R6RS read syntax [R6RS]
r7rsdirectivechange to R7RS syntax with #!no-fold-case [Gauche, Larceny, Sagittarius]
read-macrodirective#!read-macro=name is the same as #<name> [Sagittarius]
readerdirective#!reader=name replaces the reader with that library [Sagittarius]
restkeywordstart rest argument in lambda list [SRFI 89, MIT Scheme]
trueobjectthe boolean value true [R2RS, archaic]
voidobjectvoid object [Gambit, Kawa]

Filename extensions

Registry ID: filename-extension

ExtensionStands forDescription
.scmSchemeSource code for any implementation or standard
.spsScheme program sourceR6RS program
.slsScheme library sourceR6RS (library ...) form
.sldScheme library definitionR7RS (define-library ...) form
.rktRacketRacket source code with #lang at the top
.scrScribeText document written using Scheme Scribe
.scrblScribbleText document written using Scribble
.ssScheme sourceEquivalent to .scm
.scSchemeEquivalent to .scm [rare]
.schSchemeEquivalent to .scm [rare]
.sps7Scheme program sourceR7RS program [rare]
.sixScheme infixScheme + infix lexical syntax [Gambit]
.spiScheme package interfaceScmPkg package definition file [Bigloo, STklos]
.stkSTkScheme code written in the STk/STklos dialect
.ostkObject STkCompiled STklos Scheme code
.brlBeautiful Report LanguageText document in BRL [Kawa]
.krlKawa Report LanguageText document in KRL [Kawa]

Version flag properties

Registry ID: version-flag-property

IDDescriptionType
build.configureCommand line arguments to configure scriptstring ...
build.dateDate (and time) of buildiso-date-string
build.git.branchGit repository state at build time - branchstring
build.git.commitGit repository state at build time - commit hashstring
build.git.modifiedGit repository state at build time - dirty filesstring ...
build.git.tagGit repository state at build time - tagstring
build.platformOS/machine/etc. for which build was madestring
c.compileC programming language compiler commandstring ...
c.linkC programming language linker commandstring ...
c.type-bitsC programming language data type sizes(symbol integer) ...
c.versionC programming language compiler versionstring
commandCanonical shell command name for this programstring
encodingsCharacter encodings supported by the implementation, default firstsymbol ...
image.dateDate (and time) the Scheme image was savediso-date-string
image.fileFile the Scheme image is loaded fromstring
install-dirInstallation prefix directory (e.g. /usr/local)string
jvm.*Java system propertiesstring
languagesProgramming languages supported by the implementationsymbol ...
os.env.*Runtime environment variablesstring
os.stdioStdin, stdout, and stderr file typessymbol symbol symbol
os.unameRuntime Unix uname valuesstring string string
releaseLast release version numberstring
release.dateLast release dateiso-date-string
release.nameLast release codenamestring
scheme.featuresList of cond-expand features presentsymbol ...
scheme.idThe scheme-id of this implementationsymbol
scheme.pathDirectories to search for Scheme librariesstring ...
scheme.srfiSupported SRFIs (list may not be exhaustive)integer ...
websiteURL of the implementation's websitestring