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
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log


Revision 990 - (view) (download)

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

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