TODO (3420B)
1 - Check lambda for problems with continuation capturing 2 - Check the let family for problems with continuation capturing 3 - Check map for problems with continuation capturing 4 5 6 * Release 0.4+ 7 ** refactor: 8 *** clean stand alone interpreter 9 *** double check combiner names to be verbs 10 - add get- where appropriate 11 *** split kghelpers 12 - knumber.h knumber.c (kfinitep, kintegerp, etc) 13 *** naming convention for ground operative functions 14 - maybe add "kgop_" 15 - use 'P' instead of 'p' for ground predicates 16 *** naming convention for continuation functions 17 - intead of "do_" 18 *** use krooted_vars_push more to avoid clutter 19 - when creating continuations 20 *** Study differrent c interfaces 21 - maybe a stack like in lua would be better than dealing with gc guarding 22 *** eliminate all remaining char * arguments where not needed 23 - typep 24 *** remove most of inline declarations 25 *** standarize size type 26 - do a typedef 27 - currently 28 - int32_t (used in lists) 29 - uint32_t (used in strings, vectors and bytevectors) 30 *** add static qualifiers (especially in all kg*.c files) 31 *** add const qualifiers where sensible 32 ** fix: 33 - fix semantics of map, for-each, etc in the presence of continuation 34 capture and mutation of the underlying lists. 35 - fix char-ready? and u8-ready? (r7rs) 36 - Probably need a thread per port 37 ** reader/writer 38 - syntax support for complex numbers (Kernel report) 39 - unicode support 40 - add case sensitive option / compiler flag 41 *** add new external representations 42 - vectors 43 - bytevectors 44 - errors 45 - others(?) 46 ** features 47 *** r7rs 48 - add optional arguments to all versions of fill! 49 - add optional arguments to all versions of copy 50 - read-bytevector & read-bytevector! 51 *** extra 52 - read lines (reads all lines and returns a list of them) 53 - read list (like what is used for load) 54 ** library 55 *** some simplified error guarding (r7rs) 56 *** $case (r7rs) 57 *** $case-lambda + $case-vau (r7rs) 58 *** $named-let + $do (r7rs) 59 *** $define-record-type (r7rs) 60 *** eager comprehensions (at least for check.k) see SRFIs 42 and 78 (srfi) 61 *** restarts (r7rs/common lisp) 62 *** check.k as a module 63 ** webpage 64 - Have Maria Sol draw a simple logo 65 ** other 66 *** add restart support to the repl/interpreter (r7rs) 67 *** complex numbers (Kernel report) 68 *** interval arithmetic (Kernel report) 69 ** reduce binary size 70 *** currently (2011/12/05) is 3megs 71 - most of it from kg*.o 72 - klisp_assert: 73 - almost 1 meg comes from klisp_asserts 74 - adds considerably to the compilation time 75 - add a flag to enable assertions 76 - and disable it by default 77 - fix warnings when assertions are turned off 78 - unitialized uses 79 - unused variables 80 - debugging symbols: 81 - 1 meg and a half comes from debugging symbols 82 - adds to the compilation time 83 - add a flag 84 - maybe the same as for asserts 85 - maybe another one 86 - disable it by default 87 - Even after disabling these two, the size is 500k 88 - Continue investigating and try to make it lower 89 90 ** documentation 91 *** info/html manual 92 - xrefs 93 - Clean up the structure of the documentation 94 - a little on the indexes 95 - add sections for general concepts (tail context, dynamic extent, etc) 96 - find a way to inline function documentation in the c source code 97 (check to see how emacs does this for elisp) 98 *** README 99 - Add README files to all directories 100 *** man page 101 - change man page to mandoc format