For other dockets see WG2Dockets.
Free docket names: Bia Dike Gaia Leto Nyx Orion Xenos Zephyrus; Kronos used but dropped.
The following order is not necessarily the voting order.
- Red: data structures
- Tangerine: numerics
- Yellow: macros, SRFIs
- Hypnos: portable, SRFIs
- Orange: portable, SRFIs
- Urania: portable, not SRFIs, no implementations
- Eos: portable, not SRFIs
- Morpheus: not portable, SRFIs
- Ares: not portable, SRFIs
- Selene: portable, not SRFIs
- Pan: portable, not SRFIs
- Indigo: features of dubious utility
- Quick summary:
- comprehensive list library
- comprehensive vector library
- sorting
- sets (including character sets) and bags
- hashtables
- immutable pairs
- random=-access pairs
- immutable deque
- procedural generators
- lazy lists based on generators or promises
- mutable boxes
- ephemerons
- comparator type class
- Already voted on. See RedEdition.
-
Quick summary:
- immutable mappings, hash-based and ordered
- regular expressions
- accumulators (inverse of generators)
- six kinds of integer division
- bitwise integer ops
- fixnum library
- flonum library
- homogeneous vectors of various types (bitvectors also provide bitwise ops)
- combinator formatting
-
Already voted on. See TangerineEdition.
Multiple values: SRFI 210
Nested define
: SRFI 219
Syntax-case: R6RS syntax-case
Rejected: Explicit renaming: simple explicit renaming explicit renaming interoperable with syntax-case
Identifier syntax: R6RS
Syntax parameters: SRFI 139
Splicing let(rec)-syntax
: SRFI 188
Identifier aliasing: SRFI 212
Identifier properties: SRFI 213
cond
guards: SRFI 61
receive
: SRFI 8
fsr
rec
: SRFI 31
Cut/cute
: SRFI 26
Rejected: let
extensions: SRFI 5
Rejected: Syntax combiners for binary functions: SRFI 156
Binary search: SRFI 223
Maybe/Either: SRFI 189
Environment monad: SRFI 165
ASCII character library: SRFI 175
Flexvectors: SRFI 214
Unifiable boxes: SRFI 161
Formatting: SRFI 166 (combinators), SRFI 48 (format strings).
JSON: SRFI 180,
(schemepunk json)
code
and data.
Hooks: SRFI 173
Random numbers: SRFI 27, plus SRFI 194
Comparator sublibraries: SRFI 162 plus
SRFI 228
(integrated into (scheme comparators)
Integer sets: SRFI 217
Integer mappings: SRFI 224
Ranges: SRFI 196
Homogeneous vectors: SRFI 160
Bitvectors: SRFI 178
Bytestrings: SRFI 207
Multidimensional arrays: SRFI 179 or SRFI 164
ASCII character library: SRFI 175
Enumerations: SRFI 209
Compound objects: SRFI 222
Yet more generator extensions: SRFI 162
Coroutine generators: SRFI 190
Generic dictionary operations: SRFI 225
Lexical macros: LexmacsCowan
List mutation: ListSurgeryCowan
Enumeration maps: EnumMappingsCowan
Twinjo I/O: Twinjo + Twinjo procedures + Lisp Serialization Conventions
Port operations: PortOperationsCowan
Lists as sets (extension to SRFI 1): LSetExtensions
Levenshtein distance: LevenshteinDistanceGauche
Sorted dictionaries: SortedDictionaries
Bimaps: Bimaps
Language tag searching: BCP 47. Procedures take a tag and a dictionary of tagged objects, and return either an alist (ordered choice) or a single key-value pair.
Pure delay/force: PureDelayedGloria
Relations: RelationsCowan
Combinations: CombinationsGauche
Time types: SRFI 19 and/or TimeAdvancedCowan with TimePeriodsCowan
URI objects: UrisCowan
Unicode character database: UcdCowan, AdvancedUcdCowan
Environment: SRFI 112 with MiscEnvironmentSchudy
CSV, DSV: DataFormatsCowan
Binary heap: BinaryHeapsCowan
Writing filters: FileFilterGauche
SXML serializer: SxmlSerializerGauche
Racket/Gerbil syntax-case extensions
Dijkstra arrays (deques) DijkstraArrays
Immutable vectors: FectorsPrice
Generic combinator procedures: CombinatorsCowan. Implementation
Modify macros: Srfi17ExtensionsCowan. Implementation
Loops: SRFI 42 or Riastradh's foof-loop or Chibi loop, Implementation: all. Summarized at EagerComprehensions
Assumptions/Assertions/Warnings: SRFI 145 and AssertionsWarnings, Implementation. or R6RS. R6RS, R6RS with optional message and irritants plus R6RS warnings
while
, until
, do-times
: SimpleIterationCL. Implementation.
lambda*: BeyondCurryingHemann. Implementation
let-list
, let-vector
: MacrosAlexandria. Partial Implementation
if*
with arbitrarily many arguments: Daphne Preston-Kendal's rationale. Implementation
Finalizers: FinalizersCowan
R4RS macro system ("syntax-case without syntax-case
"): R4RS; see also SRFI 211.
Setter functions: SRFI 17
Custom macro transformers: SRFI 147
Syntax-rules extensions: SRFI 149
Binding auxiliary syntax: SRFI 206
Core syntactic extensions: SRFI 201
and-let*
: SRFI 2 using define-macro, using syntax-rules
using explicit renaming,
using syntax-case), or
SRFI 202 using syntax-case
Continuation marks: SRFI 226 (comprehensive) or SRFI 157
Extended exact numbers: SRFI 73 or ExtendedRationalsCowan
Posix environment: SRFI 170
Coroutine generator syntax: SRFI 190
Timers: SRFI 120
Custom I/O ports and transcoded ports: SRFI 181.
Port positioning: SRFI 192.
Sockets: SRFI 106
Threads: SRFI 18 or SRFI 226 (comprehensive)
Datagram channels (UDP sockets): DatagramChannelsCowan
Mutable environments: EnvironmentsMIT
Access to the REPL: ReplCowan
Library declarations: LibraryDeclarationsCowan
Interfaces: InterfacesCowan
Process control: ProcessesCowan
Delimited continuations: SRFI 226 (comprehensive) or Racket, Guile, Scheme48/Kali, Gauche, Chicken
Port type detector: #177
Chronometers: Chronometer
Character-cell terminals: TerminalsCowan. Portable with SRFI 205.
Graphics canvas: GraphicsCanvas
Multiple-language support: MultipleLanguages
Simple SQL database interface: SimpleSqlCowan
Syslog interface: SyslogCowan
Record-let
: #45
Property lists to bindings: LetSettingsKendal
Optional arguments (other than by case-lambda
):
SRFI 227
or OptionalsRiastradh.
Implementation,
or (chibi optional).
Multiple values passed through => in cond
: see #90
Named parameters: SRFI 177 bis (dpk's), SRFI 89, or (chibi optional)(portable)
Matching: SRFI 204 bis
Strings: SRFI 152 (index-based), SRFI 130 (cursor-based), pre-SRFI 135x
String interpolation: StringInterpolateCowan. Implementation
C-style structures: ByteStructuresTaylanUB, Implementation. StructuresCowan, see Urania
Predicate generic functions: GenericsChibi (needs extension for subtyping), FastGeneric Implementations: all.
Timespecs: SRFI 174 or SRFI 174 bis
Conditions: ConditionsCowan
Topological sort: TopologicalSortGauche. Implementation
Streaming regular expressions: PragmaticParsingBaker
CLI utilities: SRFI 37, Optimism ArgsChicken, AppChibi + ConfigChibi, ArgParsePython. Implementation: all.
Generic combinator procedures: CombinatorsCowan. Implementation
Parallel promises: ParallelPromisesCowan. Portable implementation in pre-SRFI.
Pathname objects: PathnamesPython. Implementation
INI files: IniFilesCowan Implementation
Unicode string normalization: StringNormalizationCowan. R6RS implementations.
Date and time arithmetic: TimeAdvancedCowan, SRFI 19
Date-time parser: Hato date parser, SRFI 19
Date-time formatter: TimeFormattingCowan, SRFI 19, other libs
Regular expressions over s-expressions: SerexPalmer
Procedural record types: R6RS
SRFI 99,
AnonymousRecordsCowan,
RidiculouslySimpleRecordsCowan,
UniqueTypesCowan
Channels: PigeonHolesChicken, GochanChicken. Implementations: all.
Applicable record instances: R6RS formal comment
Memoization: Memoize (not a proposal yet), Racket, Haskell
Message digests: MessageDigests
Monads, applicative functors, and functors: ContextsCowan
Testing: SRFI 64 or ChibiChickenTest or SRFI 78. Implementations: all.
Adjustable-size strings: portable SRFI 185 or easily retrofittable SRFI 118]
Internationalization of strings: GettextCowan, JavaScript Intl.
S-expressions for SQL: AgnosticSql
Substitute/transform: SubstituteCowan
MiscAlexandria. Partial Implementation
R6RS compatibility: whole libraries or cherry-picked procedures
Macro expander(s) available at run time:
Association lists: AssociationListsCowan
Edit buffers: BuffersCowan
Immutable cycles: CyclesMedernach
Packages and rich symbols: PackageSymbolsCowan
Doubly linked lists: DoublyLinkedListsCowan
Prime number library: PrimesGauche
Descriptive statistics: TallyCowan
μXml: MicroXMLCowan
JavaScript objects: JsoCowan
Intervals: IntervalsCowan
Ring buffers: RingBuffersGauche
Tagbody: Tagbody