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 588, Fri Mar 31 09:00:02 2000 UTC
# Line 13  Line 13 
13  Description:  Description:
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Matthias Blume
17    Date: 2000/03/31 18:00:00 JST
18    Tag: blume_main_v110p26p2_1
19    Description:
21    This update contains:
23    1. A small change to CM's handling of stable libraries:
24       CM now maintains one "global" modmap that is used for all stable
25       libraries.  The use of such a global modmap maximizes sharing and
26       minimizes the need for re-traversing parts of environments during
27       modmap construction.  (However, this has minor impact since modmap
28       construction seems to account for just one percent or less of total
29       compile time.)
31    2. I added a "genmap" phase to the statistics.  This is where I got the
32       "one percent" number (see above).
34    3. CM's new tool parameter mechanism just became _even_ better. :)
35       - The parser understands named parameters and recursive options.
36       - The "make" and "shell" tools use these new features.
37         (This makes it a lot easier to cascade these tools.)
38       - There is a small syntax change: named parameters use a
40           <name> : ( <option> ... )            or
41           <name> : <string>
43         syntax.  Previously, named parameters were implemented in an
44         ad-hoc fashion by each tool individually (by parsing strings)
45         and had the form
47           <name>=<string>
49       See the CM manual for a full description of these issues.
51    ----------------------------------------------------------------------
52    Name: Matthias Blume
53    Date: 2000/03/30 18:00:00 JST
54    Tag: blume_main_v110p26p2_0
55    Description:
57    !!!!! WARNING !!!!!!
58    !!  New binfiles  !!
59    !!!!!!!!!!!!!!!!!!!!
61    This update contains:
63    1. Moderate changes to CM:
65       - Changes to CM's tools mechanism.  In particular, it is now possible
66       to have tools that accept additional "command line" parameters
67       (specified in the .cm file at each instance where the tool's class is
68       used).
70       This was done to accomodate the new "make" and "shell" tools which
71       facilitate fairly seemless hookup to portions of code managed using
72       Makefiles or Shell scripts.
74       There are no classes "shared" or "private" anymore.  Instead, the
75       sharing annotation is now a parameter to the "sml" class.
77       There is a bit of generic machinery for implementing one's own
78       tools that accept command-line parameters.  However, I am not yet fully
79       satisfied with that part, so expect changes here in the future.
81       All existing tools are described in the CM manual.
83       - Slightly better error handling.  (CM now surpresses many followup
84       error messages that tended to be more annoying than helpful.)
86    2. Major changes to the compiler's static environment data structures.
88       - no CMStaticEnv anymore.
89            - no CMEnv, no "BareEnvironment" (actually, _only_ BareEnvironment,
90              but it is called Environment), no conversions between different
91              kinds of static environments
93       - There is still a notion of a "modmap", but such modmaps are generated
94         on demand at the time when they are needed.  This sounds slow, but I
95         sped up the code that generates modmaps enough for this not to lead to
96         a slowdown of the compiler (at least I didn't detect any).
98       - To facilitate rapid modmap generation, static environments now
99         contain an (optional) "modtree" structure.  Modtree annotations are
100         constructed by the unpickler during unpickling.  (This means that
101         the elaborator does not have to worry about modtrees at all.)
102         Modtrees have the advantage that they are compositional in the same
103         way as the environment data structure itself is compositional.
104         As a result, modtrees never hang on to parts of an environment that
105         has already been rendered "stale" by filtering or rebinding.
107       - I went through many, many trials and errors before arriving at the
108         current solution.  (The initial idea of "linkpaths" did not work.)
109         But the result of all this is that I have touched a lot of files that
110         depend on the "modules" and "types" data structures (most of the
111         elaborator). There were a lot of changes during my "linkpath" trials
112         that could have been reverted to their original state but weren't.
113         Please, don't be too harsh on me for messing with this code a bit more
114         than what was strictly necessary...  (I _did_ resist the tempation
115         of doing any "global reformatting" to avoid an untimely death at
116         Dave's hands. :)
118       - One positive aspect of the previous point:  At least I made sure that
119         all files that I touched now compile without warnings (other than
120         "polyEqual").
122       - compiler now tends to run "leaner" (i.e., ties up less memory in
123         redundant modmaps)
125    ----------------------------------------------------------------------
126  Name: Allen Leung  Name: Allen Leung
127  Date: 2000/03/29 18:00:00  Date: 2000/03/29 18:00:00
128  Tag: leunga-20000327-mlriscGen_hppa_alpha_x86  Tag: leunga-20000327-mlriscGen_hppa_alpha_x86

Removed from v.586  
changed lines
  Added in v.588

ViewVC Help
Powered by ViewVC 1.0.0