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

Legend:
Removed from v.890  
changed lines
  Added in v.916

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