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

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

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