==============================================================================
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

==============================================================================
