Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/READMES/110.37-README.html
ViewVC logotype

Annotation of /sml/trunk/READMES/110.37-README.html

Parent Directory Parent Directory | Revision Log Revision Log


Revision 995 - (view) (download) (as text)

1 : blume 995 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2 :     <html>
3 :     <head>
4 :     <title>SML/NJ 110.37 NEWS</title>
5 :    
6 :     <meta name="author" content="Matthias Blume">
7 :    
8 :     <meta name="description" content="working release announcement for SML/NJ">
9 :     </head>
10 :     <body>
11 :    
12 :     <div align="Center">
13 :     <h1>S M L / N J &nbsp; 1 1 0 . 37 &nbsp;
14 :     N E W S</h1>
15 :     </div>
16 :     <br>
17 :    
18 :     <div align="Center"><i>November 23, 2001</i><br>
19 :     </div>
20 :     <br>
21 :    
22 :     <div align="Center"><b>WARNING This version is intended for compiler
23 :     hackers. The version ought to be stable, however we have not run our full
24 :     regression testing. <a href="http://cm.bell-labs.com/cm/cs/what/smlnj/index.html">
25 :     http://cm.bell-labs.com/cm/cs/what/smlnj/index.html</a> </b><a href="http://cm.bell-labs.com/cm/cs/what/smlnj/index.html"><b><br>
26 :     </b></a> </div>
27 :     <br>
28 :    
29 :     <hr width="100%" size="2" align="Left">
30 :     <h3>Summary:</h3>
31 :    
32 :     <ul>
33 :     <li>Improvements to the MLRISC backend.</li>
34 :     <li>Enhanced export-list syntax for .cm-files.</li>
35 :     <li>Various assorted bug fixes and improvements to other components and
36 :     subsystems.<br>
37 :     </li>
38 :     </ul>
39 :    
40 :     <div align="Left">
41 :     <hr width="100%" size="2" align="Left">
42 :     <h3>Details:</h3>
43 :     <h5>MLRISC:</h5>
44 :     <ul>
45 :     <li>Implemented a complete redesign of MLRISC pseudo-ops. Now there ought
46 :     to never be any question of incompatabilities with pseudo-op syntax expected
47 :     by host assemblers. For now, only modules supporting GAS syntax are implemented
48 :     but more should follow, such as MASM, and vendor assembler syntax, e.g. IBM
49 :     as, Sun as, etc. The new pseudo-ops design is used to add a string to the
50 :     end of the code stream that represents the file name.</li>
51 :     <li><br>
52 :     </li>
53 :     <li>Fix for a backpatching bug reported by Allen. Because the boundary
54 :     between short and long span-dependent instructions is +/- 128, there are
55 :     an astounding number of span-dependent instructions whose size is over estimated.
56 :     Allen came up with the idea of letting the size of span dependent instructions
57 :     be non-monotonic, for a maxIter number of times, after which the size must
58 :     be monotonically increasing. This table shows the number of span-dependent
59 :     instructions whose size was over-estimated as a function of maxIter, for
60 :     the file Parse/parse/ml.grm.sml:&nbsp;
61 :     <table cellpadding="2" cellspacing="2" border="1" width="40%" align="Center">
62 :     <tbody>
63 :     <tr>
64 :     <td valign="Top" align="Left">maxIter<br>
65 :     </td>
66 :     <td valign="Top"># of instructions<br>
67 :     </td>
68 :     </tr>
69 :     <tr>
70 :     <td valign="Top">10<br>
71 :     </td>
72 :     <td valign="Top">687<br>
73 :     </td>
74 :     </tr>
75 :     <tr>
76 :     <td valign="Top">20<br>
77 :     </td>
78 :     <td valign="Top">438<br>
79 :     </td>
80 :     </tr>
81 :     <tr>
82 :     <td valign="Top">30<br>
83 :     </td>
84 :     <td valign="Top">198<br>
85 :     </td>
86 :     </tr>
87 :     <tr>
88 :     <td valign="Top">40<br>
89 :     </td>
90 :     <td valign="Top">0<br>
91 :     </td>
92 :     </tr>
93 :     </tbody>
94 :     </table>
95 :     </li>
96 :     <li>In compiling the compiler, there is no significant difference in compilation
97 :     speed between maxIter=10 and maxIter=40. Actually, my measurements showed
98 :     that maxIter=40 was a tad faster than maxIter=10! Also 96% of the&nbsp; files
99 :     in the compiler reach a fix point within 13 iterations, so fixing maxIter
100 :     at 40, while high, is okay.</li>
101 :     <li>Fixed the bug described in blume-20010920-slowfp. The fix involves&nbsp;</li>
102 :     <ol>
103 :     <li>generating FCOPYs in FSTP in ia32-svid</li>
104 :     <li>marking a CALL with the appropriate annotation</li>
105 :     </ol>
106 :     <li>(x86-fast-fp is still off by default.)</li>
107 :     <li>X86RA now uses a valid (instead of dummy) PrintFlowgraph module.</li>
108 :     <li>The representation of a program point never expected to see more than
109 :     65536 instructions in a basic block!&nbsp; Fixed.</li>
110 :     </ul>
111 :     <h5>CM</h5>
112 :     <ul>
113 :     <li>avoid "/../" in filenames as much as possible (but only where it is
114 :     safe)</li>
115 :     <li>experimental implementation of "portable graphs" (See the proposal
116 :     in <a href="http://cm.bell-labs.com/cm/cs/who/blume/pgraph/proposal.pdf">
117 :     http://cm.bell-labs.com/cm/cs/who/blume/pgraph/proposal.pdf </a>for details
118 :     on portable library graphs.)</li>
119 :     <li>there are also new libraries $/pgraph.cm and $/pgraph-util.cm</li>
120 :     <li>CM now implements a simple "set calculus" for specifying export lists.
121 :     In particular, it is now possible to refer to the export lists of other libraries/groups/sources
122 :     and form unions as well as differences. See the latest <a href="http://cm.bell-labs.com/cm/cs/what/smlnj/doc/CM/new.pdf">
123 :     CM manual</a> for details.</li>
124 :     <li>A separate notion of "proxy" libraries has been eliminated from CM's
125 :     model.&nbsp; (Proxy libraries are now simply a special case of using the
126 :     export list calculus.)</li>
127 :     </ul>
128 :     <h5>compiler</h5>
129 :     <ul>
130 :     <li>routed the name of the current source file to mlriscgen where it gets
131 :     directly emitted into the code object (This uses the new pseudo-op infrastructure
132 :     of MLRISC.)</li>
133 :     </ul>
134 :     <h5>runtime:</h5>
135 :     <ul>
136 :     <li>Underscore patch from Chris Richards (fixing problem with compiling
137 :     runtime system under recent NetBSD).</li>
138 :     <li>Removed handling of code object name strings from runtime code. (The
139 :     only remaining code-name-string-related code in the runtime is for extracting/reading
140 :     of same.)</li>
141 :     </ul>
142 :     <h5>CKIT:</h5>
143 :     <ul>
144 :     <li>Changed the "Function" constructor of type Ast.ctype to carry optional
145 :     argument identifiers.</li>
146 :     <li>Changed the return type of TypeUtil.getFunction accordingly.</li>
147 :     <li>Type equality ignores the argument names.</li>
148 :     <li>TypeUtil.composite tries to preserve argument names but gives up quickly
149 :     if there is a mismatch.</li>
150 :     </ul>
151 :     <h5>installation script:</h5>
152 :     <ul>
153 :     <li>attempts to use "curl" if available (unless "wget" is available as
154 :     well)</li>
155 :     <li>put relative anchor names for tool commands into pathconfig</li>
156 :     </ul>
157 :     <h5>run script:</h5>
158 :     <ul>
159 :     <li>Changed config/_run-sml (resulting in a changed bin/.run-sml) so that
160 :     arguments that contain delimiters are passed through correctly. This change
161 :     also means that all "special" arguments of the form @SMLxxx... must come
162 :     first.</li>
163 :     </ul>
164 :     <h5>NLFFI-LIB:</h5>
165 :     <ul>
166 :     <li>some cleanup (all cosmetic)</li>
167 :     </ul>
168 :     <h5>NLFFIGEN:</h5>
169 :     <ul>
170 :     <li>temporarily disabled the mechanism that suppresses ML output for C
171 :     definitions whose identifiers start with an underscore character</li>
172 :     <li>generate val bindings for enum constants</li>
173 :     <li>user can request that only one style (light or heavy) is being used;
174 :     default is to use both (command-line arguments: -heavy and -light)</li>
175 :     <li>fixed bug in handling of function types involving incomplete pointers</li>
176 :     <li>generate ML entry points that take record arguments (i.e., using named
177 :     arguments) for C functions that have a prototype with named arguments (see
178 :     changes to CKIT)</li>
179 :     </ul>
180 :     <h5>Basis implementation:</h5>
181 :     <ul>
182 :     <li>provided a non-hook implementation of exnName (at the toplevel) and
183 :     made the "dummy" implementation of exnMessage (at the toplevel) more useful:
184 :     if nothing gets "hooked in", then at least you are going to see the exception
185 :     name and a message indicating why you don't see more.</li>
186 :     <ul>
187 :     <li>[For the time being, programs that need exnMessage and want to use
188 :     ml-build should either use General.exnMessage (strongly recommended) or refer
189 :     to structure General at some other point so that CM sees a static dependency.]</li>
190 :     </ul>
191 :     <ul>
192 :     <li>[Similar remarks go for "print" and "use":&nbsp; If you want to use
193 :     their functionality in stand-alone programs generated by ml-build, then use
194 :     TextIO.output and Backend.Interact.useFile (from $smlnj/compiler.cm)</li>
195 :     </ul>
196 :     </ul>
197 :     <h5>ml-yacc/ml-lex/ml-burg:</h5>
198 :     <ul>
199 :     <li>Don't use "exnMessage" -- use "General.exnMessage"! (see "Basis implementation")</li>
200 :     </ul>
201 :     <h4></h4>
202 :    
203 :     <h4></h4>
204 :     </div>
205 :    
206 :     </body>
207 :     </html>

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