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 586, Thu Mar 30 05:08:07 2000 UTC revision 605, Fri Apr 7 14:06:42 2000 UTC
# Line 11  Line 11 
11  Date:  Date:
12  Tag: <post-commit CVS tag>  Tag: <post-commit CVS tag>
13  Description:  Description:
14    ----------------------------------------------------------------------
15    Name: Stefan
16    Date: 2000/04/07 10:00:00 EDT
17    Tag: monnier-20000406-branch-handling
18    Description:
19    
20    Improved handling of branches (mostly those generated from
21    polymorphic equality), removed switchoff and changed the
22    default optimization settings (more cpsopt and less flintopt).
23    
24    ----------------------------------------------------------------------
25    Name: Allen Leung
26    Date: 2000/04/06 01:30:00 EST
27    Tag: leunga-20000406-peephole-x86-SSA-2
28    Description:
29    
30       Forgot a few files.
31    
32    ----------------------------------------------------------------------
33    Name: Allen Leung
34    Date: 2000/04/06 00:36:00 EST
35    Tag: leunga-20000406-peephole-x86-SSA
36    Description:
37    
38    1.  New Peephole code
39    
40    2.  Minor improvement to X86 instruction selection
41    
42    3.  Various fixes to SSA and machine description -> code translator
43    
44    ----------------------------------------------------------------------
45    Name: Matthias Blume
46    Date: 2000/04/05 12:30:00 JST
47    Tag: blume_main_v110p26p2_3
48    Description:
49    
50    This update just merges three minor cosmetic updates to CM's sources
51    to get ready for the 110.27 code freeze on Friday.  No functionality
52    has changed.
53    
54    ----------------------------------------------------------------------
55    Name: Allen Leung
56    Date: 2000/04/04 19:39:00 EST
57    Tag: leunga-20000404-x86-asm
58    Description:
59    
60    1.  Fixed a problem in X86 assembly.
61    
62        Things like
63    
64           jmp %eax
65           jmp (%eax)
66    
67        should be output as
68    
69           jmp *%eax
70           jmp *(%eax)
71    
72    2.  Assembly output
73    
74          Added a new flag
75    
76              "asm-indent-copies" (default to false)
77    
78          When this flag is on, parallel copies will be indented an extra level.
79    
80    ----------------------------------------------------------------------
81    Name: Allen Leung
82    Date: 2000/04/04 03:18:00 EST
83    Tag: leunga-20000404-C--Moby
84    Description:
85    
86        All of these fixes are related to C--, Moby, and my own optimization
87        stuff; so they shouldn't affect SML/NJ.
88    
89    1.  X86
90    
91        Various fixes related floating point, and extensions.
92    
93    2.  Alpha
94    
95        Some extra patterns related to loads with signed/zero extension
96        provided by Fermin.
97    
98    3.  Assembly
99    
100        When generating assemby, resolve the value of client defined constants,
101        instead of generating symbolic values.  This is controlled by the
102        new flag "asm-resolve-constants", which is default to true.
103    
104    4.  Machine Descriptions
105    
106        a. The precedence parser was slightly broken when parsing infixr symbols.
107        b. The type generalizing code had the bound variables reversed, resulting
108           in a problem during arity raising.
109        c. Various fixes in machine descriptions.
110    
111    ----------------------------------------------------------------------
112    Name: Matthias Blume
113    Date: 2000/04/03 16:05:00 JST
114    Tag: blume_main_v110p26p2_2
115    Description:
116    
117    I eliminated coreEnv from compInfo.  Access to the "Core" structure is
118    now done via the ordinary static environment that is context to each
119    compilation unit.
120    
121    To this end, I arranged that instead of "structure Core" as "structure
122    _Core" is bound in the pervasive environment.  Core access is done via
123    _Core (which can never be accidentially rebound because _Core is not a
124    legal surface-syntax symbol).
125    
126    The current solution is much cleaner because the core environment is
127    now simply part of the pervasive environment which is part of every
128    compilation unit's context anyway.  In particular, this eliminates all
129    special-case handling that was necessary until now in order to deal
130    with dynamic and symbolic parts of the core environment.
131    
132    Remaining hackery (to bind the "magic" symbol _Core) is localized in the
133    compilation mananger's bootstrap compiler (actually: in the "init group"
134    handling).  See the comments in src/system/smlnj/init/init.cmi for
135    more details.
136    
137    I also tried to track down all mentions of "Core" (as string argument
138    to Symbol.strSymbol) in the compiler and replaced them with a
139    reference to the new CoreSym.coreSym.  Seems cleaner since the actual
140    name appears in one place only.
141    
142    Binfile and bootfile format have not changed, but the switchover from
143    the old "init.cmi" to the new one is a bit tricky, so I supplied new
144    bootfiles anyway.
145    
146    ----------------------------------------------------------------------
147    Name: Allen Leung
148    Date: 2000/04/02 21:17:00 EST
149    Tag: leunga-20000402-mltree
150    Description:
151    
152       1. Renamed the constructor CALL in MLTREE by popular demand.
153       2. Added a bunch of files from my repository.  These are currently
154          used by other non-SMLNJ backends.
155    
156    ----------------------------------------------------------------------
157    Name: Allen Leung
158    Date: 2000/03/31 21:15:00 EST
159    Tag: leunga-20000331-aliasing
160    Description:
161    
162    This update contains a rewritten (and hopefully more correct) module
163    for extracting aliasing information from CPS.
164    
165       To turn on this feature:
166    
167            Compiler.Control.CG.memDisambiguate := true
168    
169       To pretty print the region information with assembly
170    
171           Compiler.Control.MLRISC.getFlag "asm-show-region" := true;
172    
173       To control how many levels of aliasing information are printed, use:
174    
175           Compiler.Control.MLRISC.getInt "points-to-show-level" := n
176    
177       The default of n is 3.
178    
179    ----------------------------------------------------------------------
180    Name: David MacQueen
181    Date: 2000/03/31 11:15:00 EST
182    Tag: dbm-20000331-runtime_fix
183    Description:
184    
185    This update contains:
186    
187    1. runtime/c-lib/c-libraries.c
188       includes added in revision 1.2 caused compilation errors on hppa-hpux
189    
190    2. fix for bug 1556
191       system/Basis/Implementation/NJ/internal-signals.sml
192    
193    ----------------------------------------------------------------------
194    Name: Matthias Blume
195    Date: 2000/03/31 18:00:00 JST
196    Tag: blume_main_v110p26p2_1
197    Description:
198    
199    This update contains:
200    
201    1. A small change to CM's handling of stable libraries:
202       CM now maintains one "global" modmap that is used for all stable
203       libraries.  The use of such a global modmap maximizes sharing and
204       minimizes the need for re-traversing parts of environments during
205       modmap construction.  (However, this has minor impact since modmap
206       construction seems to account for just one percent or less of total
207       compile time.)
208    
209    2. I added a "genmap" phase to the statistics.  This is where I got the
210       "one percent" number (see above).
211    
212    3. CM's new tool parameter mechanism just became _even_ better. :)
213       - The parser understands named parameters and recursive options.
214       - The "make" and "shell" tools use these new features.
215         (This makes it a lot easier to cascade these tools.)
216       - There is a small syntax change: named parameters use a
217    
218           <name> : ( <option> ... )            or
219           <name> : <string>
220    
221         syntax.  Previously, named parameters were implemented in an
222         ad-hoc fashion by each tool individually (by parsing strings)
223         and had the form
224    
225           <name>=<string>
226    
227       See the CM manual for a full description of these issues.
228    
229    ----------------------------------------------------------------------
230    Name: Matthias Blume
231    Date: 2000/03/30 18:00:00 JST
232    Tag: blume_main_v110p26p2_0
233    Description:
234    
235    !!!!! WARNING !!!!!!
236    !!  New binfiles  !!
237    !!!!!!!!!!!!!!!!!!!!
238    
239    This update contains:
240    
241    1. Moderate changes to CM:
242    
243       - Changes to CM's tools mechanism.  In particular, it is now possible
244       to have tools that accept additional "command line" parameters
245       (specified in the .cm file at each instance where the tool's class is
246       used).
247    
248       This was done to accomodate the new "make" and "shell" tools which
249       facilitate fairly seemless hookup to portions of code managed using
250       Makefiles or Shell scripts.
251    
252       There are no classes "shared" or "private" anymore.  Instead, the
253       sharing annotation is now a parameter to the "sml" class.
254    
255       There is a bit of generic machinery for implementing one's own
256       tools that accept command-line parameters.  However, I am not yet fully
257       satisfied with that part, so expect changes here in the future.
258    
259       All existing tools are described in the CM manual.
260    
261       - Slightly better error handling.  (CM now surpresses many followup
262       error messages that tended to be more annoying than helpful.)
263    
264    2. Major changes to the compiler's static environment data structures.
265    
266       - no CMStaticEnv anymore.
267            - no CMEnv, no "BareEnvironment" (actually, _only_ BareEnvironment,
268              but it is called Environment), no conversions between different
269              kinds of static environments
270    
271       - There is still a notion of a "modmap", but such modmaps are generated
272         on demand at the time when they are needed.  This sounds slow, but I
273         sped up the code that generates modmaps enough for this not to lead to
274         a slowdown of the compiler (at least I didn't detect any).
275    
276       - To facilitate rapid modmap generation, static environments now
277         contain an (optional) "modtree" structure.  Modtree annotations are
278         constructed by the unpickler during unpickling.  (This means that
279         the elaborator does not have to worry about modtrees at all.)
280         Modtrees have the advantage that they are compositional in the same
281         way as the environment data structure itself is compositional.
282         As a result, modtrees never hang on to parts of an environment that
283         has already been rendered "stale" by filtering or rebinding.
284    
285       - I went through many, many trials and errors before arriving at the
286         current solution.  (The initial idea of "linkpaths" did not work.)
287         But the result of all this is that I have touched a lot of files that
288         depend on the "modules" and "types" data structures (most of the
289         elaborator). There were a lot of changes during my "linkpath" trials
290         that could have been reverted to their original state but weren't.
291         Please, don't be too harsh on me for messing with this code a bit more
292         than what was strictly necessary...  (I _did_ resist the tempation
293         of doing any "global reformatting" to avoid an untimely death at
294         Dave's hands. :)
295    
296       - One positive aspect of the previous point:  At least I made sure that
297         all files that I touched now compile without warnings (other than
298         "polyEqual").
299    
300       - compiler now tends to run "leaner" (i.e., ties up less memory in
301         redundant modmaps)
302    
303  ----------------------------------------------------------------------  ----------------------------------------------------------------------
304  Name: Allen Leung  Name: Allen Leung

Legend:
Removed from v.586  
changed lines
  Added in v.605

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