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 1128, Fri Mar 8 21:05:27 2002 UTC revision 1138, Wed Mar 13 03:03:50 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/12 22:03:00 EST
17    Tag: blume-20020312-url
18    Description:
19    
20    Forgot to update BOOT and srcarchiveurl.
21    
22    ----------------------------------------------------------------------
23    Name: Matthias Blume
24    Date: 2002/03/12 17:30:00 EST
25    Tag: blume-20020312-version110392
26    Description:
27    
28    Yet another version number bump (because of small changes to the
29    binfile format).  Version number is now 110.39.2.  NEW BOOTFILES!
30    
31    Changes:
32    
33      The new pid generation scheme described a few weeks ago was overly
34      complicated.  I implemented a new mechanism that is simpler and
35      provides a bit more "stability":  Once CM has seen a compilation
36      unit, it keeps its identity constant (as long as you do not delete
37      those crucial CM/GUID/* files).  This means that when you change
38      and interface, compiler, then go back to the old interface, and
39      compile again, you arrive at the original pid.
40    
41      There now also is a mechanism that instructs CM to use the plain
42      environment hash as a module's pid (effectively making its GUID
43      the empty string).  For this, "noguid" must be specified as an
44      option to the .sml file in question within its .cm file.
45      This is most useful for code that is being generated by tools such
46      as ml-nlffigen (because during development programmers tend to
47      erase the tool's entire output directory tree including CM's cached
48      GUIDs).  "noguid" is somewhat dangerous (since it can be used to locally
49      revert to the old, broken behavior of SML/NJ, but in specific cases
50      where there is no danger of interface confusion, its use is ok
51      (I think).
52    
53      ml-nlffigen by default generates "noguid" annotations.  They can be
54      turned off by specifying -guid in its command line.
55    
56    ----------------------------------------------------------------------
57    Name: Lal George
58    Date: 2002/03/12 12 14:42:36 EST
59    Tag: george-20020312-frequency-computation
60    Description:
61    
62    Integrated jump chaining and static block frequency into the
63    compiler. More details and numbers later.
64    
65    ----------------------------------------------------------------------
66    Name: Lal George
67    Date: 2002/03/11 11 22:38:53 EST
68    Tag: george-20020311-jump-chain-elim
69    Description:
70    
71    Tested the jump chain elimination on all architectures (except the
72    hppa).  This is on by default right now and is profitable for the
73    alpha and x86, however, it may not be profitable for the sparc and ppc
74    when compiling the compiler.
75    
76    The gc test will typically jump to a label at the end of the cluster,
77    where there is another jump to an external cluster containing the actual
78    code to invoke gc. This is to allow factoring of common gc invocation
79    sequences. That is to say, we generate:
80    
81            f:
82               testgc
83               ja   L1      % jump if above to L1
84    
85            L1:
86               jmp L2
87    
88    
89    After jump chain elimination the 'ja L1' instructions is converted to
90    'ja L2'. On the sparc and ppc, many of the 'ja L2' instructions may end
91    up being implemented in their long form (if L2 is far away) using:
92    
93            jbe     L3      % jump if below or equal to L3
94            jmp     L2
95         L3:
96            ...
97    
98    
99    For large compilation units L2  may be far away.
100    
101    
102    ----------------------------------------------------------------------
103    Name: Matthias Blume
104    Date: 2002/03/11 13:30:00 EST
105    Tag: blume-20020311-mltreeeval
106    Description:
107    
108    A functor parameter was missing.
109    
110    ----------------------------------------------------------------------
111    Name: Allen Leung
112    Date: 2002/03/11 10:30:00 EST
113    Tag: leunga-20020310-runtime-string0
114    Description:
115    
116       The representation of the empty string now points to a
117    legal null terminated C string instead of unit.  It is now possible
118    to convert an ML string into C string with InlineT.CharVector.getData.
119    This compiles into one single machine instruction.
120    
121    ----------------------------------------------------------------------
122    Name: Allen Leung
123    Date: 2002/03/10 23:55:00 EST
124    Tag: leunga-20020310-x86-call
125    Description:
126    
127       Added machine generation for CALL instruction (relative displacement mode)
128    
129  ----------------------------------------------------------------------  ----------------------------------------------------------------------
130  Name: Matthias Blume  Name: Matthias Blume

Legend:
Removed from v.1128  
changed lines
  Added in v.1138

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