13 |
Description: |
Description: |
14 |
|
|
15 |
---------------------------------------------------------------------- |
---------------------------------------------------------------------- |
16 |
|
Name: Matthias Blume |
17 |
|
Date: 2000/03/30 18:00:00 JST |
18 |
|
Tag: blume_main_v110p26p2_0 |
19 |
|
Description: |
20 |
|
|
21 |
|
!!!!! WARNING !!!!!! |
22 |
|
!! New binfiles !! |
23 |
|
!!!!!!!!!!!!!!!!!!!! |
24 |
|
|
25 |
|
This update contains: |
26 |
|
|
27 |
|
1. Moderate changes to CM: |
28 |
|
|
29 |
|
- Changes to CM's tools mechanism. In particular, it is now possible |
30 |
|
to have tools that accept additional "command line" parameters |
31 |
|
(specified in the .cm file at each instance where the tool's class is |
32 |
|
used). |
33 |
|
|
34 |
|
This was done to accomodate the new "make" and "shell" tools which |
35 |
|
facilitate fairly seemless hookup to portions of code managed using |
36 |
|
Makefiles or Shell scripts. |
37 |
|
|
38 |
|
There are no classes "shared" or "private" anymore. Instead, the |
39 |
|
sharing annotation is now a parameter to the "sml" class. |
40 |
|
|
41 |
|
There is a bit of generic machinery for implementing one's own |
42 |
|
tools that accept command-line parameters. However, I am not yet fully |
43 |
|
satisfied with that part, so expect changes here in the future. |
44 |
|
|
45 |
|
All existing tools are described in the CM manual. |
46 |
|
|
47 |
|
- Slightly better error handling. (CM now surpresses many followup |
48 |
|
error messages that tended to be more annoying than helpful.) |
49 |
|
|
50 |
|
2. Major changes to the compiler's static environment data structures. |
51 |
|
|
52 |
|
- no CMStaticEnv anymore. |
53 |
|
- no CMEnv, no "BareEnvironment" (actually, _only_ BareEnvironment, |
54 |
|
but it is called Environment), no conversions between different |
55 |
|
kinds of static environments |
56 |
|
|
57 |
|
- There is still a notion of a "modmap", but such modmaps are generated |
58 |
|
on demand at the time when they are needed. This sounds slow, but I |
59 |
|
sped up the code that generates modmaps enough for this not to lead to |
60 |
|
a slowdown of the compiler (at least I didn't detect any). |
61 |
|
|
62 |
|
- To facilitate rapid modmap generation, static environments now |
63 |
|
contain an (optional) "modtree" structure. Modtree annotations are |
64 |
|
constructed by the unpickler during unpickling. (This means that |
65 |
|
the elaborator does not have to worry about modtrees at all.) |
66 |
|
Modtrees have the advantage that they are compositional in the same |
67 |
|
way as the environment data structure itself is compositional. |
68 |
|
As a result, modtrees never hang on to parts of an environment that |
69 |
|
has already been rendered "stale" by filtering or rebinding. |
70 |
|
|
71 |
|
- I went through many, many trials and errors before arriving at the |
72 |
|
current solution. (The initial idea of "linkpaths" did not work.) |
73 |
|
But the result of all this is that I have touched a lot of files that |
74 |
|
depend on the "modules" and "types" data structures (most of the |
75 |
|
elaborator). There were a lot of changes during my "linkpath" trials |
76 |
|
that could have been reverted to their original state but weren't. |
77 |
|
Please, don't be too harsh on me for messing with this code a bit more |
78 |
|
than what was strictly necessary... (I _did_ resist the tempation |
79 |
|
of doing any "global reformatting" to avoid an untimely death at |
80 |
|
Dave's hands. :) |
81 |
|
|
82 |
|
- One positive aspect of the previous point: At least I made sure that |
83 |
|
all files that I touched now compile without warnings (other than |
84 |
|
"polyEqual"). |
85 |
|
|
86 |
|
- compiler now tends to run "leaner" (i.e., ties up less memory in |
87 |
|
redundant modmaps) |
88 |
|
|
89 |
|
---------------------------------------------------------------------- |
90 |
Name: Allen Leung |
Name: Allen Leung |
91 |
Date: 2000/03/29 18:00:00 |
Date: 2000/03/29 18:00:00 |
92 |
Tag: leunga-20000327-mlriscGen_hppa_alpha_x86 |
Tag: leunga-20000327-mlriscGen_hppa_alpha_x86 |