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.
Assertions: R6RS base library, R6RS with optional message and irritants.
Binary heap: BinaryHeapsCowan (includes queues)
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
Character encoding conversion:
Conditions: ConditionsCowan
Container conversion: ballot options
Continuation API: Feeley's paper (PDF)
Date and time arithmetic: TimeAdvancedCowan plus TimePeriodsCowan
Date-time parser:
Dictionaries (may include hash tables):
Division library: DivisionRiastradh
Enumerations and enum-sets: R6RS (see also http:www.r6rs.org/formal-comments/comment-262.txt), SetsCowan, define-enum in the [http:wiki.call-cc.org/eggref/4/miscmacros Chicken miscmacros egg]
Environment enquiries: EnvironmentEnquiriesCowan
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)
File library, advanced version: FilesAdvancedCowan
File system directories (creation, removal): DirectoriesCowan
Flonum arithmetic: FlonumsCowan
Getters and setters: SRFI 17
Gettext (i18n of strings):
Hash tables: SRFI 69, R6RS (in WG1 vote order), HashTablesCowan (much larger API, can be layered over either of the others)
Homogeneous numeric arrays: R6RS, SRFI 4, SRFI 63 (supersedes SRFI 25 and SRFI 47; lexical syntax in SRFI 58), [http://srfi.schemers.org/srfi-66/srfi-66.html SRFI 66, SRFI 74, NumericVectorsCowan
Immutable cyclic lists: CyclesMedernach
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:
C89 or C99 <math.h>: FlonumsCowan
Memoization: Memoize (not a proposal yet)
Message digests (CRC, MD5, SHA1, SHA2):
Multi-dimensional general arrays: ArraysCowan
Multiple value macros (from CL): MultipleValuesCowan
Mutable environments for eval: MutableEnvironmentsCurtisCowan
Mutexes, condition variables:
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?.
Octet vectors, bytevectors, blobs: NumericVectorsCowan + StringBytevectorConversionCowan
Optional arguments (other than by case-lambda):
Pathnames: PathnamesCowan
Pattern matching: MatchingWise
Port functions (concatenate, join, split): PortOperationsCowan
Procedure arity inspection: SRFI 102, Dybvig's proposal
Processes (system, popen, etc): SystemCommandCowan + ProcessPortsCowan
Random numbers: RandomnessCommonLisp, SRFI 27, RandomCowan, RandomnessArcfide (in WG1 vote order)
Record introspection: SRFI 99
Record-let: #45
REPL facilities: ReplCowan
Restarts: Common Lisp, MIT, RestartersRiastradh
Run-time records: SRFI 99
Sets and bags: SetsCowan
Shift and reset:
Simple Posix: SimplePosixCowan
String encoding and decoding: StringBytevectorConversionCowan
Syntactic closures (voted down, but restored by popular demand): MIT
syntax-case (voted down, but restored by popular demand): R6RS
TCP protocol: NetworkPortsCowan
Thread-local storage:
Threads: ThreadsCowan
UDP protocol: DatagramChannelsCowan
Unicode character database: UcdCowan
Unicode normalization: R6RS, string-ni=? and friends (from earlier R7RS-small drafts).
Weak dictionaries/hashtables:
Weak references (soft, phantom):