~ chicken-core (chicken-5) 521323fcb27c59eb9c92a178764f35b615c39782
commit 521323fcb27c59eb9c92a178764f35b615c39782
Author: Felix <bunny351@gmail.com>
AuthorDate: Sun Oct 11 01:39:14 2009 +0200
Commit: Felix <bunny351@gmail.com>
CommitDate: Sun Oct 11 01:39:14 2009 +0200
updated TODO
diff --git a/TODO b/TODO
index 71d04352..724b21e3 100644
--- a/TODO
+++ b/TODO
@@ -47,9 +47,8 @@ TODO for chicken -*- Outline -*-
* tasks
** branches
-*** try to improve performance in lazy-gensyms
- this *should* give better performance, but the extra handling of symbols
- without name seems to be to expensive
+*** unfucked-dload can be removed
+*** remove TODO from master
** module issues
*** need a way to omit generating module registration without generating import lib
@@ -76,9 +75,6 @@ TODO for chicken -*- Outline -*-
** library units
*** read-mark list should be stored in read-table
-*** normalize-pathname: return short name on windows? (mingw/msvc)
-*** Use record-descriptors instead of symbols as 1st slot in structure objects?
-**** see Kon's proposal for new record-descriptors in "misc/Chicken Runtime Data Type Proposal"
*** Weak locatives can probably be used to implement weak hash-tables (at least for some data)
** syntax-error
@@ -94,6 +90,9 @@ TODO for chicken -*- Outline -*-
** scrutiny
*** add support for keyword arguments and check even length and available keywords
+** runtime
+*** try to build with TLS
+
* tests
@@ -112,29 +111,21 @@ TODO for chicken -*- Outline -*-
*** This would remove necessity for many simple re-write rules in c-platform.scm
** self-recursion optimization
- what MacScheme called "benchmark-mode" (assume self-calls are recursion)
+*** what MacScheme called "benchmark-mode" (assume self-calls are recursion)
*** needs declaration or option, >= -O2
-** when inlining, consing arg-list with "list" may make get-keyword possibly foldable
-
** compiler-support for get-keyword ?
+*** what when a function with keyword args gets inlined?
+*** when inlining, consing arg-list with "list" may make get-keyword possibly foldable
** lambda-fusion / "fuse-and-dispatch" (suggested by Alex Shinn)
convert groups of local lambdas referenced to only in operator-position into
looping lambda + dispatch (static variable can be used), otherwise similar to
a conditional
-** lazy gensyms (see "lazy-gensyms" branch)
-
** handle optional args primitively
for example, set to distinguished val (checking argc) on C level, core
primitive for checking this - should be quite simple, but llist processing
(decompose-lambda-list) will be more expensive and cumbersome.
-** pre-hashed symbols (extra symbol slot)
- The memory usage should be acceptable, performance gain is hard to guess.
- Some experiments indicate that hashing the string is cheaper than it appears,
- but low-level hashtables should get the most of this (and thus speed up
- the compiler)
-
** The benchmarks are meaningless - find real ones.
Trap