14 |
|
|
15 |
---------------------------------------------------------------------- |
---------------------------------------------------------------------- |
16 |
Name: Matthias Blume (blume (at) tti - c (dot) org) |
Name: Matthias Blume (blume (at) tti - c (dot) org) |
17 |
|
Date: 2004/10/08 22:50:00 CDT |
18 |
|
Tag: blume-20041008-cmkw |
19 |
|
Description: |
20 |
|
|
21 |
|
Fixed handling of keywords in .cm files: After seeing "is" the lexer |
22 |
|
treats subsequent occurrences of "group", "library", "source", "is", |
23 |
|
"*", and "-" as ordinary identifiers rather than keywords. |
24 |
|
|
25 |
|
Most seriously, this fixes a problem with CM's "shell" tool. The tool |
26 |
|
is supposed to accept a tool argument called "source", but this did |
27 |
|
not work because of the clash with the keyword. |
28 |
|
|
29 |
|
---------------------------------------------------------------------- |
30 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
31 |
|
Date: 2004/10/07 16:00:00 CDT |
32 |
|
Tag: blume-20041007-cleanup |
33 |
|
Description: |
34 |
|
|
35 |
|
Assorted cleanup work: |
36 |
|
|
37 |
|
- got rid of intstrmap in favor of using the library's |
38 |
|
hash table implementation |
39 |
|
- threw out most of the pathnames stuff, as it was not used anyway |
40 |
|
- simplified tokentable implementation |
41 |
|
- fixed some minor spelling errors |
42 |
|
|
43 |
|
---------------------------------------------------------------------- |
44 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
45 |
|
Date: 2004/10/06 15:15:15 CDT |
46 |
|
Tag: blume-20041006-handler |
47 |
|
Description: |
48 |
|
|
49 |
|
Cleaned up the absyn to reflect the invariant that HANDLE always |
50 |
|
carries a FNexp as part of the type definition. This eliminates some |
51 |
|
superfluous sanity checks at runtime down the road. |
52 |
|
|
53 |
|
Some minor cleanup of the btrace code. |
54 |
|
|
55 |
|
---------------------------------------------------------------------- |
56 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
57 |
|
Date: 2004/10/01 10:20:30 CDT |
58 |
|
Tag: blume-20041001-slave |
59 |
|
Description: |
60 |
|
|
61 |
|
Added hack to make slave mode work in the presence of the version |
62 |
|
tool. (Still, since the master does two passes over the code for |
63 |
|
CMB.make, the release number gets bumped twice when slaves are |
64 |
|
attached. I don't know if this is worth fixing...) |
65 |
|
|
66 |
|
---------------------------------------------------------------------- |
67 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
68 |
|
Date: 2004/09/30 10:55:00 CDT |
69 |
|
Tag: blume-20040930-version |
70 |
|
Description: |
71 |
|
|
72 |
|
* Moved the "version" magic into its own little library under |
73 |
|
src/system/smlnj/internal. This avoids expensive reconstruction |
74 |
|
of a stable src/compiler/core.cm. |
75 |
|
|
76 |
|
* At the same time, structure CompilerVersion is now known as structure |
77 |
|
SMLNJVersion. |
78 |
|
|
79 |
|
* Arranged for the version tool to NOT kick in when rebuilding the system |
80 |
|
(makeml -rebuild, fixpt). Otherwise one would never reach a fixpoint. |
81 |
|
Also, loading the versiontool does not work when rebuilding the system |
82 |
|
because CM is not properly initialized at that time. |
83 |
|
|
84 |
|
---------------------------------------------------------------------- |
85 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
86 |
|
Date: 2004/09/29 14:00:00 CDT |
87 |
|
Tag: blume-20040929-autoversion |
88 |
|
Description: |
89 |
|
|
90 |
|
Implemented some CM magic to have |
91 |
|
file src/compiler/TopLevel/main/version.sml |
92 |
|
generated automagically. |
93 |
|
The version is taken from two files: config/version and config/release. |
94 |
|
The first is expected to contain a two-part version number such as 110.49. |
95 |
|
The second should contain a single number, but it may be missing. |
96 |
|
|
97 |
|
If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the |
98 |
|
time the version tool is loaded (which is the first time you say CMB.make), |
99 |
|
then the tool will increment the value stored in config/release every |
100 |
|
time CMB.make is invoked. |
101 |
|
|
102 |
|
The binfile format is now insensitive to anything beyond the first |
103 |
|
two components of a version number, so bumping the release does not render |
104 |
|
binfiles incompatible. Auto-bumping can be used to keep track of versions |
105 |
|
during development without invalidating existing binfiles. |
106 |
|
|
107 |
|
In any case, every CMB.make updates the date information in version.sml. |
108 |
|
(This is the date that is printed in the banner.) |
109 |
|
|
110 |
|
---------------------------------------------------------------------- |
111 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
112 |
|
Date: 2004/09/28 10:53:00 CDT |
113 |
|
Tag: blume-20040928-controls |
114 |
|
Description: |
115 |
|
|
116 |
|
Some cleanup of the controls code. |
117 |
|
|
118 |
|
---------------------------------------------------------------------- |
119 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
120 |
|
Date: 2004/09/27 22:08:00 CDT |
121 |
|
Tag: blume-20040927-controls |
122 |
|
Description: |
123 |
|
|
124 |
|
Added two pieces of functionality to the Controls interface: |
125 |
|
|
126 |
|
1. val save'restore: 'a control -> unit -> unit |
127 |
|
|
128 |
|
grabs the current value of the control in stage 1 and restores it |
129 |
|
in stage 2. |
130 |
|
|
131 |
|
2. val set' : 'a control * 'a -> unit -> unit |
132 |
|
|
133 |
|
stores the given value into the control in stage 2 (i.e., delayed) |
134 |
|
but does all error checking in stage 1. |
135 |
|
(This is for string controls that need to do parse their argument -- |
136 |
|
something that might fail. In some cases, notably in CM, one |
137 |
|
already knows the intended argument but wants to delay the actual |
138 |
|
assignment until a time when error recovery would be more difficult.) |
139 |
|
|
140 |
|
Changed the handling of controls in tool arguments to classes "sml" and |
141 |
|
"lazysml": |
142 |
|
- use Controls.save'restore as a more robust way of restoring the |
143 |
|
old value (in particular: without having to re-parse the string) |
144 |
|
- use controls to handle the "overload" keyword in the init group |
145 |
|
(I believe this change actually fixes a long-standing obscure bug.) |
146 |
|
|
147 |
|
---------------------------------------------------------------------- |
148 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
149 |
|
Date: 2004/09/27 17:00:00 CDT |
150 |
|
Tag: blume-20040927-lazysml |
151 |
|
Description: |
152 |
|
|
153 |
|
Added a new tool class called "lazysml" to CM's tool chest. The only |
154 |
|
difference to "sml" is that compilation is done with Control.lazysml |
155 |
|
set to true. A source of class "lazysml" is automatically recognized |
156 |
|
by a file name suffix of ".lml". |
157 |
|
|
158 |
|
In addition to the above feature, the original class "sml" now also |
159 |
|
supports a tool argument "lazy" which has the same effect. As a |
160 |
|
result, the following three lines are equivalent: |
161 |
|
|
162 |
|
foo.sml : lazysml |
163 |
|
foo.sml : sml (lazy) |
164 |
|
foo.sml (lazy) |
165 |
|
|
166 |
|
The setting goes into effect both during parsing and during |
167 |
|
compilation. The original setting is restored right after parsing and |
168 |
|
after compilation, respectively. |
169 |
|
|
170 |
|
In addition to all the above, there is also a general mechanism to set |
171 |
|
ANY of the "controls" that are available at the command line via |
172 |
|
"-C..." on a per-sml-file basis. The same rules that apply for "lazy" |
173 |
|
apply as well. (In fact, "lazy" is implemented as a special case of |
174 |
|
the general mechanism.) |
175 |
|
|
176 |
|
The .cm file syntax uses a new keyword tool argument called "with". |
177 |
|
There are several ways of indicating the desired settings: |
178 |
|
|
179 |
|
foo.sml (with:parser.quotations=true) |
180 |
|
foo.sml (with:(name:parser.quotations value:true)) |
181 |
|
foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...)) |
182 |
|
foo.sml (with:(name1=value1 name2=value2 ...)) |
183 |
|
foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...)) |
184 |
|
|
185 |
|
etc. |
186 |
|
|
187 |
|
Another possible abbreviation is to leave out the =v or value:v part |
188 |
|
if the name refers to a boolean control (in which case the value is |
189 |
|
taken to be true). Thus, one could get lazy sml also by saying: |
190 |
|
|
191 |
|
foo.sml (with:parser.lazy-keyword=true) |
192 |
|
foo.sml (with:parser.lazy-keyword) |
193 |
|
foo.sml (with:(name:parser.lazy-keyword value:true)) |
194 |
|
foo.sml (with:(name:parser.lazy-keyword)) |
195 |
|
|
196 |
|
---------------------------------------------------------------------- |
197 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
198 |
|
Date: 2004/09/24 16:22:00 CDT |
199 |
|
Tag: blume-20040924-ppc-long-branch |
200 |
|
Description: |
201 |
|
|
202 |
|
Turned message about "emiting long form of branch" off by default. |
203 |
|
Added a control flag to turn it back on when desired. |
204 |
|
|
205 |
|
---------------------------------------------------------------------- |
206 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
207 |
|
Date: 2004/09/24 16:05:00 CDT |
208 |
|
Tag: blume-20040924-rounding |
209 |
|
Description: |
210 |
|
|
211 |
|
Applied patch for setting rounding modes under Mac OS X. Thanks to |
212 |
|
Melissa O'Neill for providing the code! |
213 |
|
|
214 |
|
---------------------------------------------------------------------- |
215 |
|
Name: Matthias Blume (blume (at) tti - c (dot) org) |
216 |
Date: 2004/09/23 17:30:00 CDT |
Date: 2004/09/23 17:30:00 CDT |
217 |
Tag: blume-20040923-envvars |
Tag: blume-20040923-envvars |
218 |
Description: |
Description: |