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

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

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