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

Legend:
Removed from v.1619  
changed lines
  Added in v.1701

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