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 939, Tue Sep 25 19:25:48 2001 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Matthias Blume
17    Date: 2001/09/25 15:25:00 EDT
18    Tag: blume-20010925-exninfo
19    Description:
20    
21    I provided a non-hook implementation of exnName (at the toplevel) and
22    made the "dummy" implementation of exnMessage (at the toplevel) more
23    useful: if nothing gets "hooked in", then at least you are going to
24    see the exception name and a message indicating why you don't see more.
25    
26    [For the time being, programs that need exnMessage and want to use
27    ml-build should either use General.exnMessage (strongly recommended) or
28    refer to structure General at some other point so that CM sees a
29    static dependency.]
30    
31    [Similar remarks go for "print" and "use":  If you want to use their
32    functionality in stand-alone programs generated by ml-build, then use
33    TextIO.output and Backend.Interact.useFile (from $smlnj/compiler.cm).]
34    
35    ----------------------------------------------------------------------
36    Name: Matthias Blume
37    Date: 2001/09/20 17:28:00 EDT
38    Tag: blume-20010920-slowfp
39    Description:
40    
41    Allen says that x86-fast-fp is not safe yet, so I turned it off again...
42    
43    ----------------------------------------------------------------------
44    Name: Matthias Blume
45    Date: 2001/09/20 17:20:00 EDT
46    Tag: blume-20010920-canonicalpaths
47    Description:
48    
49    0. Updated the BOOT file (something that I forgot to do earlier).
50    
51    1. Small internal change to CM so that it avoids "/../" in filenames
52       as much as possible (but only where it is safe).
53    
54    2. Changed config/_run-sml (resulting in a changed bin/.run-sml) so
55       that arguments that contain delimiters are passed through correctly.
56       This change also means that all "special" arguments of the form
57       @SMLxxx... must come first.
58    
59    3. Changed install script to put relative anchor names for tool commands
60       into pathconfig.
61    
62    ----------------------------------------------------------------------
63    Name: Matthias Blume
64    Date: 2001/09/18 15:35:00 EDT
65    Tag: blume-20010918-readme11036
66    Description:
67    
68    Added README files.
69    
70    ----------------------------------------------------------------------
71    Name: Matthias Blume
72    Date: 2001/09/18 11:45:00 EDT
73    Tag: Release_110_36 (retag)
74    Description:
75    
76    Fixed mistake in config/preloads. Retagged as 110.36.
77    
78    ----------------------------------------------------------------------
79    Name: Matthias Blume
80    Date: 2001/09/18 09:40:00 EDT
81    Tag: Release_110_36_orig (tag changed)
82    Description:
83    
84    New version (110.36).  New bootfiles.
85    
86    ----------------------------------------------------------------------
87    Name: Matthias Blume
88    Date: 2001/09/14 16:15:00 EDT
89    Tag: blume-20010914-x86fastfp
90    Description:
91    
92    John committed some changes that Allen made, in particular a (hopefully)
93    correctly working version of the x86-fp module.
94    
95    I changed the default setting of the Control.MLRISC.getFlag "x86-fast-fp"
96    flag to "true".  Everything seems to compile to a fixpoint ok, and
97    "mandelbrot" speeds up by about 15%.
98    
99    ----------------------------------------------------------------------
100    Name: Matthias Blume
101    Date: 2001/09/13 11:20:00 EDT
102    Tag: blume-20010913-minimal
103    Description:
104    
105    1. Stefan Monnier's patch to fix a miscompilation problem that
106       was brought to light by John Reppy's work on Moby.
107    
108    2. Implemented a minimal "structure Compiler" that contains just
109       "version" and "architecture".  The minimal version will be
110       available when the full version is not.  This is for backward-
111       compatibility with code that wants to test Compiler.version.
112    
113    ----------------------------------------------------------------------
114    Name: Matthias Blume
115    Date: 2001/08/28 14:03:00 EDT
116    Tag: blume-20010828-ml-lex
117    Description:
118    
119    Fix for bug 1581, received from Neophytos Michael.
120    
121    ----------------------------------------------------------------------
122    Name: Matthias Blume
123    Date: 2001/08/27 11:20:00 EDT
124    Tag: blume-20010827-readme11035
125    Description:
126    
127    Fleshed out the README file for 110.35.
128    
129    ----------------------------------------------------------------------
130    Name: Matthias Blume
131    Date: 2001/08/24 17:10:00 EDT
132    Tag: Release_110_35
133    Description:
134    
135    New version number (110.35).  New bootfiles.
136    
137    ----------------------------------------------------------------------
138    Name: Lal George
139    Date: 2001/08/24 13:47:18 EDT 2001
140    Tag: george-20010824-MLRISC-graphs
141    Description:
142    
143     removed clusters from MLRISC completely and replaced with graphs.
144    
145    ----------------------------------------------------------------------
146    Name: Matthias Blume
147    Date: 2001/08/23 17:50:00 EDT
148    Tag: blume-20010823-toplevel
149    Description:
150    
151    - some reorganization of the code that implements various kinds of
152      environments in the compiler (static, dynamic, symbolic, combined)
153    - re-implemented the EnvRef module so that evalStream works properly
154      (if the stream contains references to "use", "CM.make", etc.)
155    - cleaned up evalloop.sml and interact.sml (but they need more cleaning)
156    
157    ----------------------------------------------------------------------
158    Name: Matthias Blume
159    Date: 2001/08/20 15:50 EDT
160    Tag: blume20010820-slipup
161    Description:
162    
163    I forgot to commit a few files.  Here they are...
164    
165    ----------------------------------------------------------------------
166    Name: Matthias Blume
167    Date: 2001/08/20 15:35:00 EDT
168    Tag: blume-20010820-debugprof
169    Description:
170    
171    !!!! NEW BOOTFILES !!!!
172    
173    This is another round of reorganizing the compiler sources.  This
174    time the main goal was to factor out all the "instrumentation"
175    passes (for profiling and backtracing) into their own library.
176    The difficulty was to do it in such a way that it does not depend
177    on elaborate.cm but only on elabdata.cm.
178    
179    Therefore there have been further changes to both elaborate.cm and
180    elabdata.cm -- more "generic" things have been moved from the former
181    to the latter.  As a result, I was forced to split the assignment
182    of numbers indicating "primtyc"s into two portions: SML-generic and
183    SML/NJ-specific.  Since it would have been awkward to maintain,
184    I bit the bullet and actually _changed_ the mapping between these
185    numbers and primtycs.  The bottom line of this is that you need
186    a new set of bin- and bootfiles.
187    
188    I have built new bootfiles for all architectures, so doing a fresh
189    checkout and config/install.sh should be all you need.
190    
191    The newly created library's name is
192    
193        $smlnj/viscomp/debugprof.cm
194    
195    and its sources live under
196    
197        src/compiler/DebugProf
198    
199    ----------------------------------------------------------------------
200    Name: Matthias Blume
201    Date: 2001/08/15 17:15:00 EDT
202    Tag: blume-20010815-compreorg
203    Description:
204    
205    This is a first cut at reorganizing the CM libraries that make up the
206    core of the compiler.  The idea is to separate out pieces that could
207    be used independently by tools, e.g., the parser, the typechecker, etc.
208    
209    The current status is a step in this direction, but it is not quite
210    satisfactory yet.  Expect more changes in the future.
211    
212    Here is the current (new) organization...
213    
214        What used to be $smlnj/viscomp/core.cm is now divided into
215        six CM libraries:
216    
217             $smlnj/viscomp/basics.cm
218                           /parser.cm
219                           /elabdata.cm
220                           /elaborate.cm
221                           /execute.cm
222                           /core.cm
223    
224        The CM files for these libraries live under src/system/smlnj/viscomp.
225        All these libraries are proxy libraries that contain precisely
226        one CM library component.  Here are the locations of the components
227        (all within the src/compiler tree):
228    
229             Basics/basics.cm
230             Parse/parser.cm
231             ElabData/elabdata.cm
232             Elaborator/elaborate.cm
233             Execution/execute.cm
234             core.cm
235    
236         [This organization is the same that has been used already
237         for a while for the architecture-specific parts of the visible
238         compiler and for the old version of core.cm.]
239    
240         As you will notice, many source files have been moved from their
241         respective original locations to a new home in one of the above
242         subtrees.
243    
244         The division of labor between the new libraries is the following:
245    
246             basics.cm:
247                - Simple, basic definitions that pertain to many (or all) of
248                  the other libraries.
249             parser.cm:
250                - The SML parser, producing output of type Ast.dec.
251                - The type family for Ast is also defined and exported here.
252             elabdata.cm:
253                - The datatypes that describe input and output of the elaborator.
254                  This includes types, absyn, and static environments.
255             elaborator.cm:
256                - The SML/NJ type checker and elaborator.
257                  This maps an Ast.dec (with a given static environment) to
258                  an Absyn.dec (with a new static environment).
259                - This libraries implements certain modules that used to be
260                  structures as functors (to remove dependencies on FLINT).
261             execute.cm:
262                - Everything having to do with executing binary code objects.
263                - Dynamic environments.
264             core.cm:
265                - SML/NJ-specific instantiations of the elaborator and MLRISC.
266                - Top-level modules.
267                - FLINT (this should eventually become its own library)
268    
269    Notes:
270    
271    I am not 100% happy with the way I separated the elaborator (and its
272    data structures) from FLINT.  Two instances of the same problem:
273    
274        1. Data structures contain certain fields that carry FLINT-specific
275           information.  I hacked around this using exn and the property list
276           module from smlnj-lib.  But the fact that there are middle-end
277           specific fields around at all is a bit annoying.
278    
279        2. The elaborator calculates certain FLINT-related information.  I tried
280           to make this as abstract as I could using functorization, but, again,
281           the fact that the elaborator has to perform calculations on behalf
282           of the middle-end at all is not nice.
283    
284        3. Having to used exn and property lists is unfortunate because it
285           weakens type checking.  The other alternative (parameterizing
286           nearly *everything*) is not appealing, though.
287    
288    I removed the "rebinding =" warning hack because due to the new organization
289    it was awkward to maintain it.  As a result, the compiler now issues some of
290    these warnings when compiling init.cmi during bootstrap compilation. On
291    the plus side, you also get a warning when you do, for example:
292       val op = = Int32.+
293    which was not the case up to now.
294    
295    I placed "assign" and "deref" into the _Core structure so that the
296    code that deals with the "lazy" keyword can find them there.  This
297    removes the need for having access to the primitive environment
298    during elaboration.
299    
300    ----------------------------------------------------------------------
301    Name: Matthias Blume
302    Date: 2001/08/13
303    Tag: blume-20010813-closures
304    Description:
305    
306    This fix was sent to us by Zhong Shao.  It is supposed to improve the
307    performance of certain loops by avoiding needless closure allocation.
308    
309    ----------------------------------------------------------------------
310  Name: Lal George  Name: Lal George
311  Date: 2001/07/31 10:03:23 EDT 2001  Date: 2001/07/31 10:03:23 EDT 2001
312  Tag: george-20010731-x86-fmalloc  Tag: george-20010731-x86-fmalloc
# Line 2743  Line 3037 
3037       elaborator). There were a lot of changes during my "linkpath" trials       elaborator). There were a lot of changes during my "linkpath" trials
3038       that could have been reverted to their original state but weren't.       that could have been reverted to their original state but weren't.
3039       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
3040       than what was strictly necessary...  (I _did_ resist the tempation       than what was strictly necessary...  (I _did_ resist the temptation
3041       of doing any "global reformatting" to avoid an untimely death at       of doing any "global reformatting" to avoid an untimely death at
3042       Dave's hands. :)       Dave's hands. :)
3043    

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

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