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

Legend:
Removed from v.898  
changed lines
  Added in v.972

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