SCM Repository
Annotation of /sml/trunk/src/compiler/NOTES
Parent Directory
|
Revision Log
Revision 21 - (view) (download)
1 : | monnier | 21 | ============================================================================ |
2 : | A. The compilation function: string -> code-object | ||
3 : | including the utility stuff --- compilation control --- | ||
4 : | |||
5 : | 1. Lexer and parser and fixity stuff (String --> Ast) | ||
6 : | 2. Elaborator (Ast --> Absyn) | ||
7 : | --- translation | ||
8 : | --- modules | ||
9 : | --- typechecker | ||
10 : | 3. Translation to FLINT (Absyn --> FLINT) | ||
11 : | --- match compilation | ||
12 : | --- source-level type to FLINT type | ||
13 : | 4. Optimizing FLINT (FLINT --> FLINT) | ||
14 : | 5. Representation Analysis (FLINT --> FLINTw) | ||
15 : | --- inserting the wrapper | ||
16 : | --- make all primitives concrete | ||
17 : | 6. <Temporary> FLINTw --> CPS | ||
18 : | --- switch compilation | ||
19 : | --- cps convert | ||
20 : | 7. <Temporary> CPS Optimizations (CPS --> CPS) | ||
21 : | 8. Closure Conversion (CPS --> CPS) | ||
22 : | 9. Spilling/LimitCheck/CodeGenerator | ||
23 : | 10. ML Risc | ||
24 : | |||
25 : | The top-level environment management: | ||
26 : | |||
27 : | how primitive types are dealt with ? | ||
28 : | 1. Pervasive / SML'97 Basis | ||
29 : | 2. Environment management ...... | ||
30 : | StaticEnv | ||
31 : | DynamicEnv | ||
32 : | 3. Pickling and Unpickling ? | ||
33 : | |||
34 : | The runtime systems | ||
35 : | ============================================================================ | ||
36 : | B. How to recover the all-files.cm (or sources.cm) file after making | ||
37 : | dramatic changes to the directory structure. Notice that the difference | ||
38 : | between all-files.cm and sources.cm is just the bootstrap glue files. | ||
39 : | |||
40 : | 1. ls -1 */*.{sig,sml} */*/*.{sig,sml} | grep -v 0-Boot > xxx | ||
41 : | 2. grep -v 5-CPS/obsol xxx > yyy | ||
42 : | 3. Comment out 4-Translate/trans/translist.sml | ||
43 : | 4. Add 7-NewCGen/MLRISC/MLRISC.cm | ||
44 : | 5. Add 9-Misc/util/UTIL.cm | ||
45 : | 6. Add ../ml-yacc/lib/sources.cm | ||
46 : | 7. Delete 9-Misc/util/intmap.sig | ||
47 : | 9-Misc/util/intmap.sml | ||
48 : | 9-Misc/util/sort.sml | ||
49 : | 9-Misc/util/sortedlist.sml | ||
50 : | ============================================================================ | ||
51 : | C. Organization for the future: | ||
52 : | |||
53 : | All files should follow conventions: filename.sig vs. filename.sml | ||
54 : | |||
55 : | 0-BOOT | ||
56 : | bootstrapping, basis library, ... | ||
57 : | 1-TOP | ||
58 : | batch compilation | ||
59 : | interactive environment | ||
60 : | 2-ML (PARSE, SEMANT) | ||
61 : | 1-parse, ast | ||
62 : | 2-elaborate+typing, absyn | ||
63 : | 3-pickle | ||
64 : | 4-translation into FLINT ? | ||
65 : | 3-FLINT (* middle-end: FLINT ===> Closure-converted FLINT *) | ||
66 : | 4-CGEN | ||
67 : | 5-NCGEN | ||
68 : | ============================================================================ | ||
69 : |
root@smlnj-gforge.cs.uchicago.edu | ViewVC Help |
Powered by ViewVC 1.0.0 |