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.40-README
ViewVC logotype

Annotation of /sml/trunk/READMES/110.40-README

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1216 - (view) (download)

1 : blume 1215 S M L / N J
2 :    
3 :     1 1 0 . 4 0 N E W S
4 :    
5 :     May 21, 2002
6 :    
7 :     WARNING
8 :    
9 :     This version is intended for compiler hackers. The
10 :     version ought to be stable, however we have not run
11 :     our full regression testing.
12 :    
13 :     http://cm.bell-labs.com/cm/cs/what/smlnj/index.html
14 :    
15 :    
16 :     Summary:
17 :    
18 :     Significant work in the MLRISC backend. Many improvements
19 :     and bugfixes in various parts of the implementation.
20 :    
21 :     --------------------------------------------------------------------------
22 :    
23 :     Details:
24 :    
25 :     Libraries:
26 :    
27 :     * added $/controls-lib.cm, a library of configurable "controls"
28 :     (In essence, controls are managed ref cells that can be
29 :     grouped in sets and put in "registries" to facilitate
30 :     configuration and customization via, e.g., environment variables
31 :     and command-line arguments.)
32 :     $/controls-lib.cm is a distillation of what used to be a CM-only
33 :     mechanism. It is now used throughout the compiler.
34 :    
35 :     * bug fixed in IntInf (parsing of hex literals)
36 :    
37 :     * == and != added to INT_INF interface (just placeholders for now)
38 :    
39 :     * added mergeWith function to ORD_MAP interface
40 :    
41 :     * added an implementation of Danvy-style format combinators to
42 :     $/smlnj-lib.cm
43 :    
44 :     * priority queues added to Util library (using Okasaki's leftist-tree
45 :     implementation)
46 :    
47 :     * updates to $/hash-cons-lib.cm (consR1 ... consR5 added)
48 :    
49 :     * fixed bug in outputSubstr (in TextIO)
50 :    
51 : blume 1216 * new scrollbar implementation (eXene) courtesy of Allen Stoughton
52 :    
53 : blume 1215 Basis:
54 :    
55 :     * implemented Knuth-Morris-Pratt string matching and used it
56 :     for String.isSubstring, Substring.isSubstring, and Substring.position.
57 :    
58 :     * added {String,Substring}.{concatWith,isSuffix,isSubstring} and
59 :     Substring.full
60 :    
61 :     MLRISC:
62 :    
63 :     * jump chaining
64 :    
65 :     * static block frequency calculation
66 :    
67 :     * Ball-Larus branch prediction heuristics implemented
68 :    
69 :     * graphical viewer for control flow graphs added
70 :    
71 :     * treatment of pseudo-ops changed (get emitted first now)
72 :    
73 :     * REMT removed from mltree; DIV and MOD now take a rounding
74 :     mode (DIV_TO_ZERO and DIV_TO_NEGINF)
75 :    
76 :     * made generic implementations of DIV_TO_NEGINF more efficient
77 :    
78 :     * CFG edge splitting added
79 :    
80 :     * buggy parts of x86-fp recoded
81 :    
82 :     * added instructions for 64-bit support on x86 (not enabled yet)
83 :    
84 :     CM:
85 :    
86 :     * a new PID generation scheme is in place; it guarantees freedom
87 :     from accidental clashes that could subvert the type system but
88 :     is "stable" enough to maintain cutoff recompilation properties
89 :    
90 :     * documentation updates
91 :    
92 :     * minor bug fixes
93 :    
94 :     * lambda-split aggressiveness can now be specified on a per-file
95 :     basis in init.cmi as well
96 :    
97 :     * CM is now aware of (_)overload, so it calculates dependecies for
98 :     it correctly
99 :    
100 :     * support for non-0 entrypoint offsets added
101 :    
102 :     * command-line argument handling for showing/setting controls added
103 :    
104 :     * bug in command-line handling of noweb (in noweb tool) fixed
105 :    
106 :     * improved handling of pathnames in make tool
107 :    
108 :     Runtime:
109 :    
110 :     * fix for bug 1131 (excessive heap usage)
111 :    
112 :     * heap export now silent unless GC messages are on
113 :    
114 :     * fixed assembly code so that X86.prim.asm now compiles without
115 :     warnings
116 :    
117 :     * support for non-0 entrypoint offsets added
118 :    
119 :     Compiler:
120 :    
121 :     * cross-module inlining works much better now
122 :    
123 :     * stopgap fix for problem with ppDec in the presence of multiple
124 :     declarations of the same type name within one compilation unit
125 :    
126 :     * full support for div/mod/rem/quot added to x86 code generator
127 :    
128 :     * primops added for divisions of all flavors; track those operations
129 :     to the backend instead of clumsily macro-expanding them out
130 :     at "translate" time
131 :    
132 :     * INLMIN, INLMAX, INLABS parameterized by numkind; use this
133 :     to implement all flavors of min, max, and abs
134 :     (Real.abs still maps to a separate FP primop.)
135 :    
136 :     * preliminary support for "raw record" allocation and reentrant
137 :     C function calls added
138 :    
139 :     * conditional move added to cps (still buggy, therefore disabled)
140 :    
141 :     * _overload now accepted as synonym for overload (when overloading
142 :     is enabled); this is for backward-compatibility
143 :    
144 :     * support for non-0 entrypoint offsets added; this (or something
145 :     similar) is needed to be able to deal with block reordering
146 :    
147 :     * new, better scaling CPS spill phase
148 :    
149 :     * compiler "knows" its native C calling convention (no longer needs
150 :     to be told by ml-nlffigen); X86Backend now split into X86CCallBackend
151 :     and X86StdCallBackend
152 :    
153 :     FFI:
154 :    
155 :     * all C FFI libraries now anchored under $c
156 :    
157 :     * tweaks to type encoding (use polymorphism to emulate subtyping)
158 :    
159 :     * encoding of incomplete type is now equal to that of the
160 :     corresponding complete type; no more POINTER_TO_INCOMPLETE_TYPE
161 :     etc.
162 :     (This restores the full generality of the translation -- something
163 :     that was lost when we removed functors.)
164 :    
165 :     * support for (optional) mapping enum types to datatypes added
166 :    
167 :     * types in structures C and C_Debug are now equal
168 :    
169 :     * added "witness value" mechanism to ml-nlffi-lib.cm to
170 :     implement efficient arbitrary-depth "casts" that strip away
171 :     or add "const" modifiers
172 :    
173 :     * ML representation of "" changed so that conversion to C string
174 :     is very efficient
175 :    
176 :     Installer/scripts:
177 :    
178 :     * suggestions for more preloads added to config/preloads
179 :    
180 :     * don't use ?_DEFAULT environment variables. (They no longer
181 :     exist since we switched to $/controls-lib.cm.)
182 :    
183 :     * buggy transitive-closure algorithm fixed; it caused more things
184 :     than necessary to be compiled
185 :    
186 :     Miscellanea:
187 :    
188 :     * minor bug fixes and improvements to mlrisc tools
189 :    
190 :     * mdl tool compiles again, but without anything that depends on
191 :     RTL specs (since this is currently broken)
192 :    
193 :     * added #[...] expressions to mlrisc tools

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