============================================================================== High priority tasks: * (0.9) Efficient macro - Fix infinite loop on test-srfi1-another.scm - Introduce compilation phase (see "Macros" subsection of spec.txt) - Make macro expansion performed on compilation phase - Make runtime syntax sugars interpretation into macro expansions on compilation phase (such as internal definition or implicit lambda on define) - Validate as production quality * (0.9) Provide a record type - Evaluate SRFI-9 and R6RS records * (0.9) Introduce a standard unit testing framework - SRFI-64 "A Scheme API for test suites" * grep "FIXME" and fix them ============================================================================== Low priority bugs: * fileport_byte_readyp() does not support a FILE based on a pipe, or opened by fdopen(3) ============================================================================== Extensions: (not required for now) * Dynamically loadable binary module which allows user-written procedure * Complete SLIB support - Resolve the conflict of 'require' and 'provided?' with SigScheme - Make the slib.scm installable - Fill some variables with configure (slib.scm.in) * Make Symbian OS and BREW support working (patches are welcome) * Implement numbers other than integer - Define SAL accessors considering SRFI-50 and other implementations - Evaluate R6RS Arithmetic * Add ISO-2022-JP support to encoding.[hc] and scmport-mbchar.c. It requires encoding API fix on int2str() which lacks post-write state update * Add GB18030 to encoding.c * Add Big5 to encoding.c ============================================================================== Performance improvements: * %%identity-hash, %%string-hash, %%symbol-hash, %%string-ci-hash for SRFI-69 * (not required for now) Introduce SCM_QNULL for (quote ()) to reduce cons cell consumption, and support shortcuts for it in read.c and eval.c * (not required for now) Simplify read.c by table-based tokenizer * (not required for now) Support string of constant-width char - Define SigScheme's own internal multi-CCS code - Make UCS2 selectable as canonical internal code ============================================================================== Properness improvements: (not required for now) * Import http://sisc.sourceforge.net/r5rs_pitfall.scm - Fix hygienic-macro incapability of module_srfi34.c to catch errors into a failed result in the 'should-be' macro * Support R6RS style symbol escaping such as |-sym| * Reorganize unit test for C - Remove GNU sed dependency of test-c/collect.sh.in - Separate SigScheme-dependent part and generic part of test-c, and generalize the unit testing utils as usable for uim - Name 'the testing utils' ============================================================================== Logical simplifications: * Remove valuecons to increase simplicity * Remove the concept 'freecell' from SAL (turn it into ordinary list with freecell maker) * Remove the concept 'ScmCell' from sigscheme.h * Add SCM_TYPESAFE_MACRO for all I?SAL macros * (not required for now) Encode argument type information into ScmFuncTypeCode to remove ENSURE_*() from each procedure implementation * (not required for now) Reorganize list (argument) extraction API * (not required for now) Reorganize encoding and char codec API ============================================================================== Namings and Cosmetic things: * Consider renaming about typenames (e.g. ScmObj -> scm_obj) * Rename STL names (string, list) to another such as str, lst * Define the coding style for indent(1) and reform *.[ch] by it * [uim] Rename uim-scm.c to uim-scm-sigscheme.c (after the merger) ==============================================================================