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

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

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