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 570, Wed Mar 8 17:30:13 2000 UTC revision 606, Sun Apr 9 23:10:59 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: Allen Leung
16    Date: 2000/04/09 19:09:00 EST
17    Tag: leunga-20000409-misc
18    Description:
19    
20    1.  Yet another fix for x86 assembly for idivl, imull, mull and friends.
21    
22    2.  Miscellaneous improvements to MLRISC (unused in sml/nj)
23    
24  ----------------------------------------------------------------------  ----------------------------------------------------------------------
25  Name:  Name: Stefan
26  Date:  Date: 2000/04/07 10:00:00 EDT
27  Tag:  Tag: monnier-20000406-branch-handling
28    Description:
29    
30    Improved handling of branches (mostly those generated from
31    polymorphic equality), removed switchoff and changed the
32    default optimization settings (more cpsopt and less flintopt).
33    
34    ----------------------------------------------------------------------
35    Name: Allen Leung
36    Date: 2000/04/06 01:30:00 EST
37    Tag: leunga-20000406-peephole-x86-SSA-2
38    Description:
39    
40       Forgot a few files.
41    
42    ----------------------------------------------------------------------
43    Name: Allen Leung
44    Date: 2000/04/06 00:36:00 EST
45    Tag: leunga-20000406-peephole-x86-SSA
46    Description:
47    
48    1.  New Peephole code
49    
50    2.  Minor improvement to X86 instruction selection
51    
52    3.  Various fixes to SSA and machine description -> code translator
53    
54    ----------------------------------------------------------------------
55    Name: Matthias Blume
56    Date: 2000/04/05 12:30:00 JST
57    Tag: blume_main_v110p26p2_3
58    Description:
59    
60    This update just merges three minor cosmetic updates to CM's sources
61    to get ready for the 110.27 code freeze on Friday.  No functionality
62    has changed.
63    
64    ----------------------------------------------------------------------
65    Name: Allen Leung
66    Date: 2000/04/04 19:39:00 EST
67    Tag: leunga-20000404-x86-asm
68    Description:
69    
70    1.  Fixed a problem in X86 assembly.
71    
72        Things like
73    
74           jmp %eax
75           jmp (%eax)
76    
77        should be output as
78    
79           jmp *%eax
80           jmp *(%eax)
81    
82    2.  Assembly output
83    
84          Added a new flag
85    
86              "asm-indent-copies" (default to false)
87    
88          When this flag is on, parallel copies will be indented an extra level.
89    
90    ----------------------------------------------------------------------
91    Name: Allen Leung
92    Date: 2000/04/04 03:18:00 EST
93    Tag: leunga-20000404-C--Moby
94    Description:
95    
96        All of these fixes are related to C--, Moby, and my own optimization
97        stuff; so they shouldn't affect SML/NJ.
98    
99    1.  X86
100    
101        Various fixes related floating point, and extensions.
102    
103    2.  Alpha
104    
105        Some extra patterns related to loads with signed/zero extension
106        provided by Fermin.
107    
108    3.  Assembly
109    
110        When generating assemby, resolve the value of client defined constants,
111        instead of generating symbolic values.  This is controlled by the
112        new flag "asm-resolve-constants", which is default to true.
113    
114    4.  Machine Descriptions
115    
116        a. The precedence parser was slightly broken when parsing infixr symbols.
117        b. The type generalizing code had the bound variables reversed, resulting
118           in a problem during arity raising.
119        c. Various fixes in machine descriptions.
120    
121    ----------------------------------------------------------------------
122    Name: Matthias Blume
123    Date: 2000/04/03 16:05:00 JST
124    Tag: blume_main_v110p26p2_2
125    Description:
126    
127    I eliminated coreEnv from compInfo.  Access to the "Core" structure is
128    now done via the ordinary static environment that is context to each
129    compilation unit.
130    
131    To this end, I arranged that instead of "structure Core" as "structure
132    _Core" is bound in the pervasive environment.  Core access is done via
133    _Core (which can never be accidentially rebound because _Core is not a
134    legal surface-syntax symbol).
135    
136    The current solution is much cleaner because the core environment is
137    now simply part of the pervasive environment which is part of every
138    compilation unit's context anyway.  In particular, this eliminates all
139    special-case handling that was necessary until now in order to deal
140    with dynamic and symbolic parts of the core environment.
141    
142    Remaining hackery (to bind the "magic" symbol _Core) is localized in the
143    compilation mananger's bootstrap compiler (actually: in the "init group"
144    handling).  See the comments in src/system/smlnj/init/init.cmi for
145    more details.
146    
147    I also tried to track down all mentions of "Core" (as string argument
148    to Symbol.strSymbol) in the compiler and replaced them with a
149    reference to the new CoreSym.coreSym.  Seems cleaner since the actual
150    name appears in one place only.
151    
152    Binfile and bootfile format have not changed, but the switchover from
153    the old "init.cmi" to the new one is a bit tricky, so I supplied new
154    bootfiles anyway.
155    
156    ----------------------------------------------------------------------
157    Name: Allen Leung
158    Date: 2000/04/02 21:17:00 EST
159    Tag: leunga-20000402-mltree
160    Description:
161    
162       1. Renamed the constructor CALL in MLTREE by popular demand.
163       2. Added a bunch of files from my repository.  These are currently
164          used by other non-SMLNJ backends.
165    
166    ----------------------------------------------------------------------
167    Name: Allen Leung
168    Date: 2000/03/31 21:15:00 EST
169    Tag: leunga-20000331-aliasing
170    Description:
171    
172    This update contains a rewritten (and hopefully more correct) module
173    for extracting aliasing information from CPS.
174    
175       To turn on this feature:
176    
177            Compiler.Control.CG.memDisambiguate := true
178    
179       To pretty print the region information with assembly
180    
181           Compiler.Control.MLRISC.getFlag "asm-show-region" := true;
182    
183       To control how many levels of aliasing information are printed, use:
184    
185           Compiler.Control.MLRISC.getInt "points-to-show-level" := n
186    
187       The default of n is 3.
188    
189    ----------------------------------------------------------------------
190    Name: David MacQueen
191    Date: 2000/03/31 11:15:00 EST
192    Tag: dbm-20000331-runtime_fix
193    Description:
194    
195    This update contains:
196    
197    1. runtime/c-lib/c-libraries.c
198       includes added in revision 1.2 caused compilation errors on hppa-hpux
199    
200    2. fix for bug 1556
201       system/Basis/Implementation/NJ/internal-signals.sml
202    
203    ----------------------------------------------------------------------
204    Name: Matthias Blume
205    Date: 2000/03/31 18:00:00 JST
206    Tag: blume_main_v110p26p2_1
207    Description:
208    
209    This update contains:
210    
211    1. A small change to CM's handling of stable libraries:
212       CM now maintains one "global" modmap that is used for all stable
213       libraries.  The use of such a global modmap maximizes sharing and
214       minimizes the need for re-traversing parts of environments during
215       modmap construction.  (However, this has minor impact since modmap
216       construction seems to account for just one percent or less of total
217       compile time.)
218    
219    2. I added a "genmap" phase to the statistics.  This is where I got the
220       "one percent" number (see above).
221    
222    3. CM's new tool parameter mechanism just became _even_ better. :)
223       - The parser understands named parameters and recursive options.
224       - The "make" and "shell" tools use these new features.
225         (This makes it a lot easier to cascade these tools.)
226       - There is a small syntax change: named parameters use a
227    
228           <name> : ( <option> ... )            or
229           <name> : <string>
230    
231         syntax.  Previously, named parameters were implemented in an
232         ad-hoc fashion by each tool individually (by parsing strings)
233         and had the form
234    
235           <name>=<string>
236    
237       See the CM manual for a full description of these issues.
238    
239    ----------------------------------------------------------------------
240    Name: Matthias Blume
241    Date: 2000/03/30 18:00:00 JST
242    Tag: blume_main_v110p26p2_0
243    Description:
244    
245    !!!!! WARNING !!!!!!
246    !!  New binfiles  !!
247    !!!!!!!!!!!!!!!!!!!!
248    
249    This update contains:
250    
251    1. Moderate changes to CM:
252    
253       - Changes to CM's tools mechanism.  In particular, it is now possible
254       to have tools that accept additional "command line" parameters
255       (specified in the .cm file at each instance where the tool's class is
256       used).
257    
258       This was done to accomodate the new "make" and "shell" tools which
259       facilitate fairly seemless hookup to portions of code managed using
260       Makefiles or Shell scripts.
261    
262       There are no classes "shared" or "private" anymore.  Instead, the
263       sharing annotation is now a parameter to the "sml" class.
264    
265       There is a bit of generic machinery for implementing one's own
266       tools that accept command-line parameters.  However, I am not yet fully
267       satisfied with that part, so expect changes here in the future.
268    
269       All existing tools are described in the CM manual.
270    
271       - Slightly better error handling.  (CM now surpresses many followup
272       error messages that tended to be more annoying than helpful.)
273    
274    2. Major changes to the compiler's static environment data structures.
275    
276       - no CMStaticEnv anymore.
277            - no CMEnv, no "BareEnvironment" (actually, _only_ BareEnvironment,
278              but it is called Environment), no conversions between different
279              kinds of static environments
280    
281       - There is still a notion of a "modmap", but such modmaps are generated
282         on demand at the time when they are needed.  This sounds slow, but I
283         sped up the code that generates modmaps enough for this not to lead to
284         a slowdown of the compiler (at least I didn't detect any).
285    
286       - To facilitate rapid modmap generation, static environments now
287         contain an (optional) "modtree" structure.  Modtree annotations are
288         constructed by the unpickler during unpickling.  (This means that
289         the elaborator does not have to worry about modtrees at all.)
290         Modtrees have the advantage that they are compositional in the same
291         way as the environment data structure itself is compositional.
292         As a result, modtrees never hang on to parts of an environment that
293         has already been rendered "stale" by filtering or rebinding.
294    
295       - I went through many, many trials and errors before arriving at the
296         current solution.  (The initial idea of "linkpaths" did not work.)
297         But the result of all this is that I have touched a lot of files that
298         depend on the "modules" and "types" data structures (most of the
299         elaborator). There were a lot of changes during my "linkpath" trials
300         that could have been reverted to their original state but weren't.
301         Please, don't be too harsh on me for messing with this code a bit more
302         than what was strictly necessary...  (I _did_ resist the tempation
303         of doing any "global reformatting" to avoid an untimely death at
304         Dave's hands. :)
305    
306       - One positive aspect of the previous point:  At least I made sure that
307         all files that I touched now compile without warnings (other than
308         "polyEqual").
309    
310       - compiler now tends to run "leaner" (i.e., ties up less memory in
311         redundant modmaps)
312    
313    ----------------------------------------------------------------------
314    Name: Allen Leung
315    Date: 2000/03/29 18:00:00
316    Tag: leunga-20000327-mlriscGen_hppa_alpha_x86
317    Boot files (optional): ftp://react-ilp.cs.nyu.edu/leunga/110.26.1-sml.boot.x86-unix-20000330.tar.gz
318    Description:
319    
320       This update contains *MAJOR* changes to the way code is generated from CPS
321    in the module mlriscGen, and in various backend modules.
322    
323    CHANGES
324    =======
325    
326    1. MLRiscGen: forward propagation fix.
327    
328       There was a bug in forward propagation introduced at about the same time
329       as the MLRISC x86 backend, which prohibits coalescing to be
330       performed effectively in loops.
331    
332       Effect: speed up of loops in RISC architectures.
333               By itself, this actually slowed down certain benchmarks on the x86.
334    
335    2. MLRiscGen:  forward propagating addresses from consing.
336    
337       I've changed the way consing code is generated.  Basically I separated
338       out the initialization part:
339    
340            store tag,   offset(allocptr)
341            store elem1, offset+4(allocptr)
342            store elem2, offset+8(allocptr)
343            ...
344            store elemn, offset+4n(allocptr)
345    
346       and the address computation part:
347    
348            celladdr <- offset+4+alloctpr
349    
350       and move the address computation part
351    
352       Effect:  register pressure is generally lower as a result.  This
353                makes compilation of certain expressions much faster, such as
354                long lists with non-trivial elements.
355    
356                 [(0,0), (0,0), .... (0,0)]
357    
358    3. MLRiscGen: base pointer elimination.
359    
360        As part of the linkage mechanism, we generate the sequence:
361    
362         L:  ...  <- start of the code fragment
363    
364         L1:
365             base pointer <- linkreg - L1 + L
366    
367         The base pointer was then used for computing relocatable addresses
368       in the code fragment.  Frequently (such as in lots of continuations)
369       this is not needed.  We now eliminate this sequence whenever possible.
370    
371         For compile time efficiency, I'm using a very stupid local heuristic.
372       But in general, this should be done as a control flow analysis.
373    
374       Effect:  Smaller code size.  Speed up of most programs.
375    
376    4. Hppa back end
377    
378         Long jumps in span dependence resolution used to depend on the existence
379      of the base pointer.
380    
381         A jump to a long label L was expanded into the following sequence:
382    
383          LDIL %hi(L-8192), %r29
384          LDO  %lo(L-8192)(%r29), %r29
385          ADD  %r29, baseptr, %r29
386          BV,n %r0(%r29)
387    
388         In the presence of change (3) above, this will not work.  I've changed
389       it so that the following sequence of instructions are generated, which
390       doesn't mention the base pointer at all:
391    
392             BL,n  L', %r29           /* branch and link, L' + 4 -> %r29 */
393        L':  ADDIL L-(L'+4), %r29     /* Compute address of L */
394             BV,n  %r0(%r29)          /* Jump */
395    
396    5. Alpha back end
397    
398          New alpha instructions LDB/LDW have been added, as per Fermin's
399       suggestions.   This is unrelated to all other changes.
400    
401    6. X86 back end
402    
403         I've changed andl to testl in the floating point test sequence
404         whenever appropriate.  The Intel optimization guide states that
405         testl is perferable to andl.
406    
407    7. RA (x86 only)
408    
409         I've improved the spill propagation algorithm, using an approximation
410       of maximal weighted independent sets.   This seems to be necessary to
411       alleviate the negative effect in light of the slow down in (1).
412    
413         I'll write down the algorithm one of these days.
414    
415    8. MLRiscGen: frequencies
416    
417         I've added an annotation that states that all call gc blocks have zero
418       execution frequencies.  This improves register allocation on the x86.
419    
420    BENCHMARKS
421    ==========
422    
423       I've only perform the comparison on 110.25.
424    
425       The platforms are:
426    
427        HPPA  A four processor HP machine (E9000) with 5G of memory.
428        X86   A 300Hhz Pentium II with 128M of memory, and
429        SPARC An Ultra sparc 2 with 512M of memory.
430    
431       I used the following parameters for the SML benchmarks:
432    
433                 @SMLalloc
434         HPPA    256k
435         SPARC   512k
436         X86     256k
437    
438    COMPILATION TIME
439    ----------------
440       Here are the numbers comparing the compilation times of the compilers.
441       I've only compared 110.25 compiling the new sources versus
442       a fixpoint version of the new compiler compiling the same.
443    
444                     110.25                                  New
445               Total  Time in RA  Spill+Reload   Total  Time In RA Spill+Reload
446         HPPA   627s    116s        2684+3584     599s    95s       1003+1879
447         SPARC  892s    173s        2891+3870     708s    116s      1004+1880
448         X86    999s    315s       94006+130691   987s    296s    108877+141957
449    
450                   110.25         New
451                Code Size      Code Size
452         HPPA   8596736         8561421
453         SPARC  8974299         8785143
454         X86    9029180         8716783
455    
456       So in summary, things are at least as good as before.   Dramatic
457       reduction in compilation is obtained on the Sparc; I can't explain it,
458       but it is reproducible.  Perhaps someone should try to reproduce this
459       on their own machines.
460    
461    SML BENCHMARKS
462    --------------
463    
464        On the average, all benchmarks perform at least as well as before.
465    
466          HPPA         Compilation Time     Spill+Reload      Run Time
467                     110.25  New            110.25    New   110.25  New
468    
469          barnesHut  3.158  3.015  4.75%    1+1       0+0   2.980  2.922   2.00%
470              boyer  6.152  5.708  7.77%    0+0       0+0   0.218  0.213   2.34%
471       count-graphs  1.168  1.120  4.32%    0+0       0+0  22.705 23.073  -1.60%
472                fft  0.877  0.792 10.74%    1+3       1+3   0.602  0.587   2.56%
473        knuthBendix  3.180  2.857 11.32%    0+0       0+0   0.675  0.662   2.02%
474             lexgen  6.190  5.290 17.01%    0+0       0+0   0.913  0.788  15.86%
475               life  0.803  0.703 14.22%   25+25      0+0   0.153  0.140   9.52%
476              logic  2.048  2.007  2.08%    6+6       1+1   4.133  4.008   3.12%
477         mandelbrot  0.077  0.080 -4.17%    0+0       0+0   0.765  0.712   7.49%
478             mlyacc 22.932 20.937  9.53%  154+181    32+57  0.468  0.430   8.91%
479            nucleic  5.183  5.060  2.44%    2+2       0+0   0.125  0.120   4.17%
480      ratio-regions  3.357  3.142  6.84%    0+0       0+0  116.225 113.173 2.70%
481                ray  1.283  1.290 -0.52%    0+0       0+0   2.887  2.855   1.11%
482             simple  6.307  6.032  4.56%   28+30      5+7   3.705  3.658   1.28%
483                tsp  0.888  0.862  3.09%    0+0       0+0   7.040  6.893   2.13%
484               vliw 24.378 23.455  3.94%  106+127    25+45  2.758  2.707   1.91%
485      --------------------------------------------------------------------------
486       Average                     6.12%                                   4.09%
487    
488          SPARC        Compilation Time     Spill+Reload      Run Time
489                     110.25  New            110.25    New   110.25  New
490    
491          barnesHut  3.778  3.592  5.20%    2+2       0+0   3.648  3.453    5.65%
492              boyer  6.632  6.110  8.54%    0+0       0+0   0.258  0.242    6.90%
493       count-graphs  1.435  1.325  8.30%    0+0       0+0  33.672 34.737   -3.07%
494                fft  0.980  0.940  4.26%    3+9       2+6   0.838  0.827    1.41%
495        knuthBendix  3.590  3.138 14.39%    0+0       0+0   0.962  0.967   -0.52%
496             lexgen  6.593  6.072  8.59%    1+1       0+0   1.077  1.078   -0.15%
497               life  0.972  0.868 11.90%   26+26      0+0   0.143  0.140    2.38%
498              logic  2.525  2.387  5.80%    7+7       1+1   5.625  5.158    9.05%
499         mandelbrot  0.090  0.093 -3.57%    0+0       0+0   0.855  0.728   17.39%
500             mlyacc 26.732 23.827 12.19%  162+189    32+57  0.550  0.560   -1.79%
501            nucleic  6.233  6.197  0.59%    3+3       0+0   0.163  0.173   -5.77%
502      ratio-regions  3.780  3.507  7.79%    0+0       0+0 133.993 131.035   2.26%
503                ray  1.595  1.550  2.90%    1+1       0+0   3.440  3.418    0.63%
504             simple  6.972  6.487  7.48%   29+32      5+7   3.523  3.525   -0.05%
505                tsp  1.115  1.063  4.86%    0+0       0+0   7.393  7.265    1.77%
506               vliw 27.765 24.818 11.87%  110+135    25+45  2.265  2.135    6.09%
507      ----------------------------------------------------------------------------
508       Average                     6.94%                                    2.64%
509    
510          X86          Compilation Time     Spill+Reload      Run Time
511                     110.25  New            110.25    New   110.25  New
512    
513          barnesHut  5.530  5.420  2.03%  593+893   597+915   3.532  3.440   2.66%
514              boyer  8.768  7.747 13.19%  493+199   301+289   0.327  0.297  10.11%
515       count-graphs  2.040  2.010  1.49%  298+394   315+457  26.578 28.660  -7.26%
516                fft  1.327  1.302  1.92%  112+209   115+210   1.055  0.962   9.71%
517        knuthBendix  5.218  5.475 -4.69%  451+598   510+650   0.928  0.932  -0.36%
518             lexgen  9.970  9.623  3.60% 1014+841  1157+885   0.947  0.928   1.97%
519               life  1.183  1.183  0.00%  162+182   145+148   0.127  0.103  22.58%
520              logic  3.285  3.512 -6.45%  514+684   591+836   5.682  5.577   1.88%
521         mandelbrot  0.147  0.143  2.33%   38+41     33+54    0.703  0.690   1.93%
522             mlyacc 35.457 32.763  8.22% 3496+4564 3611+4860  0.552  0.550   0.30%
523            nucleic  7.100  6.888  3.07%  239+168   201+158   0.175  0.173   0.96%
524      ratio-regions  6.388  6.843 -6.65% 1182+257   981+300  120.142 120.345 -0.17%
525                ray  2.332  2.338 -0.29%  346+398   402+494   3.593  3.540   1.51%
526             simple  9.912  9.903  0.08% 1475+941  1579+1168  3.057  3.178  -3.83%
527                tsp  1.623  1.532  5.98%  266+200   250+211   8.045  7.878   2.12%
528               vliw 33.947 35.470 -4.29% 2629+2774 2877+3171  2.072  1.890   9.61%
529      ----------------------------------------------------------------------------
530       Average                     1.22%                                     3.36%
531    
532    ----------------------------------------------------------------------
533    Name: Allen Leung
534    Date: 2000/03/23 16:25:00
535    Tag: leunga-20000323-fix_x86_alpha
536    Description:
537    
538    1. X86 fixes/changes
539    
540       a.  The old code generated for SETcc was completely wrong.
541           The Intel optimization guide is VERY misleading.
542    
543    2. ALPHA fixes/changes
544    
545       a.  Added the instructions LDBU, LDWU, STB, STW as per Fermin's suggestion.
546       b.  Added a new mode byteWordLoadStores to the functor parameter to Alpha()
547       c.  Added reassociation code for address computation.
548    
549    ----------------------------------------------------------------------
550    Name: Allen Leung
551    Date: 2000/03/22 01:23:00
552    Tag: leunga-20000322-fix_x86_hppa_ra
553    Description:
554    
555    1. X86 fixes/changes
556    
557       a.  x86Rewrite bug with MUL3 (found by Lal)
558       b.  Added the instructions FSTS, FSTL
559    
560    2. PA-RISC fixes/changes
561    
562       a.  B label should not be a delay slot candidate!  Why did this work?
563       b.  ADDT(32, REG(32, r), LI n) now generates one instruction instead of two,
564           as it should be.
565       c.  The assembly syntax for fstds and fstdd was wrong.
566       d.  Added the composite instruction COMICLR/LDO, which is the immediate
567           operand variant of COMCLR/LDO.
568    
569    3. Generic MLRISC
570    
571       a.  shuffle.sml rewritten to be slightly more efficient
572       b.  DIV bug in mltree-simplify fixed (found by Fermin)
573    
574    4. Register Allocator
575    
576       a.  I now release the interference graph earlier during spilling.
577           May improve memory usage.
578    
579    ----------------------------------------------------------------------
580    Name: Matthias Blume
581    Date: 2000/03/14 14:15:32
582    Tag: blume_main_v110p26p1_2
583    Description:
584    
585    1. Tools.registerStdShellCmdTool (from smlnj/cm/tool.cm) takes an
586    additional argument called "template" which is an optional string that
587    specifiel the layout of the tool command line.  See the CM manual for
588    explanation.
589    
590    2. A special-purpose tool can be "regisitered" by simply dropping the
591    corresponding <...>-tool.cm (and/or <...>-ext.cm) into the same
592    directory where the .cm file lives that uses this tool.  (The
593    behavior/misfeature until now was to look for the tool description
594    files in the current working directory.)  As before, tool description
595    files could also be anchored -- in which case they can live anywhere
596    they like.  Following the recent e-mail discussion, this change should
597    make it easier to have special-purpose tools that are shipped together
598    with the sources of the program that uses them.
599    
600    ----------------------------------------------------------------------
601    Name: Matthias Blume
602    Date: 2000/03/10 07:48:34
603    Tag: blume_main_v110p26p1_1
604    Description:
605    
606    I added a re-written version of Dave's fixpt script to src/system.
607    Changes relative to the original version:
608      - sh-ified (not everybody has ksh)
609      - automatically figures out which architecture it runs on
610      - uses ./makeml a bit more cleverly
611      - never invokes ./installml (and, thus, does not clobber your
612        good and working installation of sml in case something goes wrong)
613      - accepts max iteration count using option "-iter <n>"
614      - accepts a "base" name using option "-base <base>"
615    
616    It does not build any extraneous heap images but directly rebuilds
617    bin- and boot-hierarchies using makeml's "-rebuild" switch. Finally,
618    it can incorporate existing bin- and boot- hierarchies.  For example,
619    suppose the base is set to "sml" (which is the default).  Then it
620    successively builds
621    
622            sml.bin.<arch>-unix and sml.boot.<arch>-unix
623    then    sml1.bin.<arch>-unix and sml1.boot.<arch>-unix
624    then    sml2.bin.<arch>-unix and sml2.boot.<arch>-unix
625    ...
626    then    sml<n>.bin.<arch>-unix and sml<n>.boot.<arch>-unix
627    
628    and so on.  If any of these already exist, it will just use what's
629    there.  In particular, many people will have the initial set of bin
630    and boot files around, so this saves time for at least one full
631    rebuild.  Having sets of the form <base><k>.{bin,boot}.<arch>-unix for
632    <k>=1,2,... is normally not a good idea when invoking fixpt.  However,
633    they might be the result of an earlier partial run of fixpt (which
634    perhaps got accidentially killed).  In this case, fixpt will quickly
635    move through what exists before continuing where it left off earlier,
636    and, thus, saves a lot of time.
637    
638    ----------------------------------------------------------------------
639    Name: Allen Leung
640    Date: 00/03/10 02:20:00
641    Tag: leunga-20000310-fix_x86_asm_ra
642    Description:
643    
644    More assembly output problems involving the indexed addressing mode
645    on the x86 have been found and corrected. Thanks to Fermin Reig for the
646    fix.
647    
648    The interface and implementation of the register allocator have been changed
649    slightly to accommodate the possibility to skip the register allocation
650    phases completely and go directly to memory allocation.  This is needed
651    for C-- use.
652    
653    ----------------------------------------------------------------------
654    Name: Matthias Blume
655    Date: 00/03/09 10:23:53
656    Tag: blume_main_v110p26p1_0
657    Description:
658    
659    * Complete re-organization of library names.  Many libraries have been
660    consolidated so that they share the same path anchor.  For example,
661    all MLRISC-related libraries are anchored at MLRISC, most libraries that
662    are SML/NJ-specific are under "smlnj".  Notice that names like
663    host-cmb.cm or host-compiler.cm no longer exist.  See system/README
664    for a complete description of the new naming scheme.  Quick reference:
665    
666       host-cmb.cm        -> smlnj/cmb.cm
667       host-compiler.cm   -> smlnj/compiler.cm
668       full-cm.cm         -> smlnj/cm.cm
669       <arch>-<os>.cm     -> smlnj/cmb/<arch>-<os>.cm
670       <arch>-compiler.cm -> smlnj/compiler/<arch>.cm
671    
672    * Bug fixes in CM.
673        - exceptions in user code are being passed through (i.e., reach top level)
674        - more bugs in paranoia mode fixed
675        - bug related to checking group owners fixed
676    
677    * New install.sh script that automagically fetches archive files:
678      The new file config/srcarchiveurl must contain the URL of the
679      (remote) directory that contains bin files (or other source archives).
680      If install.sh does not find the archive locally, it tries to get
681      it from that remote directory.
682      This should simplify installation further:  For machines that have
683      access to the internet, just fetch <version>-config.tgz, unpack it,
684      edit config/targets, and go (run config/install.sh).  The scipt will
685      fetch everything else that it might need all by itself.
686    
687      For CVS users, this mechanism is not relevant for source archives, but
688      it is convenient for getting new sets of binfiles.
689    
690      Archives should be tar files compressed with either gzip, compress, or
691      bzip2.  The script recognizes .tgz, .tar, tar.gz, tz, .tar.Z, and .tar.bz2.
692    
693    ----------------------------------------------------------------------
694    Name: Matthias Blume
695    Date: 2000/03/07 04:01:04
696    Tag: blume_main_v110_26_2
697  Description:  Description:
698    - size info in BOOTLIST
699         * no fixed upper limits for number of bootfiles or length of
700           bootfile names in runtime
701         * falling back to old behavior if no BOOTLIST size info found
702    - allocation size heuristics in .run-sml
703         * tries to read cache size from /proc/cpuinfo (this is important for
704            small-cache Celeron systems!)
705    - install.sh robustified
706    - CM manual updates
707    - paranoid mode
708         * no more CMB.deliver() (i.e., all done by CMB.make())
709         * can re-use existing sml.boot.* files
710         * init.cmi now treated as library
711         * library stamps for consistency checks
712    - sml.boot.<arch>-<os>/PIDMAP file
713         * This file is read by the CM startup code.  This is used to minimize
714           the amount of dynamic state that needs to be stowed away for the
715           purpose of sharing between interactive system and user code.
716    - CM.Anchor.anchor instead of CM.Anchor.{set,cancel}
717         * Upon request by Elsa.  Anchors now controlled by get-set-pair
718           like most other CM state variables.
719    - Compiler.CMSA eliminated
720         * No longer supported by CM anyway.
721    - fixed bugs in pickler that kept biting Stefan
722         * past refs to past refs (was caused by the possibility that
723           ad-hoc sharing is more discriminating than hash-cons sharing)
724         * integer overflow on LargeInt.minInt
725    - ml-{lex,yacc} build scripts now use new mechanism
726      for building standalone programs
727    - fixed several gcc -Wall warnings that were caused by missing header
728      files, missing initializations, etc., in runtime (not all warnings
729      eliminated, though)

Legend:
Removed from v.570  
changed lines
  Added in v.606

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