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/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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

Legend:
Removed from v.1613  
changed lines
  Added in v.1668

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