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/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 594, Tue Apr 4 23:41:47 2000 UTC revision 648, Thu May 25 21:28:21 2000 UTC
# Line 13  Line 13 
13  Description:  Description:
14  ----------------------------------------------------------------------  ----------------------------------------------------------------------
15  Name: Allen Leung  Name: Allen Leung
16    Date: 2000/05/25 17:28 EDT
17    Tag: leunga-20000525-ra
18    Description:
19    
20      Fixed a bug in freezing phase of the register allocator.
21    
22    ----------------------------------------------------------------------
23    Name: Allen Leung
24    Date: 2000/05/15 22:53 EDT
25    Tag: leunga-20000515-alpha-x86-ra
26    Description:
27    
28      1. Alpha
29    
30          Slight cleanup.  Removed the instruction SGNXL
31    
32      2. X86
33    
34          Added the following instructions to the instruction set:
35    
36            ROLx, RORx,
37            BTx, BTSx, BTLx, BTRx,
38            XCHGx, and variants with the LOCK prefix
39    
40      3. Register Allocation
41    
42          The module ra-rewrite-with-renaming has been improved.
43    
44      These have no effect on SML/NJ.
45    
46    ----------------------------------------------------------------------
47    Name: Matthias Blume
48    Date: 2000/05/15 16:20:00 JST
49    Tag: blume-20000515-lightrebuild
50    Description:
51    
52    1. I added an alternative to "-rebuild" to "makeml".  The difference is
53       that prior to calling CMB.make' the CM-variable "LIGHT" will be
54       defined.  In effect, the command will not build any cross-compiler
55       backends and therefore finish more quickly.
56    
57       The "fixpt" script also takes a "-light" switch to be able to use
58       this new facility while compiling for a fixpoint.
59    
60    2. I replaced all mentions of anchored paths in group owner specifications
61       with simple relative paths (usually starting with "..").
62       The rationale is that a library's internal workings should not be
63       compromised by the lack of some anchor.  (An anchor is necessary
64       for someone who wants to refer to the library by an anchored path,
65       but it should not be necessary to build the same library in the first
66       place.)
67    
68    3. I changed the way CM's tool mechanism determines the shell command
69       string used for things like ml-yacc etc. so that it does not break
70       when CM.Control.implicit_anchors is turned off.
71    
72    ----------------------------------------------------------------------
73    Name: Matthias Blume
74    Date: 2000/05/12 18:20:00 JST
75    Tag: blume-20000512-ml-build
76    Description:
77    
78    Fixed a bug in config/_ml-build that prevented ml-yacc and ml-lex from
79    getting installed properly (by config/install.sh).
80    
81    ----------------------------------------------------------------------
82    Name: Matthias Blume
83    Date: 2000/05/12 17:30:00 JST
84    Tag: blume-20000512-anchors
85    Description:
86    
87    !!! NEW BOOT FILES !!!
88    
89    This change is in preparation of fading out support for "implicitly
90    anchored path names".  I went through all sources and used the
91    explicit (and relatively new) $-notation.  See system/README and the
92    CM manual for more info on this.
93    
94    I also modified the anchoring scheme for some things such as "smlnj",
95    "MLRISC", "cm", etc. to take advantage of the fact that explicit
96    anchors are more expressive: anchor name and first arc do not have to
97    coincide.  This entails the following user-visible change:
98    
99    You have to write $smlnj/foo/bar instead of smlnj/foo/bar.  In
100    particular, when you fire up sml with a command-line argument, say,
101    e.g.:
102    
103       sml '$smlnj/cmb.cm'
104    
105    At the ML toplevel prompt:
106    
107       CM.autoload "$smlnj/cmb.cm";
108    
109    There is also a new controller in CM.Control that can be used to turn
110    off all remaining support for implicit anchors by saying:
111    
112        CM.autoload "$smlnj/
113        #set CM.Control.implicit_anchors false;
114    
115    This causes CM to reject implicitly anchored paths.  This is (for the
116    time being) less permissive than the "final" version where there will
117    be no more such implicit anchors and relative paths will be just that:
118    relative.
119    
120    The next step (version after next version?) will be to make the
121    default for CM.Control.implicit_anchors false.  After the dust has
122    settled, I can then produce the "final" version of this...
123    
124    Note: Since bootstrapping is a bit tricky, I provided new boot files.
125    
126    ----------------------------------------------------------------------
127    Name: Matthias Blume
128    Date: 2000/05/11 16:30:00 JST
129    Tag: blume-20000511-sources
130    Description:
131    
132    The main change is that I added function CM.sources as a generalized
133    version of the earlier CM.makedepend.  This entails the following
134    additional changes:
135    
136      - CM.makedepend has been dropped.
137    
138      - CM manual has been updated.
139    
140      - TOOLS signature and API have been changed.
141    
142    ----------------------------------------------------------------------
143    Name: Allen Leung
144    Date: 2000/05/10 21:17 EDT
145    Tag: leunga-20000510-moby-c--ssa
146    Description:
147    
148      Various bug fixes and new features for C--, Moby and MLRISC optimizations.
149    None of these affect SML/NJ.
150    
151    1. Register Allocation
152    
153        a. A new ra spilling module (ra/ra-spill-with-renaming) is implemented.
154           This module tries to remove local (i.e. basic block level) redundancies
155           during spilling.
156    
157        b. A new framework for performing region based register allocation.
158           Not yet entirely functional.
159    
160    2. X86
161    
162       a. DefUse for POP was missing the stack pointer [found by Lal]
163       b. Reload for CALL was incorrect in X86Spill [found by John]
164       c. Various fixes in X86Spill so that it can be used correctly for
165          the new spilling module.
166    
167    3. SSA/IR
168    
169       a. New module ir/dj-dataflow.sml implements elimination based
170          data flow analysis.
171    
172    4. MLRiscGen
173    
174       a. Fix for gc type annotation
175    
176    5. MDGen
177    
178       Various fixes for machine description -> ml code translation.  For ssa
179       only.
180    
181    ----------------------------------------------------------------------
182    Name: Allen Leung
183    Date: 2000/05/08 22:17 EDT
184    Tag: leunga-20000508-labexp
185    Description:
186    
187      Fermin has found a few assembly problems with constant expressions
188      generated in LabelExp.  Mostly, the problems involve extra parentheses,
189      which choke on dumb assemblers.  This is his fix.
190    
191    ----------------------------------------------------------------------
192    Name: Dave MacQueen
193    Date: 2000/04/09 14:00 EDT
194    Tag: dbm-20000502-Version_110_28
195    Description:
196    
197    1. Updated src/compiler/TopLevel/main/version.sml to version 110.28
198    
199    2. Updated config/version to 110.28
200    
201    3. Updated config/srcarchiveurl
202    
203    3. New boot files!
204       ftp://ftp.research.bell-labs.com/dist/smlnj/working/110.28/
205    
206    ----------------------------------------------------------------------
207    Name: Matthias Blume
208    Date: 2000/05/01 19:05:00 JST
209    Tag: blume-20000501-noweb
210    Description:
211    
212    A new noweb tool has been added.  The existing system is entirely
213    unaffected by this, but some CM users have asked for renewed noweb
214    support.  Everything is documented in the CM manual.
215    
216    New (plugin) libraries:
217    
218       noweb-tool.cm
219       nw-ext.cm
220    
221    ----------------------------------------------------------------------
222    Name: Dave MacQueen
223    Date: 2000/04/30 12:40PM EDT
224    Tag: dbm-20000430-bug_fixes
225    Description:
226    
227    1. Fix for bug 1498
228       smlnj/src/system/Basis/Implementation/Unsafe/object.sig
229       smlnj/src/system/Basis/Implementation/Unsafe/object.sml
230         added toRealArray function
231       smlnj/src/compiler/MiscUtil/print/ppobj.sml
232         added check for tag Obj.RealArray to array printing case in ppObj
233    
234    2. Fix for bug 1510
235       smlnj/src/compiler/Semant/types/typesutil.sml
236         fixed definition of dummyargs (used by equalTycon) so that
237         dummy args are distinct types
238    
239    ----------------------------------------------------------------------
240    Name: Matthias Blume
241    Date: 2000/04/30 01:00:00 JST
242    Tag: blume-20000430-versions
243    Description:
244    
245    1. CM version numbering added.  This is an implementation of Lal's
246       proposal for adding version numbers and version checking to .cm
247       files.  Lal said that his proposal was just that -- a proposal.
248       For the time being I went ahead and implemented it so that people
249       can comment on it.  Everything is completely backward-compatible
250       (except for the stable library format, i.e., new bootfiles!).
251    
252       As usual, see the CM manual for details.
253    
254    2. An alternative syntax for anchored paths has been implemented.
255       Dave has recently voiced the same concerns that I had when I did
256       this, so there should be some support.  My take is that eventually
257       I will let support for the current syntax (where anchors are
258       "implicit") fade out in favor of the new, explicit syntax.
259       In order to be backward-compatible, both old and new syntax are
260       currently supported.
261    
262       Again, see the CM manual for details.
263    
264    3. Parallel make is trying to be slightly smarter:  When the master
265       process finds a "bottleneck", i.e., when there is only one
266       compilation unit that can be compiled and everybody else is
267       waiting on it, then it will simply compile it directly instead
268       of clumsily telling one of the slaves to do it.
269    
270    4. Support for "unsharing" added.  This is necessary in order to be
271       able to have two different versions of the same library running
272       at the same time (e.g., for trying out a new MLRISC while still
273       having the old MLRISC linked into the current compiler, etc.)
274       See the CM manual.
275    
276    5. Simple "makedepend" functionality added for generating Makefile
277       dependency information.  (This is rather crude at the moment.
278       Expect some changes here in the future.)
279    
280    6. ".fun" added as a recognized suffix for ML files. Also documented
281       explicitly in the manual that the fallback behavior (unknown suffix
282       -> ML file) is not an official feature!
283    
284    7. Small changes to the pickler for stable libraries.
285    
286    8. Several internal changes to CM (for cleanup/improvement).
287    
288    
289    !!!! NEW BINFILES !!!!
290    
291    ----------------------------------------------------------------------
292    Name: Matthias Blume
293    Date: 2000/04/28 17:30:00 JST
294    Tag: blume-20000428-pathconfig
295    Description:
296    
297    1. I changed config/install.sh to remove duplicate entries from the
298       lib/pathconfig file at the end.  Moreover, the final version of
299       lib/pathconfig is sorted alphabetically.  The same (sorting) is done
300       in src/system/installml.
301    
302    2. The config/install.sh script now consistently uses relative
303       pathnames in lib/pathconfig whenever the anchor is in the lib
304       directory.  (So far this was true for the libraries that come
305       pre-compiled and bundled as part of the bootfiles but not for
306       libraries that are compiled by the script itself.)
307    
308    ----------------------------------------------------------------------
309    Name: Matthias Blume
310    Date: 2000/04/26 13:10:00 JST
311    Tag: blume-20000426-fun_suffix
312    Description:
313    
314    Added ".fun" as a recognized file name suffix (for ML code).
315    
316    ----------------------------------------------------------------------
317    Name: Allen Leung
318    Date: 2000/04/25 17:00:00 EST
319    Tag: leunga-20000425-alpha-ra
320    Description:
321    
322    1. Alpha
323    
324        PSEUDOARITH was missing in AlphaRewrite.  This causes an endless loop
325    in C--.
326    
327    2. RA
328    
329       Added a flag "ra-dump-size" to print out the size of the flowgraph
330       and the interference graph.
331    
332    ----------------------------------------------------------------------
333    Name: Dave MacQueen
334    Date: 2000/04/25/
335    Tag: dbm-20000425-mlyacc_doc_examples
336    Description:
337      Updated mlyacc.tex sections 5 and 7 for SML '97 and CM.
338      Updated all three examples in src/ml-yacc/examples to run
339      under 110.* using CM.make.
340    
341    ----------------------------------------------------------------------
342    Name: Allen Leung
343    Date: 2000/04/20 23:04:00 EST
344    Tag: leunga-20000420-ssa-c---stuff
345    Description:
346    
347      This update synchronizes my repository with Yale's.  Most of these
348    changes, however, do not affect SML/NJ at all (the RA is an exception).
349    
350    1. Register Allocator
351    
352       a. An improvement in the interference graph construction:
353          Given a copy
354    
355                s <- t
356    
357          no interference edge between s and t is added for this definition of s.
358    
359       b. I've added two new spill heuristic modules that Fermin and I developed
360          (in the new library RA.cm). These are unused in SML/NJ but maybe
361          useful for others (Moby?)
362    
363    2. X86
364    
365       a. Various fixes in the backend provided by Fermin [C--] and Lal.
366    
367    3. Alpha
368    
369       a. Added the BSR instruction and code generation that goes with it [C--]
370       b. Other fixes too numerous to recount provided by Fermin [C--]
371    
372    4. Regmaps
373    
374       a. The regmaps are not initialized with the identity physical bindings
375          at creation time.  This is unneeded.
376    
377    5. MLRISC Optimizations
378    
379       a. The DJ-Graph module can now compute the iterated dominance frontiers
380          intersects with liveness incrementally in linear time! Woohoo!
381          This is now used in my new SSA construction algorithm.
382    
383       b. THe branch reorganization module is now smarter about linear chains of
384          basic blocks.
385    
386    
387    ----------------------------------------------------------------------
388    Name: Matthias Blume
389    Date: 2000/04/12 13:52:00 JST
390    Tag: blume_main_v110p27_1
391    Description:
392    
393    Changed install.sh script to handle archive files without version number
394    and to use "boot.<arch>-<os>" instead of "sml.boot.<arch>-<os>" for the
395    name of the boot file archive.
396    
397    ----------------------------------------------------------------------
398    Name: Dave MacQueen
399    Date: 2000/04/09 14:00 EDT
400    Tag: dbm-20000410-Version_110_27
401    Description:
402    
403    1. Updated src/compiler/TopLevel/main/version.sml to version 110.27
404    
405    2. Updated src/config/version to 110.27
406    
407    3. New boot files!
408    
409    ----------------------------------------------------------------------
410    Name: Allen Leung
411    Date: 2000/04/09 19:09:00 EST
412    Tag: leunga-20000409-misc
413    Description:
414    
415    1.  Yet another fix for x86 assembly for idivl, imull, mull and friends.
416    
417    2.  Miscellaneous improvements to MLRISC (unused in sml/nj)
418    
419    ----------------------------------------------------------------------
420    Name: Stefan
421    Date: 2000/04/07 10:00:00 EDT
422    Tag: monnier-20000406-branch-handling
423    Description:
424    
425    Improved handling of branches (mostly those generated from
426    polymorphic equality), removed switchoff and changed the
427    default optimization settings (more cpsopt and less flintopt).
428    
429    ----------------------------------------------------------------------
430    Name: Allen Leung
431    Date: 2000/04/06 01:30:00 EST
432    Tag: leunga-20000406-peephole-x86-SSA-2
433    Description:
434    
435       Forgot a few files.
436    
437    ----------------------------------------------------------------------
438    Name: Allen Leung
439    Date: 2000/04/06 00:36:00 EST
440    Tag: leunga-20000406-peephole-x86-SSA
441    Description:
442    
443    1.  New Peephole code
444    
445    2.  Minor improvement to X86 instruction selection
446    
447    3.  Various fixes to SSA and machine description -> code translator
448    
449    ----------------------------------------------------------------------
450    Name: Matthias Blume
451    Date: 2000/04/05 12:30:00 JST
452    Tag: blume_main_v110p26p2_3
453    Description:
454    
455    This update just merges three minor cosmetic updates to CM's sources
456    to get ready for the 110.27 code freeze on Friday.  No functionality
457    has changed.
458    
459    ----------------------------------------------------------------------
460    Name: Allen Leung
461  Date: 2000/04/04 19:39:00 EST  Date: 2000/04/04 19:39:00 EST
462  Tag: leunga-20000404-x86-asm  Tag: leunga-20000404-x86-asm
463  Description:  Description:

Legend:
Removed from v.594  
changed lines
  Added in v.648

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