Hello all, I skimmed through the R7RS (draft 5) looking for things we need to do to claim full compliance. Here's the list I came up with.
Mark R7RS TODO ========= * optional ellipsis specifier for syntax-rules et al * syntax-error * define-values * let-values and let*-values (without loading SRFI-11) * include-ci * bytevectors in core R7RS * lazy and eager (without loading SRFI-45) * |...| symbol notation, and \xXX within symbols * support #\escape and "\escape" * support \xXXXX in string literals * allow whitespace between \ and newline in string literals * #!fold-case and #!no-fold-case * #true and #false * datum labels for circular and shared substructures * nan? and finite? now accept complex numbers (should probably change inf? and infinite? as well) * exact-integer? * R7RS exceptions * make sure define-record-type is R7RS compliant * optional third parameter to 'member' and 'assoc' * define-library * digit-value * char-foldcase * string-ni=? et al * vector->string and string->vector * vector-copy supports optional (start end fill) args * vector-fill! supports optional (start end) args * bytevector-copy! with 3 args * bytevector-copy-partial{,!} * write bytevectors with #u8 (and elements in hex) by default? * {map,for-each} stops when shortest list runs out * string-{map,for-each} accepts multiple strings * vector-{map,for-each} * make sure {map,vector-map,string-map} are multi-return safe * {scheme-report,null}-environment for R7RS * 'environment' * 'port-open?' * R7RS binary ports and bytevector ports * {textual-binary}-port? * binary-port? * open-binary-{input,output}-file * open-{input,output}-bytevector * get-output-bytevector * {read,peek,write}-u8, u8-ready? * read-bytevector{,!} * write-bytevector * write-partial-bytevector * read-line * write-simple * flush-output-port * load with optional 'environment specifier' as second argument * get-environment-variable{,s} * current-{second,jiffy}, jiffies-per-second * R7RS feature identifiers: r7rs, exact-closed, ratios, exact-complex, ieee-float, full-unicode, windows, posix, unix, darwin, linux, bsd, freebsd, solaris, i386, x86-64, ppc, sparc, jvm, clr, llvm, ilp32, lp64, ilp64, big-endian, little-endian, guile, guile-2, guile-2.0