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

Legend:
Removed from v.1631  
changed lines
  Added in v.1718

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