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 1389, Wed Sep 24 20:09:40 2003 UTC sml/trunk/NOTES/HISTORY revision 2617, Tue May 29 16:03:29 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/29
19    Description:
20    
21    A number of fixes related to the formatting of dates.  These include fixes
22    for bugs #1415 and #1416.  We also now correctly handle format characters that
23    lie outside the specified set.
24    
25    ----------------------------------------------------------------------
26    Name: Matthias Blume (http://www.tti-c.org/blume/)
27    Date: 2007/05/23 22:30:00 CDT
28    Description:
29    
30    CMB (and CM) now automatically defines the CM "preprocessor" symbol
31    NO_PLUGINS during "makeml -rebuild" or when CM operates in "slave" mode.
32    
33      (In addition, CMB_REBUILD_MODE is defined for makeml -rebuild,
34       CM_SLAVE_MODE is defined in attached slaves while running CM.make
35       or CM.rebuild, and CMB_SLAVE_MODE is defined in attached slaves
36       while running CMB.make.  The point is that the single symbol
37       NO_PLUGINS is definde in all three cases.)
38    
39    I changed the three locations within the sources that get compiled
40    during CMB.make where ml-yacc or ml-lex input is processed: When
41    NO_PLUGINS defined, then the use of the mlyacc and mllex tools
42    is bypassed.
43    
44    When bootstrapping new versions of the compiler, there can be
45    situations where the plugin tools for ml-yacc and ml-lex (or ml-ulex)
46    are not available or otherwise not operational.  In this case one can
47    manually define the NO_PLUGINS symbol prior to running CMB.make().  To
48    do so, the following command should be issued at the interactive
49    prompt:
50    
51       #set (CMB.symval "NO_PLUGINS") (SOME 1);
52    
53    A CMB.make with NO_PLUGINS defined relies on the existence of the
54    files that normally would be generated by ml-yacc and ml-lex.
55    (Copies of these files are in the repository.)
56    
57    ----------------------------------------------------------------------
58    Name: David MacQueen (dbm@cs.uchicago.edu)
59    Date: 2007/5/23 17:23:00 CDT
60    Revision: 2603
61    Description:
62    
63    2nd merge of base from primop-branch-3 into the trunk.
64    Additional bug fixes included:
65     Date.scan and Date.fromString fixed;
66     Overloading resolution fixed and some type printing problems corrected.
67    
68    ----------------------------------------------------------------------
69    Name: Matthias Blume (http://www.tti-c.org/blume/)
70    Date: 2007/05/23 09:50:00 CDT
71    Description:
72    
73    Changed the installation mechanism for CM tool plugins.  These are
74    just libaries and now get installed like ordinary libaries.
75    
76    There are now a number of new installation targets that give some
77    fine-grain control over what classes and suffixes are known, and what
78    they will map to.
79    See config/targets for details.
80    
81    The code that caused plugin installation as part of running a
82    tool's "build" script has been removed.  (The build script is for
83    building, not for installing.)
84    
85    ----------------------------------------------------------------------
86    Name: Matthias Blume (http://www.tti-c.org/blume/)
87    Date: 2007/05/22 11:50:00 CDT
88    Description:
89    
90    Added a boolean control named cm.tolerate-tool-failures (env. variable
91    name: CM_TOLERATE_TOOL_FAILURES).  The default is false and makes
92    CM fail if a shell tool reports a non-success exit status.  If
93    the control is set to true, then CM will press on after tool failures
94    in the event that the target files exist (even though they are
95    considered outdated).  Turning the control to true can be useful for
96    bootstrapping.
97    
98    ----------------------------------------------------------------------
99    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
100    Date: 2007/05/19
101    Description:
102    
103    Merge of ml-lpt revisions for 110.64.
104    
105    The name of several ml-lpt-lib modules has changed:
106      Repair        => AntlrRepair
107      StreamPos     => AntlrStreamPos
108      ErrHandlerFn  => AntlrErrHandler
109      EBNF          => AntlrEBNF
110    
111    The ml-antlr specification format has changed: declarations such as
112    %tokens and nonterminal definitions can occur *multiple* times in the
113    same specification.  The semantics are such that each new declaration
114    extends the previous ones.  This does not apply to %start or %name,
115    of course.
116    
117    Importing a grammar via %import now includes *all* declarations in from
118    the imported grammar, except for %name, %entry, and %start.  Tokens
119    and nonterminals can be dropped using the new %dropping clause of the
120    %import directive; the separate %drop and %extend have been removed.
121    
122    We now allow optional type annotations on nonterminals, using the %nonterms
123    directive as in ml-yacc.
124    
125    The refcell construct is now implemented using SML's regular reference
126    cells, so the :== and !! notation has been deprecated.
127    
128    The ml-antlr tool now does much more checking of specifications, and
129    its error messages have been greatly improved.  Error repair for
130    generated parsers has been completely rewritten, and is now both
131    much faster and more accurate.
132    
133    ml-ulex is now more lenient with escape codes (non-SML-standard
134    escape codes are now interpreted literally, so e.g. \| denotes "|").
135    Also, character classes may now include a "-" character at the beginning
136    as is standard in most other regexp tools.
137    
138    All of these changes are documented in the user guide, which has
139    been updated and improved with this merge.
140    
141    ----------------------------------------------------------------------
142    Name: David MacQueen (http://www.cs.uchicago.edu/~jhr)
143    Date: 2007/05/03
144    Revision: r2492
145    Description:
146    
147    Merge of the primop3 branch (base) into the trunk to create 110.63.1.
148    Significant changes in FLINT and the front end, mostly having to do
149    with a reorganized system for handling primops.  Various bug fixes
150    and improvements in printing signatures.
151    
152    ----------------------------------------------------------------------
153    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
154    Date: 2007/05/02
155    Description:
156    
157    Preliminary commit of large ml-lpt revisions (more to come for 110.64).
158    The ml-antlr specification format has changed: declarations such as
159    %tokens and nonterminal definitions can occur *multiple* times in the
160    same specification.  The semantics are such that each new declaration
161    extends the previous ones.  Grammar extension constructs have also
162    changed.  We now allow type annotations on nonterminals.  Finally,
163    the refcell construct is now implemented using SML's regular reference
164    cells, so the :== and !! notation has been deprecated.  All of these
165    changes will appear in the 110.64 user guide for ml-lpt.
166    
167    The ml-antlr tool now does much more checking of specifications, and
168    its error messages have been greatly improved.  There has also been
169    some work on the error repair process for generated parsers, but this
170    will be further improved in 110.64.
171    
172    ----------------------------------------------------------------------
173    Name: David MacQueen (http://www.cs.uchicago.edu/~jhr)
174    Date: 2007/05/03
175    Revision: r2492
176    Description:
177    
178    Merge of the primop3 branch (base) into the trunk to create 110.63.1.
179    Significant changes in FLINT and the front end, mostly having to do
180    with a reorganized system for handling primops.  Various bug fixes
181    and improvements in printing signatures.
182    
183    ----------------------------------------------------------------------
184    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
185    Date: 2007/05/02
186    Description:
187    
188    Preliminary commit of large ml-lpt revisions (more to come for 110.64).
189    The ml-antlr specification format has changed: declarations such as
190    %tokens and nonterminal definitions can occur *multiple* times in the
191    same specification.  The semantics are such that each new declaration
192    extends the previous ones.  Grammar extension constructs have also
193    changed.  We now allow type annotations on nonterminals.  Finally,
194    the refcell construct is now implemented using SML's regular reference
195    cells, so the :== and !! notation has been deprecated.  All of these
196    changes will appear in the 110.64 user guide for ml-lpt.
197    
198    The ml-antlr tool now does much more checking of specifications, and
199    its error messages have been greatly improved.  There has also been
200    some work on the error repair process for generated parsers, but this
201    will be further improved in 110.64.
202    
203    ----------------------------------------------------------------------
204    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
205    Date: 2007/04/24
206    Description:
207    
208    More Basis fixes: The Char.fromString (etc.) functions did not handle
209    the "\uxxxx" escape sequence.  There is still an outstanding bug with
210    String.fromString the tail is a format escape.  I added a comment to
211    this effect in Basis/Implementation/string.sml.
212    Thanks to Andreas Rossberg.
213    
214    ----------------------------------------------------------------------
215    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
216    Date: 2007/04/24
217    Description:
218    
219    Added next function to Fifo and Queue modules in the SML/NJ Library.
220    
221    ----------------------------------------------------------------------
222    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
223    Date: 2007/04/23
224    Description:
225    
226    More Basis fixes: Time.fmt dropped the leading "~" for negative time
227    values that had no whole part.
228    
229    ----------------------------------------------------------------------
230    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
231    Date: 2007/04/23
232    Description:
233    
234    More Basis fixes: the OS.Path module did not include the InvalidArc
235    exception and did not do sufficient argument checking.
236    Thanks to Stephen Weeks and Adam Chilpala.
237    
238    ----------------------------------------------------------------------
239    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
240    Date: 2007/04/16
241    Description:
242    
243    Fixed an unbound functor bug in the AMD64 CM file.
244    
245    ----------------------------------------------------------------------
246    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
247    Date: 2007/04/12
248    Description:
249    
250    Substantially changed the signature and implementation of AMD64
251    SVID.  It now looks similar to the ia32 SVID, yet uses staged
252    allocation.
253    
254    ----------------------------------------------------------------------
255    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
256    Date: 2007/04/07
257    Description:
258    
259    More Basis fixes: the WORD signature was missing {to,from}Large.
260    Thanks to Andreas Rossberg.
261    
262    ----------------------------------------------------------------------
263    Name: Matthias Blume (http://www.tti-c.org/blume/)
264    Date: 2007/03/22 16:07:00 CDT
265    Tag: release-110.63
266    Description:
267    
268    Bumped version number to 110.63.
269    
270       !!!NEW BOOTFILES!!!
271    
272    ----------------------------------------------------------------------
273    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
274    Date: 2007/03/19
275    Description:
276    
277    Fixed bogus operand sizes in AMD64 instruction spilling.
278    
279    ----------------------------------------------------------------------
280    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
281    Date: 2007/03/19
282    Description:
283    
284    Fixed a number of inconsistencies between the Posix.TTY structure
285    and the Basis specification.  Thanks to Adam Chilpala.
286    
287    ----------------------------------------------------------------------
288    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
289    Date: 2007/02/26
290    Description:
291    
292    Added preliminary support in MLRISC for Staged Allocation, a technique
293    for specifying calling conventions (see
294    http://www.eecs.harvard.edu/~nr/pubs/staged-abstract.html).
295    Initially, we plan to use this code to generate C calls for the AMD64.
296    
297    The staged allocation code base resides in MLRISC/staged-allocation,
298    and specialized calling conventions go in MLRISC/ARCH/staged-allocation.
299    
300    ----------------------------------------------------------------------
301    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
302    Date: 2007/02/20
303    Description:
304    
305      Bug fix: when SaveCState was called with two values to save, a subsequent
306      GC could cause the RestoreCState to fail because the saved state had been
307      promoted to tagless pair.
308    
309    ----------------------------------------------------------------------
310    Name: Allen Leung (leunga (at) reservoir (dot) com)
311    Date: 2007/02/20 19:08:00 EST
312    Description:
313    
314        Bug triggered by:
315    
316        val a1 = Word8Array.array(a1, 0w0);
317        val _  = Word8Array.update(a1, 0, 0w128);
318    
319        x86MCEmitter crashed when the immediate operand to MOVB was outside
320    of the range -128 ... 127.  I've changed the code so that the range
321    check is disabled.   Only the low order 8 bits of the immediate operand
322    are now significant.
323    
324    
325    ----------------------------------------------------------------------
326    Name: Matthias Blume (http://www.tti-c.org/blume/)
327    Date: 2007/02/15 09:20:00 CST
328    Description:
329    
330    Eliminated any mention of lexgen.  (Lexgen was an early precursor
331    to ml-ulex.)
332    
333    You should update your admin directory, so the shell scripts for
334    maintaining your local copy of the repository reflect this change.
335    
336    ----------------------------------------------------------------------
337    Name: Matthias Blume (http://www.tti-c.org/blume/)
338    Date: 2007/02/14 15:45:00 CST
339    Description:
340    
341    Fixed bug in CM's parallel make facility that failed to have
342    the master re-link modules after letting slaves compile them.
343    
344    ----------------------------------------------------------------------
345    Name: Matthias Blume (http://www.tti-c.org/blume/)
346    Date: 2007/02/12 15:10:00 CST
347    Description:
348    
349    Fixed typo in ml-build script that prevented library anchors
350    from being registered.
351    
352    ----------------------------------------------------------------------
353    Name: Matthias Blume (http://www.tti-c.org/blume/)
354    Date: 2007/02/02 15:20:00 CST
355    Tag: release-110.62
356    Description:
357    
358    New working release (110.62).  NEW BOOTFILES!
359    
360    ----------------------------------------------------------------------
361    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
362    Date: 2007/01/31
363    Description:
364    
365    Brought ml-lpt manual up-to-date with the code.  Many minor
366    improvements to the tools, and a few minor bugfixes.  Prepared
367    ml-lpt-lib for integration with new UTF8 structure.  Changed
368    the interface for creating streams in ml-ulex (we now support
369    stream creation from several kinds of sources).  Overall, the
370    tools are now quite stable, and their interfaces are unlikely to
371    change in a way that would break compatibility.  More work,
372    however, is needed in the documentation.
373    
374    ----------------------------------------------------------------------
375    Name: Matthias Blume (http://www.tti-c.org/blume/)
376    Date: 2007/02/01 10:05:00 CST
377    Description:
378    
379    Implemented library installer.  Moved CM plugin code for
380    ml-burg, ml-lex, and ml-yacc out of CM source tree and into
381    their respective trees.  Implemented CM plugin for ml-ulex
382    and ml-antlr.  Used library installer for ml-burg, ml-ulex,
383    and ml-antlr.
384    
385    For ml-yacc and ml-lex we continue to have permanently "plugged-in"
386    CM tools.  (It turns out to be too messy to do otherwise because
387    there is too much code that during installation relies on the presence
388    of these tools -- resulting in a tricky ordering problem.)
389    
390    ----------------------------------------------------------------------
391    Name: Matthias Blume (http://www.tti-c.org/blume/)
392    Date: 2007/01/30 11:05:00 CST
393    Description:
394    
395    Added SMLofNJ.shiftArgs which is like a shell's "shift" command.
396    Modified CM's startup code to use shiftArgs as it processes
397    command line arguments.  This way, the init code in each .sml-file
398    or library that is mentioned at the top level will see only
399    those arguments that have not yet been processed at this point.
400    In other words, the init code can "seize control" and process the
401    remaining command line.
402    
403    ----------------------------------------------------------------------
404    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
405    Date: 2007/01/30
406    Description:
407    
408    Added fromList function to the ORD_SET interface and lookup to the
409    ORD_MAP interface.  See the SML/NJ Library CHANGES file for details.
410    
411    ----------------------------------------------------------------------
412    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
413    Date: 2007/01/28
414    Description:
415    
416    Added the UTF8 structure and signature from the Moby compiler to
417    the SML/NJ library (and the CML library).  These modules will replace
418    the version in the ml-lpt-lib.
419    
420    ----------------------------------------------------------------------
421    Name: Matthias Blume (http://www.tti-c.org/blume/)
422    Date: 2007/01/26 15:10:00 CST
423    Description:
424    
425    Added entries to handle ml-lpt-lib.cm in installer.
426    
427    ----------------------------------------------------------------------
428    Name: Matthias Blume (http://www.tti-c.org/blume/)
429    Date: 2006/12/15 11:10:00 CST
430    Tag: release-110.61
431    Description:
432    
433    New working release (110.61).  NEW BOOTFILES!
434    
435    This supersedes the pre-brown-paper-bug release (see below).
436    
437    ----------------------------------------------------------------------
438    Name: Matthias Blume (http://www.tti-c.org/blume/)
439    Date: 2006/12/15 11:00:00 CST
440    Description:
441    
442    Fixed brown-paper-bag bug with CM's pathname handling, which made
443    installation fail under Win32.
444    
445    ----------------------------------------------------------------------
446    Name: Matthias Blume (http://www.tti-c.org/blume/)
447    Date: 2006/12/14 12:00:00 CST
448    Description:
449    
450    Obsolete!
451    
452    [New working release (110.61).  NEW BOOTFILES!]
453    
454    ----------------------------------------------------------------------
455    Name: John Reppy (http://cs.uchicago.edu/~jhr)
456    Date: 2006/14/06 09:50:00 CST
457    Description:
458    
459    Fixed the code in runtime/c-libs/posix-tty/{tcgetattr,tcsetattr}.c to
460    get the c_cc termios data copied correctly.  Also moved the allocation
461    of the string to avoid problems if it caused a GC.
462    
463    Thanks to Timothy Bourke for the bug report and fix.
464    
465    ----------------------------------------------------------------------
466    Name: Matthias Blume (http://www.tti-c.org/blume)
467    Date: 2006/12/08 09:50:00 CST
468    Description:
469    
470    Added code to CM's "standard shell tool" implementation which
471    causes it to tolerate (with a warning) the situation where the shell
472    command fails (e.g., due to the shell command's non-existence)
473    as long as all target files exist.
474    
475    This makes it possible to, e.g., build ml-yacc from sources even if
476    svn checkout messed up the time stamps on files in such a way that
477    yacc.grm is younger than yacc.grm.sml or yacc.grm.sig.  (Ml-yacc would
478    be needed to re-process yacc.grm, but obviously it might not yet be
479    available at that time.)
480    
481    ----------------------------------------------------------------------
482    Name: John Reppy (http://cs.uchicago.edu/~jhr)
483    Date: 2006/12/06 12:06:00 CST
484    Description:
485    
486    Fixed the types of recvVecFrom, recvVecFrom', recvVecFromNB, and
487    recvVecFromNB' in the SOCKET signature.  This error is actually
488    in the SML Basis specification too.
489    
490    ----------------------------------------------------------------------
491    Name: Matthias Blume (http://www.tti-c.org/blume/)
492    Date: 2006/12/05 22:40:00 CST
493    Description:
494    
495    CM now reports undefined anchors as errors and aborts execution
496    rather than silently pressing on using bogus values.
497    
498    ----------------------------------------------------------------------
499    Name: Matthias Blume (http://www.tti-c.org/blume/)
500    Date: 2006/11/29 10:00:00 CST
501    Description:
502    
503    Use Say.vsay for printing the "[autoloading]" message, so
504    #set CM.Control.verbose false (or -Ccm.verbose=false) can be used
505    to suppress them.
506    
507    ----------------------------------------------------------------------
508    Name: Matthias Blume (http://www.tti-c.org/blume/)
509    Date: 2006/11/10 11:00:00 CST
510    Description:
511    
512    Fixed bug in CM where "with:" specifications that affect compilation
513    (as opposed to parsing) were ignored.
514    
515    ----------------------------------------------------------------------
516    Name: Matthias Blume (http://www.tti-c.org/blume/)
517    Date: 2006/11/09 14:30:00 CST
518    Tag: release-110.60
519    Description:
520    
521    New working release (110.60).  NEW BOOTFILES!
522    
523    This is the first subversion-hosted release.  There are also changes
524    to the directory layout.  Here is a table:
525    
526    (All pathnames are relative to the SML/NJ "root" directory.)
527    
528      config -> config
529    
530      src/cm -> base/cm
531      src/compiler -> base/compiler
532      src/runtime -> base/runtime
533      src/system -> base/system
534    
535      src/cm/pgraph -> pgraph
536    
537      src/READMES -> base/READMES
538      src/$notefile -> base/NOTES/$notefile
539         for <notefile> in BOOT CVSNOTES CYGWININSTALL HISTORY INSTALL
540                           MACOSXINSTALL WININSTALL
541    
542      src/smlnj-lib -> smlnj-lib
543      src/MLRISC -> MLRISC
544      ckit -> ckit
545      src/cml -> cml
546      src/eXene -> eXene
547      src/heap2asm -> heap2asm
548      src/lexgen -> lexgen
549      src/ml-burg -> ml-burg
550      src/ml-lex -> ml-lex
551      src/ml-yacc -> ml-yacc
552      src/ml-nlffi-lib -> nlffi/lib
553      src/ml-nlffigen -> nlffi/gen
554      src/smlnj-c -> smlnj-c
555      src/tools/TraceDebugProf -> trace-debug-profile
556    
557    In addition, there is also a new
558    
559      ml-lpt
560    
561    directory containing two new program generator tools: ml-ulex and
562    ml-antlr (a lexer generator that handles unicode and an ANTRL-inspired
563    LL(k) parser generator). These tools are currently "beta-quality"
564    
565    The latest versios of the sources can now be obtained anonymously
566    via subversion.  For this, it is useful to first check out
567    
568       svn://smlnj-gforge.cs.uchicago.edu/smlnj/admin
569    
570    and put the resulting directory on your shell's PATH.  This provides
571    access to three shell scripts: checkout-all.sh, stat-all.sh,
572    and refresh-all.sh.
573    
574    To create a freshly checked-out copy of the sources, do
575    
576       checkout-all.sh [dir]
577    
578    where dir is the optional SML/NJ root directory (default is ".").
579    
580    This creates the above directory layout.  Each subdirectory of
581    the root is under individual subversion control.  The stat-all.sh
582    and refresh-al.sh scripts apply "svn stat" or "svn update" to
583    each of these subtrees.
584    
585    ----------------------------------------------------------------------
586    Name: Matthias Blume (http://www.tti-c.org/blume/)
587    Date: 2006/11/02 12:20:00 CST
588    Description:
589    
590    Reorganized directory layout.
591    
592    This is a temporary solution, more reorganization is to come.
593    
594    The basic idea is to have a number of toplevel trees, each corresponding
595    to a well-defined part of the overall system.  Each part can be
596    maintained individually, even in separate source repositories,
597    although currently we still serve everything out of the main
598    smlnj-gforge tree.
599    
600    Installer and and scripts have been updated to reflect the new
601    layout.  The installer (base/src/system/smlnj/installer) is now
602    "scriptable" to avoid burning too much knowledge about the
603    layout into SML source code.  The main script used by the installer
604    is in config/actions.
605    
606    The main change is that many of the subdirectories of what used to
607    be known as "src" have moved to the toplevel.  The "src" directory
608    itself has moved down into a subtree called "base".  (We may eventually
609    get rid of the extra level of indirection represented by "src".)
610    
611    The layout is now as follows:
612    
613      toplevel tree name | default repository
614                         | (using gf=svn://smlnj-gforge.cs.uchicago.edu/smlnj)
615      -------------------+----------------------------------------------------
616      config             | $gf/config/trunk
617                         |
618      base               | $gf/sml/trunk
619                         |
620      smlnj-lib          | $gf/smlnj-lib/trunk
621      MLRISC             | $gf/MLRISC/trunk
622                         |
623      ml-yacc            | $gf/ml-yacc/trunk
624      ml-lex             | $gf/ml-lex/trunk
625      ml-burg            | $gf/ml-burg/trunk
626      lexgen             | $gf/lexgen/trunk
627      heap2asm           | $gf/heap2asm/trunk
628                         |
629      cml                | $gf/cml/trunk
630      eXene              | $gf/eXene/trunk
631      ckit               | $gf/ckit/trunk
632      nlffi              | $gf/nlffi/trunk
633                         |
634      smlnj-c            | $gf/smlnj-c/trunk
635    
636    In $gf/admin there are a few useful shell scripts for checking out
637    and maintaining the entire collection of trees:
638    
639       admin/checkout-all.sh [dir]
640          -- optionally creates dir and checks out all trees from their
641             default repositories; if dir is missing, checkout into .
642       admin/refresh-all.sh [dir]
643          -- looks at all trees (from the above list) in dir (default: .)
644             and runs "svn update" if the tree exists and is under
645             subversion control;
646             non-existing or non-subversion trees are skipped
647       admin/stat-all.sh [dir]
648          -- like refresh-all.sh, but runs "svn stat" instead
649    
650    ----------------------------------------------------------------------
651    Name: Matthias Blume (http://www.tti-c.org/blume/)
652    Date: 2006/10/05 11:30:00 CDT
653    Tag: blume-20061005-merge-amd64
654    Description:
655    
656    Merged code for AMD64 backend (Mike Rainey's work).
657    Everything is hooked up but untested.
658    
659    ----------------------------------------------------------------------
660    Name: Matthias Blume (http://www.tti-c.org/blume/)
661    Date: 2006/05/17 14:00:00 CST
662    Tag: Release_110_59
663    Description:
664    
665    New working version (110.59).  NEW BOOTFILES!
666    
667    I am freezing 110.59.  Changes other than the version-number increase:
668    
669      eXene:
670    
671         * committed changes to eXene from Alley Stoughton:
672             "fixed bugs in X authorization and resource handling, as well
673              as in the pile and viewport widgets"
674    
675      Runtime:
676        * fixed linking problem with NetBSD 3.x.
677    
678      Lexgen:
679        * lexgen tool handles non-ascii characters in 7-bit mode the same
680          way that ml-lex does
681    
682        * lexgen propagates exceptions the same way that ml-lex does
683    
684      CML:
685        * Fixed a bug in the SyncVar polling functions (iGetPoll,
686          mTakePoll, and mGetPoll) that could lead to livelock.
687    
688    ----------------------------------------------------------------------
689    Name: Matthias Blume (http://www.tti-c.org/blume/)
690    Date: 2006/05/12 15:20:00 CST
691    Tag: blume-20060515-makedepend
692    Description:
693    
694    Implemented ml-makedepend (i.e., CM.sources) in a better (more robust)
695    way.  This should hopefully fix the ml-makedepend problem permanently.
696    
697    ----------------------------------------------------------------------
698    Name: Matthias Blume (http://www.tti-c.org/blume/)
699    Date: 2006/05/12 15:15:00 CST
700    Tag: blume-20060512-makedepend
701    Description:
702    
703    Fixed long-standing bug with ml-makedepend where it would output a
704    spurious dependency to a non-existing file.  (This is a simple fix.
705    It might need further looking into.)
706    
707    ----------------------------------------------------------------------
708    Name: Matthias Blume (http://www.tti-c.org/blume/)
709    Date: 2006/04/20 10:30:00 CDT
710    Tag: blume-20060420-heap2exec
711    Description:
712    
713    Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)
714    that enable heap2exec under Linux and FreeBSD.
715    
716    ----------------------------------------------------------------------
717    Name: John Reppy
718    Date: 2006/04/14
719    Tag:
720    Description:
721    
722    MLRISC changes:
723      1) renamed GAS_PSEUDO_OPS to AS_PSEUDO_OPS and put it in its own file.
724      2) added support for NOTB and XORB operators in pseudo-op expressions
725      3) added DarwinPseudoOp functor that supports Darwin's assembler syntax.
726      4) added support for 64-bit integer literals
727    
728    ----------------------------------------------------------------------
729    Name: Matthias Blume (http://www.tti-c.org/blume/)
730  Date: yyyy/mm/dd  Date: yyyy/mm/dd
731  Tag: <post-commit CVS tag>  Tag: Release_110_58
732    Description:
733    
734    New working version (110.58).  NEW BOOTFILES!
735    
736    ----------------------------------------------------------------------
737    Name: Matthias Blume (http://www.tti-c.org/blume/)
738    Date: 2006/03/01 22:15:00 CST
739    Tag: blume-20060301-lexgen
740    Description:
741    
742    Incorporated several bugfixes to lexgen.  Compiler now compiles to
743    fixpoint when using lexgen instead of ml-lex.
744    
745    ----------------------------------------------------------------------
746    Name: Matthias Blume (http://www.tti-c.org/blume/)
747    Date: 2006/02/28 22:45:00 CST
748    Tag: blume-20060228-lexgen
749    Description:
750    
751    Removed ml-flex and added lexgen instead, using Aaron Turon's newly
752    provided tarball.  The generated lexers still have problems.
753    
754    ----------------------------------------------------------------------
755    Name: Matthias Blume (http://www.tti-c.org/blume/)
756    Date: 2006/02/26 23:30:00 CST
757    Tag: blume-20060226-ml-flex
758    Description:
759    
760    Removed ml-flex' dependency on regexp-lib.cm.  Turned installation
761    of ml-flex on by default.
762    
763    ----------------------------------------------------------------------
764    Name: Matthias Blume (http://www.tti-c.org/blume/)
765    Date: 2006/02/24 16:30:00 CST
766    Tag: blume-20060224-ml-flex
767    Description:
768    
769    Added ml-flex sources.  Partially integrated, but should not be
770    turned on yet!  (Read: leave it commented-out in config/targets!)
771    
772    ----------------------------------------------------------------------
773    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
774    Date: 2006/02/23
775    Tag: jhr-20060223-x86-64
776    Description:
777    Changes to support building on x86-64 systems (using the 32-bit mode).
778    Also cleaned up signal handling on Linux.  Support for pre-2.2 Linux
779    kernels dropped.
780    
781    ----------------------------------------------------------------------
782    Name: Allen Leung (leunga (at) reservoir (dot) com)
783    Date: 2006/02/22 15:07:00 EST
784    Tag: leunga-20060222-mdl-gen
785    Description:
786    
787      CM has changed.  Updated the script for rebuilding the MLRISC generated
788    files.
789    
790    ----------------------------------------------------------------------
791    Name: Matthias Blume (http://www.tti-c.org/blume/)
792    Date: 2006/02/14 17:30:00 CST
793    Tag: blume-20060214-intel-mac
794    Description:
795    
796    Hooked code for Darwin-specific Intel ABI into main compiler.
797    (This is a temporary solution which relies on the fact that the
798    compiler itself does not use NLFFI.  Eventually we need to divorce
799    intel mac from generic x86 unix code and make separate sets of binaries.)
800    
801    ----------------------------------------------------------------------
802    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
803    Date: 2006/02/13
804    Tag: jhr-20060213-intel-mac
805    Description:
806    Changed MLRISC x86 CCalls for partial support of MacOS X ABI.
807    
808    ----------------------------------------------------------------------
809    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
810    Date: 2006/02/06
811    Tag: jhr-20060206-intel-mac
812    Description:
813    Changes to support MacOS X on Intel hardware.  The C-calls support in
814    MLRISC must also be updated to support the MacOS X ABI.
815    
816    ----------------------------------------------------------------------
817    Name: Matthias Blume (http://www.tti-c.org/blume/)
818    Date: 2005/12/16 00:15:00 CST
819    Tag: blume-20051216-cm
820    Description:
821    
822    Improved error reporting and handling in CM.
823    
824    ----------------------------------------------------------------------
825    Name: Matthias Blume (http://www.tti-c.org/blume/)
826    Date: 2005/11/21 14:00:00 CST
827    Tag: blume-20051121-html-lib
828    Description:
829    
830    Enabling $/html-lib.cm in config/preloads did not work.  This is fixed
831    now.  (Since the anchor mapping for html-lib.cm is not yet in effect
832    at the time when config/preloads is processed, the library has to
833    be referred to by another name.  In 110.57 this would be
834    $SMLNJ-LIB/HTML/html-lib.cm.  I arranged for $smlnj/smlnj-lib/html-lib.cm
835    to be valid as well.)
836    
837    Thanks to Todd Wilson (Fresno) for alerting me to this issue.
838    
839    ----------------------------------------------------------------------
840    Name: Matthias Blume (http://www.tti-c.org/blume/)
841    Date: 2005/11/19 13:45:00 CST
842    Tag: Release_110_57
843    Description:
844    
845    Moved release tag for 110.57.
846    
847    ----------------------------------------------------------------------
848    Name: Matthias Blume (http://www.tti-c.org/blume/)
849    Date: 2005/11/19 23:35:00 CST
850    Tag: blume-20051119-fish
851    Description:
852    
853    Fixed a problem in config/install.sh where it tries to "fish" the
854    name of the CM metadata directory from the wrong place (because
855    the physical location of basis.cm has changed).  Also, corrected the
856    path anchor for $/html-lib.cm.  (Thanks to M. Fluet for pointing out
857    these problems.)
858    
859    ----------------------------------------------------------------------
860    Name: Matthias Blume (http://www.tti-c.org/blume/)
861    Date: 2005/11/16 14:30:00 CST
862    Tag: blume-orig-110_57
863    Description:
864    
865    New working version (110.57).  NEW BOOTFILES!
866    
867    UPDATE: The release tag has been moved to include a fix for a brown-paper-
868            bag glitch (see above).
869    
870    ----------------------------------------------------------------------
871    Name: Matthias Blume (http://www.tti-c.org/blume/)
872    Date: 2005/11/16 10:25:00 CST
873    Tag: blume-22051116-btrace
874    Description:
875    
876    Fixed problem with bogus exception message when using back-trace
877    facility.
878    
879    ----------------------------------------------------------------------
880    Name: Matthias Blume (http://www.tti-c.org/blume/)
881    Date: 2005/11/15 22:35:00 CST
882    Tag: blume-22051115-array2copy
883    Description:
884    
885    Added simple implementation of Array2.copy.  (Warning: mostly untested.)
886    
887    ----------------------------------------------------------------------
888    Name: Matthias Blume (http://www.tti-c.org/blume/)
889    Date: 2005/11/15 21:35:00 CST
890    Tag: blume-22051115-versiontool
891    Description:
892    
893    Reversed change to src/system/smlnj/internals/versiontool.cm.  This
894    file gets loaded as a tool -- by the equivalent of CM.make during the
895    run of CMB.make.  Thus, CMB's path configuration is meaningless for
896    it.  Instead, it has the status of "user code", so it should use
897    $/basis.cm to refer to the Basis library.  (At least that's true for
898    the purpose of bootstrapping the previous change.  In the future it
899    might make sense to have versiontool.cm refer to
900    $smlnj/basis/basis.cm, i.e., the version of the Basis that the
901    compiler itself uses.)
902    
903    Also patched src/system/testml to have it activate those extra anchor
904    bindings in config/extrapathconfig.
905    
906    ----------------------------------------------------------------------
907    Name: Matthias Blume (http://www.tti-c.org/blume/)
908    Date: 2005/11/15 16:35:00 CST
909    Tag: blume-22051115-libraries
910    Description:
911    
912    This change affects the way the following libraries are tied into
913    the system:
914    
915       $/basis.cm
916       $/smlnj-lib.cm
917       $/pp-lib.cm
918       $/controls-lib.cm
919       $/html-lib.cm
920       $/ml-yacc-lib.cm
921    
922    These libraries are now internally (as seen from the source code
923    of the implementation itself) known by the following names:
924    
925       $smlnj/basis/basis.cm
926       $smlnj/smlnj-lib/smlnj-lib.cm
927       $smlnj/smlnj-lib/pp-lib.cm
928       $smlnj/smlnj-lib/controls-lib.cm
929       $smlnj/smlnj-lib/html-lib.cm
930       $smlnj/ml-yacc/ml-yacc-lib.cm
931    
932    This makes it possible to work with code that requires different
933    versions of these libraries, and which refers to these libraries using
934    their "default" names (i.e., the first set of names above).  In other
935    words, one can un-define or re-define those default names without
936    compromising the proper functioning of the compiler itself.
937    
938    A similar procedure had already been performed for several of the
939    MLRISC libraries that are linked into the compiler.  I did some
940    cleanup on this code.
941    
942    A new file in the config directory (named extrapathconfig) is
943    responsible for setting up path anchors that the compiler itself does
944    not need, but that are typically required by user code.
945    
946    ----------------------------------------------------------------------
947    Name: Matthias Blume
948    Date: 2005/11/07 17:05:00 CST
949    Tag: blume-20051107-slice
950    Description:
951    
952    Fixed erroneous out-of-bounds test in the "update" function of
953    various *ArraySlice modules.  (Thanks to Vesa A. Norrman for pointing
954    out the problem.)
955    
956    Pushed some Basis changes through ML-Lex, CML, and eXene.
957    
958    ----------------------------------------------------------------------
959    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
960    Date: 2005/11/07
961    Description:
962    Fixed a Basis incompatibility: The depreciated function Substring.all
963    was removed (use Substring.full instead).
964    
965    ----------------------------------------------------------------------
966    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
967    Date: 2005/11/05
968    Description:
969    Tweaked interval set API in SML/NJ library; see the CHANGES file for details.
970    
971    ----------------------------------------------------------------------
972    Name: Matthias Blume (http://www.tti-c.org/blume/)
973    Date: 2005/11/02 16:25:00 CST
974    Tag: blume-20051102-hex
975    Description:
976    
977    * Runtime system bootstrap code now accepts hex digits in BOOTLIST
978      in either upper case or lower case format.
979    * Pushed changes to names of Pack<N>{Big,Little} structures through
980      CML and eXene.
981    
982    ----------------------------------------------------------------------
983    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
984    Date: 2005/11/02
985    Description:
986    Fixed a Basis incompatibility: Pack<N>{Big,Little} structures should
987    be called PackWord<N>{Big,Little}.
988    
989    ----------------------------------------------------------------------
990    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
991    Date: 2005/10/28
992    Description:
993    Fixed a minor Basis incompatibility: hex digits should be upper case.
994    
995    ----------------------------------------------------------------------
996    Name: Matthias Blume (blume (at) tti - c (dot) org)
997    Date: 2005/10/25 16:00:00 CDT
998    Tag: Release_110_56
999    Description:
1000    
1001    New working version (110.56).  NEW BOOTFILES!
1002    
1003    ----------------------------------------------------------------------
1004    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1005    Date: 2005/10/25
1006    Description:
1007    Added interval sets to utility library (signatures INTERVAL_DOMAIN
1008    and INTERVAL_SET, and functor IntervalSetFn).
1009    
1010    ----------------------------------------------------------------------
1011    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
1012    Date: 2005/10/14
1013    Description:
1014    Add Zhong Shao's fix for datatype equality functions.
1015    
1016    ----------------------------------------------------------------------
1017    Name: Allen Leung (leunga (at) reservoir (dot) com)
1018    Date: 2005/10/14 12:30:00 EST
1019    Tag: leunga-20051014-x86-spill
1020    Description:
1021    
1022    Bug fix a bug found by Carl Hauser.
1023    There was a typo in the reload code for FCMP in x86SpillInstr.sml.
1024    
1025    ----------------------------------------------------------------------
1026    Name: Allen Leung (leunga (at) reservoir (dot) com)
1027    Date: 2005/10/14 11:15:00 EST
1028    Tag: leunga-20051014-x86-asm
1029    Description:
1030    
1031    Removed some debugging code in file x86Asm.sml.
1032    The function emit_operand was printing out debugging output.
1033    
1034    ----------------------------------------------------------------------
1035    Name: John Reppy
1036    Date: 2005/07/27
1037    Tag:
1038    Description:
1039    
1040    Fixed ml-lex to recognize "\r" as representing carriage return.
1041    
1042    ----------------------------------------------------------------------
1043    Name: John Reppy
1044    Date: 2005/07/27
1045    Tag:
1046    Description:
1047    
1048    Fixed ml-yacc to work on files with non-native end-of-line
1049    encodings (e.g., Windows text file on a Unix system).
1050    
1051    ----------------------------------------------------------------------
1052    Name: John Reppy
1053    Date: 2005/07/20
1054    Tag:
1055    Description:
1056    
1057    Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)
1058    to support HPUX 11.
1059    
1060    ----------------------------------------------------------------------
1061    Name: John Reppy
1062    Date: 2005/07/06
1063    Tag:
1064    Description:
1065    
1066    Changes to the SML/NJ library.  See smlnj-lib/CHANGES for details.
1067    
1068    ----------------------------------------------------------------------
1069    Name: Matthias Blume (blume (at) tti - c (dot) org)
1070    Date: 2005/07/06 00:45:00 CDT
1071    Tag: blume-20050706-slice-copy
1072    Description:
1073    
1074    Fixed reversed logic for deciding whether to "copy up" or "copy down"
1075    in *-array-slice.sml.
1076    
1077    ----------------------------------------------------------------------
1078    Name: Allen Leung (leunga (at) reservoir (dot) com)
1079    Date: 2005/05/31 17:00:00 EST
1080    Tag: leunga-20050531-cygwin-fault-2
1081    Description:
1082    
1083    A typo in the cygwin code fixed.
1084    
1085    ----------------------------------------------------------------------
1086    Name: Allen Leung (leunga (at) reservoir (dot) com)
1087    Date: 2005/05/31 16:47:00 EST
1088    Tag: leunga-20050531-cygwin-fault
1089    Description:
1090    
1091    Updated Cygwin's fault/signal handling to match the Windows version.
1092    Updated the export list.
1093    
1094    ----------------------------------------------------------------------
1095    Name: Matthias Blume (blume (at) tti - c (dot) org)
1096    Date: 2005/05/18 13:35:00 CDT
1097    Tag: Release_110_54
1098    Description:
1099    
1100    New working version (110.54).  NEW BOOTFILES!
1101    
1102    ----------------------------------------------------------------------
1103    Name: Matthias Blume (blume (at) tti - c (dot) org)
1104    Date: 2005/05/18 11:58:00 CDT
1105    Tag: blume-20050518-installer
1106    Description:
1107    
1108    Added support scripts for Mac OS X PackageMaker and modified
1109    config/install.sh so that it supports re-dumping a heap image
1110    after customization.
1111    
1112    ----------------------------------------------------------------------
1113    Name: Matthias Blume (blume (at) tti - c (dot) org)
1114    Date: 2005/05/18 10:55:00 CDT
1115    Tag: blume-20050518-realdiv-noovld
1116    Description:
1117    
1118    Un-overloaded / to work around bug in overloading resolution code.
1119    
1120    ----------------------------------------------------------------------
1121    Name: Matthias Blume (blume (at) tti - c (dot) org)
1122    Date: 2005/05/16 23:50:00 CDT
1123    Tag: blume-20050516-redump-heap
1124    Description:
1125    
1126    Added mechanism for re-creating a heap file for the interactive system
1127    after configuration variables have been changed.
1128    
1129       CM.redump_heap : string -> unit
1130    
1131    This is much like SMLofNJ.exportML, but starting from the resulting
1132    heap does not return to the caller of CM.redump_heap but
1133    restarts the interactive system from scratch.  The original call of
1134    CM.redump_heap does not return but ends the interactive session.
1135    Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.
1136    
1137    Internally, redump_heap winds the dynamic execution context back to
1138    the point where the original heap image was created and re-executes
1139    the heap image generation code in the boot code.
1140    
1141    ----------------------------------------------------------------------
1142    Name: Matthias Blume (blume (at) tti - c (dot) org)
1143    Date: 2005/05/09 21:55:00 CDT
1144    Tag: blume-20050509-word64
1145    Description:
1146    
1147    Added a hack to the existing hack known as Word64 to make fromString
1148    behave correctly.  I am still not sure whether Word64.scan will work
1149    as specified with respect to the interaction of radix and prefix.
1150    
1151    ----------------------------------------------------------------------
1152    Name: Allen Leung (leunga (at) reservoir (dot) com)
1153    Date: 2005/05/04 11:50:00 EST
1154    Tag: leunga-20050504-checkgc
1155    Description:
1156    
1157    Added a gc protocol checking phase.  This phase is enabled with
1158    the flag "check-gc".  "debug-check-gc" turns on the verbose mode.
1159    
1160    ----------------------------------------------------------------------
1161    Name: Matthias Blume (blume (at) tti - c (dot) org)
1162    Date: 2005/05/04 10:45:00 CDT
1163    Tag: blume-20050504-intinf
1164    Description:
1165    
1166    Fixed a bug in the implementation of div and mod for IntInf.
1167    Thanks to Neophytos Michael for reporting the problem.
1168    
1169    ----------------------------------------------------------------------
1170    Name: Matthias Blume (blume (at) tti - c (dot) org)
1171    Date: 2005/05/04 10:35:00 CDT
1172    Tag: blume-20050504-join
1173    Description:
1174    
1175    Added a "join" combinator to the ParserComb module in smlnj-lib.cm.
1176    
1177    ----------------------------------------------------------------------
1178    Name: Matthias Blume (blume (at) tti - c (dot) org)
1179    Date: 2005/02/28 23:40:00 CST
1180    Tag: blume-20050228-mVar
1181    Description:
1182    
1183    Fixed serious bug (brown paper bag variety) in new implementation of
1184    structure Atom in CML.  (I had accidentally used a mailbox instead of
1185    an mvar, leaving the door open for races.)
1186    
1187    ----------------------------------------------------------------------
1188    Name: Matthias Blume (blume (at) tti - c (dot) org)
1189    Date: 2005/02/25 15:00:00 CST
1190    Tag: Release_110_53
1191    Description:
1192    
1193    New working version (110.53).  NEW BOOTFILES!
1194    
1195    ----------------------------------------------------------------------
1196    Name: Matthias Blume (blume (at) tti - c (dot) org)
1197    Date: 2005/02/25 14:50:00 CST
1198    Tag: blume-20050225-susp
1199    Description:
1200    
1201    Brought back SMLofNJ.Susp.  The underlying suspension type is the one
1202    implemented in Core -- which means that it is the same as the one used
1203    by the lazy extension.
1204    
1205    ----------------------------------------------------------------------
1206    Name: Matthias Blume (blume (at) tti - c (dot) org)
1207    Date: 2005/02/24 16:50:00 CST
1208    Tag: blume-20050224-cml-atom
1209    Description:
1210    
1211    Simpler and at the same time more general implementation of structure
1212    Atom in CML.
1213    
1214    ----------------------------------------------------------------------
1215    Name: Matthias Blume (blume (at) tti - c (dot) org)
1216    Date: 2005/02/15 17:35:00 CST
1217    Tag: blume-20050215-tools
1218    Description:
1219    
1220    Created new "tools" directory under "src" and moved "TraceDebugProf"
1221    there.
1222    
1223    ----------------------------------------------------------------------
1224    Name: Matthias Blume (blume (at) tti - c (dot) org)
1225    Date: 2005/02/10 17:55:00 CST
1226    Tag: blume-20050210-longlong
1227    Description:
1228    
1229    Implemented "long long" arguments and results for NLFFI.  (Only the
1230    PPC/MacOS implementation is complete, the other backends still need to
1231    be updated.)
1232    
1233    ----------------------------------------------------------------------
1234    Name: Matthias Blume (blume (at) tti - c (dot) org)
1235    Date: 2005/01/24 17:40:00 CST
1236    Tag: blume-20050124-mlyacc
1237    Description:
1238    
1239    Minor cleanup in ML-Yacc rule printing mechanism.  This should fix a
1240    problem with certain "as" patterns which previously got rendered
1241    using incorrect syntax.
1242    
1243    ----------------------------------------------------------------------
1244    Name: Matthias Blume (blume (at) tti - c (dot) org)
1245    Date: 2005/01/18 12:00:00 CST
1246    Tag: blume-20050118-profile
1247    Description:
1248    
1249    Made time profiling code (interrupt handler) in runtime system aware
1250    of new array representation.
1251    
1252    ----------------------------------------------------------------------
1253    Name: Matthias Blume (blume (at) tti - c (dot) org)
1254    Date: 2005/01/14 18:00:00 CST
1255    Tag: blume-20050114-heap2exec
1256    Description:
1257    
1258    Implemented new (but still experimental) heap2exec facility.  This is
1259    tested under Mac OS X and should work under Linux (will test shortly).
1260    It will probably also work on the Sparc (will test some time later).
1261    
1262      - removed old "HACKED_STANDALONE" hack from runtime
1263    
1264    To be able to test this, uncomment the request for "heap2asm" in
1265    config/targets prior to installation.  (Notice that this is different
1266    from "heap2exec" mentioned below.  Not a typo.)
1267    
1268    To perform an actual test, run the command
1269    
1270       $ bin/heap2exec heapfile execfile
1271    
1272    (You can put heap2exec on your shell's path.)
1273    
1274    For example, run
1275    
1276      $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
1277    
1278    This will create a standalone executable called "mly" which you can
1279    then invoke directly as a command.
1280    
1281    ----------------------------------------------------------------------
1282    Name: Matthias Blume (blume (at) tti - c (dot) org)
1283    Date: 2005/01/07 11:44:00 CST
1284    Tag: blume-20050107-mlstring
1285    Description:
1286    
1287    fixed off-by-one error in ML_STRING macro (globals.c)
1288    
1289    ----------------------------------------------------------------------
1290    Name: Matthias Blume (blume (at) tti - c (dot) org)
1291    Date: 2004/12/23 18:00:00 CST
1292    Tag: blume-20041223-santa
1293    Description:
1294    
1295    Made ml-build script "smarter" (but only very little).
1296    
1297    ----------------------------------------------------------------------
1298    Name: Matthias Blume (blume (at) tti - c (dot) org)
1299    Date: 2004/12/21 15:05:00 CST
1300    Tag: blume-20041221-longlong
1301    Description:
1302    
1303    * Implemented access to signed and unsigned long long data in NLFFI.
1304    (The parameter-passing part of the picture has not complete. But
1305    data structure access seems to work.)
1306    
1307    * Fixed CM's incorrect assumption that the PPC is little-endian.
1308      (On the Mac, it is big-endian.  And that's currently our only
1309      PPC platform.)
1310    
1311    ----------------------------------------------------------------------
1312    Name: Matthias Blume (blume (at) tti - c (dot) org)
1313    Date: 2004/12/21 12:50:00 CST
1314    Tag: blume-20041221-memory
1315    Description:
1316    
1317    Some cleanup in the $c/memory.cm library: separated some concerns by
1318    moving allocation code and memory access code each into their own
1319    files.
1320    
1321    ----------------------------------------------------------------------
1322    Name: Allen Leung (leunga (at) reservoir (dot) com)
1323    Date: 2004/12/17 16:12:00 EST
1324    Tag: leunga-20041217-cygwin-smlnj-home
1325    Description:
1326    
1327        The Unix I/O library of SML/NJ on cygwin does not understand
1328    Windows style pathname, so problems arise when SMLNJ_HOME is set
1329    to a Windows style pathname.  _run-sml now converts SMLNJ_HOME
1330    to a POSIX pathname on cygwin.
1331    
1332    ----------------------------------------------------------------------
1333    Name: Matthias Blume (blume (at) tti - c (dot) org)
1334    Date: 2004/12/16 13:35:00 CST
1335    Tag: Release_110_52
1336    Description:
1337    
1338    Last-minute changes incorporated into 110.52.  Release tag moved.
1339    
1340    The changes:
1341       - HashString.hashString' -> HashString.hashSubstring
1342       - bug fix in UnivariateStats
1343    
1344    ----------------------------------------------------------------------
1345    Name: Matthias Blume (blume (at) tti - c (dot) org)
1346    Date: 2004/12/15 23:40:00 CST
1347    Tag: blume-20041215-hashSubstring
1348    Description:
1349    
1350    - HashString.hashString' -> HashString.hashSubstring
1351    - corresponding changes in atom.sml
1352    - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and
1353      added some comments
1354    
1355    ----------------------------------------------------------------------
1356    Name: Matthias Blume (blume (at) tti - c (dot) org)
1357    Date: 2004/12/15 15:30:00 CST
1358    Tag: (Release_110_52)
1359    Description:
1360    
1361    New working version (110.52).  NEW BOOTFILES!
1362    
1363    ----------------------------------------------------------------------
1364    Name: Matthias Blume (blume (at) tti - c (dot) org)
1365    Date: 2004/12/15 12:45:00 CST
1366    Tag: blume-20041215-spaces
1367    Description:
1368    
1369    More on the space problem (this time for Win32).
1370    
1371    ----------------------------------------------------------------------
1372    Name: Matthias Blume (blume (at) tti - c (dot) org)
1373    Date: 2004/12/14 17:30:00 CST
1374    Tag: blume-20041214-spaces
1375    Description:
1376    
1377    Hacked some of the scripts (in particular: the installer) to cope with
1378    spaces in filenames a bit better.  But beware: the current "solution"
1379    is likely still full of bugs and inherently incomplete.  (We need to
1380    do away with those shell scripts for a comprehensive solution.)
1381    
1382    ----------------------------------------------------------------------
1383    Name: Matthias Blume (blume (at) tti - c (dot) org)
1384    Date: 2004/12/13 14:45:00 CST
1385    Tag: blume-20041213-ml-makedepend
1386    Description:
1387    
1388    Fixed bug in code for ml-makedepend.
1389    
1390    ----------------------------------------------------------------------
1391    Name: Matthias Blume (blume (at) tti - c (dot) org)
1392    Date: 2004/12/09 16:30:00 CST
1393    Tag: blume-20041209-statistics
1394    Description:
1395    
1396    Added two simple but potentially useful statistics modules to SML/NJ Library.
1397    (See CHANGES file there.)
1398    
1399    ----------------------------------------------------------------------
1400    Name: Matthias Blume (blume (at) tti - c (dot) org)
1401    Date: 2004/12/01 16:50:00 CST
1402    Tag: blume-20041201-atom
1403    Description:
1404    
1405    smlnj-lib:
1406    
1407      Added function HashString.hashString' for substrings.
1408      Hand-inlined CharVector.foldl into HashString (for speed).
1409      Modified implementation of structure Atom to avoid extracting
1410      strings from substrings unless necessary.
1411      (Also see CHANGES file for smlnj-lib.)
1412    
1413    ----------------------------------------------------------------------
1414    Name: Matthias Blume (blume (at) tti - c (dot) org)
1415    Date: 2004/11/24 22:15:00 CST
1416    Tag: blume-20041124-cml
1417    Description:
1418    
1419    Made sure CML compiles when Position = Int64.
1420    
1421    ----------------------------------------------------------------------
1422    Name: Matthias Blume (blume (at) tti - c (dot) org)
1423    Date: 2004/11/24 14:30:00 CST
1424    Tag: blume-20041124-position
1425    Description:
1426    
1427    The compiler can now be compiled in a mode that makes structure Position
1428    equal to Int64.  The default, however, is unchanged (Position = Int31)
1429    for the time being.
1430    
1431    To enable 64-bit positions, use the following procedure:
1432    
1433    1. Start sml
1434    2. Autoload $smlnj/cmb.cm (if not already autoloaded)
1435    3. Type
1436          #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
1437    4. Run CMB.make() as usual.
1438    
1439    This is barely tested.  The only test so far was a little SML program
1440    counting the number of characters in an 8-gigabyte file by
1441    reading it character-by-character.  That test was successful.
1442    
1443    In support of 64-bit positions, a number of new functions have been
1444    added to the runtime system.
1445    
1446    ----------------------------------------------------------------------
1447    Name: Matthias Blume (blume (at) tti - c (dot) org)
1448    Date: 2004/11/23 14:45:00 CST
1449    Tag: blume-20041123-useFile
1450    Description:
1451    
1452    Fixed a problem with unhelpful error messages related to problems with
1453    .cm- or .sml files that appear as part of the sml command line.
1454    
1455    ----------------------------------------------------------------------
1456    Name: Matthias Blume (blume (at) tti - c (dot) org)
1457    Date: 2004/11/18 15:40:00 CST
1458    Tag: Release_110_51
1459    Description:
1460    
1461    New working version (110.51).  NEW BOOTFILES!
1462    
1463    ----------------------------------------------------------------------
1464    Name: Matthias Blume (blume (at) tti - c (dot) org)
1465    Date: 2004/11/18 15:35:00 CST
1466    Tag: <none>
1467    Description:
1468    
1469    Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5
1470    Joemann).
1471    
1472    ----------------------------------------------------------------------
1473    Name: Allen Leung (leunga (at) reservoir (dot) com)
1474    Date: 2004/11/17 16:05:21 EST 2004
1475    Tag: leunga-20041117-mlrisc-live-kill
1476    Description:
1477    
1478       Added support for MLTree constructs LIVE and KILL
1479    to all the architectures.
1480    
1481    ----------------------------------------------------------------------
1482    Name: Matthias Blume (blume (at) tti - c (dot) org)
1483    Date: 2004/11/13 00:20:00 CST
1484    Tag: blume-20041113-versiontool
1485    Description:
1486    
1487    - Stripped down the versiontool: It now only handles the version number.
1488      The date string is generated at bootstrap time (during makeml).
1489    
1490    - In a previous commit, fixed a minor issue with how polyequal is being
1491      translated.  In particular, the code now "looks through" abstractions.
1492      This results in slightly fewer polyEqual warnings and hopefully slightly
1493      more efficient code.  Important examples for where this matters are
1494      the new int64 and word64 types.
1495    
1496    ----------------------------------------------------------------------
1497    Name: Matthias Blume (blume (at) tti - c (dot) org)
1498    Date: 2004/11/12 00:30:00 CST
1499    Tag: blume-20041112-int64
1500    Description:
1501    
1502    Structure Int64 fully hooked in.  (The implementation is not very
1503    efficient, though.)
1504    
1505    ----------------------------------------------------------------------
1506    Name: Matthias Blume (blume (at) tti - c (dot) org)
1507    Date: 2004/11/11 17:30:00 CST
1508    Tag: blume-20041111-more64
1509    Description:
1510    
1511    All the pieces of Word64 are now there, with the exception of the
1512    conversions from and to LargeWord. (Eventually these need to be identities,
1513    but for the time being they don't even make sense because LargeWord is
1514    32-bit wide.)
1515    
1516    Also started to add similar support for Int64, but major pieces of that
1517    are still missing.
1518    
1519    ----------------------------------------------------------------------
1520    Name: Matthias Blume (blume (at) tti - c (dot) org)
1521    Date: 2004/11/11 00:15:00 CST
1522    Tag: blume-20041111-word64
1523    Description:
1524    
1525    Structure Word64 is now (almost) complete, word literals and patterns
1526    seem to work.  There are a few odd pieces missing.  In particular,
1527    I didn't do the {from,to}LargeWord parts because LargeWord is still Word32
1528    at the moment.
1529    
1530    Making Word64 official would mean that LargeWord becomes Word64.  But
1531    this requires extreme care because most word-word conversions have to
1532    go through LargeWord, so making a mistake means loss of efficiency or
1533    worse.  Eventually there will be a solution similar to (but actually
1534    simpler than) what I did with IntInf.
1535    
1536    ----------------------------------------------------------------------
1537    Name: Matthias Blume (blume (at) tti - c (dot) org)
1538    Date: 2004/11/10 18:12:00 CST
1539    Tag: blume-20041110-64bit
1540    Description:
1541    
1542    More 64-bit hacking (but still not even half-way there yet).
1543    Also, some assorted improvements to the handling of 8-bit words.
1544    
1545    ----------------------------------------------------------------------
1546    Name: Matthias Blume (blume (at) tti - c (dot) org)
1547    Date: 2004/11/09 17:50:00 CST
1548    Tag: <none>
1549    Description:
1550    
1551    Started adding some infrastructure for supporting 64-bit int- and
1552    word-types.  (Still in its very early stages.)
1553    
1554    ----------------------------------------------------------------------
1555    Name: Matthias Blume (blume (at) tti - c (dot) org)
1556    Date: 2004/10/28 10:45:00 CDT
1557    Tag: Release_110_50
1558    Description:
1559    
1560    New working version (110.50).  NEW BOOTFILES!
1561    
1562                 =====================
1563    
1564    Also:
1565    
1566      - Changend config/srcarchiveurl from a file just
1567        containing the URL string into a file containing
1568        shell script code.  The code has access to the $VERSION variable.
1569      - Made corresponding changes to config/install.sh and config/unpack.
1570      - Default contents of config/srcarchiveurl uses $VERSION and
1571        normally does not have to be edited to reflect a version change.
1572    
1573      (As a result, a version change can be done by just editing
1574       config/version, the rest is now automatic.)
1575    
1576    ----------------------------------------------------------------------
1577    Name: Matthias Blume (blume (at) tti - c (dot) org)
1578    Date: 2004/10/27 17:50:00 CDT
1579    Tag: blume-20041027-btrace-msg
1580    Description:
1581    
1582    BackTrace.monitor now also reports the source of the exception that
1583    triggered the trace.
1584    
1585    ----------------------------------------------------------------------
1586    Name: Matthias Blume (blume (at) tti - c (dot) org)
1587    Date: 2004/10/27 17:20:00 CDT
1588    Tag: blume-20041027-x86-c-calls
1589    Description:
1590    
1591    This is the HISTORY entry for two earlier commits, both concerning
1592    the x86 c-calls code in MLRISC:
1593    
1594      - added a missing LOAD in the code that deals with struct arguments
1595      - made sure the caller does not add the wrong number of bytes to the
1596        stack pointer after a call of a function returning a struct
1597        (the callee already pops the implicit argument which points to
1598         the space reserved for the result)
1599    
1600    ----------------------------------------------------------------------
1601    Name: Allen Leung (leunga (at) reservoir (dot) com)
1602    Date: 2004/10/24 14:00:00 EST
1603    Tag: leunga-20041024-x86-gas-fucomip
1604    Description:
1605    
1606       John discovered a bug in the syntax of fucomip.
1607       The opcodes FU?COMIP? have been changed to
1608    
1609           fu?comip? %st(i), %st
1610    
1611    ----------------------------------------------------------------------
1612    Name: Matthias Blume (blume (at) tti - c (dot) org)
1613    Date: 2004/10/20 15:06:00 CDT
1614    Tag: blume-20041020-standalone-backtrace
1615    Description:
1616    
1617    Added a mechanism for getting back-trace information from standalone
1618    programs.  Here is how it works:
1619    
1620       1. The part of the program from which you want to get backtrace
1621          information (usually the whole program) should be wrapped with
1622          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
1623          main program could be modified from something like
1624    
1625             fun main (pgm, args) = ...
1626    
1627         to
1628    
1629            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
1630    
1631       2. To be able to access BackTrace.monitor, you have to add
1632          library $smlnj-tdp/plugins.cm to the .cm file that contains your
1633          main function.
1634    
1635       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
1636          CM might have created in the past for your project).
1637    
1638       4. Build the system using this command line:
1639    
1640             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
1641                      myprog.cm MyProg.main myprog
1642    
1643          instead of the usual
1644    
1645             ml-build myprog.cm MyProg.main myprog
1646    
1647    I changed a library name:
1648    
1649       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
1650    
1651    New libraries:
1652    
1653       $smlnj-tdp/back-trace.cm
1654          -- when loaded causes the back-trace plugin to be installed
1655       $smlnj-tdp/coverage.cm
1656          -- when loaded causes the coverage plugin to be installed
1657    
1658    ----------------------------------------------------------------------
1659    Name: Matthias Blume (blume (at) tti - c (dot) org)
1660    Date: 2004/10/18 16:45:00 CDT
1661    Tag: blume-20041018-groupowner
1662    Description:
1663    
1664    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
1665    
1666    Eliminated group owner specs from .cm files throughout the source tree.
1667    
1668    ----------------------------------------------------------------------
1669    Name: Matthias Blume (blume (at) tti - c (dot) org)
1670    Date: 2004/10/15 15:45:00 CDT
1671    Tag: blume-20041015-coverage
1672    Description:
1673    
1674    * Test coverage tool added!
1675    * Further reorganization of tracing-, debugging-, and profiling support:
1676    
1677        - moved original BTImp -- now called BackTrace -- into a separate
1678          library called $/trace-debug-profile.cm
1679        - eliminated all mentions of BTrace from SMLofNJ.Internals
1680        - only the instrumentation mechanism is now left in the compiler proper
1681        - BackTrace module is a plugin which is NOT plugged in by default
1682        - Coverage module is another such plugin
1683    
1684    To get the benefits of any of these plugin modules, the code in
1685    question must be compiled with tdp instrumentation turned on.  This
1686    can be done by setting SMLofNJ.Internals.TDP.mode to true.
1687    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
1688    
1689    Plugins are selected at link time.  (Pre-compiled instrumented code
1690    can be re-loaded with different plugins in effect.)  When an
1691    instrumented module is linked, whatever plugins are at that time
1692    enabled will come into effect for that module.
1693    
1694    To enable the back-trace plugin, load library $/trace-debug-profile.cm
1695    and invoke BackTrace.install() (e.g., from the interactive prompt).
1696    To enable the coverage plugin, load the same library and invoke
1697    Coverage.install().
1698    
1699    Back-traces are generated automatically on uncaught exceptions and
1700    when the code in question explicitly invokes BackTrace.trigger().
1701    
1702    Coverage (and execution frequency-) information must be queried
1703    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
1704    
1705    ----------------------------------------------------------------------
1706    Name: Matthias Blume (blume (at) tti - c (dot) org)
1707    Date: 2004/10/14 17:40:00 CDT
1708    Tag: blume-20041014-tdp-core
1709    Description:
1710    
1711    Snapshot of a significant overhaul of how the trace/debug/profile support
1712    is hooked into the system (specifically: Core and SMLofNJ.Internals).
1713    
1714    ----------------------------------------------------------------------
1715    Name: Matthias Blume (blume (at) tti - c (dot) org)
1716    Date: 2004/10/13 16:34:00 CDT
1717    Tag: blume-20041013-tdp
1718    Description:
1719    
1720    Some rationalization of names:
1721    
1722       structure BTrace -> structure TDPInstrument
1723       etc.
1724    
1725    This is is preparation of using the original back-trace
1726    instrumentation for other purposes.  "TDP" stands for
1727    Trace/Debug/Profile.
1728    
1729    The control flag controlling whether instrumentation is on or off is now
1730    registered under a different name, so instead of running sml as
1731    
1732     sml -Cinstrument.btrace-mode=true
1733    
1734    one has to say
1735    
1736     sml -Ctdp.instrument=true
1737    
1738    ----------------------------------------------------------------------
1739    Name: Matthias Blume (blume (at) tti - c (dot) org)
1740    Date: 2004/10/11 16:37:00 CDT
1741    Tag: blume-20041011-regions
1742    Description:
1743    
1744    Made some minor modifications to elabcore.sml to have source regions
1745    be propagated more tightly -- resulting in better (i.e., smaller)
1746    regions being reported in error- and debug messages.
1747    
1748    ----------------------------------------------------------------------
1749    Name: Matthias Blume (blume (at) tti - c (dot) org)
1750    Date: 2004/10/08 22:50:00 CDT
1751    Tag: blume-20041008-cmkw
1752    Description:
1753    
1754    Fixed handling of keywords in .cm files: After seeing "is" the lexer
1755    treats subsequent occurrences of "group", "library", "source", "is",
1756    "*", and "-" as ordinary identifiers rather than keywords.
1757    
1758    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
1759    is supposed to accept a tool argument called "source", but this did
1760    not work because of the clash with the keyword.
1761    
1762    ----------------------------------------------------------------------
1763    Name: Matthias Blume (blume (at) tti - c (dot) org)
1764    Date: 2004/10/07 16:00:00 CDT
1765    Tag: blume-20041007-cleanup
1766    Description:
1767    
1768    Assorted cleanup work:
1769    
1770      - got rid of intstrmap in favor of using the library's
1771        hash table implementation
1772      - threw out most of the pathnames stuff, as it was not used anyway
1773      - simplified tokentable implementation
1774      - fixed some minor spelling errors
1775    
1776    ----------------------------------------------------------------------
1777    Name: Matthias Blume (blume (at) tti - c (dot) org)
1778    Date: 2004/10/06 15:15:15 CDT
1779    Tag: blume-20041006-handler
1780    Description:
1781    
1782    Cleaned up the absyn to reflect the invariant that HANDLE always
1783    carries a FNexp as part of the type definition.  This eliminates some
1784    superfluous sanity checks at runtime down the road.
1785    
1786    Some minor cleanup of the btrace code.
1787    
1788    ----------------------------------------------------------------------
1789    Name: Matthias Blume (blume (at) tti - c (dot) org)
1790    Date: 2004/10/01 10:20:30 CDT
1791    Tag: blume-20041001-slave
1792    Description:
1793    
1794    Added hack to make slave mode work in the presence of the version
1795    tool.  (Still, since the master does two passes over the code for
1796    CMB.make, the release number gets bumped twice when slaves are
1797    attached.  I don't know if this is worth fixing...)
1798    
1799    ----------------------------------------------------------------------
1800    Name: Matthias Blume (blume (at) tti - c (dot) org)
1801    Date: 2004/09/30 10:55:00 CDT
1802    Tag: blume-20040930-version
1803    Description:
1804    
1805    * Moved the "version" magic into its own little library under
1806      src/system/smlnj/internal.  This avoids expensive reconstruction of
1807      a stable src/compiler/core.cm.
1808    
1809    * At the same time, structure CompilerVersion is now known as
1810      structure SMLNJVersion.
1811    
1812    * Arranged for the version tool to NOT kick in when rebuilding the system
1813      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
1814      Also, loading the versiontool does not work when rebuilding the system
1815      because CM is not properly initialized at that time.
1816    
1817    ----------------------------------------------------------------------
1818    Name: Matthias Blume (blume (at) tti - c (dot) org)
1819    Date: 2004/09/29 14:00:00 CDT
1820    Tag: blume-20040929-autoversion
1821    Description:
1822    
1823    Implemented some CM magic to have
1824        file src/compiler/TopLevel/main/version.sml
1825    generated automagically.
1826    The version is taken from two files: config/version and config/release.
1827    The first is expected to contain a two-part version number such as 110.49.
1828    The second should contain a single number, but it may be missing.
1829    
1830    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
1831    time the version tool is loaded (which is the first time you say CMB.make),
1832    then the tool will increment the value stored in config/release every
1833    time CMB.make is invoked.
1834    
1835    The binfile format is now insensitive to anything beyond the first
1836    two components of a version number, so bumping the release does not render
1837    binfiles incompatible.  Auto-bumping can be used to keep track of versions
1838    during development without invalidating existing binfiles.
1839    
1840    In any case, every CMB.make updates the date information in version.sml.
1841    (This is the date that is printed in the banner.)
1842    
1843    ----------------------------------------------------------------------
1844    Name: Matthias Blume (blume (at) tti - c (dot) org)
1845    Date: 2004/09/28 10:53:00 CDT
1846    Tag: blume-20040928-controls
1847    Description:
1848    
1849    Some cleanup of the controls code.
1850    
1851    ----------------------------------------------------------------------
1852    Name: Matthias Blume (blume (at) tti - c (dot) org)
1853    Date: 2004/09/27 22:08:00 CDT
1854    Tag: blume-20040927-controls
1855    Description:
1856    
1857    Added two pieces of functionality to the Controls interface:
1858    
1859    1.   val save'restore: 'a control -> unit -> unit
1860    
1861       grabs the current value of the control in stage 1 and restores it
1862       in stage 2.
1863    
1864    2.   val set' : 'a control * 'a -> unit -> unit
1865    
1866       stores the given value into the control in stage 2 (i.e., delayed)
1867       but does all error checking in stage 1.
1868       (This is for string controls that need to do parse their argument --
1869        something that might fail.  In some cases, notably in CM, one
1870        already knows the intended argument but wants to delay the actual
1871        assignment until a time when error recovery would be more difficult.)
1872    
1873    Changed the handling of controls in tool arguments to classes "sml" and
1874    "lazysml":
1875       - use Controls.save'restore as a more robust way of restoring the
1876         old value (in particular: without having to re-parse the string)
1877       - use controls to handle the "overload" keyword in the init group
1878         (I believe this change actually fixes a long-standing obscure bug.)
1879    
1880    ----------------------------------------------------------------------
1881    Name: Matthias Blume (blume (at) tti - c (dot) org)
1882    Date: 2004/09/27 17:00:00 CDT
1883    Tag: blume-20040927-lazysml
1884    Description:
1885    
1886    Added a new tool class called "lazysml" to CM's tool chest.  The only
1887    difference to "sml" is that compilation is done with Control.lazysml
1888    set to true.  A source of class "lazysml" is automatically recognized
1889    by a file name suffix of ".lml".
1890    
1891    In addition to the above feature, the original class "sml" now also
1892    supports a tool argument "lazy" which has the same effect.  As a
1893    result, the following three lines are equivalent:
1894    
1895        foo.sml : lazysml
1896        foo.sml : sml (lazy)
1897        foo.sml (lazy)
1898    
1899    The setting goes into effect both during parsing and during
1900    compilation.  The original setting is restored right after parsing and
1901    after compilation, respectively.
1902    
1903    In addition to all the above, there is also a general mechanism to set
1904    ANY of the "controls" that are available at the command line via
1905    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
1906    apply as well. (In fact, "lazy" is implemented as a special case of
1907    the general mechanism.)
1908    
1909    The .cm file syntax uses a new keyword tool argument called "with".
1910    There are several ways of indicating the desired settings:
1911    
1912        foo.sml (with:parser.quotations=true)
1913        foo.sml (with:(name:parser.quotations value:true))
1914        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
1915        foo.sml (with:(name1=value1 name2=value2 ...))
1916        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
1917    
1918        etc.
1919    
1920    Another possible abbreviation is to leave out the =v or value:v part
1921    if the name refers to a boolean control (in which case the value is
1922    taken to be true).  Thus, one could get lazy sml also by saying:
1923    
1924        foo.sml (with:parser.lazy-keyword=true)
1925        foo.sml (with:parser.lazy-keyword)
1926        foo.sml (with:(name:parser.lazy-keyword value:true))
1927        foo.sml (with:(name:parser.lazy-keyword))
1928    
1929    ----------------------------------------------------------------------
1930    Name: Matthias Blume (blume (at) tti - c (dot) org)
1931    Date: 2004/09/24 16:22:00 CDT
1932    Tag: blume-20040924-ppc-long-branch
1933    Description:
1934    
1935    Turned message about "emiting long form of branch" off by default.
1936    Added a control flag to turn it back on when desired.
1937    
1938    ----------------------------------------------------------------------
1939    Name: Matthias Blume (blume (at) tti - c (dot) org)
1940    Date: 2004/09/24 16:05:00 CDT
1941    Tag: blume-20040924-rounding
1942    Description:
1943    
1944    Applied patch for setting rounding modes under Mac OS X.  Thanks to
1945    Melissa O'Neill for providing the code!
1946    
1947    ----------------------------------------------------------------------
1948    Name: Matthias Blume (blume (at) tti - c (dot) org)
1949    Date: 2004/09/23 17:30:00 CDT
1950    Tag: blume-20040923-envvars
1951    Description:
1952    
1953    1. Changed definition of type ControlRegistry.registry_tree to
1954       include control_info (i.e., the name of the controlling environment
1955       variable).
1956    
1957    2. Added command-line flags -e and -E to print the names of environment
1958       variables that can be used to control internal settings.
1959       (This uses the new API mentioned in 1.)
1960    
1961    ----------------------------------------------------------------------
1962    Name: Matthias Blume (blume (at) tti - c (dot) org)
1963    Date: 2004/09/13 16:50:00 CDT
1964    Tag: Release_110_49
1965    Description:
1966    
1967    New working version (110.49).  NEW BOOTFILES!
1968    
1969    ----------------------------------------------------------------------
1970    Name: Matthias Blume
1971    Date: 2004/09/13 16:20:00 CDT
1972    Tag: blume-20040913-config-mlrisc
1973    Description:
1974    
1975    Put target "mlrisc" back into the default list.
1976    (There is no harm in having it, and some users have expressed their
1977    wish to have "mlrisc" included by default.)
1978    
1979    ----------------------------------------------------------------------
1980    Name: John Reppy
1981    Date: 2004/09/13
1982    Tag: jhr-20040913-signals
1983    Description:
1984    
1985    Fixed the signal masking code to properly nest mask/unmask operations
1986    on a per-signal basis.
1987    
1988    ----------------------------------------------------------------------
1989    Name: Matthias Blume (blume (at) tti - c (dot) org)
1990    Date: 2004/09/08 13:20:00 CDT
1991    Tag: blume-20040908-heap-magic
1992    Description:
1993    
1994    Bumped the heap macig number to 0x09082004 to account for the changed
1995    layout of the ML frame under MacOS X.
1996    
1997    ----------------------------------------------------------------------
1998    Name: Allen Leung (leunga (at) reservoir (dot) com)
1999    Date: 2004/09/03 11:26:00 EST
2000    Tag: leunga-20040903-cygwin-install
2001    Description:
2002    
2003       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
2004    The Cygwin runtime is turned on by setting the environment
2005    variable SMLNJ_CYGWIN_RUNTIME to 1.
2006    
2007    ----------------------------------------------------------------------
2008    Name: Matthias Blume (blume (at) tti - c (dot) org)
2009    Date: 2004/08/31 17:15:00 CDT
2010    Tag: blume-20040831-core
2011    Description:
2012    
2013    Added some exports to src/compiler/core.cm upon request by J. Joemann.
2014    
2015    ----------------------------------------------------------------------
2016    Name: Matthias Blume (blume (at) tti - c (dot) org)
2017    Date: 2004/08/30 17:55:00 CDT
2018    Tag: blume-20040830-installer
2019    Description:
2020    
2021    Upon request by Johannes Joemann:
2022    
2023    - improved ML code of installer to fall back to coping when renaming
2024      fails (i.e., when source and target are on different file systems);
2025      the code compiles but has yet to be tested in anger
2026    - removed mlrisc from list of default targets (config/targets)
2027    
2028    ----------------------------------------------------------------------
2029    Name: Matthias Blume (blume (at) tti - c (dot) org)
2030    Date: 2004/08/27 17:20:00 CDT
2031    Tag: blume-20040827-ptreql
2032    Description:
2033    
2034    Added ptreql primop to structure InlineT (upon request from Larry
2035    Paulson).
2036    
2037    ----------------------------------------------------------------------
2038    Name: Allen Leung (leunga (at) reservoir (dot) com)
2039    Date: 2004/08/15 21:21:00 EST
2040    Tag: leunga-110_48-udgraph
2041    Description:
2042    
2043    Another bug fix from Carl Hauser:
2044    
2045    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
2046    > 48c48
2047    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
2048    > e::L)
2049    > ---
2050    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
2051    > Without this, any deletion of an edge in an undirected graph does severe
2052    > violence to the graph.
2053    
2054    ----------------------------------------------------------------------
2055    Name: Allen Leung (leunga (at) reservoir (dot) com)
2056    Date: 2004/08/10 23:35:00 EST
2057    Tag: leunga-110_48-ppc
2058    Description:
2059    
2060       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
2061    
2062    ----------------------------------------------------------------------
2063    Name: Matthias Blume (blume (at) tti - c (dot) org)
2064    Date: 2004/08/10 12:00:00 CDT
2065    Tag: Release_110_48
2066    Description:
2067    
2068    New working version (110.48).  NEW BOOTFILES!
2069    
2070    ----------------------------------------------------------------------
2071    Name: Allen Leung (leunga (at) reservoir (dot) com)
2072    Date: 2004/08/09 12:21:00 EST
2073    Tag: leunga-110_47-dijsktra
2074    Description:
2075    
2076    Bug fix from Carl Hauser:
2077    
2078    single_source_shortest_paths in dijkstra.sml was observed to get wrong
2079    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
2080    
2081    The problem is that following the expression A.update(dist,s,Num.zero)
2082    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
2083    
2084    ----------------------------------------------------------------------
2085    Name: Matthias Blume (blume (at) tti - c (dot) org)
2086    Date: 2004/08/06 18:10:00 CDT
2087    Tag: blume-20040806-cmdline
2088    Description:
2089    
2090    Fiddled with handling of command-line options:
2091    
2092      * sml now quits after processing the command line
2093        if -H, -S, -h<n>, or -s<n> appears as the last
2094        command-line argument
2095      * a new option -q terminates the session when encountered on
2096        the command line; subsequent arguments will be ignored
2097      * bug fixes: short (erroneous) arguments are no longer ignored
2098        completely
2099    
2100    ----------------------------------------------------------------------
2101    Name: Allen Leung (leunga (at) reservoir (dot) com)
2102    Date: 2004/08/04 18:17:00 EST
2103    Tag: leunga-110_47-ppc-ibm-asm
2104    Description:
2105    
2106      - Added minimal IBM assembly syntax support for PowerPC.
2107    
2108      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
2109        been altered in the runtime.  We need an automatic way to keep the file
2110        in sync.
2111    
2112    ----------------------------------------------------------------------
2113    Name: Matthias Blume (blume (at) tti - c (dot) org)
2114    Date: 2004/08/04 14:00:00 CDT
2115    Tag: Release_110_47
2116    Description:
2117    
2118    New working version (110.47).  NEW BOOTFILES!
2119    
2120    ----------------------------------------------------------------------
2121    Name: Matthias Blume (blume (at) tti - c (dot) org)
2122    Date: 2004/08/03 14:25:00 CDT
2123    Tag: blume-20040803-callingconv
2124    Description:
2125    
2126    Added low-level support for choosing C calling conventions by
2127    twiddling the type of rawccall.  (See
2128    src/compiler/Semant/types/cproto.sml for details.)
2129    
2130    ----------------------------------------------------------------------
2131    Name: Matthias Blume (blume (at) tti - c (dot) org)
2132    Date: 2004/08/02 15:55:00 CDT
2133    Tag: blume-20040802-backout
2134    Description:
2135    
2136    Backed out of change to win32-filesys.c.  The earlier patch to
2137    get_file_time caused CM to produce files with the wrong time stamp.
2138    
2139    ----------------------------------------------------------------------
2140    Name: Matthias Blume (blume (at) tti - c (dot) org)
2141    Date: 2004/08/02 14:45:00 CDT
2142    Tag: blume-20040802-nlffi-win32
2143    Description:
2144    
2145    Added NLFFI support for Win32, adapted from a patch provided by David
2146    Hansel.  This is currently completely untested.  Also, the issue
2147    concerning stdcall vs. ccall is still unresolved.
2148    
2149    ----------------------------------------------------------------------
2150    Name: Matthias Blume (blume (at) tti - c (dot) org)
2151    Date: 2004/07/30 17:55:00 CDT
2152    Tag: blume-20040730-various
2153    Description:
2154    
2155    Gearing up towards 110.47...
2156    
2157    - various minor bugfixes to ml-nlffigen
2158    - a beginning of a manual for nlffi
2159    
2160    - eliminated 'export name=value' in config/install.sh as this does
2161      not work with certain versions of /bin/sh
2162      (Thanks to David King at Motorola for catching this.)
2163    
2164    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
2165      - added a test for tm==NULL to gmtime.c and localtime.c
2166      - applied patch for incorrect GetFileTime under win32
2167      - toSeconds -> toMilliseconds in Win32/win32-process.sml
2168    
2169    ----------------------------------------------------------------------
2170    Name: Matthias Blume (blume (at) tti - c (dot) org)
2171    Date: 2004/07/21 18:20:00 CDT
2172    Tag: blume-20040721-nlffigen
2173    Description:
2174    
2175    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
2176      for a typedef to an incomplete type, but leave out the "typ" member.
2177      (This is just for consistency.)
2178    - Started to produce what is supposed to become better (i.e., comprehensive)
2179      documentation of what ml-nlffigen does and produces.
2180    
2181    ----------------------------------------------------------------------
2182    Name: Matthias Blume (blume (at) tti - c (dot) org)
2183    Date: 2004/07/14 16:25:00 CDT
2184    Tag: blume-20040714-union
2185    Description:
2186    
2187    Added C_UNION to c-calls/c-types.sml and updated the machinery
2188    (ml-nlffigen, cproto.sml) that conveys C function interface
2189    information to the code generator.
2190    
2191    However, the actual architecture-specific implementation of function
2192    arguments and results that are C unions is still not implemented.
2193    
2194    ----------------------------------------------------------------------
2195    Name: Allen Leung (leunga (at) reservoir (dot) com)
2196    Date: 2004/07/14 14:38:00 EST
2197    Tag: leunga-110_46_1-ppc-lwzu
2198    Description:
2199    
2200        Added these instructions to the PowerPC architecture:
2201        LBZU(X), LHZU(X), LWZU(X),
2202        STWU(X), STFDU, STFSU
2203    
2204        etc...
2205    
2206        Note: I haven't added their instruction encoding into the description.
2207    
2208    ----------------------------------------------------------------------
2209    Name: Allen Leung (leunga (at) reservoir (dot) com)
2210    Date: 2004/07/13 15:04:00 EST
2211    Tag: leunga-110_46_1-ppc-lwarx
2212    Description:
2213    
2214       Added the two instructions LWARX and STWCX to the PowerPC
2215    instruction set.
2216    
2217       A (untested) rewrite of loop-structure.sml.  The old version
2218    is completely broken.
2219    
2220    ----------------------------------------------------------------------
2221    Name: Matthias Blume (blume (at) tti - c (dot) org)
2222    Date: 2004/07/13 13:50:00 CDT
2223    Tag: blume-20040713-nlffi
2224    Description:
2225    
2226    - use paramAlloc to report c-calls with too many arguments
2227      (for PPC version where parameter area is pre-allocated)
2228    - added ccall_maxargspace to machspec (to implement the above)
2229    - made "make" commend in CM's "make" tool configurable
2230    - added option (default: on) for passing the name of the SML/NJ's "bin"
2231      directory to "make"; the call looks like this:
2232    
2233         make <options> SMLNJ_BINDIR=<dir> <target>
2234    
2235      This can be used by the Makefile to, e.g., pick the "right" version
2236      of ml-nlffigen.
2237    - minor code tweaks
2238    
2239    ----------------------------------------------------------------------
2240    Name: Matthias Blume (blume (at) tti - c (dot) org)
2241    Date: 2004/07/12 22:50:00 CDT
2242    Tag: blume-110_46_1-macosx-nlffi
2243    Description:
2244    
2245    NLFFI under Mac OS X now working (sort of).  This is largely untested,
2246    though.
2247    
2248    Note:  1. You have to make a new, clean build of the runtime system.
2249           2. There are new BOOTFILES, you have to use them!
2250              (Doing the bootstrap process yourself would be *very* painful!
2251               If you absolutely have to do it, build the system under
2252               a different architecture and then cross-compile.)
2253    
2254    Version bumped to 110.46.1 to account for runtime data format changes.
2255    
2256    ----------------------------------------------------------------------
2257    Name: Matthias Blume (blume (at) tti - c (dot) org)
2258    Date: 2004/06/18 14:30:00 CDT
2259    Tag: blume-20040618-unix
2260    Description:
2261    
2262    Changed the implementation of structure Unix so that the same stream
2263    is returned every time one of the {text,bin}{In,Out}streamOf functions
2264    is invoked on the same proc.  This is not what the spec currently
2265    says -- although IMO it arguably should.  (See discussion below.)
2266    
2267    ----------------------------------------------------------------------
2268    Name: Matthias Blume (blume (at) tti - c (dot) org)
2269    Date: 2004/06/17 18:15:00 CDT
2270    Tag: Release_110_46
2271    Description:
2272    
2273    New working version (110.46).  NEW BOOTFILES!
2274    
2275    ----------------------------------------------------------------------
2276    Name: Matthias Blume (blume (at) tti - c (dot) org)
2277    Date: 2004/06/17 17:20:00 CDT
2278    Tag: blume-20040617-timer-unix
2279    Description:
2280    
2281    Changed the interface of structures Timer and Unix to match the most
2282    recent Basis spec.
2283    
2284    In the case of Unix there still seems to be an open/weird issue:
2285    
2286       The {text,bin}{In,Out}streamOf functions are supposed to create
2287       fresh streams whenever they are called -- as opposed to have them
2288       return the same stream every time.  This design is supposed to
2289       prevent space leaks caused by proc values hanging on to streams.
2290    
2291       The reap function, on the other hand, is supposed to close the
2292       streams.  This cannot be done without having a handle on the
2293       stream in proc after all...
2294    
2295    I took the liberty to implement the following stopgap solution:
2296    
2297      The proc value hangs on to the most recently created stream(s).
2298      Reap closes those.  If either or both of the two streams hadn't
2299      been created at all yet, then reap will close the corresponding
2300      file descriptors directly.
2301    
2302    PS: I don't understand the original space leak argument anymore.  If
2303    a proc hangs on to the imperative stream, then I/O operations on those
2304    will advance the state of the cached stream and avoid the space leak.
2305    
2306    ----------------------------------------------------------------------
2307    Name: Matthias Blume (blume (at) tti - c (dot) org)
2308    Date: 2004/05/28 16:45:00 CDT
2309    Tag: blume-20040528-basis
2310    Description:
2311    
2312    Added signature PACK_REAL and exported functor PrimIO.
2313    
2314    ----------------------------------------------------------------------
2315    Name: Matthias Blume (blume (at) tti - c (dot) org)
2316    Date: 2004/05/25 16:00:00 CDT
2317    Tag: blume-20040525-group-owner
2318    Description:
2319    
2320    CM now ignores (but still accepts) the "owner" information in group
2321    descriptions.  The owner of a group is its next enclosing
2322    library. Each group must have a unique owner.  (There is a virtual
2323    "toplevel" library that owns groups which are not nested within a real
2324    library.)  Previously, each group had to explicitly declare its owner,
2325    and CM would check that such a declaration is correct.  The new scheme
2326    is to have CM check that for each group there is precisely one owning
2327    library.
2328    
2329    The advantage of the new scheme is that the programmer no longer needs
2330    to maintain the somewhat annoying owner information.  The downside is
2331    that CM cannot enforce the ownership rule across multiple runs of
2332    CM.make.  Fortunately, enclosing the same group in two different
2333    libraries A and B which are not part of the same program does not
2334    cause real problems.
2335    
2336    ----------------------------------------------------------------------
2337    Name: Matthias Blume (blume (at) tti - c (dot) org)
2338    Date: 2004/05/20 16:00:00 CDT
2339    Tag: blume-20040520-win32
2340    Description:
2341    
2342    Made the win32 version work again.  (Strangely, a misplaced comma had
2343    slipped into win32-process.c which prevented the runtime from being
2344    compiled correctly.)
2345    
2346    Also, included a minor addition to ml-build.bat analogous to what was
2347    done in blume-20040519-ml-build.
2348    
2349    ----------------------------------------------------------------------
2350    Name: Matthias Blume (blume (at) tti - c (dot) org)
2351    Date: 2004/05/19 22:10:00 CDT
2352    Tag: blume-20040519-ml-build
2353    Description:
2354    
2355    Arranged for ml-build to clean up after itself a little bit better.
2356    The script generates a temporary SML source file and compiles it using
2357    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
2358    gets rid of those at the end, so they don't accumulate under .cm.
2359    
2360    This required a minor change to install.sh because the name of the
2361    metadata directory (default: .cm) is actually configurable at
2362    installation time.
2363    
2364    ----------------------------------------------------------------------
2365    Name: Matthias Blume (blume (at) tti - c (dot) org)
2366    Date: 2004/05/18 15:50:00 CDT
2367    Tag: blume-20040518-mkreader
2368    Description:
2369    
2370    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
2371    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
2372    
2373    ----------------------------------------------------------------------
2374    Name: Matthias Blume (blume (at) tti - c (dot) org)
2375    Date: 2004/05/11 14:35:00 CDT
2376    Tag: blume-20040511-win32sock
2377    Description:
2378    
2379    Added previously missing support for many socket-related functions
2380    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
2381    for the voluminous patch!
2382    
2383    (I have not tested this patch under win32 yet.)
2384    
2385    Here is David's e-mail:
2386    
2387    Hi,
2388    
2389    Attached to this email you find a diff against sml/nj 110.45
2390    that will enable socket support under Windows.
2391    
2392    To apply the patch (using unix or cygwin)
2393    1) gunzip runtime.diff.gz
2394    2) "cd" into "src/runtime" in the source tree of a fresh
2395       110.45 installation.
2396    3) patch -p 1 < [your/path/to]runtime.diff
2397    
2398    The code compiles fine but has NOT yet been extensively tested.
2399    I only ran a few tests for basic socket client functionality
2400    (which worked fine).  Especially the functions that use ioctl
2401    are not tested at all and might not work (see below).
2402    
2403    I implemented this since we want to move to a newer version of sml/nj
2404    but need socket support in order to use it.  This is the first time I
2405    even had a look at the sml/nj source,  so please review my changes
2406    before making this part of the distribution!  Here are a few issues
2407    that I think might be better for someone to solve who is more
2408    familiar with the sml/nj source (and socket programming):
2409    
2410    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
2411      exception since I could not figure out what the windows equivalent
2412      of these functions is
2413    
2414    - In sockets-osdep.h there are a some #include statements that are
2415      only used in a few files that include sockets-osdep.h
2416    
2417    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
2418      does not process its return value since I don't know how to
2419      report an error upwards.
2420    
2421    - It would probably be good to have a call to WSACleanup() when
2422      the library is unloaded (if there is such a possibility).
2423      Otherwise I think Windows will take care of this automatically
2424      when the process finishes.
2425    
2426    - I used ioctlsocket() as a replacement for ioctl() but I have
2427      no idea if that is actually the proper replacement on Windows.
2428    
2429    - All these issues are marked in the code by "FIXME" comments.
2430    
2431    We use sml/nj extensively in our products and are quite happy
2432    with it.  I hope this contribution will help you.
2433    
2434    Keep up the good work!
2435    
2436    David
2437    
2438    ----------------------------------------------------------------------
2439    Name: Matthias Blume (blume (at) tti - c (dot) org)
2440    Date: 2004/05/11 14:20:00 CDT
2441    Tag: blume-20040511-installml
2442    Description:
2443    
2444    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
2445    the patch.)
2446    
2447    ----------------------------------------------------------------------
2448    Name: Matthias Blume (blume (at) tti - c (dot) org)
2449    Date: 2004/05/11 14:05:00 CDT
2450    Tag: blume-20040511-nlffi-netbsd
2451    Description:
2452    
2453    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
2454    the patch.)
2455    
2456    ----------------------------------------------------------------------
2457    Name: Matthias Blume (blume (at) tti - c (dot) org)
2458    Date: 2004/05/11 12:05:00 CDT
2459    Tag: blume-20040511-exports
2460    Description:
2461    
2462    As per request by Adam Chlipala <adam@hcoop.net>, extended various
2463    export lists in compiler-related .cm-files.
2464    
2465    ----------------------------------------------------------------------
2466    Name: Matthias Blume (blume (at) tti - c (dot) org)
2467    Date: 2004/05/11 11:35:00 CDT
2468    Tag: blume-20040511-allsource
2469    Description:
2470    
2471    The installer now honors the "src-smlnj" target again, although its meaning
2472    has changed from "all sources required for the compiler" to "all sources
2473    the installer knows about".  In other words, if you enable "src-smlnj"
2474    in the "targets" file, then the installer will pull in sources for
2475    everything.  (Notice that this refers to source code only.  Compiled
2476    code is still only installed for modules that were requested explicitly
2477    or which are required for other modules that were requested explicitly.)
2478    
2479    ----------------------------------------------------------------------
2480    Name: Matthias Blume (blume (at) tti - c (dot) org)
2481    Date: 2004/04/23 17:40:00 CDT
2482    Tag: blume-20040423-ieee-scan
2483    Description:
2484    
2485    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
2486    in the exponent calculation we get INF or ZERO (depending on the mantissa
2487    and the sign of the exponent).
2488    
2489    ----------------------------------------------------------------------
2490    Name: Matthias Blume (blume (at) tti - c (dot) org)
2491    Date: 2004/04/23 10:40:00 CDT
2492    Tag: blume-20040423-ml-build
2493    Description:
2494    
2495    The ml-build script now terminates with a non-0 status when something
2496    goes wrong.
2497    
2498    ----------------------------------------------------------------------
2499    Name: Matthias Blume (blume (at) tti - c (dot) org)
2500    Date: 2004/04/22 16:35:00 CDT
2501    Tag: blume-20040422-Option
2502    Description:
2503    
2504    Made exception Option to be the same as exception Option.Option
2505    (as it should be).
2506    
2507    ----------------------------------------------------------------------
2508    Name: Allen Leung (leunga (at) reservoir (dot) com)
2509    Date: 2004/03/19 14:40:00 EST
2510    Tag: leunga-20040319-cygwin-nlffi
2511    Description:
2512    
2513    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
2514    of SML/NJ.  The problem is that
2515    
2516       lib = dlopen(NULL, ...)
2517       f   = dlsym(lib, "malloc");
2518    
2519    does not work on Windows unless we explicitly export symbols
2520    such as 'malloc' during linking.  We fixed this by explicitly
2521    exporting the required symbols with the magic gcc incantation:
2522    
2523        -Wl,--export-all cygwin.def
2524    
2525    where cygwin.def is a file containing all the symbols that
2526    we wish to export.
2527    
2528    I suspect this is a Windows problem and we'll have to
2529    do the same (somehow with windows compilers) when
2530    we build the native win32 version with the system
2531    calls LoadLibrary/GetProcAddress.
2532    
2533    ----------------------------------------------------------------------
2534    Name: Matthias Blume (blume (at) tti - c (dot) org)
2535    Date: 2004/03/04 16:35:00 CST
2536    Tag: blume-20040304-intinf-fmt
2537    Description:
2538    
2539    Fixed problem with IntInf.fmt (sign would show up on the right instead
2540    of on the left for BIN, OCT, and HEX).
2541    
2542    ----------------------------------------------------------------------
2543    Name: Matthias Blume (blume (at) tti - c (dot) org)
2544    Date: 2004/03/04 11:25:00 CST
2545    Tag: blume-20040304-symlinks
2546    Description:
2547    
2548    Fixed problem with installer script (unix only) where bin/ml-yacc and
2549    friends pointed (via symlinks) to absolute locations instead of just
2550    .run-sml.  This was reported by Vesa A Norrman.
2551    
2552    ----------------------------------------------------------------------
2553    Name: Matthias Blume (blume (at) tti - c (dot) org)
2554    Date: 2004/02/13 14:50:00 CST
2555    Tag: Release_110_45
2556    Description:
2557    
2558    New working version (110.45). New bootfiles.
2559    
2560    ----------------------------------------------------------------------
2561    Name: Matthias Blume (blume (at) tti - c (dot) org)
2562    Date: 2004/01/26 15:15:15 CST
2563    Tag: blume-20040126-toplevel
2564    Description:
2565    
2566    Improved handling of exceptions at the interactive toplevel.
2567    
2568    ----------------------------------------------------------------------
2569    Name: Matthias Blume (blume (at) tti - c (dot) org)
2570    Date: 2004/01/26 11:25:00
2571    Tag: blume-20040126-app
2572    Description:
2573    
2574    Type of top-level "app" corrected.
2575    Added code for setting vp_limitPtrMask to Win32-specific runtime.
2576    
2577    ----------------------------------------------------------------------
2578    Name: Matthias Blume (blume (at) tti - c (dot) org)
2579    Date: 2003/11/18 17:10 CST
2580    Tag: blume-20031118-basis-fiddle
2581    Description:
2582    
2583    - changed Timer interface to what might become the spec
2584    - POSIX_FLAGS -> BIT_FLAGS according to spec
2585    - some other minor discrepancies wrt. spec eliminated
2586    
2587    ----------------------------------------------------------------------
2588    Name: Matthias Blume (blume (at) tti - c (dot) org)
2589    Date: 2003/11/06 12:00:00 CST
2590    Tag: Release_110_44
2591    Description:
2592    
2593    New working version (110.44). New bootfiles.
2594    
2595    ----------------------------------------------------------------------
2596    Name: Matthias Blume (blume (at) tti - c (dot) org)
2597    Date: 2003/11/04 11:50:00 CST
2598    Tag: blume-20031104-move-libraries
2599    Description:
2600    
2601    Eliminated the "dont_move_libraries" directive in config/targets.
2602    (The mechanism was broken and could not be fixed easily.  Moreover,
2603    there does not seem to be any reason not to move all libraries into
2604    lib during installation.  I originally implemented this directive as a
2605    backward-compatibility feature when I first introduced the new CM.
2606    Now that things have been stable for a long time and going back to the
2607    old CM is not an option, there is no reason to keep it around.)
2608    
2609    ----------------------------------------------------------------------
2610    Name: Matthias Blume (blume (at) tti - c (dot) org)
2611    Date: 2003/11/03 16:00:00 CST
2612    Tag: blume-20031103-installdir
2613    Description:
2614    
2615    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
2616    Richards for pointing out the problem and providing the solution.)
2617    
2618    ----------------------------------------------------------------------
2619    Name: Matthias Blume (blume (at) tti - c (dot) org)
2620    Date: 2003/10/01 17:05:00 CDT
2621    Tag: blume-20031001-lal-mlrisc
2622    Description:
2623    
2624    MLRISC bug fix from Lal.
2625    
2626    ----------------------------------------------------------------------
2627    Name: Matthias Blume (blume (at) tti - c (dot) org)
2628    Date: 2003/09/30 16:10:00 CDT
2629    Tag: blume-20030930-primio-bat
2630    Description:
2631    
2632    1. Added openVector, nullRd, and nullWr to PRIM_IO.
2633    2. Improved .bat files (for Win32 port) to make things work under Win95.
2634       (thanks to Aaron S. Hawley for this one)
2635    
2636    ----------------------------------------------------------------------
2637    Name: Matthias Blume (blume (at) tti - c (dot) org)
2638    Date: 2003/09/26 16:05:00 CDT
2639    Tag: blume-20030926-wrappriv
2640    Description:
2641    
2642    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
2643    
2644    ----------------------------------------------------------------------
2645    Name: Matthias Blume (blume (at) tti - c (dot) org)
2646    Date: 2003/09/26 15:00:00 CDT
2647    Tag: blume-20030926-110_43_3
2648    Description:
2649    
2650    - additional cleanup
2651    - version number bump, NEW BOOTFILES
2652    
2653    ----------------------------------------------------------------------
2654    Name: Matthias Blume (blume (at) tti - c (dot) org)
2655    Date: 2003/09/26 12:00:00 CDT
2656    Tag: blume-20030926-ppautoload
2657    Description:
2658    
2659    I modified the read-eval-print loop so that the autoloader gets
2660    invoked whenever the prettyprinter tries to look up a symbol that
2661    is not currently defined in the toplevel environment but which
2662    appears in CM's autoload registry.  As a result, we see far fewer of
2663    those ?.Foo.Bar.xxx names in the prettyprinter's output.
2664    
2665    In addition to this I tried to clean up some pieces of the Basis
2666    implementation (e.g., Socket, Word8Array) in order to prevent other
2667    instances of these ?.Foo.Bar.xxx names from being printed.
2668    
2669    The mechanism that picks names for types still needs some work, though.
2670    (Right now it seems that if there is a type A.t which is defined to
2671    be B.u, but B is unavailable at toplevel, then A.t gets printed as
2672    "?.B.u" although the perhaps more sensible solution would be to use
2673    "A.t" in this case.  In other words, the prettyprinter should follow
2674    a chain of DEFtycs not farther than there are corresponding toplevel
2675    names in the current environment.)
2676    
2677    ----------------------------------------------------------------------
2678    Name: Matthias Blume (blume (at) tti - c (dot) org)
2679    Date: 2003/09/24 16:31:00 CDT
2680    Tag: blume-20030924-installer
2681    Description:
2682    
2683    Another installer tweak:  All the ML code for the installer is now
2684    compiled during CMB.make and put into a little library called
2685    $smlnj/installer.cm.  The installation then simply invokes
2686    
2687       sml -m $smlnj/installer.cm
2688    
2689    and everything happens automagically.
2690    
2691    Win32:  ML code senses value of environment variable SMLNJ_HOME.
2692    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
2693            and BINDIR.
2694    
2695    The new scheme guarantees that the ML code responsible for the installation
2696    is in sync with the APIs of the main system.  Also, the installer is
2697    somewhat faster because the installer script is precompiled.
2698    
2699    ----------------------------------------------------------------------
2700    Name: Matthias Blume (blume (at) tti - c (dot) org)
2701    Date: 2003/09/24 15:35:00 CDT
2702    Tag: blume-20030924-synsock
2703  Description:  Description:
2704    
2705    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
2706    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
2707    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
2708    implementations of non-blocking operations from CML's Socket
2709    structure.
2710    
2711  ----------------------------------------------------------------------  ----------------------------------------------------------------------
2712  Name: Matthias Blume (blume (at) tti - c (dot) org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
2713  Date: 2003/09/24 15:10:05 CDT  Date: 2003/09/24 15:10:05 CDT

Legend:
Removed from v.1389  
changed lines
  Added in v.2617

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