Todo: fasl.tex In good shape. object.tex Fairly good, but should probably be integrated with description of primitives in vm.tex. front.tex Needs updating cleanup scan. Not too bad. middle.tex Need VMR overview. New names for GTN/LTN? Needs general cleanup, but not too bad. NLX and stack are the worst. back.tex Pack and assembler need more info. General cleanup. compiler-overview.tex Adapt introductory material from /../fred/usr/ram/comp.mss, pap:talk.mss Division between ICR overview and ICR convert needs work. debugger.tex Needs much work. Merge much info from debug-info and debug-int. Duplicating a fair amount of stuff in the source may make sense where, since this is a part of the system that is generally interesting. And also, a part that people building on CMU CL might want to understand. glossary.tex Finish, integrate w/ main text? interpreter.tex Very sketchy and tentative. Needs to be fleshed out from the code. retargeting.tex Very rough. Needs to be merged with parts of vm.tex (call vops). Needs some additional text. Documentation of assembler, and all other exported interfaces. (Generate defined VOP descriptions from the core, keyed to files?) vm.tex This file should probably cease to exist, going into object, retargeting and introductory material. [Also other scrap in stuff/] [VMR and ICR overview also needed...] architecture.tex Missing sections on startup code, compiling, building. environment.tex Needs to be written: type system and info database interfaces. interface.tex Needs to be written: source paths and error message utilities. lowlev.tex Needs to be written. All manner of low-level stuff: memory layout and management, core file format, C interface, low-level debugging (and ldb.) Several different audiences: -- Curious compiler implementors (not a big priority. Downplay academic aspects, i.e. comparisons to other techniques, analysis of limitations, future work...) Compiler part can be more academic, and include some justifications of other design decisions. -- System maintainers. -- People retargeting the compiler. -- People bringing up the system in a new environment. Sys arch part: Package + file structure [system.txt] system building [compiling.txt] bootstrapping & cross compiling Compiler design: Overview (mirror structure of rest of the part) ICR data structure Front end [front.tex] Basic VMR data structures (no back-end stuff) Middle end [middle.tex] Back end + data structures [back.tex] Error system interface Source tracking Compiler retargeting: VM definition concepts [porting.txt, mail.txt, retargeting.tex] SCs, SBs, primitive-types Defining VOPS time specification defining and using the assembler Required VOPs [internal.txt, lowlev.txt, vm.mss] Standard primitives [vm.mss] (broken down by type, parallels object format section structure.) Customizing VMR conversion multiple hardware constant operands VM specific transforms special-case IR2 convert methods Run-time system: type system info database Data format [object.tex] Debugger: Info format [debug.txt] Stack parsing [debug.txt] Breakpoints Internal errors Signals Memory management: [William] heap Layout stacks GC misc implementation stuff: foreign call, assembly routines [lowlev.txt] LDB and low-level debugging core file format [William] fasl format [fasl.tex]