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 1124, Thu Mar 7 19:49:22 2002 UTC revision 1140, Wed Mar 13 18:59:03 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    Name: Matthias Blume
16    Date: 2002/03/13 14:00:00 EST
17    Tag: blume-20020313-overload-etc
18    Description:
19    
20    1. Added _overload as a synonym for overload for backward compatibility.
21       (Control.overloadKW must be true for either version to be accepted.)
22    
23    2. Fixed bug in install script that caused more things to be installed
24       than what was requested in config/targets.
25    
26    3. Made CM aware of the (_)overload construct so that autoloading
27       works.
28    
29    ----------------------------------------------------------------------
30    Name: Matthias Blume
31    Date: 2002/03/12 22:03:00 EST
32    Tag: blume-20020312-url
33    Description:
34    
35    Forgot to update BOOT and srcarchiveurl.
36    
37    ----------------------------------------------------------------------
38    Name: Matthias Blume
39    Date: 2002/03/12 17:30:00 EST
40    Tag: blume-20020312-version110392
41    Description:
42    
43    Yet another version number bump (because of small changes to the
44    binfile format).  Version number is now 110.39.2.  NEW BOOTFILES!
45    
46    Changes:
47    
48      The new pid generation scheme described a few weeks ago was overly
49      complicated.  I implemented a new mechanism that is simpler and
50      provides a bit more "stability":  Once CM has seen a compilation
51      unit, it keeps its identity constant (as long as you do not delete
52      those crucial CM/GUID/* files).  This means that when you change
53      and interface, compiler, then go back to the old interface, and
54      compile again, you arrive at the original pid.
55    
56      There now also is a mechanism that instructs CM to use the plain
57      environment hash as a module's pid (effectively making its GUID
58      the empty string).  For this, "noguid" must be specified as an
59      option to the .sml file in question within its .cm file.
60      This is most useful for code that is being generated by tools such
61      as ml-nlffigen (because during development programmers tend to
62      erase the tool's entire output directory tree including CM's cached
63      GUIDs).  "noguid" is somewhat dangerous (since it can be used to locally
64      revert to the old, broken behavior of SML/NJ, but in specific cases
65      where there is no danger of interface confusion, its use is ok
66      (I think).
67    
68      ml-nlffigen by default generates "noguid" annotations.  They can be
69      turned off by specifying -guid in its command line.
70    
71    ----------------------------------------------------------------------
72    Name: Lal George
73    Date: 2002/03/12 12 14:42:36 EST
74    Tag: george-20020312-frequency-computation
75    Description:
76    
77    Integrated jump chaining and static block frequency into the
78    compiler. More details and numbers later.
79    
80    ----------------------------------------------------------------------
81    Name: Lal George
82    Date: 2002/03/11 11 22:38:53 EST
83    Tag: george-20020311-jump-chain-elim
84    Description:
85    
86    Tested the jump chain elimination on all architectures (except the
87    hppa).  This is on by default right now and is profitable for the
88    alpha and x86, however, it may not be profitable for the sparc and ppc
89    when compiling the compiler.
90    
91    The gc test will typically jump to a label at the end of the cluster,
92    where there is another jump to an external cluster containing the actual
93    code to invoke gc. This is to allow factoring of common gc invocation
94    sequences. That is to say, we generate:
95    
96            f:
97               testgc
98               ja   L1      % jump if above to L1
99    
100            L1:
101               jmp L2
102    
103    
104    After jump chain elimination the 'ja L1' instructions is converted to
105    'ja L2'. On the sparc and ppc, many of the 'ja L2' instructions may end
106    up being implemented in their long form (if L2 is far away) using:
107    
108            jbe     L3      % jump if below or equal to L3
109            jmp     L2
110         L3:
111            ...
112    
113    
114    For large compilation units L2  may be far away.
115    
116    
117    ----------------------------------------------------------------------
118    Name: Matthias Blume
119    Date: 2002/03/11 13:30:00 EST
120    Tag: blume-20020311-mltreeeval
121    Description:
122    
123    A functor parameter was missing.
124    
125    ----------------------------------------------------------------------
126    Name: Allen Leung
127    Date: 2002/03/11 10:30:00 EST
128    Tag: leunga-20020310-runtime-string0
129    Description:
130    
131       The representation of the empty string now points to a
132    legal null terminated C string instead of unit.  It is now possible
133    to convert an ML string into C string with InlineT.CharVector.getData.
134    This compiles into one single machine instruction.
135    
136    ----------------------------------------------------------------------
137    Name: Allen Leung
138    Date: 2002/03/10 23:55:00 EST
139    Tag: leunga-20020310-x86-call
140    Description:
141    
142       Added machine generation for CALL instruction (relative displacement mode)
143    
144    ----------------------------------------------------------------------
145    Name: Matthias Blume
146    Date: 2002/03/08 16:05:00
147    Tag: blume-20020308-entrypoints
148    Description:
149    
150    Version number bumped to 110.39.1.  NEW BOOTFILES!
151    
152    Entrypoints: non-zero offset into a code object where execution should begin.
153    
154    - Added the notion of an entrypoint to CodeObj.
155    - Added reading/writing of entrypoint info to Binfile.
156    - Made runtime system bootloader aware of entrypoints.
157    - Use the address of the label of the first function given to mlriscGen
158      as the entrypoint.  This address is currently always 0, but it will
159      not be 0 once we turn on block placement.
160    - Removed the linkage cluster code (which was The Other Way(tm) of dealing
161      with entry points) from mlriscGen.
162    
163    ----------------------------------------------------------------------
164    Name: Allen Leung
165    Date: 2002/03/07 20:45:00 EST
166    Tag: leunga-20020307-x86-cmov
167    Description:
168    
169       Bug fixes for CMOVcc on x86.
170    
171       1. Added machine code generation for CMOVcc
172       2. CMOVcc is now generated in preference over SETcc on PentiumPro or above.
173       3. CMOVcc cannot have an immediate operand as argument.
174    
175    ----------------------------------------------------------------------
176    Name: Matthias Blume
177    Date: 2002/03/07 16:15:00 EST
178    Tag: blume-20020307-controls
179    Description:
180    
181    This is a very large but mostly boring patch which makes (almost)
182    every tuneable compiler knob (i.e., pretty much everything under
183    Control.* plus a few other things) configurable via both the command
184    line and environment variables in the style CM did its configuration
185    until now.
186    
187    Try starting sml with '-h' (or, if you are brave, '-H')
188    
189    To this end, I added a structure Controls : CONTROLS to smlnj-lib.cm which
190    implements the underlying generic mechanism.
191    
192    The interface to some of the existing such facilities has changed somewhat.
193    For example, the MLRiscControl module now provides mkFoo instead of getFoo.
194    (The getFoo interface is still there for backward-compatibility, but its
195    use is deprecated.)
196    
197    The ml-build script passes -Cxxx=yyy command-line arguments through so
198    that one can now twiddle the compiler settings when using this "batch"
199    compiler.
200    
201    TODO items:
202    
203    We should go through and throw out all controls that are no longer
204    connected to anything.  Moreover, we should go through and provide
205    meaningful (and correct!) documentation strings for those controls
206    that still are connected.
207    
208    Currently, multiple calls to Controls.new are accepted (only the first
209    has any effect).  Eventually we should make sure that every control
210    is being made (via Controls.new) exactly once.  Future access can then
211    be done using Controls.acc.
212    
213    Finally, it would probably be a good idea to use the getter-setter
214    interface to controls rather than ref cells.  For the time being, both
215    styles are provided by the Controls module, but getter-setter pairs are
216    better if thread-safety is of any concern because they can be wrapped.
217    
218    *****************************************
219    
220    One bug fix: The function blockPlacement in three of the MLRISC
221    backpatch files used to be hard-wired to one of two possibilities at
222    link time (according to the value of the placementFlag).  But (I
223    think) it should rather sense the flag every time.
224    
225    *****************************************
226    
227    Other assorted changes (by other people who did not supply a HISTORY entry):
228    
229    1. the cross-module inliner now works much better (Monnier)
230    2. representation of weights, frequencies, and probabilities in MLRISC
231       changed in preparation of using those for weighted block placement
232       (Reppy, George)
233    
234  ----------------------------------------------------------------------  ----------------------------------------------------------------------
235  Name: Lal George  Name: Lal George

Legend:
Removed from v.1124  
changed lines
  Added in v.1140

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