This is a list of work items that WG2 has voted to work on, and proposals for those work items. If no more than one proposal gets written for an item, the item may migrate to the ConsentDocket. See WG2Dockets for other dockets.
Applicable record instances: R6RS formal comment
Assertions: R6RS, R6RS with optional message and irritants.
Association list library: flushed (SRFI 1 does enough)
Binary heap: BinaryHeapsCowan [Red]
Binary search: SRFI 43
Bitwise arithmetic: SRFI 33, SRFI 60, R6RS, BitwiseCowan. See BitwiseComparison for a detailed comparison of names and parameter order. See also the incomplete proposal BitwiseArithmeticRead.
Boxes/references: SRFI 111 [Red]
Character encoding conversion: CharacterConversionCowan [Yellow]
Combinators: CombinatorsCowan
Comparators: SRFI 114 [Red]
Concatenation: flushed in favor of SRFI 1, SRFI 13, and VectorsCowan.
cond => with guard as well as generator (see #89): SRFI 61
Conditions: ConditionsCowan
Container conversion: See BytevectorsCowan, NumericVectorsCowan, and WG1 ballot options
Continuation API: Feeley's paper (PDF)
Date and time arithmetic: TimeAdvancedCowan plus TimePeriodsCowan, SRFI 19
Date-time parser: Hato date parser, SRFI 19
Descriptive statistics: TallyCowan
Dictionaries (other than hash tables): ImmutableDataStructuresWortman (also includes deques and sets)
Division library: DivisionRiastradh
Enumerations and enum-sets: R6RS (see also http:www.r6rs.org/formal-comments/comment-262.txt), define-enum in the [http:wiki.call-cc.org/eggref/4/miscmacros Chicken miscmacros egg], Scheme48 finite record types, EnumsCowan [Red]
Environment enquiries: SRFI 112
Evaluator arguments to procedures like load: see #277
Extended exact numbers: ExtendedRationalsCowan [Orange]
File system directories (reading): SCSH directory stream interface, DirectoryPortsCowan, directory-files to return a list of all files in the dir (in WG1 vote order) [Yellow]
File library, advanced version: FilesAdvancedCowan [Yellow]
File system directories (creation, removal): DirectoriesCowan
Flonum arithmetic: FlonumsCowan [Orange]
Futures: Racket API
Getters and setters: SRFI 17
Gettext (i18n of strings): Chicken free-gettext, SRFI 29 (depends on SRFI 28)
Hash tables: SRFI 69, R6RS (in WG1 vote order), HashTablesCowan (much larger API, can be layered over either of the others) [Red]
hex-digit-value: same as digit value, but understands A-F and a-f too
Homogeneous numeric arrays: R6RS, SRFI 4, SRFI 63 (supersedes SRFI 25 and SRFI 47; lexical syntax in SRFI 58), SRFI 66, SRFI 74, NumericVectorsCowan [Orange]
if with arbitrarily many arguments: David Kendal's rationale
Immutable cyclic lists: CyclesMedernach [Red]
Integer sets: IntegerSetsCowan [Red]
Library declarations: LibraryDeclarationsCowan
Loop syntax: Olin Shivers's loop, Taylor Campbell's foof-loop, eager comprehensions from SRFI 42. See also Alex Shinn's defense of foof-loop.
Mailboxes, channels, synchronized queues: Scheme48 from Concurrent ML
make-error-object: constructs error object without raising it
<math.h> (C89 or C99): FlonumsCowan [Orange]
Memoization: Memoize (not a proposal yet), Racket, Haskell
Message digests (CRC, MD5, SHA1, SHA2):
Multi-dimensional general arrays: ArraysCowan [Red?]
Multiple value macros (from CL): flushed
Multiple values passed through => in cond: see #90
Mutable environments for eval: MutableEnvironmentsCurtisCowan
Mutexes, condition variables: SRFI 18
Named parameters: NamedParametersCowan
NaN dissector API (sign, quiet/signaling status, and integer tag): NanMedernach
Natural number predicates (from WG1): exact-positive-integer? and exact-non-negative-integer?.
number->string and string->number with non-ASCII decimal digits: NumberStringUnicode
Octet vectors, bytevectors, blobs: NumericVectorsCowan + StringBytevectorConversionCowan
Optional arguments (other than by case-lambda): OptionalsRiastradh
Pathnames: PathnamesCowan
Pattern matching: MatchingWise
Port encodings, buffering, line ending control: SettingsListsCowan and FilesAdvancedCowan
Port functions (concatenate, join, split): PortOperationsCowan [Yellow]
Procedure arity inspection: SRFI 102, Dybvig's proposal
Processes (system, popen, etc): SystemCommandCowan + ProcessPortsCowan
Queues: QueuesCowan [Red]
Random numbers: RandomnessCommonLisp, SRFI 27, RandomCowan, RandomnessArcfide (in WG1 vote order) [Orange]
Raw strings: <<, """...""", SRFI 109
Record introspection: SRFI 99
Record-let: #45
REPL facilities: ReplCowan
Restarts: Common Lisp, MIT, RestartersRiastradh
Run-time records: SRFI 99, possibly simplified syntax [Red]
Search and mismatch procedures: flushed
Sets and bags: SRFI 113. [Red]
Shift and reset: Scheme48, Racket
Simple Posix: SimplePosixCowan
Sorting: SortingShivers (revision of SRFI 32), SRFI 95 [Red]
String encoding and decoding: StringBytevectorConversionCowan [Yellow]
String positions and slices: StringSlicesCowan [Red]
Substitution and transformation: flushed
Syntactic closures (voted down, but restored by popular demand): MIT
Symbol library: SymbolsCowan
syntax-case (voted down, but restored by popular demand): R6RS
TCP protocol: NetworkPortsCowan
Thread-local storage: Java
Threads: ThreadsCowan, SRFI 18
UDP protocol: DatagramChannelsCowan
Undefined value API: see #49
Unicode character database: UcdCowan
Unicode normalization: R6RS, string-ni=? and friends (from earlier R7RS-small drafts).
Vector library: SRFI 43, VectorsCowan (extension of SRFI 43) [Red]
Weak dictionaries/hashtables: [Red?]
Weak references (soft, phantom): MIT Scheme ephemerons, Racket ephemerons [Red?]