From 9539a2d9a21cc1379ab68798d042983f2516a90c Mon Sep 17 00:00:00 2001 From: Alex Shinn Date: Sat, 12 Dec 2009 16:27:36 +0900 Subject: [PATCH] converting TODO to org-mode, fleshing out --- TODO | 175 ++++++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 124 insertions(+), 51 deletions(-) diff --git a/TODO b/TODO index 01137858..ee91a9da 100644 --- a/TODO +++ b/TODO @@ -1,52 +1,125 @@ -* -*- outline -*- +-*- org -*- + +* compiler +** DONE ast rewrite + - State "DONE" [2009-04-09 Thu 14:32] +** DONE call/cc support + - State "DONE" [2009-04-09 Thu 14:36] +** DONE exceptions + - State "DONE" [2009-04-09 Thu 14:45] +** TODO native x86 backend +** TODO fasl/image files +** TODO shared stack on EVAL + Arguably a bug, at the moment we create a new stack on every EVAL + (which includes every macro definition, and in particular every + call to let-syntax that a macro may expand into - I'm looking at + you, (chibi loop)). + +* compiler optimizations +** TODO constant folding +** TODO simplification pass, dead-code elimination + This is important in particular for the output generated by + syntax-rules. +** TODO lambda lift + The current closure representation is not very efficient, so this + would help a lot. +** TODO inlining (and disabling primitive inlining) + Being able to redefine procedures is important though. +** TODO unsafe operations + Possibly, don't want to make things too complicated or unstable. +** TODO plugin infrastructure +** TODO type inference with warning + +* macros +** DONE hygiene + - State "DONE" [2009-04-09 Thu 14:41] +** DONE hygienic nested let-syntax + - State "DONE" [2009-12-08 Tue 14:41] +** DONE macroexpand utility + - State "DONE" [2009-12-08 Tue 14:41] +** TODO compiler macros +** TODO SRFI-46 basic syntax-rules extensions +** TODO (... ...) support +** TODO syntax-rules common pattern reduction +** TODO syntax-rules loop optimization + +* garbage collection +** DONE precise gc rewrite + - State "DONE" [2009-06-22 Mon 14:27] +** DONE fix heap growing + - State "DONE" [2009-06-22 Mon 14:29] +** DONE separate gc heaps + - State "DONE" [2009-12-08 Tue 14:29] +** DONE add finalizers + - State "DONE" [2009-12-08 Tue 14:29] +** TODO support weak references + +* runtime +** DONE bignums + - State "DONE" [2009-07-07 Tue 14:42] +** TODO unicode +** TODO threads +** TODO recursive disasm + +* FFI +** DONE libdl support + - State "DONE" [2009-12-08 Tue 14:45] +** DONE opcode generation interface + - State "DONE" [2009-11-15 Sun 14:45] +** TODO stub generator +*** DONE define-c-struct + - State "DONE" [2009-11-29 Sun 14:48] +*** DONE define-c + - State "DONE" [2009-11-29 Sun 14:48] +*** TODO array return types +*** TODO pre-buffered string types (like getcwd) + +* module system +** DONE scheme48-like config language + - State "DONE" [2009-10-13 Tue 14:38] +** DONE shared library includes + - State "DONE" [2009-12-08 Tue 14:39] +** TODO only/except/rename/prefix modifiers +** TODO scheme-complete.el support +** TODO access individual modules from repl + +* core modules +** TODO SRFI-0 cond-expand +** DONE SRFI-9 define-record-type + - State "DONE" [2009-12-08 Tue 14:50] +** DONE SRFI-69 hash-tables + - State "DONE" [2009-11-15 Sun 14:50] +** DONE match library + - State "DONE" [2009-12-08 Tue 14:54] +** DONE loop library + - State "DONE" [2009-12-08 Tue 14:54] +** TODO network interface +** TODO posix interface +** TODO pathname library +** TODO uri library +** TODO http library +** TODO show (formatting) library +** TODO zip library +** TODO tar library +** TODO md5sum library + +* ports +** DONE basic mingw support + - State "DONE" [2009-06-22 Mon 14:36] +** DONE Plan 9 support + - State "DONE" [2009-08-10 Mon 14:37] +** DONE 64-bit support + - State "DONE" [2009-11-01 Sun 14:37] +** TODO iPhone support +** TODO bare-metal support + +* miscellaneous +** TODO overall cleanup +** TODO user documentation +** TODO thorough source documentation + +* distribution +** TODO packaging format +** TODO code repository with fetch+install tool +** TODO translator to/from other implementations -*+ precise gc rewrite -**+ fix heap growing -**+ separate gc heaps -**+ finalizers -**- weak references -*+ ast rewrite -*+ full r5rs -*+ closures -*+ string-ports -*+ argument validation -*+ variadic procedures -*+ call/cc -*+ exceptions -*+ tail-call elimination -*+ internal defines -*+ 1st class primitives -*+ macros -*+ hygiene -**- nested -**- compiler macros -*+ bignums -*= modules -**+ scheme48-like config language -**- only/except/rename modifiers -**- scheme-complete.el support -*= ffi -**+ libdl interface -**+ opcode generation interface -**= stub generator -*= cleanup -*- user documentation -*- unicode -*- condition-case -*- native x86 compilation -*+ plan 9 port -*= 9p support -*- optimization passes -**- constant folding -**- simplification pass, dead-code elimination -**- lambda lift -**- inlining -**- unsafe operations -**- plugin infrastructure -*- type inference with warnings -*- SRFI-0 cond-expand -*+ SRFI-9 define-record-type -*+ SRFI-69 hash-tables -*= net interface -*= posix interface -*- code repository with install tools