Initial revision
[sbcl.git] / doc / cmucl / internals / outline.txt
1 Todo:
2 fasl.tex
3 In good shape.
4
5 object.tex
6 Fairly good, but should probably be integrated with description of primitives
7 in vm.tex.
8
9 front.tex
10 Needs updating cleanup scan.  Not too bad.
11
12 middle.tex
13 Need VMR overview.  New names for GTN/LTN?  Needs general cleanup, but not too
14 bad.  NLX and stack are the worst. 
15
16 back.tex
17 Pack and assembler need more info.  General cleanup.
18
19
20 compiler-overview.tex
21 Adapt introductory material from /../fred/usr/ram/comp.mss, pap:talk.mss
22 Division between ICR overview and ICR convert needs work.
23
24 debugger.tex
25 Needs much work.  Merge much info from debug-info and debug-int.  Duplicating a
26 fair amount of stuff in the source may make sense where, since this is a part
27 of the system that is generally interesting.  And also, a part that people
28 building on CMU CL might want to understand.
29
30 glossary.tex
31 Finish, integrate w/ main text?
32
33 interpreter.tex
34 Very sketchy and tentative.  Needs to be fleshed out from the code.
35
36 retargeting.tex
37 Very rough.  Needs to be merged with parts of vm.tex (call vops).  Needs some
38 additional text.  Documentation of assembler, and all other exported
39 interfaces.  (Generate defined VOP descriptions from the core, keyed to files?)
40
41 vm.tex
42 This file should probably cease to exist, going into object, retargeting and
43 introductory material.  [Also other scrap in stuff/]
44
45
46 [VMR and ICR overview also needed...]
47
48 architecture.tex
49 Missing sections on startup code, compiling, building.
50
51 environment.tex
52 Needs to be written: type system and info database interfaces.
53
54 interface.tex
55 Needs to be written: source paths and error message utilities.
56
57 lowlev.tex
58 Needs to be written.  All manner of low-level stuff: memory layout and
59 management, core file format, C interface, low-level debugging (and ldb.)
60
61 \f
62 Several different audiences:
63  -- Curious compiler implementors (not a big priority.  Downplay academic
64     aspects, i.e. comparisons to other techniques, analysis of limitations,
65     future work...)  Compiler part can be more academic, and include some
66     justifications of other design decisions.
67  -- System maintainers.
68  -- People retargeting the compiler.
69  -- People bringing up the system in a new environment.
70
71 Sys arch part:
72     Package + file structure [system.txt]
73     system building [compiling.txt]
74         bootstrapping & cross compiling
75
76 Compiler design:
77     Overview (mirror structure of rest of the part)
78     ICR data structure
79     Front end [front.tex]
80     Basic VMR data structures (no back-end stuff)
81     Middle end [middle.tex]
82     Back end + data structures [back.tex]
83
84     Error system interface
85     Source tracking
86
87 Compiler retargeting:
88     VM definition concepts [porting.txt, mail.txt, retargeting.tex]
89         SCs, SBs, primitive-types
90     Defining VOPS
91         time specification
92     defining 
93     and using the assembler
94     Required VOPs [internal.txt, lowlev.txt, vm.mss]
95     Standard primitives [vm.mss] (broken down by type, parallels object format
96     section structure.)
97     Customizing VMR conversion
98         multiple hardware
99         constant operands
100         VM specific transforms
101         special-case IR2 convert methods
102
103 Run-time system:
104     type system
105     info database
106     Data format [object.tex]
107     Debugger:
108         Info format [debug.txt]
109         Stack parsing [debug.txt]
110         Breakpoints
111         Internal errors
112         Signals
113     Memory management: [William]
114         heap Layout
115         stacks
116         GC
117     misc implementation stuff: foreign call, assembly routines [lowlev.txt]
118     LDB and low-level debugging
119     core file format  [William]
120     fasl format [fasl.tex]