[uim-commit] r1546 - branches/r5rs/sigscheme

yamaken at freedesktop.org yamaken at freedesktop.org
Fri Sep 23 04:11:15 PDT 2005


Author: yamaken
Date: 2005-09-23 04:11:12 -0700 (Fri, 23 Sep 2005)
New Revision: 1546

Modified:
   branches/r5rs/sigscheme/TODO
Log:
* sigscheme/TODO
  - Update


Modified: branches/r5rs/sigscheme/TODO
===================================================================
--- branches/r5rs/sigscheme/TODO	2005-09-23 10:48:44 UTC (rev 1545)
+++ branches/r5rs/sigscheme/TODO	2005-09-23 11:11:12 UTC (rev 1546)
@@ -1,6 +1,10 @@
 ==============================================================================
 Requirements and bugs:
 
+* Make ScmOp_apply() properly tail recursive
+  - Add tests for proper tail recursion with 'apply', 'call-with-values' and
+    'receive' to test-tail-rec.scm
+
 * Introduce Exception handling (probably should be based on SRFI-34)
   - Throw an exception instead of exit(3) when an error occurred
   - Rename call/cc with call/ec? ([Anthy-dev 2216])
@@ -18,13 +22,11 @@
     API for such purpose is existing, use it
   - [uim] Implement string-escape as same as trunk
 
+* Fix invalid storage model assumption of ScmOp_append()
+
 * Fix broken 'values' handling
   - (write (values)) => SEGV
 
-* Make ScmOp_apply() properly tail recursive
-  - Add tests for proper tail recursion with 'apply', 'call-with-values' and
-    'receive' to test-tail-rec.scm
-
 * [uim] link libsscm into libuim statically
 
 * Dynamic encoding switching for a conversion between string and char list,
@@ -41,27 +43,32 @@
 ==============================================================================
 Performance improvements:
 
+* Optimize ScmOp_map()
+
 * Suppress cons cell consumption of 'values' by ValueCons
 
 * Object representation compaction ([Anthy-dev 2353], [Anthy-dev 2360])
 
+* Replace almost ScmObj initialization by SCM_NULL with SCM_FALSE. SCM_NULL is
+  not appropriate for such clean initialization. #f is the counterpart of NULL
+  of C. And using SCM_FALSE as the default value is the most efficient way in
+  macine-code level since SCM_FALSE will be represented by zero after the
+  compaction
+
 * Fix large fixed-size buffer on stack without limit checking in read.c
 
 ==============================================================================
 Logical simplifications:
 
-* Automatically append "\n" in SigScm_Error() instead of append by caller
-
 * Split ScmOp_eval()'s function invocation handling off into a separated
   function and share it with ScmOp_apply()
-  - Withdraw FUNCTYPE_EVALED_LIST, and eval args by safe, easy and efficient
-    SCM_SHIFT_EVALED*() in each functions instead of cell-consumptive
-    preparation by map_eval() in ScmOp_eval()
 
-* Eliminate similar codes by SCM_REDUCE*() (grep 'TODO.*SCM_REDUCE' *.c)
+* Withdraw SCM_REDUCE*() macro
 
-* Simplify args extraction codes by SCM_SHIFT*() (grep 'TODO.*SCM_SHIFT' *.c)
+* Reorganize SCM_SHIFT*() macros and simplify args extraction codes
 
+* Automatically append "\n" in SigScm_Error() instead of append by caller
+
 * Move procedure registration for SRFI and SIOD operations in
   SigScm_Initialize_internal() to each operation-*.c and invoke them by
   SigScm_*_Initialize() from SigScm_Initialize_internal(). It should be done



More information about the uim-commit mailing list