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-standards

Source file: scheme-standards.pose

r0rsScheme: An Interpreter for Extended Lambda Calculus1975AI Memo No. 349
r1rsThe Revised Report on Scheme1978AI Memo No. 452
r2rsThe Revised Revised Report on Scheme1985AI Memo No. 848
r3rsRevised3 Report on the Algorithmic Language Scheme1986
ieee-1178-1990IEEE Standard for the Scheme Programming Language1990IEEE 1178-1990
r4rsRevised4 Report on the Algorithmic Language Scheme1991
dssslDocument Style Semantics and Specification Language1996ISO/IEC 10179: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

Source file: scheme-id.pose

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

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
meevaxMeevaxTatsuya Yamasaki
mitMIT SchemeChris Hanson
moshMoshTaro Minowa (Higepon)
mzschemeMzSchemeMatthew Flatt
picrinPicrinYuichi Nishiwaki
racketRacketMatthew Flatt
s7s7Bill Schottstaedt
s9fesScheme 9 from Empty SpaceNils M Holm
sagittariusSagittarius SchemeTakashi Kato
sigschemeSigSchemeKazuki Ohta
stklosSTklosErick Gallesio
tinyschemeTinySchemeDimitrios Souflis
tr7TR7José Bollo
unsyntaxUnsyntaxMarc Nieper-Wißkirchen
vicareVicareMarco Maggi
ypsilonYpsilonYoshikatsu Fujita

Operating systems

Registry ID: operating-systems

Source file: operating-systems.pose

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


Registry ID: machines

Source file: machines.pose

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

Feature identifiers

Registry ID: features

Source file: features.pose

64bitRunning on a 64-bit CPU (note: symbol starts with number)
airshipAirship Scheme
big-endianThe CPU byte order is big-endian
bsdOperating system in BSD Unix family
chezschemeChez Scheme
clangLLVM clang compiler [Chicken]
clrRunning on a Common Language Runtime (.NET CLR)
complexComplex numbers are provided
cryptoCrypto interface [Sagittarius]
csiChicken Scheme interpreter
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
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
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
jvmRunning on a Java Virtual Machine (JVM)
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)
mitMIT Scheme
mit/gnuMIT/GNU Scheme
netbsdNetBSD operating system
odbcODBC interface [Sagittarius]
openbsdOpenBSD operating system
posixPOSIX-compatible operating system
ppcPowerPC processor
r7rsAll R7RS Scheme implementations have this feature
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]
s9fesScheme 9 from Empty Space
sagittariusSagittarius Scheme
socketSockets interface [Sagittarius]
solarisOperating system in Solaris family
sparcSun SPARC processor
srfi-*Scheme Request for Implementation number N implemented
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)
unixUnix-like operating system
windowsOperating system in Windows family
x86-6464-bit AMD/Intel x86 processor
zlibZlib interface [Sagittarius]

Tests cond-expand can do

Registry ID: cond-expand

Source file: cond-expand.pose

(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-names

Source file: library-names.pose

airshipAirship Scheme
chezschemeChez Scheme
gambitGambit Scheme
gerbilGerbil Scheme
guileGNU Guile
ikarusIkarus Scheme
lokoLoko Scheme
mitMIT Scheme
rnrsStandard Scheme (R6RS and up)
s9fesScheme 9 from Empty Space
sagittariusSagittarius Scheme
schemeStandard Scheme (R7RS and up)
srfiScheme Requests for Implementation

Library names under (scheme ...)

Registry ID: library-names-scheme

Source file: library-names-scheme.pose

@vectorHomogeneous vectors [SRFI 160, R7RS Large: Tangerine Edition]
bitwiseBitwise operations [SRFI 151, R7RS Large: Tangerine Edition]
boxBoxes [SRFI 111, R7RS Large: Red Edition]
bytevectorByte vectors [R7RS Large: Tangerine Edition]
charsetCharset library [SRFI 14, R7RS Large: Red Edition]
comparatorComparators [SRFI 128, R7RS Large: Red Edition]
divisionInteger division [SRFI 141, R7RS Large: Tangerine Edition]
ephemeronEphemerons [SRFI 124, R7RS Large: Red Edition]
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]
listList library [SRFI 1, R7RS Large: Red Edition]
list-queueQueued-based lists [SRFI 117, R7RS Large: Red Edition]
lseqLazy sequences [SRFI 127, R7RS Large: Red Edition]
mappingMappings [SRFI 146, R7RS Large: Tangerine Edition]
regexRegular expressions [SRFI 115, R7RS Large: Tangerine Edition]
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]
vectorVector library [SRFI 133, R7RS Large: Red Edition]

#\ character names

Registry ID: character-names

Source file: character-names.pose

#\alarm\aU+0007 [R6RS, R7RS]
#\backspace\bU+0008 [R6RS, R7RS]
#\belU+0007 [Chez Scheme]
#\deleteU+007F [R6RS, R7RS]
#\escU+001B [R6RS]
#\escapeU+001B [R7RS]
#\linefeed\nU+000A [R6RS]
#\lsU+2028 [Chez Scheme]
#\nelU+0085 [Chez Scheme]
#\newline\nU+000A [R6RS, R7RS]
#\nulU+0000 [R6RS]
#\nullU+0000 [R7RS]
#\pageU+000C [R6RS]
#\return\rU+000D [R6RS, R7RS]
#\ruboutU+007F [Chez Scheme]
#\spaceU+0020 [R6RS, R7RS]
#\tab\tU+0009 [R6RS, R7RS]
#\vtU+000B [Chez Scheme]
#\vtabU+000B [R6RS]

# lexical syntax

Registry ID: hash-syntax

Source file: hash-syntax.pose

A quote ' next to a standard's or implementation's name means the syntax does not yield a self-evaluating object there, and must be quoted to form a valid expression.

#<n>Object by serial number [Chicken, Gambit]
#!Identifier follows [R6RS+]; Unix script [SRFI 22]; #! ... !# comment [Guile]
#"..."Interpolated string [Gauche]
#{...}Gensym [Chez Scheme]
#${...}Binary blob [Chicken]
#&Box ['Chez, 'Gambit, Racket]
#'syntax [R6RS, syntax-case]
#(...)Vector [R7RS]
#*"..."Incomplete string [Gauche]
#+Read-time conditional [Chicken]
#,unsyntax [R6RS, syntax-case]; Reader constructor [SRFI 10]
#,@unsyntax-splicing [R6RS, syntax-case]
#/.../Regular expression [Gauche, Kawa, LIPS]
#:Keyword object [Chicken, Guile, s7]; Keyword marker [Kawa, Racket]; Uninterned symbol [Gauche]
#;S-expression comment [R6RS, R7RS, SRFI 62]
#<...>Unreadable object [Chez Scheme, Chibi-Scheme, Chicken, Gambit, Gauche, Kawa, Mosh, Sagittarius]; XML literal [SRFI 107]; import reader macro from this library [Sagittarius]
#<<Multi-line string literal [Chicken, Gambit]
#<n>#Datum reference [R7RS]
#<n>=Datum label [R7RS]
#?Debug macro [Gauche]
#[...]Character set [Gauche], Record [Chez Scheme]
#\Literal character [R2RS+]
#`quasisyntax [R6RS, syntax-case]; legacy interpolated string [Gauche]
#|...|#Block comment [R6RS, R7RS, SRFI 30]
#aArray [SRFI 58, SRFI 163]
#bBinary integer [R2RS+]
#c<n>(...)n-bit complex vector [SRFI 160: n = 64, 128]
#ciChange to case insensitive identifiers [Chicken]
#csChange to case sensitive identifiers [Chicken]
#<n>d(...)n-dimensional array [s7]
#dDecimal number [R2RS+]
#eExact number [R2RS+]
#fBoolean false [R3RS+]
#f<n>(...)n-bit float vector [SRFI 4, 160: n = 32, 64]
#falseBoolean false [R7RS]
#<n>i(...)n-dimensional signed integer array [s7]
#iInexact number [R2RS+]
#i<n>d(...)n-dimensional signed integer array [s7]
#langDeclare which programming language is used [Racket]
#oOctal integer [R2RS+]
#<n>rNumber in radix n [Chez Scheme]
#<n>r(...)n-dimensional real (i.e. float) array [s7]
#r<n>d(...)n-dimensional real (i.e. float) array [s7]
#s<n>(...)n-bit signed integer vector [SRFI 4, 160: n = 8, 16, 32, 64]
#tBoolean true [R3RS+]
#trueBoolean true [R7RS]
#<n>u(...)n-dimensional byte array [s7]
#u<n>(...)n-bit unsigned integer vector [SRFI 4, 160: n = 8, 16, 32, 64]
#u<n>d(...)n-dimensional byte array [s7]
#u8(...)Bytevector [R7RS]
#u8"..."String-notated bytevector [SRFI 207]
#vfx(...)Fixnum vector aka fxvector [Chez Scheme]
#vu8(...)Bytevector [R6RS]
#xHexadecimal integer [R2RS+]

#! lexical syntax

Registry ID: hash-bang-syntax

Source file: hash-bang-syntax.pose

#!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-extensions

Source file: filename-extensions.pose

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
.stklosSTklosScheme code written in the STklos dialect
.ostkObject STkCompiled STklos Scheme code
.brlBeautiful Report LanguageText document in BRL [Kawa]
.krlKawa Report LanguageText document in KRL [Kawa]
.binBinarySCode compiled source file [MIT Scheme]
.binldBinary library definitionSCode compiled R7RS library [MIT Scheme]
.comCompiledNative code compiled source file [MIT Scheme]
.comldCompiled library definitionNative code compiled R7RS library [MIT Scheme]
.extExtensionAuxiliary for native code compiled source file [MIT Scheme]
.bciBinary compiler infoAuxiliary for native code compiled source file [MIT Scheme]
.bcildBinary compiler info, library definitionAuxiliary for native code compiled R7RS library [MIT Scheme]

Version properties

Registry ID: version-properties

Source file: version-properties.pose

SRFI 176

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.library.compileCommand to compile C shared library to be loaded by the implementationstring ...
c.library.extensionFile name extension (with dot, e.g. ".so" or ".dylib") for shared libraries to be loaded by the implementationstring
c.library.linkCommand to link C shared library to be loaded by the implementationstring ...
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 ...
scheme.srfi.countHow many SRFIs are known to be supportedinteger
threadsWhich backends can be used for multithreading on this system? Known values: pthreads, win32symbol ...
websiteURL of the implementation's websitestring

Log message fields

Registry ID: log-message-fields

Source file: log-message-fields.pose

SRFI 215

SEVERITYyesseverity as an exact integer in [0,7]RFC 5424, 6.2.1
MESSAGEyesfree-form message as a string
FACILITYnofacility as an exact integerRFC 5424, 6.2.1
APP-NAMEnoAPP-NAME as a stringRFC 5424, 6.2.5
PROCIDnoPROCID as a stringRFC 5424, 6.2.6
MSGIDnoMSGID as a stringRFC 5424, 6.2.7
MESSAGE_IDno128-bit message identifiersystemd.journal-fields(7)
TOPICnotopic (or equivalent) of the loggerRacket


Registry ID: codesets

Source file: codesets.pose

SRFI 238

errnoC/Unix errno numbers on current machineEPERM ENOENT ESRCH
signalC/Unix signal numbers on current machineSIGHUP SIGINT SIGQUIT