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/HISTORY
ViewVC logotype

Diff of /sml/trunk/HISTORY

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

revision 896, Tue Jul 31 14:09:49 2001 UTC revision 909, Fri Aug 24 17:48:53 2001 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Matthias Blume
17    Date: 2001/08/24 13:47:18 EDT 2001
18    Tag: george-20010824-MLRISC-graphs
19    Description:
20    
21     removed clusters from MLRISC completely and replaced with graphs.
22    
23    ----------------------------------------------------------------------
24    Name: Matthias Blume
25    Date: 2001/08/23 17:50:00 EDT
26    Tag: blume-20010823-toplevel
27    Description:
28    
29    - some reorganization of the code that implements various kinds of
30      environments in the compiler (static, dynamic, symbolic, combined)
31    - re-implemented the EnvRef module so that evalStream works properly
32      (if the stream contains references to "use", "CM.make", etc.)
33    - cleaned up evalloop.sml and interact.sml (but they need more cleaning)
34    
35    ----------------------------------------------------------------------
36    Name: Matthias Blume
37    Date: 2001/08/20 15:50 EDT
38    Tag: blume20010820-slipup
39    Description:
40    
41    I forgot to commit a few files.  Here they are...
42    
43    ----------------------------------------------------------------------
44    Name: Matthias Blume
45    Date: 2001/08/20 15:35:00 EDT
46    Tag: blume-20010820-debugprof
47    Description:
48    
49    !!!! NEW BOOTFILES !!!!
50    
51    This is another round of reorganizing the compiler sources.  This
52    time the main goal was to factor out all the "instrumentation"
53    passes (for profiling and backtracing) into their own library.
54    The difficulty was to do it in such a way that it does not depend
55    on elaborate.cm but only on elabdata.cm.
56    
57    Therefore there have been further changes to both elaborate.cm and
58    elabdata.cm -- more "generic" things have been moved from the former
59    to the latter.  As a result, I was forced to split the assignment
60    of numbers indicating "primtyc"s into two portions: SML-generic and
61    SML/NJ-specific.  Since it would have been awkward to maintain,
62    I bit the bullet and actually _changed_ the mapping between these
63    numbers and primtycs.  The bottom line of this is that you need
64    a new set of bin- and bootfiles.
65    
66    I have built new bootfiles for all architectures, so doing a fresh
67    checkout and config/install.sh should be all you need.
68    
69    The newly created library's name is
70    
71        $smlnj/viscomp/debugprof.cm
72    
73    and its sources live under
74    
75        src/compiler/DebugProf
76    
77    ----------------------------------------------------------------------
78    Name: Matthias Blume
79    Date: 2001/08/15 17:15:00 EDT
80    Tag: blume-20010815-compreorg
81    Description:
82    
83    This is a first cut at reorganizing the CM libraries that make up the
84    core of the compiler.  The idea is to separate out pieces that could
85    be used independently by tools, e.g., the parser, the typechecker, etc.
86    
87    The current status is a step in this direction, but it is not quite
88    satisfactory yet.  Expect more changes in the future.
89    
90    Here is the current (new) organization...
91    
92        What used to be $smlnj/viscomp/core.cm is now divided into
93        six CM libraries:
94    
95             $smlnj/viscomp/basics.cm
96                           /parser.cm
97                           /elabdata.cm
98                           /elaborate.cm
99                           /execute.cm
100                           /core.cm
101    
102        The CM files for these libraries live under src/system/smlnj/viscomp.
103        All these libraries are proxy libraries that contain precisely
104        one CM library component.  Here are the locations of the components
105        (all within the src/compiler tree):
106    
107             Basics/basics.cm
108             Parse/parser.cm
109             ElabData/elabdata.cm
110             Elaborator/elaborate.cm
111             Execution/execute.cm
112             core.cm
113    
114         [This organization is the same that has been used already
115         for a while for the architecture-specific parts of the visible
116         compiler and for the old version of core.cm.]
117    
118         As you will notice, many source files have been moved from their
119         respective original locations to a new home in one of the above
120         subtrees.
121    
122         The division of labor between the new libraries is the following:
123    
124             basics.cm:
125                - Simple, basic definitions that pertain to many (or all) of
126                  the other libraries.
127             parser.cm:
128                - The SML parser, producing output of type Ast.dec.
129                - The type family for Ast is also defined and exported here.
130             elabdata.cm:
131                - The datatypes that describe input and output of the elaborator.
132                  This includes types, absyn, and static environments.
133             elaborator.cm:
134                - The SML/NJ type checker and elaborator.
135                  This maps an Ast.dec (with a given static environment) to
136                  an Absyn.dec (with a new static environment).
137                - This libraries implements certain modules that used to be
138                  structures as functors (to remove dependencies on FLINT).
139             execute.cm:
140                - Everything having to do with executing binary code objects.
141                - Dynamic environments.
142             core.cm:
143                - SML/NJ-specific instantiations of the elaborator and MLRISC.
144                - Top-level modules.
145                - FLINT (this should eventually become its own library)
146    
147    Notes:
148    
149    I am not 100% happy with the way I separated the elaborator (and its
150    data structures) from FLINT.  Two instances of the same problem:
151    
152        1. Data structures contain certain fields that carry FLINT-specific
153           information.  I hacked around this using exn and the property list
154           module from smlnj-lib.  But the fact that there are middle-end
155           specific fields around at all is a bit annoying.
156    
157        2. The elaborator calculates certain FLINT-related information.  I tried
158           to make this as abstract as I could using functorization, but, again,
159           the fact that the elaborator has to perform calculations on behalf
160           of the middle-end at all is not nice.
161    
162        3. Having to used exn and property lists is unfortunate because it
163           weakens type checking.  The other alternative (parameterizing
164           nearly *everything*) is not appealing, though.
165    
166    I removed the "rebinding =" warning hack because due to the new organization
167    it was awkward to maintain it.  As a result, the compiler now issues some of
168    these warnings when compiling init.cmi during bootstrap compilation. On
169    the plus side, you also get a warning when you do, for example:
170       val op = = Int32.+
171    which was not the case up to now.
172    
173    I placed "assign" and "deref" into the _Core structure so that the
174    code that deals with the "lazy" keyword can find them there.  This
175    removes the need for having access to the primitive environment
176    during elaboration.
177    
178    ----------------------------------------------------------------------
179    Name: Matthias Blume
180    Date: 2001/08/13
181    Tag: blume-20010813-closures
182    Description:
183    
184    This fix was sent to us by Zhong Shao.  It is supposed to improve the
185    performance of certain loops by avoiding needless closure allocation.
186    
187    ----------------------------------------------------------------------
188  Name: Lal George  Name: Lal George
189  Date: 2001/07/31 10:03:23 EDT 2001  Date: 2001/07/31 10:03:23 EDT 2001
190  Tag: george-20010731-x86-fmalloc  Tag: george-20010731-x86-fmalloc

Legend:
Removed from v.896  
changed lines
  Added in v.909

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