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

SCM Repository

[smlnj] Diff of /sml/trunk/src/compiler/TODO
ViewVC logotype

Diff of /sml/trunk/src/compiler/TODO

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

sml/branches/FLINT/src/compiler/TODO revision 18, Wed Mar 11 21:00:18 1998 UTC sml/trunk/src/compiler/TODO revision 70, Fri Apr 3 00:06:55 1998 UTC
# Line 1  Line 1 
1  TODO:  TODO NOTES:
2     a. lcontract should do the following:     a. lcontract should do the following:
3          o reduce the code to normal form in one pass (no surprising redices)          o reduce the code to normal form in one pass (no surprising redices)
4          o should contract type applications (i.e., polymorphic functions          o should contract type applications (i.e., polymorphic functions
# Line 33  Line 33 
33        I currently will run one round of lcontract after specialize (see the        I currently will run one round of lcontract after specialize (see the
34        end of lcontract.sml). Is this an overkill ?        end of lcontract.sml). Is this an overkill ?
35    
36  ---------------------------------------------------------------------------     g. For a simple int list constant such as "[3]", the compiler
37  TODO:        generates the following after the representation analysis:
38          this is way too much work; several issues have to be dealt
39     a. push lcontract into FLINT    (* easy *)        with: first the "ltc_unit" and the "unit" constant; second
40     b. push specialize into FLINT   (* some work *)        is how to avoid trivial wrappers such as those generated
41     c. push reps into FLINT         (* rework *)        from wrapping a RECORD; third is how to avoid useless LET
42     d. push narrow into FLINT       (* easy *)        redices from the coerce procedure.
43     e. push convert into FLINT      (* register pressure ? *)  
44           v3 : (FK_FCT)  =
45     f. turn on the FLINT typechecker           (* CHRIS & VALERY *)           FN([v2 : S{}],
46     g. turn on the FLINT pretty printer        (* CHRIS & VALERY *)             v6 = RECORD []
47               [v8] =
48                 [v12] = v13 = WRAP(TT<>, v6)
49                          RETURN [v13]
50                 RETURN [v12]
51               v5 = CON(nil, [I], v8)
52               v4 = RECORD [(I)3,v5]
53               [v9] =
54                 [v10] = v11 = WRAP(TT<I,LST[I]>, v4)
55                          RETURN [v11]
56                 RETURN [v10]
57               v1 = CON(::, [I], v9)
58               v7 = STRUCT [v1]
59               RETURN [v7])
60    
61       h. Files that needs further clean-up ---
62            ltykernel.sml and wrappingNEW.sml
63  ---------------------------------------------------------------------------  ---------------------------------------------------------------------------
64  OTHER:  OTHER:
65    
66  B  eliminate pointers to the middle of closures ...  B  eliminate pointers to the middle of closures ...
 C  clean up the copyright/etc in all the source files  
67  C  parametrize the cross-module linkage conventions  C  parametrize the cross-module linkage conventions
68       1. add code splitting       1. add code splitting
69       2. get rid of LT_PST through advanced linkage interface       2. get rid of LT_PST through advanced linkage interface
70       3. new array splitting (code splitting, phase 1)       3. new array splitting (code splitting, phase 1)
71       4. all require runtime support in LoadBinFile in new-boot.c       4. all require runtime support in LoadBinFile in new-boot.c
72  C. delay inlining of array primops to the backend  C. delay inlining of array primops to the backend
73    D  clean up the copyright/etc in all the source files
74    
75  ---------------------------------------------------------------------------  ---------------------------------------------------------------------------
76  DONE:  DONE:
# Line 70  Line 85 
85          1. eliminate the PLambda to Lambda normalize module          1. eliminate the PLambda to Lambda normalize module
86          2. plambda is now part of the "trans-mcomp" phase          2. plambda is now part of the "trans-mcomp" phase
87  X  push FLINT into inl_info (?) and cleanup the CM interface  X  push FLINT into inl_info (?) and cleanup the CM interface
88    X  push lcontract into FLINT    (* easy *)
89    X  push specialize into FLINT   (* some work *)
90    X  push reps into FLINT         (* rework *)
91    X  push narrow into FLINT       (* easy *)
92    X  push convert into FLINT      (* register pressure ? *)
93    X  turn on the FLINT typechecker           (* CHRIS & VALERY *)
94    X  turn on the FLINT pretty printer        (* CHRIS & VALERY *)
95    

Legend:
Removed from v.18  
changed lines
  Added in v.70

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0