-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathTODO
68 lines (65 loc) · 2.34 KB
/
TODO
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
Little things
DONE Change all make_foo() to make_foo_fill().
DONE Verify all ASSERTs are needed.
DONE Remove all #include <assert.h>.
DONE Enable selftest.
DONE Align function declarations in *.h.
DONE Rename all "hdr" to "hobj".
DONE Rename "normal pointer" to "heap object".
DONE Rename check_obj() to CHECK_OBJ().
DONE Refactor mem.h.
DONE Make is_TYPE() inline by exporting the mem_ops_t structures.
DONE Move is_null() and is_undefined() to their own files.
DONE Find better names for EMPTY_LIST and UNDEFINED.
DONE Make pair_car() and pair_cdr() inline.
DONE Rename obj_procedure.{h,c} -> obj_proc.{h,c}
DONE Rename proc.{h,c} -> prim.{h,c}
DONE Write comments about DEFINE_* macros in prim.h.
DONE Clean up obj_proc.h.
DONE Implement get_who().
DONE Rename all ASSERT to assert.
DONE Rename RAISE to THROW.
DONE Remove 2nd arg from CHECK and RAISE (aka THROW).
DONE read.c should use &lexical, not &syntax.
DONE Move apply_proc() from prim.c to eval.c.
DONE Most exceptions shouldn't supply irritants.
drop Move env from cont to dyn_env.
DONE Split cont4 into cont3 and cont4. (cont4 and cont5?)
DONE Define cont_proc_t in obj_proc.h and adjust function prototypes.
There should be some field accessors in conditions.h.
DONE Rewrite string->number in terms of char_to_number().
DONE Remove #ifdef'd code in test.c
DONE Remove #ifdef'd code in repl.c
DONE Remove "#if OLD_PORTS" all over.
DONE Remove "#if OLD_READER" in read.c.
DONE Remove "#if OLD_SCANNER" in scan.c.
DONE Remove read_stream() and yylex().
Remove core_eval?
Remove default-exception-handler in eval.c.
Heap
DONE Implement records.
Write comments about record layout.
DONE Hook GC into setjmp (after eval).
drop Reintroduce debug GC on every allocation.
Automatically grow heap when out of memory.
Implement transactional checks.
Speed up environments.
Speed up symbol lookup.
Implement a mutability flag. Possibly a separate mem_ops_t
for mutable types.
Data
DONE Implement binding.
DONE Implement continuation.
DONE Implement procedure.
DONE Implement condition as record.
DONE Implement compound condition as record (not derived from condition)
Check whether Unicode data is current rev.
Rationalize wchar_t and char_t.
Eval
DONE Design eval main loop.
DONE -- setjmp
DONE -- exceptions
DONE -- call/cc
-- multiple values
-- arg lists
-- nice calling convention for primitive procs