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

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

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