Skip to content

Latest commit

 

History

History
273 lines (169 loc) · 12.5 KB

CommitteeBDockets.md

File metadata and controls

273 lines (169 loc) · 12.5 KB

These are the portable libraries Committee B will be voting on.

Free docket names: Bia Dike Gaia Leto Nyx Orion Xenos Zephyrus; Kronos used but dropped.

Docket Index

The following order is not necessarily the voting order.

Red Docket (data structures)

  • Quick summary:
    • comprehensive list library
    • comprehensive vector library
    • sorting
    • hash 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.

Tangerine Docket (numerics)

  • 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.

Hypnos Docket (SRFIs)

Transducers: SRFI 171

Multiple values: SRFI 210

Nested define: SRFI 219

cond guards: SRFI 61

receive: SRFI 8

rec: SRFI 31

Cut/cute: SRFI 26

Curried procedures: SRFI 232

Binary search: SRFI 223

Maybe/Either: SRFI 189

Environment monad: SRFI 165

Flexvectors: SRFI 214

Unifiable boxes: SRFI 161

Sorted sets: SRFI 153

Orange Docket (SRFIs)

Numeric types, operations, and data structures

Random numbers: SRFI 27, plus SRFI 194

Integer sets: SRFI 217

Integer mappings: SRFI 224

Ranges: SRFI 196

Homogeneous vectors: SRFI 160

Bitvectors: SRFI 178

Bytestrings (lexical syntax: SRFI 207

Multidimensional arrays: SRFI 231 or SRFI 164

Comparators: SRFI 162[SRFI 128] plus (https://srfi.schemers.org/srfi-162/srfi-162.html) plus SRFI 228 (integrated into (scheme comparators)

Other

Enumerations: SRFI 209

Compound objects: SRFI 222

Yet more generator extensions: SRFI 162

Coroutine generators: SRFI 190

Generic combinator procedures: SRFI 235

Generic dictionary operations: SRFI 225

Generic sequence operations: SequencesCowan

Generic set/bag operations: SetsCowan

INI files: SRFI 233

Eos Docket (not SRFIs, implementations available)

Matching: Withdrawn SRFI 204 bis (eliminate non-portable match clauses)

Port operations: PortOperationsCowan 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.

let-list, let-vector: MacrosAlexandria. Partial Implementation

if* with arbitrarily many arguments: Daphne Preston-Kendal's rationale. Implementation

and-let*: SRFI 2 using define-macro, using syntax-rules using explicit renaming, using syntax-case), or SRFI 202 using syntax-case

Testing: SRFI 64 or ChibiChickenTest or SRFI 78. Implementations: all.

String interpolation: StringInterpolateCowan. Implementation

Pathname objects: PathnamesPython. Implementation

Skip lists: No writeup yet. Implementation

Urania Docket (not SRFIs, no implementations)

JSON: SRFI 180, (schemepunk json) code and data, or trivial (json-read stream [ max-chars ]) and (json-write stream obj).

Trees: Trees. Implementation.

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)

Enumeration maps: EnumMappingsCowan

Property lists to bindings: LetSettingsKendal

Twinjo I/O: Twinjo + Twinjo procedures + Lisp Serialization Conventions

Levenshtein distance: LevenshteinDistanceGauche

Bimaps: Bimaps

List mutation: ListSurgeryCowan

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.

Relations: RelationsCowan

Combinations: CombinationsGauche

URI objects: UrisCowan

Unicode character database: UcdCowan, AdvancedUcdCowan

Environment: SRFI 112 with MiscEnvironmentSchudy

CSV, DSV: DataFormatsCowan

Binary heap: BinaryHeapsCowan

Dijkstra arrays (deques) DijkstraArrays

Immutable vectors: FectorsPrice

Applicable record instances: R6RS formal comment via tagged procedures

Selene Docket (not SRFIs, no implementations)

Record-let: #45

Property lists to bindings: LetSettingsKendal

C-style structures: ByteStructuresTaylanUB, Implementation. StructuresCowan

Predicate generic functions: GenericsChibi (needs extension for subtyping), FastGeneric Implementations: all.

Streaming regular expressions: PragmaticParsingBaker

CLI utilities: SRFI 37, Optimism ArgsChicken, AppChibi + ConfigChibi, ArgParsePython. Implementation: all.

Pan Docket (not SRFIs, no implementations).

Timespecs: Date and time arithmetic: TimeAdvancedCowan, SRFI 19

Date-time parser: Hato date parser, SRFI 19

Date-time formatter: TimeFormattingCowan, SRFI 19, other libs

Memoization: Memoize (not a proposal yet), Racket, Haskell

Message digests: MessageDigests

Monads, applicative functors, and functors: ContextsCowan

Character-cell terminals: TerminalsCowan

String library

Strings: SRFI 152 (index-based), SRFI 130 (cursor-based), pre-SRFI 135x