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

Legend:
Removed from v.591  
changed lines
  Added in v.646

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