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

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

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