Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/compiler/NOTES
ViewVC logotype

Annotation of /sml/trunk/src/compiler/NOTES

Parent Directory Parent Directory | Revision Log 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