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

Legend:
Removed from v.601  
changed lines
  Added in v.656

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