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

Legend:
Removed from v.1136  
changed lines
  Added in v.1156

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