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 1629, Thu Sep 23 22:38:06 2004 UTC revision 1672, Thu Oct 28 15:44:02 2004 UTC
# Line 14  Line 14 
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/28 10:45:00 CDT
18    Tag: Release_110_50
19    Description:
20    
21    New working version (110.50).  NEW BOOTFILES!
22    
23                 =====================
24    
25    Also:
26    
27      - Changend config/srcarchiveurl from a file just
28        containing the URL string into a file containing
29        shell script code.  The code has access to the $VERSION variable.
30      - Made corresponding changes to config/install.sh and config/unpack.
31      - Default contents of config/srcarchiveurl uses $VERSION and
32        normally does not have to be edited to reflect a version change.
33    
34      (As a result, a version change can be done by just editing
35       config/version, the rest is now automatic.)
36    
37    ----------------------------------------------------------------------
38    Name: Matthias Blume (blume (at) tti - c (dot) org)
39    Date: 2004/10/27 17:50:00 CDT
40    Tag: blume-20041027-btrace-msg
41    Description:
42    
43    BackTrace.monitor now also reports the source of the exception that
44    triggered the trace.
45    
46    ----------------------------------------------------------------------
47    Name: Matthias Blume (blume (at) tti - c (dot) org)
48    Date: 2004/10/27 17:20:00 CDT
49    Tag: blume-20041027-x86-c-calls
50    Description:
51    
52    This is the HISTORY entry for two earlier commits, both concerning
53    the x86 c-calls code in MLRISC:
54    
55      - added a missing LOAD in the code that deals with struct arguments
56      - made sure the caller does not add the wrong number of bytes to the
57        stack pointer after a call of a function returning a struct
58        (the callee already pops the implicit argument which points to
59         the space reserved for the result)
60    
61    ----------------------------------------------------------------------
62    Name: Allen Leung (leunga (at) reservoir (dot) com)
63    Date: 2004/10/24 14:00:00 EST
64    Tag: leunga-20041024-x86-gas-fucomip
65    Description:
66    
67       John discovered a bug in the syntax of fucomip.
68       The opcodes FU?COMIP? have been changed to
69    
70           fu?comip? %st(i), %st
71    
72    ----------------------------------------------------------------------
73    Name: Matthias Blume (blume (at) tti - c (dot) org)
74    Date: 2004/10/20 15:06:00 CDT
75    Tag: blume-20041020-standalone-backtrace
76    Description:
77    
78    Added a mechanism for getting back-trace information from standalone
79    programs.  Here is how it works:
80    
81       1. The part of the program from which you want to get backtrace
82          information (usually the whole program) should be wrapped with
83          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
84          main program could be modified from something like
85    
86             fun main (pgm, args) = ...
87    
88         to
89    
90            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
91    
92       2. To be able to access BackTrace.monitor, you have to add
93          library $smlnj-tdp/plugins.cm to the .cm file that contains your
94          main function.
95    
96       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
97          CM might have created in the past for your project).
98    
99       4. Build the system using this command line:
100    
101             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
102                      myprog.cm MyProg.main myprog
103    
104          instead of the usual
105    
106             ml-build myprog.cm MyProg.main myprog
107    
108    I changed a library name:
109    
110       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
111    
112    New libraries:
113    
114       $smlnj-tdp/back-trace.cm
115          -- when loaded causes the back-trace plugin to be installed
116       $smlnj-tdp/coverage.cm
117          -- when loaded causes the coverage plugin to be installed
118    
119    ----------------------------------------------------------------------
120    Name: Matthias Blume (blume (at) tti - c (dot) org)
121    Date: 2004/10/18 16:45:00 CDT
122    Tag: blume-20041018-groupowner
123    Description:
124    
125    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
126    
127    Eliminated group owner specs from .cm files throughout the source tree.
128    
129    ----------------------------------------------------------------------
130    Name: Matthias Blume (blume (at) tti - c (dot) org)
131    Date: 2004/10/15 15:45:00 CDT
132    Tag: blume-20041015-coverage
133    Description:
134    
135    * Test coverage tool added!
136    * Further reorganization of tracing-, debugging-, and profiling support:
137    
138        - moved original BTImp -- now called BackTrace -- into a separate
139          library called $/trace-debug-profile.cm
140        - eliminated all mentions of BTrace from SMLofNJ.Internals
141        - only the instrumentation mechanism is now left in the compiler proper
142        - BackTrace module is a plugin which is NOT plugged in by default
143        - Coverage module is another such plugin
144    
145    To get the benefits of any of these plugin modules, the code in
146    question must be compiled with tdp instrumentation turned on.  This
147    can be done by setting SMLofNJ.Internals.TDP.mode to true.
148    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
149    
150    Plugins are selected at link time.  (Pre-compiled instrumented code
151    can be re-loaded with different plugins in effect.)  When an
152    instrumented module is linked, whatever plugins are at that time
153    enabled will come into effect for that module.
154    
155    To enable the back-trace plugin, load library $/trace-debug-profile.cm
156    and invoke BackTrace.install() (e.g., from the interactive prompt).
157    To enable the coverage plugin, load the same library and invoke
158    Coverage.install().
159    
160    Back-traces are generated automatically on uncaught exceptions and
161    when the code in question explicitly invokes BackTrace.trigger().
162    
163    Coverage (and execution frequency-) information must be queried
164    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
165    
166    ----------------------------------------------------------------------
167    Name: Matthias Blume (blume (at) tti - c (dot) org)
168    Date: 2004/10/14 17:40:00 CDT
169    Tag: blume-20041014-tdp-core
170    Description:
171    
172    Snapshot of a significant overhaul of how the trace/debug/profile support
173    is hooked into the system (specifically: Core and SMLofNJ.Internals).
174    
175    ----------------------------------------------------------------------
176    Name: Matthias Blume (blume (at) tti - c (dot) org)
177    Date: 2004/10/13 16:34:00 CDT
178    Tag: blume-20041013-tdp
179    Description:
180    
181    Some rationalization of names:
182    
183       structure BTrace -> structure TDPInstrument
184       etc.
185    
186    This is is preparation of using the original back-trace
187    instrumentation for other purposes.  "TDP" stands for
188    Trace/Debug/Profile.
189    
190    The control flag controlling whether instrumentation is on or off is now
191    registered under a different name, so instead of running sml as
192    
193     sml -Cinstrument.btrace-mode=true
194    
195    one has to say
196    
197     sml -Ctdp.instrument=true
198    
199    ----------------------------------------------------------------------
200    Name: Matthias Blume (blume (at) tti - c (dot) org)
201    Date: 2004/10/11 16:37:00 CDT
202    Tag: blume-20041011-regions
203    Description:
204    
205    Made some minor modifications to elabcore.sml to have source regions
206    be propagated more tightly -- resulting in better (i.e., smaller)
207    regions being reported in error- and debug messages.
208    
209    ----------------------------------------------------------------------
210    Name: Matthias Blume (blume (at) tti - c (dot) org)
211    Date: 2004/10/08 22:50:00 CDT
212    Tag: blume-20041008-cmkw
213    Description:
214    
215    Fixed handling of keywords in .cm files: After seeing "is" the lexer
216    treats subsequent occurrences of "group", "library", "source", "is",
217    "*", and "-" as ordinary identifiers rather than keywords.
218    
219    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
220    is supposed to accept a tool argument called "source", but this did
221    not work because of the clash with the keyword.
222    
223    ----------------------------------------------------------------------
224    Name: Matthias Blume (blume (at) tti - c (dot) org)
225    Date: 2004/10/07 16:00:00 CDT
226    Tag: blume-20041007-cleanup
227    Description:
228    
229    Assorted cleanup work:
230    
231      - got rid of intstrmap in favor of using the library's
232        hash table implementation
233      - threw out most of the pathnames stuff, as it was not used anyway
234      - simplified tokentable implementation
235      - fixed some minor spelling errors
236    
237    ----------------------------------------------------------------------
238    Name: Matthias Blume (blume (at) tti - c (dot) org)
239    Date: 2004/10/06 15:15:15 CDT
240    Tag: blume-20041006-handler
241    Description:
242    
243    Cleaned up the absyn to reflect the invariant that HANDLE always
244    carries a FNexp as part of the type definition.  This eliminates some
245    superfluous sanity checks at runtime down the road.
246    
247    Some minor cleanup of the btrace code.
248    
249    ----------------------------------------------------------------------
250    Name: Matthias Blume (blume (at) tti - c (dot) org)
251    Date: 2004/10/01 10:20:30 CDT
252    Tag: blume-20041001-slave
253    Description:
254    
255    Added hack to make slave mode work in the presence of the version
256    tool.  (Still, since the master does two passes over the code for
257    CMB.make, the release number gets bumped twice when slaves are
258    attached.  I don't know if this is worth fixing...)
259    
260    ----------------------------------------------------------------------
261    Name: Matthias Blume (blume (at) tti - c (dot) org)
262    Date: 2004/09/30 10:55:00 CDT
263    Tag: blume-20040930-version
264    Description:
265    
266    * Moved the "version" magic into its own little library under
267      src/system/smlnj/internal.  This avoids expensive reconstruction of
268      a stable src/compiler/core.cm.
269    
270    * At the same time, structure CompilerVersion is now known as
271      structure SMLNJVersion.
272    
273    * Arranged for the version tool to NOT kick in when rebuilding the system
274      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
275      Also, loading the versiontool does not work when rebuilding the system
276      because CM is not properly initialized at that time.
277    
278    ----------------------------------------------------------------------
279    Name: Matthias Blume (blume (at) tti - c (dot) org)
280    Date: 2004/09/29 14:00:00 CDT
281    Tag: blume-20040929-autoversion
282    Description:
283    
284    Implemented some CM magic to have
285        file src/compiler/TopLevel/main/version.sml
286    generated automagically.
287    The version is taken from two files: config/version and config/release.
288    The first is expected to contain a two-part version number such as 110.49.
289    The second should contain a single number, but it may be missing.
290    
291    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
292    time the version tool is loaded (which is the first time you say CMB.make),
293    then the tool will increment the value stored in config/release every
294    time CMB.make is invoked.
295    
296    The binfile format is now insensitive to anything beyond the first
297    two components of a version number, so bumping the release does not render
298    binfiles incompatible.  Auto-bumping can be used to keep track of versions
299    during development without invalidating existing binfiles.
300    
301    In any case, every CMB.make updates the date information in version.sml.
302    (This is the date that is printed in the banner.)
303    
304    ----------------------------------------------------------------------
305    Name: Matthias Blume (blume (at) tti - c (dot) org)
306    Date: 2004/09/28 10:53:00 CDT
307    Tag: blume-20040928-controls
308    Description:
309    
310    Some cleanup of the controls code.
311    
312    ----------------------------------------------------------------------
313    Name: Matthias Blume (blume (at) tti - c (dot) org)
314    Date: 2004/09/27 22:08:00 CDT
315    Tag: blume-20040927-controls
316    Description:
317    
318    Added two pieces of functionality to the Controls interface:
319    
320    1.   val save'restore: 'a control -> unit -> unit
321    
322       grabs the current value of the control in stage 1 and restores it
323       in stage 2.
324    
325    2.   val set' : 'a control * 'a -> unit -> unit
326    
327       stores the given value into the control in stage 2 (i.e., delayed)
328       but does all error checking in stage 1.
329       (This is for string controls that need to do parse their argument --
330        something that might fail.  In some cases, notably in CM, one
331        already knows the intended argument but wants to delay the actual
332        assignment until a time when error recovery would be more difficult.)
333    
334    Changed the handling of controls in tool arguments to classes "sml" and
335    "lazysml":
336       - use Controls.save'restore as a more robust way of restoring the
337         old value (in particular: without having to re-parse the string)
338       - use controls to handle the "overload" keyword in the init group
339         (I believe this change actually fixes a long-standing obscure bug.)
340    
341    ----------------------------------------------------------------------
342    Name: Matthias Blume (blume (at) tti - c (dot) org)
343    Date: 2004/09/27 17:00:00 CDT
344    Tag: blume-20040927-lazysml
345    Description:
346    
347    Added a new tool class called "lazysml" to CM's tool chest.  The only
348    difference to "sml" is that compilation is done with Control.lazysml
349    set to true.  A source of class "lazysml" is automatically recognized
350    by a file name suffix of ".lml".
351    
352    In addition to the above feature, the original class "sml" now also
353    supports a tool argument "lazy" which has the same effect.  As a
354    result, the following three lines are equivalent:
355    
356        foo.sml : lazysml
357        foo.sml : sml (lazy)
358        foo.sml (lazy)
359    
360    The setting goes into effect both during parsing and during
361    compilation.  The original setting is restored right after parsing and
362    after compilation, respectively.
363    
364    In addition to all the above, there is also a general mechanism to set
365    ANY of the "controls" that are available at the command line via
366    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
367    apply as well. (In fact, "lazy" is implemented as a special case of
368    the general mechanism.)
369    
370    The .cm file syntax uses a new keyword tool argument called "with".
371    There are several ways of indicating the desired settings:
372    
373        foo.sml (with:parser.quotations=true)
374        foo.sml (with:(name:parser.quotations value:true))
375        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
376        foo.sml (with:(name1=value1 name2=value2 ...))
377        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
378    
379        etc.
380    
381    Another possible abbreviation is to leave out the =v or value:v part
382    if the name refers to a boolean control (in which case the value is
383    taken to be true).  Thus, one could get lazy sml also by saying:
384    
385        foo.sml (with:parser.lazy-keyword=true)
386        foo.sml (with:parser.lazy-keyword)
387        foo.sml (with:(name:parser.lazy-keyword value:true))
388        foo.sml (with:(name:parser.lazy-keyword))
389    
390    ----------------------------------------------------------------------
391    Name: Matthias Blume (blume (at) tti - c (dot) org)
392    Date: 2004/09/24 16:22:00 CDT
393    Tag: blume-20040924-ppc-long-branch
394    Description:
395    
396    Turned message about "emiting long form of branch" off by default.
397    Added a control flag to turn it back on when desired.
398    
399    ----------------------------------------------------------------------
400    Name: Matthias Blume (blume (at) tti - c (dot) org)
401    Date: 2004/09/24 16:05:00 CDT
402    Tag: blume-20040924-rounding
403    Description:
404    
405    Applied patch for setting rounding modes under Mac OS X.  Thanks to
406    Melissa O'Neill for providing the code!
407    
408    ----------------------------------------------------------------------
409    Name: Matthias Blume (blume (at) tti - c (dot) org)
410  Date: 2004/09/23 17:30:00 CDT  Date: 2004/09/23 17:30:00 CDT
411  Tag: blume-20040923-envvars  Tag: blume-20040923-envvars
412  Description:  Description:

Legend:
Removed from v.1629  
changed lines
  Added in v.1672

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