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

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

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