[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