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 (supplements SRFI 1): AssociationListsCowan
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:
Combinators: CombinatorsCowan
Comparators: SRFI 114
Concatenation: ConcatenateCowan
cond => with guard as well as generator (see #89): SRFI 61
Conditions: ConditionsCowan
Container conversion: 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):
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], EnumsCowan
Environment enquiries: SRFI 112
Evaluator arguments to procedures like load: see #277
Extended exact numbers: ExtendedRationalsCowan
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
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)
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), [http://srfi.schemers.org/srfi-66/srfi-66.html SRFI 66, SRFI 74, NumericVectorsCowan
if with arbitrarily many arguments: David Kendal's rationale
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: Scheme48 from Concurrent ML
make-error-object: constructs error object without raising it
<math.h> (C89 or C99): FlonumsCowan
Memoization: Memoize (not a proposal yet)
Message digests (CRC, MD5, SHA1, SHA2):
Multi-dimensional general arrays: ArraysCowan
Multiple value macros (from CL): MultipleValuesCowan
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
Procedure arity inspection: SRFI 102, Dybvig's proposal
Processes (system, popen, etc): SystemCommandCowan + ProcessPortsCowan
Queues: Chicken API, BinaryHeapsCowan, SLIB
Random numbers: RandomnessCommonLisp, SRFI 27, RandomCowan, RandomnessArcfide (in WG1 vote order)
Raw strings: <<, """...""", SRFI 109
Record introspection: SRFI 99
Record-let: #45
REPL facilities: ReplCowan
Restarts: Common Lisp, MIT, RestartersRiastradh
Run-time records: SRFI 99
Search and mismatch procedures: SearchMismatchCowan
Sets and bags: SRFI 113.
Shift and reset: Scheme48, Racket
Simple Posix: SimplePosixCowan
String encoding and decoding: StringBytevectorConversionCowan
String positions and slices: R6RS formal comment #235
Substitution and transformation: SubstituteCowan
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).
Weak dictionaries/hashtables:
Weak references (soft, phantom):