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 1137, Tue Mar 12 22:28:55 2002 UTC revision 1158, Fri Mar 22 01:21:25 2002 UTC
# Line 11  Line 11 
11  Date: yyyy/mm/dd  Date: yyyy/mm/dd
12  Tag: <post-commit CVS tag>  Tag: <post-commit CVS tag>
13  Description:  Description:
14    
15    ----------------------------------------------------------------------
16    Name: Allen Leung
17    Date: 2002/03/21 20:30:00 EST
18    Tag: leunga-20020321-cfg
19    Description:
20    
21      Fixed a potential problem in cfg edge splitting.
22    
23    ----------------------------------------------------------------------
24    Name: Allen Leung
25    Date: 2002/03/21 17:15:00 EST
26    Tag: leunga-20020321-x86-fp-cfg
27    Description:
28    
29      1. Recoded the buggy parts of x86-fp.
30    
31         a. All the block reordering code has been removed.
32            We now depend on the block placement phases to do this work.
33    
34         b. Critical edge splitting code has been simplified and moved into the
35            CFG modules, as where they belong.
36    
37         Both of these were quite buggy and complex.  The code is now much, much
38         simpler.
39    
40      2. X86 backend.
41    
42         a. Added instructions for 64-bit support.  Instruction selection for
43            64-bit has not been committed, however, since that
44            requires changes to MLTREE which haven't been approved by
45            Lal and John.
46    
47         b. Added support for FUCOMI and FUCOMIP when generating code for
48            PentiumPro and above.  We only generate these instructions in
49            the fast-fp mode.
50    
51         c. Added cases for JP and JNP in X86FreqProps.
52    
53      3. CFG
54    
55         CFG now has a bunch of methods for edge splitting and merging.
56    
57      4. Machine description.
58    
59         John's simplification of MLTREE_BASIS.fcond broke a few machine
60         description things:
61    
62         rtl-build.{sig,sml} and hppa.mdl fixed.
63    
64         NOTE: the machine description stuff in the repository is still broken.
65               Again, I can't put my fixes in because that involves
66               changes to MLTREE.
67    
68    ----------------------------------------------------------------------
69    Name: Matthias Blume
70    Date: 2002/03/20 15:55:00 EST
71    Tag: blume-20020320-kmp
72    Description:
73    
74    Implemented Knuth-Morris-Pratt string matching in PreString and used
75    it for String.isSubstring, Substring.isSubstring, and
76    Substring.position.
77    
78    (Might need some stress-testing.  Simple examples worked fine.)
79    
80    ----------------------------------------------------------------------
81    Name: Matthias Blume
82    Date: 2002/03/19 16:37:00 EST
83    Tag: blume-20020319-witnesses
84    Description:
85    
86    Added a structure C.W and functions convert/Ptr.convert to ml-nlffi-lib.
87    
88    This implements a generic mechanism for changing constness qualifiers
89    anywhere within big C types without resorting to outright "casts".
90    (So far, functions such as C.rw/C.ro or C.Ptr.rw/C.Ptr.ro only let you
91    modify the constness at the outermost level.)
92    The implementation of "convert" is based on the idea of "witness"
93    values -- values that are not used by the operation but whose types
94    "testify" to their applicability.  On the implementation side, "convert"
95    is simply a projection (returning its second curried argument).  With
96    cross-module inlining, it should not result in any machine code being
97    generated.
98    
99    ----------------------------------------------------------------------
100    Name: Matthias Blume
101    Date: 2002/03/15 16:40:00 EST
102    Tag: blume-20020315-basis
103    Description:
104    
105    Provided (preliminary?) implementations for
106    
107      {String,Substring}.{concatWith,isSuffix,isSubstring}
108    
109    and
110    
111      Substring.full
112    
113    Those are in the Basis spec but they were missing in SML/NJ.
114    
115    ----------------------------------------------------------------------
116    Name: Matthias Blume
117    Date: 2002/03/14 21:30:00 EST
118    Tag: blume-20020314-controls
119    Description:
120    
121    Controls:
122    ---------
123    
124    1. Factored out the recently-added Controls : CONTROLS stuff and put
125       it into its own library $/controls-lib.cm.  The source tree for
126       this is under src/smlnj-lib/Controls.
127    
128    2. Changed the names of types and functions in this interface, so they
129       make a bit more "sense":
130    
131          module -> registry
132          'a registry -> 'a group
133    
134    3. The interface now deals in ref cells only.  The getter/setter interface
135       is (mostly) gone.
136    
137    4. Added a function that lets one register an already-existing ref cell.
138    
139    5. Made the corresponding modifications to the rest of the code so that
140       everything compiles again.
141    
142    6. Changed the implementation of Controls.MLRISC back to something closer
143       to the original.  In particular, this module (and therefore MLRISC)
144       does not depend on Controls.  There now is some link-time code in
145       int-sys.sml that registers the MLRISC controls with the Controls
146       module.
147    
148    CM:
149    ---
150    
151      * One can now specify the lambda-split aggressiveness in init.cmi.
152    
153    ----------------------------------------------------------------------
154    Name: Allen Leung
155    Date: 2002/03/13 17:30:00 EST
156    Tag: leunga-20020313-x86-fp-unary
157    Description:
158    
159    Bug fix for:
160    
161    > leunga@weaselbane:~/Yale/tmp/sml-dist{21} bin/sml
162    > Standard ML of New Jersey v110.39.1 [FLINT v1.5], March 08, 2002
163    > - fun f(x,(y,z)) = Real.~ y;
164    > [autoloading]
165    > [autoloading done]
166    >       fchsl   (%eax), 184(%esp)
167    > Error: MLRisc bug: X86MCEmitter.emitInstr
168    >
169    > uncaught exception Error
170    >   raised at: ../MLRISC/control/mlriscErrormsg.sml:16.14-16.19
171    
172    The problem was that the code generator did not generate any fp registers
173    in this case, and the ra didn't know that it needed to run the X86FP phase to
174    translate the pseudo fp instruction.   This only happened with unary fp
175    operators in certain situations.
176    
177    ----------------------------------------------------------------------
178    Name: Matthias Blume
179    Date: 2002/03/13 14:00:00 EST
180    Tag: blume-20020313-overload-etc
181    Description:
182    
183    1. Added _overload as a synonym for overload for backward compatibility.
184       (Control.overloadKW must be true for either version to be accepted.)
185    
186    2. Fixed bug in install script that caused more things to be installed
187       than what was requested in config/targets.
188    
189    3. Made CM aware of the (_)overload construct so that autoloading
190       works.
191    
192    ----------------------------------------------------------------------
193    Name: Matthias Blume
194    Date: 2002/03/12 22:03:00 EST
195    Tag: blume-20020312-url
196    Description:
197    
198    Forgot to update BOOT and srcarchiveurl.
199    
200  ----------------------------------------------------------------------  ----------------------------------------------------------------------
201  Name: Matthias Blume  Name: Matthias Blume
202  Date: 2002/03/12 17:30:00 EST  Date: 2002/03/12 17:30:00 EST
# Line 27  Line 213 
213    provides a bit more "stability":  Once CM has seen a compilation    provides a bit more "stability":  Once CM has seen a compilation
214    unit, it keeps its identity constant (as long as you do not delete    unit, it keeps its identity constant (as long as you do not delete
215    those crucial CM/GUID/* files).  This means that when you change    those crucial CM/GUID/* files).  This means that when you change
216    and interface, compiler, then go back to the old interface, and    an interface, compile, then go back to the old interface, and
217    compile again, you arrive at the original pid.    compile again, you arrive at the original pid.
218    
219    There now also is a mechanism that instructs CM to use the plain    There now also is a mechanism that instructs CM to use the plain
# Line 102  Line 288 
288  ----------------------------------------------------------------------  ----------------------------------------------------------------------
289  Name: Allen Leung  Name: Allen Leung
290  Date: 2002/03/11 10:30:00 EST  Date: 2002/03/11 10:30:00 EST
291  Tag: leunga-20020310-runtime-string0  Tag: leunga-20020311-runtime-string0
292  Description:  Description:
293    
294     The representation of the empty string now points to a     The representation of the empty string now points to a

Legend:
Removed from v.1137  
changed lines
  Added in v.1158

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