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/releases/release-110.46/READMES/110.32-README.html
ViewVC logotype

Annotation of /sml/releases/release-110.46/READMES/110.32-README.html

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : blume 780 <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
2 :     <html>
3 :     <head>
4 :     <title>SML/NJ Version 110.32 NEWS</title>
5 :     </head>
6 :    
7 :     <body bgcolor="white">
8 :     <center><h1>Standard ML of New Jersey<BR>
9 :     Version 110.32, December 22, 2000</h1>
10 :     </center>
11 :    
12 :     <center>
13 :     <a href=http://cm.bell-labs.com/cm/cs/what/smlnj/index.html>
14 :     Home page</a>
15 :     </center>
16 :    
17 :     <blockquote>
18 :     <center>
19 :     <h2> Warning </h2>
20 :     </center>
21 :     <blockquote>
22 :     <blockquote>
23 :     <em>
24 :     This version is intended for compiler hackers. The
25 :     version ought to be quite stable, however we have not run
26 :     our full regression testing.
27 :     </em>
28 :     </blockquote>
29 :     </blockquote>
30 :    
31 :    
32 :     <hr>
33 :    
34 :     <center><h2>Summary:</h2></center>
35 :     This version is being used to check point a large number of changes
36 :     to MLRISC, which now uses infinite precision integers on all
37 :     architectures. We have run the Basis regressions tests so the
38 :     changes ought to be fairly robust.
39 :     <p>
40 :     There are a number of other CM, Basis, and Tool related changes as
41 :     well.
42 :    
43 :     <hr>
44 :     <center><h3>MLRISC </h3></center>
45 :     <h3> Fixes </h3>
46 :     This change fixes two problems:
47 :     <p>
48 :    
49 :     <ol>
50 :    
51 :     <p><li> There was a proliferation of constructors in MLRISC to
52 :     handle integers of various sizes, e.g.
53 :     <pre>
54 :     LI of int | LI32 of Int32.int | LI64 of Int64.int
55 :     ...
56 :     </pre>
57 :     which are all replaced with
58 :     <pre>
59 :     LI of IntInf.int
60 :     </pre>
61 :    
62 :     <p><li> There is the ever nagging question of cross compiling to
63 :     64bits.
64 :     </ol>
65 :    
66 :     <h3>Compilation Speed</h3>
67 :     The x86 compiling the compiler is 9% slower than 110.31, however,
68 :     a lot of this, and more, can be recovered. The compiler presently
69 :     uses infinite precision in the front end (AST creation), which is converted to 31
70 :     and 32 bit integers in the middle end (FLINT and CPS), and then
71 :     converted back to infinite precision in MLRISC (with the current
72 :     changes).
73 :     <p>
74 :     Infinite precision in the middle end will allow a uniform
75 :     treatment of optimizations across words and integers of different
76 :     widths/sizes. Currently, most optimizations are biased towards
77 :     integers and words represented in 31 bits only.
78 :     <p>
79 :    
80 :     <h3> What's next</h3>
81 :     Not in chronological order:
82 :    
83 :     <ol>
84 :     <li> Use infinite precision in the middle end to allow a
85 :     cleaner and more uniform optimization module for arithmetic.
86 :    
87 :     <p><li> Support for the generation of infinite precision values
88 :     in the back end.
89 :    
90 :     <p><li> Changes to support the single toplevel declaration:
91 :     <pre>
92 :     structure LargeInt = IntInf
93 :     </pre>
94 :     </ol>
95 :    
96 :     <hr>
97 :    
98 :     <center><h3>Basis </h3></center>
99 :     Added the missing bit level functions to the Basis <tt>IntInf</tt>
100 :     structure.
101 :    
102 :     <hr>
103 :     <center><h3>Tools </h3></center>
104 :     Improvements to the 'nowhere' tool to handle OR-patterns.
105 :     The nowhere tool is a syntactic extension that allows for
106 :     guarded patterns. See MLRISC/Tools/Doc/nowhere.tex.
107 :    
108 :     <hr>
109 :     <center><h3>CM </h3></center>
110 :     <ul>
111 :     <li> Added a new "dir" tool to CM's toolset; this can simplify writing
112 :     CM descriptions (see the manual)
113 :    
114 :     <p><li> Made some modifications to CM's "Tools" API and documented everything
115 :    
116 :     <p><li> CM now leaves exceptions (from the compiler) alone if they are not
117 :     expected; this causes such exceptions to travel up to the top-level
118 :     where they are reported as usual
119 :    
120 :     <p><li> Eliminated the "[wrote ...]" progress message in favor of reporting
121 :     some size information for the generated binfile instead
122 :    
123 :     <p><li> Removed source code for some project-in-progress that is not ready
124 :     for prime-time (yet)
125 :    
126 :     <p><li> Made anchor environments ("bind:"-option for class "cm") inter-operate
127 :     in a more useful way with CMB.make
128 :     </ol>
129 :     <hr>
130 :     <font size=-2>
131 :     <address><a href="mailto:george@research.bell-labs.com">
132 :     Lal George</a></address>
133 :     <!-- Created: Thu Aug 6 00:13:09 EDT 1998 -->
134 :     <!-- hhmts start -->
135 :     Last modified: Sat Dec 23 11:23:17 EST 2000
136 :     <!-- hhmts end -->
137 :     </font>
138 :     </blockquote>
139 :     </body>
140 :     </html>

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