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 586, Thu Mar 30 05:08:07 2000 UTC revision 595, Wed Apr 5 03:30:17 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: Matthias Blume
16    Date: 2000/04/05 12:30:00 JST
17    Tag: blume_main_v110p26p2_3
18    Description:
19    
20    This update just merges three minor cosmetic updates to CM's sources
21    to get ready for the 110.27 code freeze on Friday.  No functionality
22    has changed.
23    
24    ----------------------------------------------------------------------
25    Name: Allen Leung
26    Date: 2000/04/04 19:39:00 EST
27    Tag: leunga-20000404-x86-asm
28    Description:
29    
30    1.  Fixed a problem in X86 assembly.
31    
32        Things like
33    
34           jmp %eax
35           jmp (%eax)
36    
37        should be output as
38    
39           jmp *%eax
40           jmp *(%eax)
41    
42    2.  Assembly output
43    
44          Added a new flag
45    
46              "asm-indent-copies" (default to false)
47    
48          When this flag is on, parallel copies will be indented an extra level.
49    
50    ----------------------------------------------------------------------
51    Name: Allen Leung
52    Date: 2000/04/04 03:18:00 EST
53    Tag: leunga-20000404-C--Moby
54    Description:
55    
56        All of these fixes are related to C--, Moby, and my own optimization
57        stuff; so they shouldn't affect SML/NJ.
58    
59    1.  X86
60    
61        Various fixes related floating point, and extensions.
62    
63    2.  Alpha
64    
65        Some extra patterns related to loads with signed/zero extension
66        provided by Fermin.
67    
68    3.  Assembly
69    
70        When generating assemby, resolve the value of client defined constants,
71        instead of generating symbolic values.  This is controlled by the
72        new flag "asm-resolve-constants", which is default to true.
73    
74    4.  Machine Descriptions
75    
76        a. The precedence parser was slightly broken when parsing infixr symbols.
77        b. The type generalizing code had the bound variables reversed, resulting
78           in a problem during arity raising.
79        c. Various fixes in machine descriptions.
80    
81    ----------------------------------------------------------------------
82    Name: Matthias Blume
83    Date: 2000/04/03 16:05:00 JST
84    Tag: blume_main_v110p26p2_2
85    Description:
86    
87    I eliminated coreEnv from compInfo.  Access to the "Core" structure is
88    now done via the ordinary static environment that is context to each
89    compilation unit.
90    
91    To this end, I arranged that instead of "structure Core" as "structure
92    _Core" is bound in the pervasive environment.  Core access is done via
93    _Core (which can never be accidentially rebound because _Core is not a
94    legal surface-syntax symbol).
95    
96    The current solution is much cleaner because the core environment is
97    now simply part of the pervasive environment which is part of every
98    compilation unit's context anyway.  In particular, this eliminates all
99    special-case handling that was necessary until now in order to deal
100    with dynamic and symbolic parts of the core environment.
101    
102    Remaining hackery (to bind the "magic" symbol _Core) is localized in the
103    compilation mananger's bootstrap compiler (actually: in the "init group"
104    handling).  See the comments in src/system/smlnj/init/init.cmi for
105    more details.
106    
107    I also tried to track down all mentions of "Core" (as string argument
108    to Symbol.strSymbol) in the compiler and replaced them with a
109    reference to the new CoreSym.coreSym.  Seems cleaner since the actual
110    name appears in one place only.
111    
112    Binfile and bootfile format have not changed, but the switchover from
113    the old "init.cmi" to the new one is a bit tricky, so I supplied new
114    bootfiles anyway.
115    
116    ----------------------------------------------------------------------
117    Name: Allen Leung
118    Date: 2000/04/02 21:17:00 EST
119    Tag: leunga-20000402-mltree
120    Description:
121    
122       1. Renamed the constructor CALL in MLTREE by popular demand.
123       2. Added a bunch of files from my repository.  These are currently
124          used by other non-SMLNJ backends.
125    
126    ----------------------------------------------------------------------
127    Name: Allen Leung
128    Date: 2000/03/31 21:15:00 EST
129    Tag: leunga-20000331-aliasing
130    Description:
131    
132    This update contains a rewritten (and hopefully more correct) module
133    for extracting aliasing information from CPS.
134    
135       To turn on this feature:
136    
137            Compiler.Control.CG.memDisambiguate := true
138    
139       To pretty print the region information with assembly
140    
141           Compiler.Control.MLRISC.getFlag "asm-show-region" := true;
142    
143       To control how many levels of aliasing information are printed, use:
144    
145           Compiler.Control.MLRISC.getInt "points-to-show-level" := n
146    
147       The default of n is 3.
148    
149    ----------------------------------------------------------------------
150    Name: David MacQueen
151    Date: 2000/03/31 11:15:00 EST
152    Tag: dbm-20000331-runtime_fix
153    Description:
154    
155    This update contains:
156    
157    1. runtime/c-lib/c-libraries.c
158       includes added in revision 1.2 caused compilation errors on hppa-hpux
159    
160    2. fix for bug 1556
161       system/Basis/Implementation/NJ/internal-signals.sml
162    
163    ----------------------------------------------------------------------
164    Name: Matthias Blume
165    Date: 2000/03/31 18:00:00 JST
166    Tag: blume_main_v110p26p2_1
167    Description:
168    
169    This update contains:
170    
171    1. A small change to CM's handling of stable libraries:
172       CM now maintains one "global" modmap that is used for all stable
173       libraries.  The use of such a global modmap maximizes sharing and
174       minimizes the need for re-traversing parts of environments during
175       modmap construction.  (However, this has minor impact since modmap
176       construction seems to account for just one percent or less of total
177       compile time.)
178    
179    2. I added a "genmap" phase to the statistics.  This is where I got the
180       "one percent" number (see above).
181    
182    3. CM's new tool parameter mechanism just became _even_ better. :)
183       - The parser understands named parameters and recursive options.
184       - The "make" and "shell" tools use these new features.
185         (This makes it a lot easier to cascade these tools.)
186       - There is a small syntax change: named parameters use a
187    
188           <name> : ( <option> ... )            or
189           <name> : <string>
190    
191         syntax.  Previously, named parameters were implemented in an
192         ad-hoc fashion by each tool individually (by parsing strings)
193         and had the form
194    
195           <name>=<string>
196    
197       See the CM manual for a full description of these issues.
198    
199    ----------------------------------------------------------------------
200    Name: Matthias Blume
201    Date: 2000/03/30 18:00:00 JST
202    Tag: blume_main_v110p26p2_0
203    Description:
204    
205    !!!!! WARNING !!!!!!
206    !!  New binfiles  !!
207    !!!!!!!!!!!!!!!!!!!!
208    
209    This update contains:
210    
211    1. Moderate changes to CM:
212    
213       - Changes to CM's tools mechanism.  In particular, it is now possible
214       to have tools that accept additional "command line" parameters
215       (specified in the .cm file at each instance where the tool's class is
216       used).
217    
218       This was done to accomodate the new "make" and "shell" tools which
219       facilitate fairly seemless hookup to portions of code managed using
220       Makefiles or Shell scripts.
221    
222       There are no classes "shared" or "private" anymore.  Instead, the
223       sharing annotation is now a parameter to the "sml" class.
224    
225       There is a bit of generic machinery for implementing one's own
226       tools that accept command-line parameters.  However, I am not yet fully
227       satisfied with that part, so expect changes here in the future.
228    
229       All existing tools are described in the CM manual.
230    
231       - Slightly better error handling.  (CM now surpresses many followup
232       error messages that tended to be more annoying than helpful.)
233    
234    2. Major changes to the compiler's static environment data structures.
235    
236       - no CMStaticEnv anymore.
237            - no CMEnv, no "BareEnvironment" (actually, _only_ BareEnvironment,
238              but it is called Environment), no conversions between different
239              kinds of static environments
240    
241       - There is still a notion of a "modmap", but such modmaps are generated
242         on demand at the time when they are needed.  This sounds slow, but I
243         sped up the code that generates modmaps enough for this not to lead to
244         a slowdown of the compiler (at least I didn't detect any).
245    
246       - To facilitate rapid modmap generation, static environments now
247         contain an (optional) "modtree" structure.  Modtree annotations are
248         constructed by the unpickler during unpickling.  (This means that
249         the elaborator does not have to worry about modtrees at all.)
250         Modtrees have the advantage that they are compositional in the same
251         way as the environment data structure itself is compositional.
252         As a result, modtrees never hang on to parts of an environment that
253         has already been rendered "stale" by filtering or rebinding.
254    
255       - I went through many, many trials and errors before arriving at the
256         current solution.  (The initial idea of "linkpaths" did not work.)
257         But the result of all this is that I have touched a lot of files that
258         depend on the "modules" and "types" data structures (most of the
259         elaborator). There were a lot of changes during my "linkpath" trials
260         that could have been reverted to their original state but weren't.
261         Please, don't be too harsh on me for messing with this code a bit more
262         than what was strictly necessary...  (I _did_ resist the tempation
263         of doing any "global reformatting" to avoid an untimely death at
264         Dave's hands. :)
265    
266       - One positive aspect of the previous point:  At least I made sure that
267         all files that I touched now compile without warnings (other than
268         "polyEqual").
269    
270       - compiler now tends to run "leaner" (i.e., ties up less memory in
271         redundant modmaps)
272    
273  ----------------------------------------------------------------------  ----------------------------------------------------------------------
274  Name: Allen Leung  Name: Allen Leung

Legend:
Removed from v.586  
changed lines
  Added in v.595

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