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

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

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