============================================================================== Requirements and critical bugs: * (yamaken) Confirm R5RS and SRFI conformance for each function implementation - Complete 'r5rs' and 'srfi' categories of QALog * Fix all side-effective expression in macros - All files except for operations-srfi1.c, storage-compact.h and test-compact.c are checked once. But since considerable amount of codes are added or modified, we should recheck all file * Inhibit a mutation on string constants as described in "3.4 Storage model" of R5RS - Write both immutable and mutable case tests for all procedures that accepts a string * (yamaken) Revise SRFI-75 into R6RS - Wait for stabilized specs - Write test * (yamaken) Add integer->char and char->integer procedures with multibyte support - Write test * 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) * Complete SLIB support - Make the slib.scm installable - Fill some variables with configure (slib.scm.in) * Complete operations-srfi1.c and make it production quality if considerable benefit exists against SLIB version of SRFI-1 implementation - Import http://www.math.grin.edu/~stone/srfi/srfi-1-tests.ss * Make Symbian OS and BREW support working (patches are welcome) * Dynamically loadable binary module which allows user-written procedure * Introduce dynamic environment for internal use - Fix continuation-unsafe current-{input,output}-port handling with it - Replace Scm_current_char_codec handling with it * Dynamic encoding switching for a conversion between string and char list, based on a SRFI or de facto standard API - Evaluate ces API of Gauche - Consider dynamic environment * Implement a record type - Evaluate SRFI-9 and SRFI-76 - Make a comparison with uim's define-record * Implement numbers other than integer - Define SAL accessors considering SRFI-50 and other implementations - Evaluate R6RS Arithmetic * Add GB18030 to encoding.c * Add Big5 to encoding.c ============================================================================== Performance improvements: * (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' * Make unittest.scm closer to SRFI-64 "A Scheme API for test suites" and SRFI-73 "Lightweight testing" if reasonable ============================================================================== Logical simplifications: * (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) ==============================================================================