Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

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

sml/trunk/HISTORY revision 1613, Wed Aug 11 03:35:58 2004 UTC sml/trunk/NOTES/HISTORY revision 2613, Fri May 25 03:04:20 2007 UTC
# Line 1  Line 1 
1  This is the HISTORY file for the Yale SML/NJ CVS repository.  This is the HISTORY file for the SML/NJ repository.
2    
3  An entry should be made for _every_ commit to the repository.  An entry should be made for _every_ commit to the repository.
4  The entries in this file will be used when creating the README  The entries in this file will be used when creating the README
# Line 7  Line 7 
7    
8  The form of an entry should be:  The form of an entry should be:
9    
10  Name:  
11    Name: Your Name (web page or e-mail)
12    Date: yyyy/mm/dd hh:mm:ss
13    Tag: cvs-tag-for-this-change
14    Description:
15    
16    ----------------------------------------------------------------------
17    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
18    Date: 2007/05/23
19    Description:
20    
21    Fixed Bug 1416 (problems with Date.fmt and yday).
22    
23    ----------------------------------------------------------------------
24    Name: Matthias Blume (http://www.tti-c.org/blume/)
25    Date: 2007/05/23 22:30:00 CDT
26    Description:
27    
28    CMB (and CM) now automatically defines the CM "preprocessor" symbol
29    NO_PLUGINS during "makeml -rebuild" or when CM operates in "slave" mode.
30    
31      (In addition, CMB_REBUILD_MODE is defined for makeml -rebuild,
32       CM_SLAVE_MODE is defined in attached slaves while running CM.make
33       or CM.rebuild, and CMB_SLAVE_MODE is defined in attached slaves
34       while running CMB.make.  The point is that the single symbol
35       NO_PLUGINS is definde in all three cases.)
36    
37    I changed the three locations within the sources that get compiled
38    during CMB.make where ml-yacc or ml-lex input is processed: When
39    NO_PLUGINS defined, then the use of the mlyacc and mllex tools
40    is bypassed.
41    
42    When bootstrapping new versions of the compiler, there can be
43    situations where the plugin tools for ml-yacc and ml-lex (or ml-ulex)
44    are not available or otherwise not operational.  In this case one can
45    manually define the NO_PLUGINS symbol prior to running CMB.make().  To
46    do so, the following command should be issued at the interactive
47    prompt:
48    
49       #set (CMB.symval "NO_PLUGINS") (SOME 1);
50    
51    A CMB.make with NO_PLUGINS defined relies on the existence of the
52    files that normally would be generated by ml-yacc and ml-lex.
53    (Copies of these files are in the repository.)
54    
55    ----------------------------------------------------------------------
56    Name: David MacQueen (dbm@cs.uchicago.edu)
57    Date: 2007/5/23 17:23:00 CDT
58    Revision: 2603
59    Description:
60    
61    2nd merge of base from primop-branch-3 into the trunk.
62    Additional bug fixes included:
63     Date.scan and Date.fromString fixed;
64     Overloading resolution fixed and some type printing problems corrected.
65    
66    ----------------------------------------------------------------------
67    Name: Matthias Blume (http://www.tti-c.org/blume/)
68    Date: 2007/05/23 09:50:00 CDT
69    Description:
70    
71    Changed the installation mechanism for CM tool plugins.  These are
72    just libaries and now get installed like ordinary libaries.
73    
74    There are now a number of new installation targets that give some
75    fine-grain control over what classes and suffixes are known, and what
76    they will map to.
77    See config/targets for details.
78    
79    The code that caused plugin installation as part of running a
80    tool's "build" script has been removed.  (The build script is for
81    building, not for installing.)
82    
83    ----------------------------------------------------------------------
84    Name: Matthias Blume (http://www.tti-c.org/blume/)
85    Date: 2007/05/22 11:50:00 CDT
86    Description:
87    
88    Added a boolean control named cm.tolerate-tool-failures (env. variable
89    name: CM_TOLERATE_TOOL_FAILURES).  The default is false and makes
90    CM fail if a shell tool reports a non-success exit status.  If
91    the control is set to true, then CM will press on after tool failures
92    in the event that the target files exist (even though they are
93    considered outdated).  Turning the control to true can be useful for
94    bootstrapping.
95    
96    ----------------------------------------------------------------------
97    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
98    Date: 2007/05/19
99    Description:
100    
101    Merge of ml-lpt revisions for 110.64.
102    
103    The name of several ml-lpt-lib modules has changed:
104      Repair        => AntlrRepair
105      StreamPos     => AntlrStreamPos
106      ErrHandlerFn  => AntlrErrHandler
107      EBNF          => AntlrEBNF
108    
109    The ml-antlr specification format has changed: declarations such as
110    %tokens and nonterminal definitions can occur *multiple* times in the
111    same specification.  The semantics are such that each new declaration
112    extends the previous ones.  This does not apply to %start or %name,
113    of course.
114    
115    Importing a grammar via %import now includes *all* declarations in from
116    the imported grammar, except for %name, %entry, and %start.  Tokens
117    and nonterminals can be dropped using the new %dropping clause of the
118    %import directive; the separate %drop and %extend have been removed.
119    
120    We now allow optional type annotations on nonterminals, using the %nonterms
121    directive as in ml-yacc.
122    
123    The refcell construct is now implemented using SML's regular reference
124    cells, so the :== and !! notation has been deprecated.
125    
126    The ml-antlr tool now does much more checking of specifications, and
127    its error messages have been greatly improved.  Error repair for
128    generated parsers has been completely rewritten, and is now both
129    much faster and more accurate.
130    
131    ml-ulex is now more lenient with escape codes (non-SML-standard
132    escape codes are now interpreted literally, so e.g. \| denotes "|").
133    Also, character classes may now include a "-" character at the beginning
134    as is standard in most other regexp tools.
135    
136    All of these changes are documented in the user guide, which has
137    been updated and improved with this merge.
138    
139    ----------------------------------------------------------------------
140    Name: David MacQueen (http://www.cs.uchicago.edu/~jhr)
141    Date: 2007/05/03
142    Revision: r2492
143    Description:
144    
145    Merge of the primop3 branch (base) into the trunk to create 110.63.1.
146    Significant changes in FLINT and the front end, mostly having to do
147    with a reorganized system for handling primops.  Various bug fixes
148    and improvements in printing signatures.
149    
150    ----------------------------------------------------------------------
151    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
152    Date: 2007/05/02
153    Description:
154    
155    Preliminary commit of large ml-lpt revisions (more to come for 110.64).
156    The ml-antlr specification format has changed: declarations such as
157    %tokens and nonterminal definitions can occur *multiple* times in the
158    same specification.  The semantics are such that each new declaration
159    extends the previous ones.  Grammar extension constructs have also
160    changed.  We now allow type annotations on nonterminals.  Finally,
161    the refcell construct is now implemented using SML's regular reference
162    cells, so the :== and !! notation has been deprecated.  All of these
163    changes will appear in the 110.64 user guide for ml-lpt.
164    
165    The ml-antlr tool now does much more checking of specifications, and
166    its error messages have been greatly improved.  There has also been
167    some work on the error repair process for generated parsers, but this
168    will be further improved in 110.64.
169    
170    ----------------------------------------------------------------------
171    Name: David MacQueen (http://www.cs.uchicago.edu/~jhr)
172    Date: 2007/05/03
173    Revision: r2492
174    Description:
175    
176    Merge of the primop3 branch (base) into the trunk to create 110.63.1.
177    Significant changes in FLINT and the front end, mostly having to do
178    with a reorganized system for handling primops.  Various bug fixes
179    and improvements in printing signatures.
180    
181    ----------------------------------------------------------------------
182    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
183    Date: 2007/05/02
184    Description:
185    
186    Preliminary commit of large ml-lpt revisions (more to come for 110.64).
187    The ml-antlr specification format has changed: declarations such as
188    %tokens and nonterminal definitions can occur *multiple* times in the
189    same specification.  The semantics are such that each new declaration
190    extends the previous ones.  Grammar extension constructs have also
191    changed.  We now allow type annotations on nonterminals.  Finally,
192    the refcell construct is now implemented using SML's regular reference
193    cells, so the :== and !! notation has been deprecated.  All of these
194    changes will appear in the 110.64 user guide for ml-lpt.
195    
196    The ml-antlr tool now does much more checking of specifications, and
197    its error messages have been greatly improved.  There has also been
198    some work on the error repair process for generated parsers, but this
199    will be further improved in 110.64.
200    
201    ----------------------------------------------------------------------
202    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
203    Date: 2007/04/24
204    Description:
205    
206    More Basis fixes: The Char.fromString (etc.) functions did not handle
207    the "\uxxxx" escape sequence.  There is still an outstanding bug with
208    String.fromString the tail is a format escape.  I added a comment to
209    this effect in Basis/Implementation/string.sml.
210    Thanks to Andreas Rossberg.
211    
212    ----------------------------------------------------------------------
213    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
214    Date: 2007/04/24
215    Description:
216    
217    Added next function to Fifo and Queue modules in the SML/NJ Library.
218    
219    ----------------------------------------------------------------------
220    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
221    Date: 2007/04/23
222    Description:
223    
224    More Basis fixes: Time.fmt dropped the leading "~" for negative time
225    values that had no whole part.
226    
227    ----------------------------------------------------------------------
228    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
229    Date: 2007/04/23
230    Description:
231    
232    More Basis fixes: the OS.Path module did not include the InvalidArc
233    exception and did not do sufficient argument checking.
234    Thanks to Stephen Weeks and Adam Chilpala.
235    
236    ----------------------------------------------------------------------
237    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
238    Date: 2007/04/16
239    Description:
240    
241    Fixed an unbound functor bug in the AMD64 CM file.
242    
243    ----------------------------------------------------------------------
244    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
245    Date: 2007/04/12
246    Description:
247    
248    Substantially changed the signature and implementation of AMD64
249    SVID.  It now looks similar to the ia32 SVID, yet uses staged
250    allocation.
251    
252    ----------------------------------------------------------------------
253    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
254    Date: 2007/04/07
255    Description:
256    
257    More Basis fixes: the WORD signature was missing {to,from}Large.
258    Thanks to Andreas Rossberg.
259    
260    ----------------------------------------------------------------------
261    Name: Matthias Blume (http://www.tti-c.org/blume/)
262    Date: 2007/03/22 16:07:00 CDT
263    Tag: release-110.63
264    Description:
265    
266    Bumped version number to 110.63.
267    
268       !!!NEW BOOTFILES!!!
269    
270    ----------------------------------------------------------------------
271    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
272    Date: 2007/03/19
273    Description:
274    
275    Fixed bogus operand sizes in AMD64 instruction spilling.
276    
277    ----------------------------------------------------------------------
278    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
279    Date: 2007/03/19
280    Description:
281    
282    Fixed a number of inconsistencies between the Posix.TTY structure
283    and the Basis specification.  Thanks to Adam Chilpala.
284    
285    ----------------------------------------------------------------------
286    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
287    Date: 2007/02/26
288    Description:
289    
290    Added preliminary support in MLRISC for Staged Allocation, a technique
291    for specifying calling conventions (see
292    http://www.eecs.harvard.edu/~nr/pubs/staged-abstract.html).
293    Initially, we plan to use this code to generate C calls for the AMD64.
294    
295    The staged allocation code base resides in MLRISC/staged-allocation,
296    and specialized calling conventions go in MLRISC/ARCH/staged-allocation.
297    
298    ----------------------------------------------------------------------
299    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
300    Date: 2007/02/20
301    Description:
302    
303      Bug fix: when SaveCState was called with two values to save, a subsequent
304      GC could cause the RestoreCState to fail because the saved state had been
305      promoted to tagless pair.
306    
307    ----------------------------------------------------------------------
308    Name: Allen Leung (leunga (at) reservoir (dot) com)
309    Date: 2007/02/20 19:08:00 EST
310    Description:
311    
312        Bug triggered by:
313    
314        val a1 = Word8Array.array(a1, 0w0);
315        val _  = Word8Array.update(a1, 0, 0w128);
316    
317        x86MCEmitter crashed when the immediate operand to MOVB was outside
318    of the range -128 ... 127.  I've changed the code so that the range
319    check is disabled.   Only the low order 8 bits of the immediate operand
320    are now significant.
321    
322    
323    ----------------------------------------------------------------------
324    Name: Matthias Blume (http://www.tti-c.org/blume/)
325    Date: 2007/02/15 09:20:00 CST
326    Description:
327    
328    Eliminated any mention of lexgen.  (Lexgen was an early precursor
329    to ml-ulex.)
330    
331    You should update your admin directory, so the shell scripts for
332    maintaining your local copy of the repository reflect this change.
333    
334    ----------------------------------------------------------------------
335    Name: Matthias Blume (http://www.tti-c.org/blume/)
336    Date: 2007/02/14 15:45:00 CST
337    Description:
338    
339    Fixed bug in CM's parallel make facility that failed to have
340    the master re-link modules after letting slaves compile them.
341    
342    ----------------------------------------------------------------------
343    Name: Matthias Blume (http://www.tti-c.org/blume/)
344    Date: 2007/02/12 15:10:00 CST
345    Description:
346    
347    Fixed typo in ml-build script that prevented library anchors
348    from being registered.
349    
350    ----------------------------------------------------------------------
351    Name: Matthias Blume (http://www.tti-c.org/blume/)
352    Date: 2007/02/02 15:20:00 CST
353    Tag: release-110.62
354    Description:
355    
356    New working release (110.62).  NEW BOOTFILES!
357    
358    ----------------------------------------------------------------------
359    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
360    Date: 2007/01/31
361    Description:
362    
363    Brought ml-lpt manual up-to-date with the code.  Many minor
364    improvements to the tools, and a few minor bugfixes.  Prepared
365    ml-lpt-lib for integration with new UTF8 structure.  Changed
366    the interface for creating streams in ml-ulex (we now support
367    stream creation from several kinds of sources).  Overall, the
368    tools are now quite stable, and their interfaces are unlikely to
369    change in a way that would break compatibility.  More work,
370    however, is needed in the documentation.
371    
372    ----------------------------------------------------------------------
373    Name: Matthias Blume (http://www.tti-c.org/blume/)
374    Date: 2007/02/01 10:05:00 CST
375    Description:
376    
377    Implemented library installer.  Moved CM plugin code for
378    ml-burg, ml-lex, and ml-yacc out of CM source tree and into
379    their respective trees.  Implemented CM plugin for ml-ulex
380    and ml-antlr.  Used library installer for ml-burg, ml-ulex,
381    and ml-antlr.
382    
383    For ml-yacc and ml-lex we continue to have permanently "plugged-in"
384    CM tools.  (It turns out to be too messy to do otherwise because
385    there is too much code that during installation relies on the presence
386    of these tools -- resulting in a tricky ordering problem.)
387    
388    ----------------------------------------------------------------------
389    Name: Matthias Blume (http://www.tti-c.org/blume/)
390    Date: 2007/01/30 11:05:00 CST
391    Description:
392    
393    Added SMLofNJ.shiftArgs which is like a shell's "shift" command.
394    Modified CM's startup code to use shiftArgs as it processes
395    command line arguments.  This way, the init code in each .sml-file
396    or library that is mentioned at the top level will see only
397    those arguments that have not yet been processed at this point.
398    In other words, the init code can "seize control" and process the
399    remaining command line.
400    
401    ----------------------------------------------------------------------
402    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
403    Date: 2007/01/30
404    Description:
405    
406    Added fromList function to the ORD_SET interface and lookup to the
407    ORD_MAP interface.  See the SML/NJ Library CHANGES file for details.
408    
409    ----------------------------------------------------------------------
410    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
411    Date: 2007/01/28
412    Description:
413    
414    Added the UTF8 structure and signature from the Moby compiler to
415    the SML/NJ library (and the CML library).  These modules will replace
416    the version in the ml-lpt-lib.
417    
418    ----------------------------------------------------------------------
419    Name: Matthias Blume (http://www.tti-c.org/blume/)
420    Date: 2007/01/26 15:10:00 CST
421    Description:
422    
423    Added entries to handle ml-lpt-lib.cm in installer.
424    
425    ----------------------------------------------------------------------
426    Name: Matthias Blume (http://www.tti-c.org/blume/)
427    Date: 2006/12/15 11:10:00 CST
428    Tag: release-110.61
429    Description:
430    
431    New working release (110.61).  NEW BOOTFILES!
432    
433    This supersedes the pre-brown-paper-bug release (see below).
434    
435    ----------------------------------------------------------------------
436    Name: Matthias Blume (http://www.tti-c.org/blume/)
437    Date: 2006/12/15 11:00:00 CST
438    Description:
439    
440    Fixed brown-paper-bag bug with CM's pathname handling, which made
441    installation fail under Win32.
442    
443    ----------------------------------------------------------------------
444    Name: Matthias Blume (http://www.tti-c.org/blume/)
445    Date: 2006/12/14 12:00:00 CST
446    Description:
447    
448    Obsolete!
449    
450    [New working release (110.61).  NEW BOOTFILES!]
451    
452    ----------------------------------------------------------------------
453    Name: John Reppy (http://cs.uchicago.edu/~jhr)
454    Date: 2006/14/06 09:50:00 CST
455    Description:
456    
457    Fixed the code in runtime/c-libs/posix-tty/{tcgetattr,tcsetattr}.c to
458    get the c_cc termios data copied correctly.  Also moved the allocation
459    of the string to avoid problems if it caused a GC.
460    
461    Thanks to Timothy Bourke for the bug report and fix.
462    
463    ----------------------------------------------------------------------
464    Name: Matthias Blume (http://www.tti-c.org/blume)
465    Date: 2006/12/08 09:50:00 CST
466    Description:
467    
468    Added code to CM's "standard shell tool" implementation which
469    causes it to tolerate (with a warning) the situation where the shell
470    command fails (e.g., due to the shell command's non-existence)
471    as long as all target files exist.
472    
473    This makes it possible to, e.g., build ml-yacc from sources even if
474    svn checkout messed up the time stamps on files in such a way that
475    yacc.grm is younger than yacc.grm.sml or yacc.grm.sig.  (Ml-yacc would
476    be needed to re-process yacc.grm, but obviously it might not yet be
477    available at that time.)
478    
479    ----------------------------------------------------------------------
480    Name: John Reppy (http://cs.uchicago.edu/~jhr)
481    Date: 2006/12/06 12:06:00 CST
482    Description:
483    
484    Fixed the types of recvVecFrom, recvVecFrom', recvVecFromNB, and
485    recvVecFromNB' in the SOCKET signature.  This error is actually
486    in the SML Basis specification too.
487    
488    ----------------------------------------------------------------------
489    Name: Matthias Blume (http://www.tti-c.org/blume/)
490    Date: 2006/12/05 22:40:00 CST
491    Description:
492    
493    CM now reports undefined anchors as errors and aborts execution
494    rather than silently pressing on using bogus values.
495    
496    ----------------------------------------------------------------------
497    Name: Matthias Blume (http://www.tti-c.org/blume/)
498    Date: 2006/11/29 10:00:00 CST
499    Description:
500    
501    Use Say.vsay for printing the "[autoloading]" message, so
502    #set CM.Control.verbose false (or -Ccm.verbose=false) can be used
503    to suppress them.
504    
505    ----------------------------------------------------------------------
506    Name: Matthias Blume (http://www.tti-c.org/blume/)
507    Date: 2006/11/10 11:00:00 CST
508    Description:
509    
510    Fixed bug in CM where "with:" specifications that affect compilation
511    (as opposed to parsing) were ignored.
512    
513    ----------------------------------------------------------------------
514    Name: Matthias Blume (http://www.tti-c.org/blume/)
515    Date: 2006/11/09 14:30:00 CST
516    Tag: release-110.60
517    Description:
518    
519    New working release (110.60).  NEW BOOTFILES!
520    
521    This is the first subversion-hosted release.  There are also changes
522    to the directory layout.  Here is a table:
523    
524    (All pathnames are relative to the SML/NJ "root" directory.)
525    
526      config -> config
527    
528      src/cm -> base/cm
529      src/compiler -> base/compiler
530      src/runtime -> base/runtime
531      src/system -> base/system
532    
533      src/cm/pgraph -> pgraph
534    
535      src/READMES -> base/READMES
536      src/$notefile -> base/NOTES/$notefile
537         for <notefile> in BOOT CVSNOTES CYGWININSTALL HISTORY INSTALL
538                           MACOSXINSTALL WININSTALL
539    
540      src/smlnj-lib -> smlnj-lib
541      src/MLRISC -> MLRISC
542      ckit -> ckit
543      src/cml -> cml
544      src/eXene -> eXene
545      src/heap2asm -> heap2asm
546      src/lexgen -> lexgen
547      src/ml-burg -> ml-burg
548      src/ml-lex -> ml-lex
549      src/ml-yacc -> ml-yacc
550      src/ml-nlffi-lib -> nlffi/lib
551      src/ml-nlffigen -> nlffi/gen
552      src/smlnj-c -> smlnj-c
553      src/tools/TraceDebugProf -> trace-debug-profile
554    
555    In addition, there is also a new
556    
557      ml-lpt
558    
559    directory containing two new program generator tools: ml-ulex and
560    ml-antlr (a lexer generator that handles unicode and an ANTRL-inspired
561    LL(k) parser generator). These tools are currently "beta-quality"
562    
563    The latest versios of the sources can now be obtained anonymously
564    via subversion.  For this, it is useful to first check out
565    
566       svn://smlnj-gforge.cs.uchicago.edu/smlnj/admin
567    
568    and put the resulting directory on your shell's PATH.  This provides
569    access to three shell scripts: checkout-all.sh, stat-all.sh,
570    and refresh-all.sh.
571    
572    To create a freshly checked-out copy of the sources, do
573    
574       checkout-all.sh [dir]
575    
576    where dir is the optional SML/NJ root directory (default is ".").
577    
578    This creates the above directory layout.  Each subdirectory of
579    the root is under individual subversion control.  The stat-all.sh
580    and refresh-al.sh scripts apply "svn stat" or "svn update" to
581    each of these subtrees.
582    
583    ----------------------------------------------------------------------
584    Name: Matthias Blume (http://www.tti-c.org/blume/)
585    Date: 2006/11/02 12:20:00 CST
586    Description:
587    
588    Reorganized directory layout.
589    
590    This is a temporary solution, more reorganization is to come.
591    
592    The basic idea is to have a number of toplevel trees, each corresponding
593    to a well-defined part of the overall system.  Each part can be
594    maintained individually, even in separate source repositories,
595    although currently we still serve everything out of the main
596    smlnj-gforge tree.
597    
598    Installer and and scripts have been updated to reflect the new
599    layout.  The installer (base/src/system/smlnj/installer) is now
600    "scriptable" to avoid burning too much knowledge about the
601    layout into SML source code.  The main script used by the installer
602    is in config/actions.
603    
604    The main change is that many of the subdirectories of what used to
605    be known as "src" have moved to the toplevel.  The "src" directory
606    itself has moved down into a subtree called "base".  (We may eventually
607    get rid of the extra level of indirection represented by "src".)
608    
609    The layout is now as follows:
610    
611      toplevel tree name | default repository
612                         | (using gf=svn://smlnj-gforge.cs.uchicago.edu/smlnj)
613      -------------------+----------------------------------------------------
614      config             | $gf/config/trunk
615                         |
616      base               | $gf/sml/trunk
617                         |
618      smlnj-lib          | $gf/smlnj-lib/trunk
619      MLRISC             | $gf/MLRISC/trunk
620                         |
621      ml-yacc            | $gf/ml-yacc/trunk
622      ml-lex             | $gf/ml-lex/trunk
623      ml-burg            | $gf/ml-burg/trunk
624      lexgen             | $gf/lexgen/trunk
625      heap2asm           | $gf/heap2asm/trunk
626                         |
627      cml                | $gf/cml/trunk
628      eXene              | $gf/eXene/trunk
629      ckit               | $gf/ckit/trunk
630      nlffi              | $gf/nlffi/trunk
631                         |
632      smlnj-c            | $gf/smlnj-c/trunk
633    
634    In $gf/admin there are a few useful shell scripts for checking out
635    and maintaining the entire collection of trees:
636    
637       admin/checkout-all.sh [dir]
638          -- optionally creates dir and checks out all trees from their
639             default repositories; if dir is missing, checkout into .
640       admin/refresh-all.sh [dir]
641          -- looks at all trees (from the above list) in dir (default: .)
642             and runs "svn update" if the tree exists and is under
643             subversion control;
644             non-existing or non-subversion trees are skipped
645       admin/stat-all.sh [dir]
646          -- like refresh-all.sh, but runs "svn stat" instead
647    
648    ----------------------------------------------------------------------
649    Name: Matthias Blume (http://www.tti-c.org/blume/)
650    Date: 2006/10/05 11:30:00 CDT
651    Tag: blume-20061005-merge-amd64
652    Description:
653    
654    Merged code for AMD64 backend (Mike Rainey's work).
655    Everything is hooked up but untested.
656    
657    ----------------------------------------------------------------------
658    Name: Matthias Blume (http://www.tti-c.org/blume/)
659    Date: 2006/05/17 14:00:00 CST
660    Tag: Release_110_59
661    Description:
662    
663    New working version (110.59).  NEW BOOTFILES!
664    
665    I am freezing 110.59.  Changes other than the version-number increase:
666    
667      eXene:
668    
669         * committed changes to eXene from Alley Stoughton:
670             "fixed bugs in X authorization and resource handling, as well
671              as in the pile and viewport widgets"
672    
673      Runtime:
674        * fixed linking problem with NetBSD 3.x.
675    
676      Lexgen:
677        * lexgen tool handles non-ascii characters in 7-bit mode the same
678          way that ml-lex does
679    
680        * lexgen propagates exceptions the same way that ml-lex does
681    
682      CML:
683        * Fixed a bug in the SyncVar polling functions (iGetPoll,
684          mTakePoll, and mGetPoll) that could lead to livelock.
685    
686    ----------------------------------------------------------------------
687    Name: Matthias Blume (http://www.tti-c.org/blume/)
688    Date: 2006/05/12 15:20:00 CST
689    Tag: blume-20060515-makedepend
690    Description:
691    
692    Implemented ml-makedepend (i.e., CM.sources) in a better (more robust)
693    way.  This should hopefully fix the ml-makedepend problem permanently.
694    
695    ----------------------------------------------------------------------
696    Name: Matthias Blume (http://www.tti-c.org/blume/)
697    Date: 2006/05/12 15:15:00 CST
698    Tag: blume-20060512-makedepend
699    Description:
700    
701    Fixed long-standing bug with ml-makedepend where it would output a
702    spurious dependency to a non-existing file.  (This is a simple fix.
703    It might need further looking into.)
704    
705    ----------------------------------------------------------------------
706    Name: Matthias Blume (http://www.tti-c.org/blume/)
707    Date: 2006/04/20 10:30:00 CDT
708    Tag: blume-20060420-heap2exec
709    Description:
710    
711    Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)
712    that enable heap2exec under Linux and FreeBSD.
713    
714    ----------------------------------------------------------------------
715    Name: John Reppy
716    Date: 2006/04/14
717    Tag:
718    Description:
719    
720    MLRISC changes:
721      1) renamed GAS_PSEUDO_OPS to AS_PSEUDO_OPS and put it in its own file.
722      2) added support for NOTB and XORB operators in pseudo-op expressions
723      3) added DarwinPseudoOp functor that supports Darwin's assembler syntax.
724      4) added support for 64-bit integer literals
725    
726    ----------------------------------------------------------------------
727    Name: Matthias Blume (http://www.tti-c.org/blume/)
728  Date: yyyy/mm/dd  Date: yyyy/mm/dd
729  Tag: <post-commit CVS tag>  Tag: Release_110_58
730    Description:
731    
732    New working version (110.58).  NEW BOOTFILES!
733    
734    ----------------------------------------------------------------------
735    Name: Matthias Blume (http://www.tti-c.org/blume/)
736    Date: 2006/03/01 22:15:00 CST
737    Tag: blume-20060301-lexgen
738    Description:
739    
740    Incorporated several bugfixes to lexgen.  Compiler now compiles to
741    fixpoint when using lexgen instead of ml-lex.
742    
743    ----------------------------------------------------------------------
744    Name: Matthias Blume (http://www.tti-c.org/blume/)
745    Date: 2006/02/28 22:45:00 CST
746    Tag: blume-20060228-lexgen
747    Description:
748    
749    Removed ml-flex and added lexgen instead, using Aaron Turon's newly
750    provided tarball.  The generated lexers still have problems.
751    
752    ----------------------------------------------------------------------
753    Name: Matthias Blume (http://www.tti-c.org/blume/)
754    Date: 2006/02/26 23:30:00 CST
755    Tag: blume-20060226-ml-flex
756    Description:
757    
758    Removed ml-flex' dependency on regexp-lib.cm.  Turned installation
759    of ml-flex on by default.
760    
761    ----------------------------------------------------------------------
762    Name: Matthias Blume (http://www.tti-c.org/blume/)
763    Date: 2006/02/24 16:30:00 CST
764    Tag: blume-20060224-ml-flex
765    Description:
766    
767    Added ml-flex sources.  Partially integrated, but should not be
768    turned on yet!  (Read: leave it commented-out in config/targets!)
769    
770    ----------------------------------------------------------------------
771    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
772    Date: 2006/02/23
773    Tag: jhr-20060223-x86-64
774    Description:
775    Changes to support building on x86-64 systems (using the 32-bit mode).
776    Also cleaned up signal handling on Linux.  Support for pre-2.2 Linux
777    kernels dropped.
778    
779    ----------------------------------------------------------------------
780    Name: Allen Leung (leunga (at) reservoir (dot) com)
781    Date: 2006/02/22 15:07:00 EST
782    Tag: leunga-20060222-mdl-gen
783    Description:
784    
785      CM has changed.  Updated the script for rebuilding the MLRISC generated
786    files.
787    
788    ----------------------------------------------------------------------
789    Name: Matthias Blume (http://www.tti-c.org/blume/)
790    Date: 2006/02/14 17:30:00 CST
791    Tag: blume-20060214-intel-mac
792    Description:
793    
794    Hooked code for Darwin-specific Intel ABI into main compiler.
795    (This is a temporary solution which relies on the fact that the
796    compiler itself does not use NLFFI.  Eventually we need to divorce
797    intel mac from generic x86 unix code and make separate sets of binaries.)
798    
799    ----------------------------------------------------------------------
800    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
801    Date: 2006/02/13
802    Tag: jhr-20060213-intel-mac
803    Description:
804    Changed MLRISC x86 CCalls for partial support of MacOS X ABI.
805    
806    ----------------------------------------------------------------------
807    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
808    Date: 2006/02/06
809    Tag: jhr-20060206-intel-mac
810    Description:
811    Changes to support MacOS X on Intel hardware.  The C-calls support in
812    MLRISC must also be updated to support the MacOS X ABI.
813    
814    ----------------------------------------------------------------------
815    Name: Matthias Blume (http://www.tti-c.org/blume/)
816    Date: 2005/12/16 00:15:00 CST
817    Tag: blume-20051216-cm
818    Description:
819    
820    Improved error reporting and handling in CM.
821    
822    ----------------------------------------------------------------------
823    Name: Matthias Blume (http://www.tti-c.org/blume/)
824    Date: 2005/11/21 14:00:00 CST
825    Tag: blume-20051121-html-lib
826    Description:
827    
828    Enabling $/html-lib.cm in config/preloads did not work.  This is fixed
829    now.  (Since the anchor mapping for html-lib.cm is not yet in effect
830    at the time when config/preloads is processed, the library has to
831    be referred to by another name.  In 110.57 this would be
832    $SMLNJ-LIB/HTML/html-lib.cm.  I arranged for $smlnj/smlnj-lib/html-lib.cm
833    to be valid as well.)
834    
835    Thanks to Todd Wilson (Fresno) for alerting me to this issue.
836    
837    ----------------------------------------------------------------------
838    Name: Matthias Blume (http://www.tti-c.org/blume/)
839    Date: 2005/11/19 13:45:00 CST
840    Tag: Release_110_57
841    Description:
842    
843    Moved release tag for 110.57.
844    
845    ----------------------------------------------------------------------
846    Name: Matthias Blume (http://www.tti-c.org/blume/)
847    Date: 2005/11/19 23:35:00 CST
848    Tag: blume-20051119-fish
849    Description:
850    
851    Fixed a problem in config/install.sh where it tries to "fish" the
852    name of the CM metadata directory from the wrong place (because
853    the physical location of basis.cm has changed).  Also, corrected the
854    path anchor for $/html-lib.cm.  (Thanks to M. Fluet for pointing out
855    these problems.)
856    
857    ----------------------------------------------------------------------
858    Name: Matthias Blume (http://www.tti-c.org/blume/)
859    Date: 2005/11/16 14:30:00 CST
860    Tag: blume-orig-110_57
861    Description:
862    
863    New working version (110.57).  NEW BOOTFILES!
864    
865    UPDATE: The release tag has been moved to include a fix for a brown-paper-
866            bag glitch (see above).
867    
868    ----------------------------------------------------------------------
869    Name: Matthias Blume (http://www.tti-c.org/blume/)
870    Date: 2005/11/16 10:25:00 CST
871    Tag: blume-22051116-btrace
872    Description:
873    
874    Fixed problem with bogus exception message when using back-trace
875    facility.
876    
877    ----------------------------------------------------------------------
878    Name: Matthias Blume (http://www.tti-c.org/blume/)
879    Date: 2005/11/15 22:35:00 CST
880    Tag: blume-22051115-array2copy
881    Description:
882    
883    Added simple implementation of Array2.copy.  (Warning: mostly untested.)
884    
885    ----------------------------------------------------------------------
886    Name: Matthias Blume (http://www.tti-c.org/blume/)
887    Date: 2005/11/15 21:35:00 CST
888    Tag: blume-22051115-versiontool
889    Description:
890    
891    Reversed change to src/system/smlnj/internals/versiontool.cm.  This
892    file gets loaded as a tool -- by the equivalent of CM.make during the
893    run of CMB.make.  Thus, CMB's path configuration is meaningless for
894    it.  Instead, it has the status of "user code", so it should use
895    $/basis.cm to refer to the Basis library.  (At least that's true for
896    the purpose of bootstrapping the previous change.  In the future it
897    might make sense to have versiontool.cm refer to
898    $smlnj/basis/basis.cm, i.e., the version of the Basis that the
899    compiler itself uses.)
900    
901    Also patched src/system/testml to have it activate those extra anchor
902    bindings in config/extrapathconfig.
903    
904    ----------------------------------------------------------------------
905    Name: Matthias Blume (http://www.tti-c.org/blume/)
906    Date: 2005/11/15 16:35:00 CST
907    Tag: blume-22051115-libraries
908    Description:
909    
910    This change affects the way the following libraries are tied into
911    the system:
912    
913       $/basis.cm
914       $/smlnj-lib.cm
915       $/pp-lib.cm
916       $/controls-lib.cm
917       $/html-lib.cm
918       $/ml-yacc-lib.cm
919    
920    These libraries are now internally (as seen from the source code
921    of the implementation itself) known by the following names:
922    
923       $smlnj/basis/basis.cm
924       $smlnj/smlnj-lib/smlnj-lib.cm
925       $smlnj/smlnj-lib/pp-lib.cm
926       $smlnj/smlnj-lib/controls-lib.cm
927       $smlnj/smlnj-lib/html-lib.cm
928       $smlnj/ml-yacc/ml-yacc-lib.cm
929    
930    This makes it possible to work with code that requires different
931    versions of these libraries, and which refers to these libraries using
932    their "default" names (i.e., the first set of names above).  In other
933    words, one can un-define or re-define those default names without
934    compromising the proper functioning of the compiler itself.
935    
936    A similar procedure had already been performed for several of the
937    MLRISC libraries that are linked into the compiler.  I did some
938    cleanup on this code.
939    
940    A new file in the config directory (named extrapathconfig) is
941    responsible for setting up path anchors that the compiler itself does
942    not need, but that are typically required by user code.
943    
944    ----------------------------------------------------------------------
945    Name: Matthias Blume
946    Date: 2005/11/07 17:05:00 CST
947    Tag: blume-20051107-slice
948    Description:
949    
950    Fixed erroneous out-of-bounds test in the "update" function of
951    various *ArraySlice modules.  (Thanks to Vesa A. Norrman for pointing
952    out the problem.)
953    
954    Pushed some Basis changes through ML-Lex, CML, and eXene.
955    
956    ----------------------------------------------------------------------
957    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
958    Date: 2005/11/07
959    Description:
960    Fixed a Basis incompatibility: The depreciated function Substring.all
961    was removed (use Substring.full instead).
962    
963    ----------------------------------------------------------------------
964    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
965    Date: 2005/11/05
966    Description:
967    Tweaked interval set API in SML/NJ library; see the CHANGES file for details.
968    
969    ----------------------------------------------------------------------
970    Name: Matthias Blume (http://www.tti-c.org/blume/)
971    Date: 2005/11/02 16:25:00 CST
972    Tag: blume-20051102-hex
973    Description:
974    
975    * Runtime system bootstrap code now accepts hex digits in BOOTLIST
976      in either upper case or lower case format.
977    * Pushed changes to names of Pack<N>{Big,Little} structures through
978      CML and eXene.
979    
980    ----------------------------------------------------------------------
981    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
982    Date: 2005/11/02
983    Description:
984    Fixed a Basis incompatibility: Pack<N>{Big,Little} structures should
985    be called PackWord<N>{Big,Little}.
986    
987    ----------------------------------------------------------------------
988    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
989    Date: 2005/10/28
990    Description:
991    Fixed a minor Basis incompatibility: hex digits should be upper case.
992    
993    ----------------------------------------------------------------------
994    Name: Matthias Blume (blume (at) tti - c (dot) org)
995    Date: 2005/10/25 16:00:00 CDT
996    Tag: Release_110_56
997    Description:
998    
999    New working version (110.56).  NEW BOOTFILES!
1000    
1001    ----------------------------------------------------------------------
1002    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1003    Date: 2005/10/25
1004    Description:
1005    Added interval sets to utility library (signatures INTERVAL_DOMAIN
1006    and INTERVAL_SET, and functor IntervalSetFn).
1007    
1008    ----------------------------------------------------------------------
1009    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1010    Date: 2005/10/14
1011    Description:
1012    Add Zhong Shao's fix for datatype equality functions.
1013    
1014    ----------------------------------------------------------------------
1015    Name: Allen Leung (leunga (at) reservoir (dot) com)
1016    Date: 2005/10/14 12:30:00 EST
1017    Tag: leunga-20051014-x86-spill
1018    Description:
1019    
1020    Bug fix a bug found by Carl Hauser.
1021    There was a typo in the reload code for FCMP in x86SpillInstr.sml.
1022    
1023    ----------------------------------------------------------------------
1024    Name: Allen Leung (leunga (at) reservoir (dot) com)
1025    Date: 2005/10/14 11:15:00 EST
1026    Tag: leunga-20051014-x86-asm
1027    Description:
1028    
1029    Removed some debugging code in file x86Asm.sml.
1030    The function emit_operand was printing out debugging output.
1031    
1032    ----------------------------------------------------------------------
1033    Name: John Reppy
1034    Date: 2005/07/27
1035    Tag:
1036    Description:
1037    
1038    Fixed ml-lex to recognize "\r" as representing carriage return.
1039    
1040    ----------------------------------------------------------------------
1041    Name: John Reppy
1042    Date: 2005/07/27
1043    Tag:
1044    Description:
1045    
1046    Fixed ml-yacc to work on files with non-native end-of-line
1047    encodings (e.g., Windows text file on a Unix system).
1048    
1049    ----------------------------------------------------------------------
1050    Name: John Reppy
1051    Date: 2005/07/20
1052    Tag:
1053    Description:
1054    
1055    Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)
1056    to support HPUX 11.
1057    
1058    ----------------------------------------------------------------------
1059    Name: John Reppy
1060    Date: 2005/07/06
1061    Tag:
1062    Description:
1063    
1064    Changes to the SML/NJ library.  See smlnj-lib/CHANGES for details.
1065    
1066    ----------------------------------------------------------------------
1067    Name: Matthias Blume (blume (at) tti - c (dot) org)
1068    Date: 2005/07/06 00:45:00 CDT
1069    Tag: blume-20050706-slice-copy
1070    Description:
1071    
1072    Fixed reversed logic for deciding whether to "copy up" or "copy down"
1073    in *-array-slice.sml.
1074    
1075    ----------------------------------------------------------------------
1076    Name: Allen Leung (leunga (at) reservoir (dot) com)
1077    Date: 2005/05/31 17:00:00 EST
1078    Tag: leunga-20050531-cygwin-fault-2
1079    Description:
1080    
1081    A typo in the cygwin code fixed.
1082    
1083    ----------------------------------------------------------------------
1084    Name: Allen Leung (leunga (at) reservoir (dot) com)
1085    Date: 2005/05/31 16:47:00 EST
1086    Tag: leunga-20050531-cygwin-fault
1087    Description:
1088    
1089    Updated Cygwin's fault/signal handling to match the Windows version.
1090    Updated the export list.
1091    
1092    ----------------------------------------------------------------------
1093    Name: Matthias Blume (blume (at) tti - c (dot) org)
1094    Date: 2005/05/18 13:35:00 CDT
1095    Tag: Release_110_54
1096    Description:
1097    
1098    New working version (110.54).  NEW BOOTFILES!
1099    
1100    ----------------------------------------------------------------------
1101    Name: Matthias Blume (blume (at) tti - c (dot) org)
1102    Date: 2005/05/18 11:58:00 CDT
1103    Tag: blume-20050518-installer
1104    Description:
1105    
1106    Added support scripts for Mac OS X PackageMaker and modified
1107    config/install.sh so that it supports re-dumping a heap image
1108    after customization.
1109    
1110    ----------------------------------------------------------------------
1111    Name: Matthias Blume (blume (at) tti - c (dot) org)
1112    Date: 2005/05/18 10:55:00 CDT
1113    Tag: blume-20050518-realdiv-noovld
1114    Description:
1115    
1116    Un-overloaded / to work around bug in overloading resolution code.
1117    
1118    ----------------------------------------------------------------------
1119    Name: Matthias Blume (blume (at) tti - c (dot) org)
1120    Date: 2005/05/16 23:50:00 CDT
1121    Tag: blume-20050516-redump-heap
1122    Description:
1123    
1124    Added mechanism for re-creating a heap file for the interactive system
1125    after configuration variables have been changed.
1126    
1127       CM.redump_heap : string -> unit
1128    
1129    This is much like SMLofNJ.exportML, but starting from the resulting
1130    heap does not return to the caller of CM.redump_heap but
1131    restarts the interactive system from scratch.  The original call of
1132    CM.redump_heap does not return but ends the interactive session.
1133    Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.
1134    
1135    Internally, redump_heap winds the dynamic execution context back to
1136    the point where the original heap image was created and re-executes
1137    the heap image generation code in the boot code.
1138    
1139    ----------------------------------------------------------------------
1140    Name: Matthias Blume (blume (at) tti - c (dot) org)
1141    Date: 2005/05/09 21:55:00 CDT
1142    Tag: blume-20050509-word64
1143    Description:
1144    
1145    Added a hack to the existing hack known as Word64 to make fromString
1146    behave correctly.  I am still not sure whether Word64.scan will work
1147    as specified with respect to the interaction of radix and prefix.
1148    
1149    ----------------------------------------------------------------------
1150    Name: Allen Leung (leunga (at) reservoir (dot) com)
1151    Date: 2005/05/04 11:50:00 EST
1152    Tag: leunga-20050504-checkgc
1153    Description:
1154    
1155    Added a gc protocol checking phase.  This phase is enabled with
1156    the flag "check-gc".  "debug-check-gc" turns on the verbose mode.
1157    
1158    ----------------------------------------------------------------------
1159    Name: Matthias Blume (blume (at) tti - c (dot) org)
1160    Date: 2005/05/04 10:45:00 CDT
1161    Tag: blume-20050504-intinf
1162    Description:
1163    
1164    Fixed a bug in the implementation of div and mod for IntInf.
1165    Thanks to Neophytos Michael for reporting the problem.
1166    
1167    ----------------------------------------------------------------------
1168    Name: Matthias Blume (blume (at) tti - c (dot) org)
1169    Date: 2005/05/04 10:35:00 CDT
1170    Tag: blume-20050504-join
1171    Description:
1172    
1173    Added a "join" combinator to the ParserComb module in smlnj-lib.cm.
1174    
1175    ----------------------------------------------------------------------
1176    Name: Matthias Blume (blume (at) tti - c (dot) org)
1177    Date: 2005/02/28 23:40:00 CST
1178    Tag: blume-20050228-mVar
1179    Description:
1180    
1181    Fixed serious bug (brown paper bag variety) in new implementation of
1182    structure Atom in CML.  (I had accidentally used a mailbox instead of
1183    an mvar, leaving the door open for races.)
1184    
1185    ----------------------------------------------------------------------
1186    Name: Matthias Blume (blume (at) tti - c (dot) org)
1187    Date: 2005/02/25 15:00:00 CST
1188    Tag: Release_110_53
1189    Description:
1190    
1191    New working version (110.53).  NEW BOOTFILES!
1192    
1193    ----------------------------------------------------------------------
1194    Name: Matthias Blume (blume (at) tti - c (dot) org)
1195    Date: 2005/02/25 14:50:00 CST
1196    Tag: blume-20050225-susp
1197    Description:
1198    
1199    Brought back SMLofNJ.Susp.  The underlying suspension type is the one
1200    implemented in Core -- which means that it is the same as the one used
1201    by the lazy extension.
1202    
1203    ----------------------------------------------------------------------
1204    Name: Matthias Blume (blume (at) tti - c (dot) org)
1205    Date: 2005/02/24 16:50:00 CST
1206    Tag: blume-20050224-cml-atom
1207    Description:
1208    
1209    Simpler and at the same time more general implementation of structure
1210    Atom in CML.
1211    
1212    ----------------------------------------------------------------------
1213    Name: Matthias Blume (blume (at) tti - c (dot) org)
1214    Date: 2005/02/15 17:35:00 CST
1215    Tag: blume-20050215-tools
1216    Description:
1217    
1218    Created new "tools" directory under "src" and moved "TraceDebugProf"
1219    there.
1220    
1221    ----------------------------------------------------------------------
1222    Name: Matthias Blume (blume (at) tti - c (dot) org)
1223    Date: 2005/02/10 17:55:00 CST
1224    Tag: blume-20050210-longlong
1225    Description:
1226    
1227    Implemented "long long" arguments and results for NLFFI.  (Only the
1228    PPC/MacOS implementation is complete, the other backends still need to
1229    be updated.)
1230    
1231    ----------------------------------------------------------------------
1232    Name: Matthias Blume (blume (at) tti - c (dot) org)
1233    Date: 2005/01/24 17:40:00 CST
1234    Tag: blume-20050124-mlyacc
1235    Description:
1236    
1237    Minor cleanup in ML-Yacc rule printing mechanism.  This should fix a
1238    problem with certain "as" patterns which previously got rendered
1239    using incorrect syntax.
1240    
1241    ----------------------------------------------------------------------
1242    Name: Matthias Blume (blume (at) tti - c (dot) org)
1243    Date: 2005/01/18 12:00:00 CST
1244    Tag: blume-20050118-profile
1245    Description:
1246    
1247    Made time profiling code (interrupt handler) in runtime system aware
1248    of new array representation.
1249    
1250    ----------------------------------------------------------------------
1251    Name: Matthias Blume (blume (at) tti - c (dot) org)
1252    Date: 2005/01/14 18:00:00 CST
1253    Tag: blume-20050114-heap2exec
1254    Description:
1255    
1256    Implemented new (but still experimental) heap2exec facility.  This is
1257    tested under Mac OS X and should work under Linux (will test shortly).
1258    It will probably also work on the Sparc (will test some time later).
1259    
1260      - removed old "HACKED_STANDALONE" hack from runtime
1261    
1262    To be able to test this, uncomment the request for "heap2asm" in
1263    config/targets prior to installation.  (Notice that this is different
1264    from "heap2exec" mentioned below.  Not a typo.)
1265    
1266    To perform an actual test, run the command
1267    
1268       $ bin/heap2exec heapfile execfile
1269    
1270    (You can put heap2exec on your shell's path.)
1271    
1272    For example, run
1273    
1274      $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
1275    
1276    This will create a standalone executable called "mly" which you can
1277    then invoke directly as a command.
1278    
1279    ----------------------------------------------------------------------
1280    Name: Matthias Blume (blume (at) tti - c (dot) org)
1281    Date: 2005/01/07 11:44:00 CST
1282    Tag: blume-20050107-mlstring
1283    Description:
1284    
1285    fixed off-by-one error in ML_STRING macro (globals.c)
1286    
1287    ----------------------------------------------------------------------
1288    Name: Matthias Blume (blume (at) tti - c (dot) org)
1289    Date: 2004/12/23 18:00:00 CST
1290    Tag: blume-20041223-santa
1291    Description:
1292    
1293    Made ml-build script "smarter" (but only very little).
1294    
1295    ----------------------------------------------------------------------
1296    Name: Matthias Blume (blume (at) tti - c (dot) org)
1297    Date: 2004/12/21 15:05:00 CST
1298    Tag: blume-20041221-longlong
1299    Description:
1300    
1301    * Implemented access to signed and unsigned long long data in NLFFI.
1302    (The parameter-passing part of the picture has not complete. But
1303    data structure access seems to work.)
1304    
1305    * Fixed CM's incorrect assumption that the PPC is little-endian.
1306      (On the Mac, it is big-endian.  And that's currently our only
1307      PPC platform.)
1308    
1309    ----------------------------------------------------------------------
1310    Name: Matthias Blume (blume (at) tti - c (dot) org)
1311    Date: 2004/12/21 12:50:00 CST
1312    Tag: blume-20041221-memory
1313    Description:
1314    
1315    Some cleanup in the $c/memory.cm library: separated some concerns by
1316    moving allocation code and memory access code each into their own
1317    files.
1318    
1319    ----------------------------------------------------------------------
1320    Name: Allen Leung (leunga (at) reservoir (dot) com)
1321    Date: 2004/12/17 16:12:00 EST
1322    Tag: leunga-20041217-cygwin-smlnj-home
1323    Description:
1324    
1325        The Unix I/O library of SML/NJ on cygwin does not understand
1326    Windows style pathname, so problems arise when SMLNJ_HOME is set
1327    to a Windows style pathname.  _run-sml now converts SMLNJ_HOME
1328    to a POSIX pathname on cygwin.
1329    
1330    ----------------------------------------------------------------------
1331    Name: Matthias Blume (blume (at) tti - c (dot) org)
1332    Date: 2004/12/16 13:35:00 CST
1333    Tag: Release_110_52
1334    Description:
1335    
1336    Last-minute changes incorporated into 110.52.  Release tag moved.
1337    
1338    The changes:
1339       - HashString.hashString' -> HashString.hashSubstring
1340       - bug fix in UnivariateStats
1341    
1342    ----------------------------------------------------------------------
1343    Name: Matthias Blume (blume (at) tti - c (dot) org)
1344    Date: 2004/12/15 23:40:00 CST
1345    Tag: blume-20041215-hashSubstring
1346    Description:
1347    
1348    - HashString.hashString' -> HashString.hashSubstring
1349    - corresponding changes in atom.sml
1350    - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and
1351      added some comments
1352    
1353    ----------------------------------------------------------------------
1354    Name: Matthias Blume (blume (at) tti - c (dot) org)
1355    Date: 2004/12/15 15:30:00 CST
1356    Tag: (Release_110_52)
1357    Description:
1358    
1359    New working version (110.52).  NEW BOOTFILES!
1360    
1361    ----------------------------------------------------------------------
1362    Name: Matthias Blume (blume (at) tti - c (dot) org)
1363    Date: 2004/12/15 12:45:00 CST
1364    Tag: blume-20041215-spaces
1365    Description:
1366    
1367    More on the space problem (this time for Win32).
1368    
1369    ----------------------------------------------------------------------
1370    Name: Matthias Blume (blume (at) tti - c (dot) org)
1371    Date: 2004/12/14 17:30:00 CST
1372    Tag: blume-20041214-spaces
1373    Description:
1374    
1375    Hacked some of the scripts (in particular: the installer) to cope with
1376    spaces in filenames a bit better.  But beware: the current "solution"
1377    is likely still full of bugs and inherently incomplete.  (We need to
1378    do away with those shell scripts for a comprehensive solution.)
1379    
1380    ----------------------------------------------------------------------
1381    Name: Matthias Blume (blume (at) tti - c (dot) org)
1382    Date: 2004/12/13 14:45:00 CST
1383    Tag: blume-20041213-ml-makedepend
1384    Description:
1385    
1386    Fixed bug in code for ml-makedepend.
1387    
1388    ----------------------------------------------------------------------
1389    Name: Matthias Blume (blume (at) tti - c (dot) org)
1390    Date: 2004/12/09 16:30:00 CST
1391    Tag: blume-20041209-statistics
1392    Description:
1393    
1394    Added two simple but potentially useful statistics modules to SML/NJ Library.
1395    (See CHANGES file there.)
1396    
1397    ----------------------------------------------------------------------
1398    Name: Matthias Blume (blume (at) tti - c (dot) org)
1399    Date: 2004/12/01 16:50:00 CST
1400    Tag: blume-20041201-atom
1401    Description:
1402    
1403    smlnj-lib:
1404    
1405      Added function HashString.hashString' for substrings.
1406      Hand-inlined CharVector.foldl into HashString (for speed).
1407      Modified implementation of structure Atom to avoid extracting
1408      strings from substrings unless necessary.
1409      (Also see CHANGES file for smlnj-lib.)
1410    
1411    ----------------------------------------------------------------------
1412    Name: Matthias Blume (blume (at) tti - c (dot) org)
1413    Date: 2004/11/24 22:15:00 CST
1414    Tag: blume-20041124-cml
1415    Description:
1416    
1417    Made sure CML compiles when Position = Int64.
1418    
1419    ----------------------------------------------------------------------
1420    Name: Matthias Blume (blume (at) tti - c (dot) org)
1421    Date: 2004/11/24 14:30:00 CST
1422    Tag: blume-20041124-position
1423    Description:
1424    
1425    The compiler can now be compiled in a mode that makes structure Position
1426    equal to Int64.  The default, however, is unchanged (Position = Int31)
1427    for the time being.
1428    
1429    To enable 64-bit positions, use the following procedure:
1430    
1431    1. Start sml
1432    2. Autoload $smlnj/cmb.cm (if not already autoloaded)
1433    3. Type
1434          #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
1435    4. Run CMB.make() as usual.
1436    
1437    This is barely tested.  The only test so far was a little SML program
1438    counting the number of characters in an 8-gigabyte file by
1439    reading it character-by-character.  That test was successful.
1440    
1441    In support of 64-bit positions, a number of new functions have been
1442    added to the runtime system.
1443    
1444    ----------------------------------------------------------------------
1445    Name: Matthias Blume (blume (at) tti - c (dot) org)
1446    Date: 2004/11/23 14:45:00 CST
1447    Tag: blume-20041123-useFile
1448    Description:
1449    
1450    Fixed a problem with unhelpful error messages related to problems with
1451    .cm- or .sml files that appear as part of the sml command line.
1452    
1453    ----------------------------------------------------------------------
1454    Name: Matthias Blume (blume (at) tti - c (dot) org)
1455    Date: 2004/11/18 15:40:00 CST
1456    Tag: Release_110_51
1457    Description:
1458    
1459    New working version (110.51).  NEW BOOTFILES!
1460    
1461    ----------------------------------------------------------------------
1462    Name: Matthias Blume (blume (at) tti - c (dot) org)
1463    Date: 2004/11/18 15:35:00 CST
1464    Tag: <none>
1465    Description:
1466    
1467    Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5
1468    Joemann).
1469    
1470    ----------------------------------------------------------------------
1471    Name: Allen Leung (leunga (at) reservoir (dot) com)
1472    Date: 2004/11/17 16:05:21 EST 2004
1473    Tag: leunga-20041117-mlrisc-live-kill
1474    Description:
1475    
1476       Added support for MLTree constructs LIVE and KILL
1477    to all the architectures.
1478    
1479    ----------------------------------------------------------------------
1480    Name: Matthias Blume (blume (at) tti - c (dot) org)
1481    Date: 2004/11/13 00:20:00 CST
1482    Tag: blume-20041113-versiontool
1483    Description:
1484    
1485    - Stripped down the versiontool: It now only handles the version number.
1486      The date string is generated at bootstrap time (during makeml).
1487    
1488    - In a previous commit, fixed a minor issue with how polyequal is being
1489      translated.  In particular, the code now "looks through" abstractions.
1490      This results in slightly fewer polyEqual warnings and hopefully slightly
1491      more efficient code.  Important examples for where this matters are
1492      the new int64 and word64 types.
1493    
1494    ----------------------------------------------------------------------
1495    Name: Matthias Blume (blume (at) tti - c (dot) org)
1496    Date: 2004/11/12 00:30:00 CST
1497    Tag: blume-20041112-int64
1498    Description:
1499    
1500    Structure Int64 fully hooked in.  (The implementation is not very
1501    efficient, though.)
1502    
1503    ----------------------------------------------------------------------
1504    Name: Matthias Blume (blume (at) tti - c (dot) org)
1505    Date: 2004/11/11 17:30:00 CST
1506    Tag: blume-20041111-more64
1507    Description:
1508    
1509    All the pieces of Word64 are now there, with the exception of the
1510    conversions from and to LargeWord. (Eventually these need to be identities,
1511    but for the time being they don't even make sense because LargeWord is
1512    32-bit wide.)
1513    
1514    Also started to add similar support for Int64, but major pieces of that
1515    are still missing.
1516    
1517    ----------------------------------------------------------------------
1518    Name: Matthias Blume (blume (at) tti - c (dot) org)
1519    Date: 2004/11/11 00:15:00 CST
1520    Tag: blume-20041111-word64
1521    Description:
1522    
1523    Structure Word64 is now (almost) complete, word literals and patterns
1524    seem to work.  There are a few odd pieces missing.  In particular,
1525    I didn't do the {from,to}LargeWord parts because LargeWord is still Word32
1526    at the moment.
1527    
1528    Making Word64 official would mean that LargeWord becomes Word64.  But
1529    this requires extreme care because most word-word conversions have to
1530    go through LargeWord, so making a mistake means loss of efficiency or
1531    worse.  Eventually there will be a solution similar to (but actually
1532    simpler than) what I did with IntInf.
1533    
1534    ----------------------------------------------------------------------
1535    Name: Matthias Blume (blume (at) tti - c (dot) org)
1536    Date: 2004/11/10 18:12:00 CST
1537    Tag: blume-20041110-64bit
1538    Description:
1539    
1540    More 64-bit hacking (but still not even half-way there yet).
1541    Also, some assorted improvements to the handling of 8-bit words.
1542    
1543    ----------------------------------------------------------------------
1544    Name: Matthias Blume (blume (at) tti - c (dot) org)
1545    Date: 2004/11/09 17:50:00 CST
1546    Tag: <none>
1547    Description:
1548    
1549    Started adding some infrastructure for supporting 64-bit int- and
1550    word-types.  (Still in its very early stages.)
1551    
1552    ----------------------------------------------------------------------
1553    Name: Matthias Blume (blume (at) tti - c (dot) org)
1554    Date: 2004/10/28 10:45:00 CDT
1555    Tag: Release_110_50
1556    Description:
1557    
1558    New working version (110.50).  NEW BOOTFILES!
1559    
1560                 =====================
1561    
1562    Also:
1563    
1564      - Changend config/srcarchiveurl from a file just
1565        containing the URL string into a file containing
1566        shell script code.  The code has access to the $VERSION variable.
1567      - Made corresponding changes to config/install.sh and config/unpack.
1568      - Default contents of config/srcarchiveurl uses $VERSION and
1569        normally does not have to be edited to reflect a version change.
1570    
1571      (As a result, a version change can be done by just editing
1572       config/version, the rest is now automatic.)
1573    
1574    ----------------------------------------------------------------------
1575    Name: Matthias Blume (blume (at) tti - c (dot) org)
1576    Date: 2004/10/27 17:50:00 CDT
1577    Tag: blume-20041027-btrace-msg
1578    Description:
1579    
1580    BackTrace.monitor now also reports the source of the exception that
1581    triggered the trace.
1582    
1583    ----------------------------------------------------------------------
1584    Name: Matthias Blume (blume (at) tti - c (dot) org)
1585    Date: 2004/10/27 17:20:00 CDT
1586    Tag: blume-20041027-x86-c-calls
1587    Description:
1588    
1589    This is the HISTORY entry for two earlier commits, both concerning
1590    the x86 c-calls code in MLRISC:
1591    
1592      - added a missing LOAD in the code that deals with struct arguments
1593      - made sure the caller does not add the wrong number of bytes to the
1594        stack pointer after a call of a function returning a struct
1595        (the callee already pops the implicit argument which points to
1596         the space reserved for the result)
1597    
1598    ----------------------------------------------------------------------
1599    Name: Allen Leung (leunga (at) reservoir (dot) com)
1600    Date: 2004/10/24 14:00:00 EST
1601    Tag: leunga-20041024-x86-gas-fucomip
1602    Description:
1603    
1604       John discovered a bug in the syntax of fucomip.
1605       The opcodes FU?COMIP? have been changed to
1606    
1607           fu?comip? %st(i), %st
1608    
1609    ----------------------------------------------------------------------
1610    Name: Matthias Blume (blume (at) tti - c (dot) org)
1611    Date: 2004/10/20 15:06:00 CDT
1612    Tag: blume-20041020-standalone-backtrace
1613    Description:
1614    
1615    Added a mechanism for getting back-trace information from standalone
1616    programs.  Here is how it works:
1617    
1618       1. The part of the program from which you want to get backtrace
1619          information (usually the whole program) should be wrapped with
1620          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
1621          main program could be modified from something like
1622    
1623             fun main (pgm, args) = ...
1624    
1625         to
1626    
1627            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
1628    
1629       2. To be able to access BackTrace.monitor, you have to add
1630          library $smlnj-tdp/plugins.cm to the .cm file that contains your
1631          main function.
1632    
1633       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
1634          CM might have created in the past for your project).
1635    
1636       4. Build the system using this command line:
1637    
1638             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
1639                      myprog.cm MyProg.main myprog
1640    
1641          instead of the usual
1642    
1643             ml-build myprog.cm MyProg.main myprog
1644    
1645    I changed a library name:
1646    
1647       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
1648    
1649    New libraries:
1650    
1651       $smlnj-tdp/back-trace.cm
1652          -- when loaded causes the back-trace plugin to be installed
1653       $smlnj-tdp/coverage.cm
1654          -- when loaded causes the coverage plugin to be installed
1655    
1656    ----------------------------------------------------------------------
1657    Name: Matthias Blume (blume (at) tti - c (dot) org)
1658    Date: 2004/10/18 16:45:00 CDT
1659    Tag: blume-20041018-groupowner
1660    Description:
1661    
1662    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
1663    
1664    Eliminated group owner specs from .cm files throughout the source tree.
1665    
1666    ----------------------------------------------------------------------
1667    Name: Matthias Blume (blume (at) tti - c (dot) org)
1668    Date: 2004/10/15 15:45:00 CDT
1669    Tag: blume-20041015-coverage
1670    Description:
1671    
1672    * Test coverage tool added!
1673    * Further reorganization of tracing-, debugging-, and profiling support:
1674    
1675        - moved original BTImp -- now called BackTrace -- into a separate
1676          library called $/trace-debug-profile.cm
1677        - eliminated all mentions of BTrace from SMLofNJ.Internals
1678        - only the instrumentation mechanism is now left in the compiler proper
1679        - BackTrace module is a plugin which is NOT plugged in by default
1680        - Coverage module is another such plugin
1681    
1682    To get the benefits of any of these plugin modules, the code in
1683    question must be compiled with tdp instrumentation turned on.  This
1684    can be done by setting SMLofNJ.Internals.TDP.mode to true.
1685    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
1686    
1687    Plugins are selected at link time.  (Pre-compiled instrumented code
1688    can be re-loaded with different plugins in effect.)  When an
1689    instrumented module is linked, whatever plugins are at that time
1690    enabled will come into effect for that module.
1691    
1692    To enable the back-trace plugin, load library $/trace-debug-profile.cm
1693    and invoke BackTrace.install() (e.g., from the interactive prompt).
1694    To enable the coverage plugin, load the same library and invoke
1695    Coverage.install().
1696    
1697    Back-traces are generated automatically on uncaught exceptions and
1698    when the code in question explicitly invokes BackTrace.trigger().
1699    
1700    Coverage (and execution frequency-) information must be queried
1701    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
1702    
1703    ----------------------------------------------------------------------
1704    Name: Matthias Blume (blume (at) tti - c (dot) org)
1705    Date: 2004/10/14 17:40:00 CDT
1706    Tag: blume-20041014-tdp-core
1707    Description:
1708    
1709    Snapshot of a significant overhaul of how the trace/debug/profile support
1710    is hooked into the system (specifically: Core and SMLofNJ.Internals).
1711    
1712    ----------------------------------------------------------------------
1713    Name: Matthias Blume (blume (at) tti - c (dot) org)
1714    Date: 2004/10/13 16:34:00 CDT
1715    Tag: blume-20041013-tdp
1716    Description:
1717    
1718    Some rationalization of names:
1719    
1720       structure BTrace -> structure TDPInstrument
1721       etc.
1722    
1723    This is is preparation of using the original back-trace
1724    instrumentation for other purposes.  "TDP" stands for
1725    Trace/Debug/Profile.
1726    
1727    The control flag controlling whether instrumentation is on or off is now
1728    registered under a different name, so instead of running sml as
1729    
1730     sml -Cinstrument.btrace-mode=true
1731    
1732    one has to say
1733    
1734     sml -Ctdp.instrument=true
1735    
1736    ----------------------------------------------------------------------
1737    Name: Matthias Blume (blume (at) tti - c (dot) org)
1738    Date: 2004/10/11 16:37:00 CDT
1739    Tag: blume-20041011-regions
1740    Description:
1741    
1742    Made some minor modifications to elabcore.sml to have source regions
1743    be propagated more tightly -- resulting in better (i.e., smaller)
1744    regions being reported in error- and debug messages.
1745    
1746    ----------------------------------------------------------------------
1747    Name: Matthias Blume (blume (at) tti - c (dot) org)
1748    Date: 2004/10/08 22:50:00 CDT
1749    Tag: blume-20041008-cmkw
1750    Description:
1751    
1752    Fixed handling of keywords in .cm files: After seeing "is" the lexer
1753    treats subsequent occurrences of "group", "library", "source", "is",
1754    "*", and "-" as ordinary identifiers rather than keywords.
1755    
1756    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
1757    is supposed to accept a tool argument called "source", but this did
1758    not work because of the clash with the keyword.
1759    
1760    ----------------------------------------------------------------------
1761    Name: Matthias Blume (blume (at) tti - c (dot) org)
1762    Date: 2004/10/07 16:00:00 CDT
1763    Tag: blume-20041007-cleanup
1764    Description:
1765    
1766    Assorted cleanup work:
1767    
1768      - got rid of intstrmap in favor of using the library's
1769        hash table implementation
1770      - threw out most of the pathnames stuff, as it was not used anyway
1771      - simplified tokentable implementation
1772      - fixed some minor spelling errors
1773    
1774    ----------------------------------------------------------------------
1775    Name: Matthias Blume (blume (at) tti - c (dot) org)
1776    Date: 2004/10/06 15:15:15 CDT
1777    Tag: blume-20041006-handler
1778    Description:
1779    
1780    Cleaned up the absyn to reflect the invariant that HANDLE always
1781    carries a FNexp as part of the type definition.  This eliminates some
1782    superfluous sanity checks at runtime down the road.
1783    
1784    Some minor cleanup of the btrace code.
1785    
1786    ----------------------------------------------------------------------
1787    Name: Matthias Blume (blume (at) tti - c (dot) org)
1788    Date: 2004/10/01 10:20:30 CDT
1789    Tag: blume-20041001-slave
1790    Description:
1791    
1792    Added hack to make slave mode work in the presence of the version
1793    tool.  (Still, since the master does two passes over the code for
1794    CMB.make, the release number gets bumped twice when slaves are
1795    attached.  I don't know if this is worth fixing...)
1796    
1797    ----------------------------------------------------------------------
1798    Name: Matthias Blume (blume (at) tti - c (dot) org)
1799    Date: 2004/09/30 10:55:00 CDT
1800    Tag: blume-20040930-version
1801    Description:
1802    
1803    * Moved the "version" magic into its own little library under
1804      src/system/smlnj/internal.  This avoids expensive reconstruction of
1805      a stable src/compiler/core.cm.
1806    
1807    * At the same time, structure CompilerVersion is now known as
1808      structure SMLNJVersion.
1809    
1810    * Arranged for the version tool to NOT kick in when rebuilding the system
1811      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
1812      Also, loading the versiontool does not work when rebuilding the system
1813      because CM is not properly initialized at that time.
1814    
1815    ----------------------------------------------------------------------
1816    Name: Matthias Blume (blume (at) tti - c (dot) org)
1817    Date: 2004/09/29 14:00:00 CDT
1818    Tag: blume-20040929-autoversion
1819    Description:
1820    
1821    Implemented some CM magic to have
1822        file src/compiler/TopLevel/main/version.sml
1823    generated automagically.
1824    The version is taken from two files: config/version and config/release.
1825    The first is expected to contain a two-part version number such as 110.49.
1826    The second should contain a single number, but it may be missing.
1827    
1828    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
1829    time the version tool is loaded (which is the first time you say CMB.make),
1830    then the tool will increment the value stored in config/release every
1831    time CMB.make is invoked.
1832    
1833    The binfile format is now insensitive to anything beyond the first
1834    two components of a version number, so bumping the release does not render
1835    binfiles incompatible.  Auto-bumping can be used to keep track of versions
1836    during development without invalidating existing binfiles.
1837    
1838    In any case, every CMB.make updates the date information in version.sml.
1839    (This is the date that is printed in the banner.)
1840    
1841    ----------------------------------------------------------------------
1842    Name: Matthias Blume (blume (at) tti - c (dot) org)
1843    Date: 2004/09/28 10:53:00 CDT
1844    Tag: blume-20040928-controls
1845    Description:
1846    
1847    Some cleanup of the controls code.
1848    
1849    ----------------------------------------------------------------------
1850    Name: Matthias Blume (blume (at) tti - c (dot) org)
1851    Date: 2004/09/27 22:08:00 CDT
1852    Tag: blume-20040927-controls
1853    Description:
1854    
1855    Added two pieces of functionality to the Controls interface:
1856    
1857    1.   val save'restore: 'a control -> unit -> unit
1858    
1859       grabs the current value of the control in stage 1 and restores it
1860       in stage 2.
1861    
1862    2.   val set' : 'a control * 'a -> unit -> unit
1863    
1864       stores the given value into the control in stage 2 (i.e., delayed)
1865       but does all error checking in stage 1.
1866       (This is for string controls that need to do parse their argument --
1867        something that might fail.  In some cases, notably in CM, one
1868        already knows the intended argument but wants to delay the actual
1869        assignment until a time when error recovery would be more difficult.)
1870    
1871    Changed the handling of controls in tool arguments to classes "sml" and
1872    "lazysml":
1873       - use Controls.save'restore as a more robust way of restoring the
1874         old value (in particular: without having to re-parse the string)
1875       - use controls to handle the "overload" keyword in the init group
1876         (I believe this change actually fixes a long-standing obscure bug.)
1877    
1878    ----------------------------------------------------------------------
1879    Name: Matthias Blume (blume (at) tti - c (dot) org)
1880    Date: 2004/09/27 17:00:00 CDT
1881    Tag: blume-20040927-lazysml
1882    Description:
1883    
1884    Added a new tool class called "lazysml" to CM's tool chest.  The only
1885    difference to "sml" is that compilation is done with Control.lazysml
1886    set to true.  A source of class "lazysml" is automatically recognized
1887    by a file name suffix of ".lml".
1888    
1889    In addition to the above feature, the original class "sml" now also
1890    supports a tool argument "lazy" which has the same effect.  As a
1891    result, the following three lines are equivalent:
1892    
1893        foo.sml : lazysml
1894        foo.sml : sml (lazy)
1895        foo.sml (lazy)
1896    
1897    The setting goes into effect both during parsing and during
1898    compilation.  The original setting is restored right after parsing and
1899    after compilation, respectively.
1900    
1901    In addition to all the above, there is also a general mechanism to set
1902    ANY of the "controls" that are available at the command line via
1903    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
1904    apply as well. (In fact, "lazy" is implemented as a special case of
1905    the general mechanism.)
1906    
1907    The .cm file syntax uses a new keyword tool argument called "with".
1908    There are several ways of indicating the desired settings:
1909    
1910        foo.sml (with:parser.quotations=true)
1911        foo.sml (with:(name:parser.quotations value:true))
1912        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
1913        foo.sml (with:(name1=value1 name2=value2 ...))
1914        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
1915    
1916        etc.
1917    
1918    Another possible abbreviation is to leave out the =v or value:v part
1919    if the name refers to a boolean control (in which case the value is
1920    taken to be true).  Thus, one could get lazy sml also by saying:
1921    
1922        foo.sml (with:parser.lazy-keyword=true)
1923        foo.sml (with:parser.lazy-keyword)
1924        foo.sml (with:(name:parser.lazy-keyword value:true))
1925        foo.sml (with:(name:parser.lazy-keyword))
1926    
1927    ----------------------------------------------------------------------
1928    Name: Matthias Blume (blume (at) tti - c (dot) org)
1929    Date: 2004/09/24 16:22:00 CDT
1930    Tag: blume-20040924-ppc-long-branch
1931    Description:
1932    
1933    Turned message about "emiting long form of branch" off by default.
1934    Added a control flag to turn it back on when desired.
1935    
1936    ----------------------------------------------------------------------
1937    Name: Matthias Blume (blume (at) tti - c (dot) org)
1938    Date: 2004/09/24 16:05:00 CDT
1939    Tag: blume-20040924-rounding
1940    Description:
1941    
1942    Applied patch for setting rounding modes under Mac OS X.  Thanks to
1943    Melissa O'Neill for providing the code!
1944    
1945    ----------------------------------------------------------------------
1946    Name: Matthias Blume (blume (at) tti - c (dot) org)
1947    Date: 2004/09/23 17:30:00 CDT
1948    Tag: blume-20040923-envvars
1949    Description:
1950    
1951    1. Changed definition of type ControlRegistry.registry_tree to
1952       include control_info (i.e., the name of the controlling environment
1953       variable).
1954    
1955    2. Added command-line flags -e and -E to print the names of environment
1956       variables that can be used to control internal settings.
1957       (This uses the new API mentioned in 1.)
1958    
1959    ----------------------------------------------------------------------
1960    Name: Matthias Blume (blume (at) tti - c (dot) org)
1961    Date: 2004/09/13 16:50:00 CDT
1962    Tag: Release_110_49
1963    Description:
1964    
1965    New working version (110.49).  NEW BOOTFILES!
1966    
1967    ----------------------------------------------------------------------
1968    Name: Matthias Blume
1969    Date: 2004/09/13 16:20:00 CDT
1970    Tag: blume-20040913-config-mlrisc
1971    Description:
1972    
1973    Put target "mlrisc" back into the default list.
1974    (There is no harm in having it, and some users have expressed their
1975    wish to have "mlrisc" included by default.)
1976    
1977    ----------------------------------------------------------------------
1978    Name: John Reppy
1979    Date: 2004/09/13
1980    Tag: jhr-20040913-signals
1981    Description:
1982    
1983    Fixed the signal masking code to properly nest mask/unmask operations
1984    on a per-signal basis.
1985    
1986    ----------------------------------------------------------------------
1987    Name: Matthias Blume (blume (at) tti - c (dot) org)
1988    Date: 2004/09/08 13:20:00 CDT
1989    Tag: blume-20040908-heap-magic
1990    Description:
1991    
1992    Bumped the heap macig number to 0x09082004 to account for the changed
1993    layout of the ML frame under MacOS X.
1994    
1995    ----------------------------------------------------------------------
1996    Name: Allen Leung (leunga (at) reservoir (dot) com)
1997    Date: 2004/09/03 11:26:00 EST
1998    Tag: leunga-20040903-cygwin-install
1999    Description:
2000    
2001       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
2002    The Cygwin runtime is turned on by setting the environment
2003    variable SMLNJ_CYGWIN_RUNTIME to 1.
2004    
2005    ----------------------------------------------------------------------
2006    Name: Matthias Blume (blume (at) tti - c (dot) org)
2007    Date: 2004/08/31 17:15:00 CDT
2008    Tag: blume-20040831-core
2009    Description:
2010    
2011    Added some exports to src/compiler/core.cm upon request by J. Joemann.
2012    
2013    ----------------------------------------------------------------------
2014    Name: Matthias Blume (blume (at) tti - c (dot) org)
2015    Date: 2004/08/30 17:55:00 CDT
2016    Tag: blume-20040830-installer
2017    Description:
2018    
2019    Upon request by Johannes Joemann:
2020    
2021    - improved ML code of installer to fall back to coping when renaming
2022      fails (i.e., when source and target are on different file systems);
2023      the code compiles but has yet to be tested in anger
2024    - removed mlrisc from list of default targets (config/targets)
2025    
2026    ----------------------------------------------------------------------
2027    Name: Matthias Blume (blume (at) tti - c (dot) org)
2028    Date: 2004/08/27 17:20:00 CDT
2029    Tag: blume-20040827-ptreql
2030    Description:
2031    
2032    Added ptreql primop to structure InlineT (upon request from Larry
2033    Paulson).
2034    
2035    ----------------------------------------------------------------------
2036    Name: Allen Leung (leunga (at) reservoir (dot) com)
2037    Date: 2004/08/15 21:21:00 EST
2038    Tag: leunga-110_48-udgraph
2039  Description:  Description:
2040    
2041    Another bug fix from Carl Hauser:
2042    
2043    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
2044    > 48c48
2045    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
2046    > e::L)
2047    > ---
2048    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
2049    > Without this, any deletion of an edge in an undirected graph does severe
2050    > violence to the graph.
2051    
2052  ----------------------------------------------------------------------  ----------------------------------------------------------------------
2053  Name: Allen Leung (leunga (at) reservoir (dot) com)  Name: Allen Leung (leunga (at) reservoir (dot) com)
2054  Date: 2004/08/10 23:35:00 EST  Date: 2004/08/10 23:35:00 EST
# Line 22  Line 2059 
2059    
2060  ----------------------------------------------------------------------  ----------------------------------------------------------------------
2061  Name: Matthias Blume (blume (at) tti - c (dot) org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
2062  Date: 2004/10/04 12:00:00 CDT  Date: 2004/08/10 12:00:00 CDT
2063  Tag: Release_110_48  Tag: Release_110_48
2064  Description:  Description:
2065    

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

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