============================================================================== Requirements and critical bugs: * Autoconfiscate the SigScheme package (don't rely on uim's configure) - Make most settings in src/config.h configurable with configure options - [uim] configure sigscheme subdir by top-level configure like GCC - [uim] Add --disable-install to disable installation of libsscm that specially configured for libuim. Only the combined-source is needed for uim * Confirm R5RS and SRFI conformance for each function implementation * Make 64bit-safe - Write tests - Make the tests passed on actual 64bit environment with storage-fatty - Make the tests passed on actual 64bit environment with storage-compact * 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 * 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 * 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 SRFI-77 "Preliminary Proposal for R6RS Arithmetic" * Add GB18030 to encoding.c * Add Big5 to encoding.c ============================================================================== Performance improvements: * (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) * Support SRFI-75 style symbol escaping such as |-sym| - Obsolete leading '-' handling in read_number_or_symbol() with it * Reorganize unit test for C - Remove GNU sed dependency of test-c2/collect.sh.in - Separate SigScheme-dependent part and generic part of test-c2, and generalize the unit testing utils as usable for uim - Port the Cutter-based tests under test-c/ to the new testing utils - 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) ============================================================================== Assigned to Kazuki: * 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 ============================================================================== Assigned to YamaKen: * Write test for tail expression of all tail-recursive syntaxes * Add tests for proper tail recursion with 'apply' and 'guard' to test-tail-rec.scm * Write tests for SRFI-75 - Investigate the withdrawn status of SRFI-75, and decide temporary API to handle unicode data until R6RS * Add integer->char and char->integer procedures with multibyte support - Write test ==============================================================================