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 577, Fri Mar 10 08:07:18 2000 UTC sml/trunk/NOTES/HISTORY revision 2445, Mon Apr 23 15:24:49 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  Date:  Name: Your Name (web page or e-mail)
12  Tag: <post-commit CVS tag>  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/04/23
19    Description:
20    
21    More Basis fixes: Time.fmt dropped the leading "~" for negative time
22    values that had no whole part.
23    
24    ----------------------------------------------------------------------
25    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
26    Date: 2007/04/23
27    Description:
28    
29    More Basis fixes: the OS.Path module did not include the InvalidArc
30    exception and did not do sufficient argument checking.
31    
32    ----------------------------------------------------------------------
33    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
34    Date: 2007/04/16
35    Description:
36    
37    Fixed an unbound functor bug in the AMD64 CM file.
38    
39    ----------------------------------------------------------------------
40    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
41    Date: 2007/04/12
42    Description:
43    
44    Substantially changed the signature and implementation of AMD64
45    SVID.  It now looks similar to the ia32 SVID, yet uses staged
46    allocation.
47    
48    ----------------------------------------------------------------------
49    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
50    Date: 2007/04/07
51    Description:
52    
53    More Basis fixes: the WORD signature was missing {to,from}Large.
54    Thanks to Andreas Rossberg.
55    
56    ----------------------------------------------------------------------
57    Name: Matthias Blume (http://www.tti-c.org/blume/)
58    Date: 2007/03/22 16:07:00 CDT
59    Tag: release-110.63
60    Description:
61    
62    Bumped version number to 110.63.
63    
64       !!!NEW BOOTFILES!!!
65    
66    ----------------------------------------------------------------------
67    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
68    Date: 2007/03/19
69    Description:
70    
71    Fixed bogus operand sizes in AMD64 instruction spilling.
72    
73    ----------------------------------------------------------------------
74    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
75    Date: 2007/03/19
76    Description:
77    
78    Fixed a number of inconsistencies between the Posix.TTY structure
79    and the Basis specification.  Thanks to Adam Chilpala.
80    
81    ----------------------------------------------------------------------
82    Name: Mike Rainey (http://www.cs.uchicago.edu/~mrainey)
83    Date: 2007/02/26
84    Description:
85    
86    Added preliminary support in MLRISC for Staged Allocation, a technique
87    for specifying calling conventions (see
88    http://www.eecs.harvard.edu/~nr/pubs/staged-abstract.html).
89    Initially, we plan to use this code to generate C calls for the AMD64.
90    
91    The staged allocation code base resides in MLRISC/staged-allocation,
92    and specialized calling conventions go in MLRISC/ARCH/staged-allocation.
93    
94    ----------------------------------------------------------------------
95    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
96    Date: 2007/02/20
97    Description:
98    
99      Bug fix: when SaveCState was called with two values to save, a subsequent
100      GC could cause the RestoreCState to fail because the saved state had been
101      promoted to tagless pair.
102    
103    ----------------------------------------------------------------------
104    Name: Allen Leung (leunga (at) reservoir (dot) com)
105    Date: 2007/02/20 19:08:00 EST
106    Description:
107    
108        Bug triggered by:
109    
110        val a1 = Word8Array.array(a1, 0w0);
111        val _  = Word8Array.update(a1, 0, 0w128);
112    
113        x86MCEmitter crashed when the immediate operand to MOVB was outside
114    of the range -128 ... 127.  I've changed the code so that the range
115    check is disabled.   Only the low order 8 bits of the immediate operand
116    are now significant.
117    
118    
119    ----------------------------------------------------------------------
120    Name: Matthias Blume (http://www.tti-c.org/blume/)
121    Date: 2007/02/15 09:20:00 CST
122    Description:
123    
124    Eliminated any mention of lexgen.  (Lexgen was an early precursor
125    to ml-ulex.)
126    
127    You should update your admin directory, so the shell scripts for
128    maintaining your local copy of the repository reflect this change.
129    
130    ----------------------------------------------------------------------
131    Name: Matthias Blume (http://www.tti-c.org/blume/)
132    Date: 2007/02/14 15:45:00 CST
133    Description:
134    
135    Fixed bug in CM's parallel make facility that failed to have
136    the master re-link modules after letting slaves compile them.
137    
138    ----------------------------------------------------------------------
139    Name: Matthias Blume (http://www.tti-c.org/blume/)
140    Date: 2007/02/12 15:10:00 CST
141    Description:
142    
143    Fixed typo in ml-build script that prevented library anchors
144    from being registered.
145    
146    ----------------------------------------------------------------------
147    Name: Matthias Blume (http://www.tti-c.org/blume/)
148    Date: 2007/02/02 15:20:00 CST
149    Tag: release-110.62
150    Description:
151    
152    New working release (110.62).  NEW BOOTFILES!
153    
154    ----------------------------------------------------------------------
155    Name: Aaron Turon (http://www.cs.uchicago.edu/~adrassi)
156    Date: 2007/01/31
157    Description:
158    
159    Brought ml-lpt manual up-to-date with the code.  Many minor
160    improvements to the tools, and a few minor bugfixes.  Prepared
161    ml-lpt-lib for integration with new UTF8 structure.  Changed
162    the interface for creating streams in ml-ulex (we now support
163    stream creation from several kinds of sources).  Overall, the
164    tools are now quite stable, and their interfaces are unlikely to
165    change in a way that would break compatibility.  More work,
166    however, is needed in the documentation.
167    
168    ----------------------------------------------------------------------
169    Name: Matthias Blume (http://www.tti-c.org/blume/)
170    Date: 2007/02/01 10:05:00 CST
171    Description:
172    
173    Implemented library installer.  Moved CM plugin code for
174    ml-burg, ml-lex, and ml-yacc out of CM source tree and into
175    their respective trees.  Implemented CM plugin for ml-ulex
176    and ml-antlr.  Used library installer for ml-burg, ml-ulex,
177    and ml-antlr.
178    
179    For ml-yacc and ml-lex we continue to have permanently "plugged-in"
180    CM tools.  (It turns out to be too messy to do otherwise because
181    there is too much code that during installation relies on the presence
182    of these tools -- resulting in a tricky ordering problem.)
183    
184    ----------------------------------------------------------------------
185    Name: Matthias Blume (http://www.tti-c.org/blume/)
186    Date: 2007/01/30 11:05:00 CST
187    Description:
188    
189    Added SMLofNJ.shiftArgs which is like a shell's "shift" command.
190    Modified CM's startup code to use shiftArgs as it processes
191    command line arguments.  This way, the init code in each .sml-file
192    or library that is mentioned at the top level will see only
193    those arguments that have not yet been processed at this point.
194    In other words, the init code can "seize control" and process the
195    remaining command line.
196    
197    ----------------------------------------------------------------------
198    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
199    Date: 2007/01/30
200    Description:
201    
202    Added fromList function to the ORD_SET interface and lookup to the
203    ORD_MAP interface.  See the SML/NJ Library CHANGES file for details.
204    
205    ----------------------------------------------------------------------
206    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
207    Date: 2007/01/28
208    Description:
209    
210    Added the UTF8 structure and signature from the Moby compiler to
211    the SML/NJ library (and the CML library).  These modules will replace
212    the version in the ml-lpt-lib.
213    
214    ----------------------------------------------------------------------
215    Name: Matthias Blume (http://www.tti-c.org/blume/)
216    Date: 2007/01/26 15:10:00 CST
217    Description:
218    
219    Added entries to handle ml-lpt-lib.cm in installer.
220    
221    ----------------------------------------------------------------------
222    Name: Matthias Blume (http://www.tti-c.org/blume/)
223    Date: 2006/12/15 11:10:00 CST
224    Tag: release-110.61
225    Description:
226    
227    New working release (110.61).  NEW BOOTFILES!
228    
229    This supersedes the pre-brown-paper-bug release (see below).
230    
231    ----------------------------------------------------------------------
232    Name: Matthias Blume (http://www.tti-c.org/blume/)
233    Date: 2006/12/15 11:00:00 CST
234    Description:
235    
236    Fixed brown-paper-bag bug with CM's pathname handling, which made
237    installation fail under Win32.
238    
239    ----------------------------------------------------------------------
240    Name: Matthias Blume (http://www.tti-c.org/blume/)
241    Date: 2006/12/14 12:00:00 CST
242    Description:
243    
244    Obsolete!
245    
246    [New working release (110.61).  NEW BOOTFILES!]
247    
248    ----------------------------------------------------------------------
249    Name: John Reppy (http://cs.uchicago.edu/~jhr)
250    Date: 2006/14/06 09:50:00 CST
251    Description:
252    
253    Fixed the code in runtime/c-libs/posix-tty/{tcgetattr,tcsetattr}.c to
254    get the c_cc termios data copied correctly.  Also moved the allocation
255    of the string to avoid problems if it caused a GC.
256    
257    Thanks to Timothy Bourke for the bug report and fix.
258    
259    ----------------------------------------------------------------------
260    Name: Matthias Blume (http://www.tti-c.org/blume)
261    Date: 2006/12/08 09:50:00 CST
262    Description:
263    
264    Added code to CM's "standard shell tool" implementation which
265    causes it to tolerate (with a warning) the situation where the shell
266    command fails (e.g., due to the shell command's non-existence)
267    as long as all target files exist.
268    
269    This makes it possible to, e.g., build ml-yacc from sources even if
270    svn checkout messed up the time stamps on files in such a way that
271    yacc.grm is younger than yacc.grm.sml or yacc.grm.sig.  (Ml-yacc would
272    be needed to re-process yacc.grm, but obviously it might not yet be
273    available at that time.)
274    
275    ----------------------------------------------------------------------
276    Name: John Reppy (http://cs.uchicago.edu/~jhr)
277    Date: 2006/12/06 12:06:00 CST
278    Description:
279    
280    Fixed the types of recvVecFrom, recvVecFrom', recvVecFromNB, and
281    recvVecFromNB' in the SOCKET signature.  This error is actually
282    in the SML Basis specification too.
283    
284    ----------------------------------------------------------------------
285    Name: Matthias Blume (http://www.tti-c.org/blume/)
286    Date: 2006/12/05 22:40:00 CST
287    Description:
288    
289    CM now reports undefined anchors as errors and aborts execution
290    rather than silently pressing on using bogus values.
291    
292    ----------------------------------------------------------------------
293    Name: Matthias Blume (http://www.tti-c.org/blume/)
294    Date: 2006/11/29 10:00:00 CST
295    Description:
296    
297    Use Say.vsay for printing the "[autoloading]" message, so
298    #set CM.Control.verbose false (or -Ccm.verbose=false) can be used
299    to suppress them.
300    
301    ----------------------------------------------------------------------
302    Name: Matthias Blume (http://www.tti-c.org/blume/)
303    Date: 2006/11/10 11:00:00 CST
304    Description:
305    
306    Fixed bug in CM where "with:" specifications that affect compilation
307    (as opposed to parsing) were ignored.
308    
309    ----------------------------------------------------------------------
310    Name: Matthias Blume (http://www.tti-c.org/blume/)
311    Date: 2006/11/09 14:30:00 CST
312    Tag: release-110.60
313    Description:
314    
315    New working release (110.60).  NEW BOOTFILES!
316    
317    This is the first subversion-hosted release.  There are also changes
318    to the directory layout.  Here is a table:
319    
320    (All pathnames are relative to the SML/NJ "root" directory.)
321    
322      config -> config
323    
324      src/cm -> base/cm
325      src/compiler -> base/compiler
326      src/runtime -> base/runtime
327      src/system -> base/system
328    
329      src/cm/pgraph -> pgraph
330    
331      src/READMES -> base/READMES
332      src/$notefile -> base/NOTES/$notefile
333         for <notefile> in BOOT CVSNOTES CYGWININSTALL HISTORY INSTALL
334                           MACOSXINSTALL WININSTALL
335    
336      src/smlnj-lib -> smlnj-lib
337      src/MLRISC -> MLRISC
338      ckit -> ckit
339      src/cml -> cml
340      src/eXene -> eXene
341      src/heap2asm -> heap2asm
342      src/lexgen -> lexgen
343      src/ml-burg -> ml-burg
344      src/ml-lex -> ml-lex
345      src/ml-yacc -> ml-yacc
346      src/ml-nlffi-lib -> nlffi/lib
347      src/ml-nlffigen -> nlffi/gen
348      src/smlnj-c -> smlnj-c
349      src/tools/TraceDebugProf -> trace-debug-profile
350    
351    In addition, there is also a new
352    
353      ml-lpt
354    
355    directory containing two new program generator tools: ml-ulex and
356    ml-antlr (a lexer generator that handles unicode and an ANTRL-inspired
357    LL(k) parser generator). These tools are currently "beta-quality"
358    
359    The latest versios of the sources can now be obtained anonymously
360    via subversion.  For this, it is useful to first check out
361    
362       svn://smlnj-gforge.cs.uchicago.edu/smlnj/admin
363    
364    and put the resulting directory on your shell's PATH.  This provides
365    access to three shell scripts: checkout-all.sh, stat-all.sh,
366    and refresh-all.sh.
367    
368    To create a freshly checked-out copy of the sources, do
369    
370       checkout-all.sh [dir]
371    
372    where dir is the optional SML/NJ root directory (default is ".").
373    
374    This creates the above directory layout.  Each subdirectory of
375    the root is under individual subversion control.  The stat-all.sh
376    and refresh-al.sh scripts apply "svn stat" or "svn update" to
377    each of these subtrees.
378    
379    ----------------------------------------------------------------------
380    Name: Matthias Blume (http://www.tti-c.org/blume/)
381    Date: 2006/11/02 12:20:00 CST
382    Description:
383    
384    Reorganized directory layout.
385    
386    This is a temporary solution, more reorganization is to come.
387    
388    The basic idea is to have a number of toplevel trees, each corresponding
389    to a well-defined part of the overall system.  Each part can be
390    maintained individually, even in separate source repositories,
391    although currently we still serve everything out of the main
392    smlnj-gforge tree.
393    
394    Installer and and scripts have been updated to reflect the new
395    layout.  The installer (base/src/system/smlnj/installer) is now
396    "scriptable" to avoid burning too much knowledge about the
397    layout into SML source code.  The main script used by the installer
398    is in config/actions.
399    
400    The main change is that many of the subdirectories of what used to
401    be known as "src" have moved to the toplevel.  The "src" directory
402    itself has moved down into a subtree called "base".  (We may eventually
403    get rid of the extra level of indirection represented by "src".)
404    
405    The layout is now as follows:
406    
407      toplevel tree name | default repository
408                         | (using gf=svn://smlnj-gforge.cs.uchicago.edu/smlnj)
409      -------------------+----------------------------------------------------
410      config             | $gf/config/trunk
411                         |
412      base               | $gf/sml/trunk
413                         |
414      smlnj-lib          | $gf/smlnj-lib/trunk
415      MLRISC             | $gf/MLRISC/trunk
416                         |
417      ml-yacc            | $gf/ml-yacc/trunk
418      ml-lex             | $gf/ml-lex/trunk
419      ml-burg            | $gf/ml-burg/trunk
420      lexgen             | $gf/lexgen/trunk
421      heap2asm           | $gf/heap2asm/trunk
422                         |
423      cml                | $gf/cml/trunk
424      eXene              | $gf/eXene/trunk
425      ckit               | $gf/ckit/trunk
426      nlffi              | $gf/nlffi/trunk
427                         |
428      smlnj-c            | $gf/smlnj-c/trunk
429    
430    In $gf/admin there are a few useful shell scripts for checking out
431    and maintaining the entire collection of trees:
432    
433       admin/checkout-all.sh [dir]
434          -- optionally creates dir and checks out all trees from their
435             default repositories; if dir is missing, checkout into .
436       admin/refresh-all.sh [dir]
437          -- looks at all trees (from the above list) in dir (default: .)
438             and runs "svn update" if the tree exists and is under
439             subversion control;
440             non-existing or non-subversion trees are skipped
441       admin/stat-all.sh [dir]
442          -- like refresh-all.sh, but runs "svn stat" instead
443    
444    ----------------------------------------------------------------------
445    Name: Matthias Blume (http://www.tti-c.org/blume/)
446    Date: 2006/10/05 11:30:00 CDT
447    Tag: blume-20061005-merge-amd64
448    Description:
449    
450    Merged code for AMD64 backend (Mike Rainey's work).
451    Everything is hooked up but untested.
452    
453    ----------------------------------------------------------------------
454    Name: Matthias Blume (http://www.tti-c.org/blume/)
455    Date: 2006/05/17 14:00:00 CST
456    Tag: Release_110_59
457    Description:
458    
459    New working version (110.59).  NEW BOOTFILES!
460    
461    I am freezing 110.59.  Changes other than the version-number increase:
462    
463      eXene:
464    
465         * committed changes to eXene from Alley Stoughton:
466             "fixed bugs in X authorization and resource handling, as well
467              as in the pile and viewport widgets"
468    
469      Runtime:
470        * fixed linking problem with NetBSD 3.x.
471    
472      Lexgen:
473        * lexgen tool handles non-ascii characters in 7-bit mode the same
474          way that ml-lex does
475    
476        * lexgen propagates exceptions the same way that ml-lex does
477    
478      CML:
479        * Fixed a bug in the SyncVar polling functions (iGetPoll,
480          mTakePoll, and mGetPoll) that could lead to livelock.
481    
482    ----------------------------------------------------------------------
483    Name: Matthias Blume (http://www.tti-c.org/blume/)
484    Date: 2006/05/12 15:20:00 CST
485    Tag: blume-20060515-makedepend
486    Description:
487    
488    Implemented ml-makedepend (i.e., CM.sources) in a better (more robust)
489    way.  This should hopefully fix the ml-makedepend problem permanently.
490    
491    ----------------------------------------------------------------------
492    Name: Matthias Blume (http://www.tti-c.org/blume/)
493    Date: 2006/05/12 15:15:00 CST
494    Tag: blume-20060512-makedepend
495    Description:
496    
497    Fixed long-standing bug with ml-makedepend where it would output a
498    spurious dependency to a non-existing file.  (This is a simple fix.
499    It might need further looking into.)
500    
501    ----------------------------------------------------------------------
502    Name: Matthias Blume (http://www.tti-c.org/blume/)
503    Date: 2006/04/20 10:30:00 CDT
504    Tag: blume-20060420-heap2exec
505    Description:
506    
507    Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)
508    that enable heap2exec under Linux and FreeBSD.
509    
510    ----------------------------------------------------------------------
511    Name: John Reppy
512    Date: 2006/04/14
513    Tag:
514    Description:
515    
516    MLRISC changes:
517      1) renamed GAS_PSEUDO_OPS to AS_PSEUDO_OPS and put it in its own file.
518      2) added support for NOTB and XORB operators in pseudo-op expressions
519      3) added DarwinPseudoOp functor that supports Darwin's assembler syntax.
520      4) added support for 64-bit integer literals
521    
522    ----------------------------------------------------------------------
523    Name: Matthias Blume (http://www.tti-c.org/blume/)
524    Date: yyyy/mm/dd
525    Tag: Release_110_58
526    Description:
527    
528    New working version (110.58).  NEW BOOTFILES!
529    
530    ----------------------------------------------------------------------
531    Name: Matthias Blume (http://www.tti-c.org/blume/)
532    Date: 2006/03/01 22:15:00 CST
533    Tag: blume-20060301-lexgen
534    Description:
535    
536    Incorporated several bugfixes to lexgen.  Compiler now compiles to
537    fixpoint when using lexgen instead of ml-lex.
538    
539    ----------------------------------------------------------------------
540    Name: Matthias Blume (http://www.tti-c.org/blume/)
541    Date: 2006/02/28 22:45:00 CST
542    Tag: blume-20060228-lexgen
543    Description:
544    
545    Removed ml-flex and added lexgen instead, using Aaron Turon's newly
546    provided tarball.  The generated lexers still have problems.
547    
548    ----------------------------------------------------------------------
549    Name: Matthias Blume (http://www.tti-c.org/blume/)
550    Date: 2006/02/26 23:30:00 CST
551    Tag: blume-20060226-ml-flex
552    Description:
553    
554    Removed ml-flex' dependency on regexp-lib.cm.  Turned installation
555    of ml-flex on by default.
556    
557    ----------------------------------------------------------------------
558    Name: Matthias Blume (http://www.tti-c.org/blume/)
559    Date: 2006/02/24 16:30:00 CST
560    Tag: blume-20060224-ml-flex
561    Description:
562    
563    Added ml-flex sources.  Partially integrated, but should not be
564    turned on yet!  (Read: leave it commented-out in config/targets!)
565    
566    ----------------------------------------------------------------------
567    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
568    Date: 2006/02/23
569    Tag: jhr-20060223-x86-64
570    Description:
571    Changes to support building on x86-64 systems (using the 32-bit mode).
572    Also cleaned up signal handling on Linux.  Support for pre-2.2 Linux
573    kernels dropped.
574    
575    ----------------------------------------------------------------------
576    Name: Allen Leung (leunga (at) reservoir (dot) com)
577    Date: 2006/02/22 15:07:00 EST
578    Tag: leunga-20060222-mdl-gen
579    Description:
580    
581      CM has changed.  Updated the script for rebuilding the MLRISC generated
582    files.
583    
584    ----------------------------------------------------------------------
585    Name: Matthias Blume (http://www.tti-c.org/blume/)
586    Date: 2006/02/14 17:30:00 CST
587    Tag: blume-20060214-intel-mac
588    Description:
589    
590    Hooked code for Darwin-specific Intel ABI into main compiler.
591    (This is a temporary solution which relies on the fact that the
592    compiler itself does not use NLFFI.  Eventually we need to divorce
593    intel mac from generic x86 unix code and make separate sets of binaries.)
594    
595    ----------------------------------------------------------------------
596    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
597    Date: 2006/02/13
598    Tag: jhr-20060213-intel-mac
599    Description:
600    Changed MLRISC x86 CCalls for partial support of MacOS X ABI.
601    
602    ----------------------------------------------------------------------
603    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
604    Date: 2006/02/06
605    Tag: jhr-20060206-intel-mac
606    Description:
607    Changes to support MacOS X on Intel hardware.  The C-calls support in
608    MLRISC must also be updated to support the MacOS X ABI.
609    
610    ----------------------------------------------------------------------
611    Name: Matthias Blume (http://www.tti-c.org/blume/)
612    Date: 2005/12/16 00:15:00 CST
613    Tag: blume-20051216-cm
614    Description:
615    
616    Improved error reporting and handling in CM.
617    
618    ----------------------------------------------------------------------
619    Name: Matthias Blume (http://www.tti-c.org/blume/)
620    Date: 2005/11/21 14:00:00 CST
621    Tag: blume-20051121-html-lib
622    Description:
623    
624    Enabling $/html-lib.cm in config/preloads did not work.  This is fixed
625    now.  (Since the anchor mapping for html-lib.cm is not yet in effect
626    at the time when config/preloads is processed, the library has to
627    be referred to by another name.  In 110.57 this would be
628    $SMLNJ-LIB/HTML/html-lib.cm.  I arranged for $smlnj/smlnj-lib/html-lib.cm
629    to be valid as well.)
630    
631    Thanks to Todd Wilson (Fresno) for alerting me to this issue.
632    
633    ----------------------------------------------------------------------
634    Name: Matthias Blume (http://www.tti-c.org/blume/)
635    Date: 2005/11/19 13:45:00 CST
636    Tag: Release_110_57
637    Description:
638    
639    Moved release tag for 110.57.
640    
641    ----------------------------------------------------------------------
642    Name: Matthias Blume (http://www.tti-c.org/blume/)
643    Date: 2005/11/19 23:35:00 CST
644    Tag: blume-20051119-fish
645    Description:
646    
647    Fixed a problem in config/install.sh where it tries to "fish" the
648    name of the CM metadata directory from the wrong place (because
649    the physical location of basis.cm has changed).  Also, corrected the
650    path anchor for $/html-lib.cm.  (Thanks to M. Fluet for pointing out
651    these problems.)
652    
653    ----------------------------------------------------------------------
654    Name: Matthias Blume (http://www.tti-c.org/blume/)
655    Date: 2005/11/16 14:30:00 CST
656    Tag: blume-orig-110_57
657    Description:
658    
659    New working version (110.57).  NEW BOOTFILES!
660    
661    UPDATE: The release tag has been moved to include a fix for a brown-paper-
662            bag glitch (see above).
663    
664    ----------------------------------------------------------------------
665    Name: Matthias Blume (http://www.tti-c.org/blume/)
666    Date: 2005/11/16 10:25:00 CST
667    Tag: blume-22051116-btrace
668    Description:
669    
670    Fixed problem with bogus exception message when using back-trace
671    facility.
672    
673    ----------------------------------------------------------------------
674    Name: Matthias Blume (http://www.tti-c.org/blume/)
675    Date: 2005/11/15 22:35:00 CST
676    Tag: blume-22051115-array2copy
677    Description:
678    
679    Added simple implementation of Array2.copy.  (Warning: mostly untested.)
680    
681    ----------------------------------------------------------------------
682    Name: Matthias Blume (http://www.tti-c.org/blume/)
683    Date: 2005/11/15 21:35:00 CST
684    Tag: blume-22051115-versiontool
685    Description:
686    
687    Reversed change to src/system/smlnj/internals/versiontool.cm.  This
688    file gets loaded as a tool -- by the equivalent of CM.make during the
689    run of CMB.make.  Thus, CMB's path configuration is meaningless for
690    it.  Instead, it has the status of "user code", so it should use
691    $/basis.cm to refer to the Basis library.  (At least that's true for
692    the purpose of bootstrapping the previous change.  In the future it
693    might make sense to have versiontool.cm refer to
694    $smlnj/basis/basis.cm, i.e., the version of the Basis that the
695    compiler itself uses.)
696    
697    Also patched src/system/testml to have it activate those extra anchor
698    bindings in config/extrapathconfig.
699    
700    ----------------------------------------------------------------------
701    Name: Matthias Blume (http://www.tti-c.org/blume/)
702    Date: 2005/11/15 16:35:00 CST
703    Tag: blume-22051115-libraries
704    Description:
705    
706    This change affects the way the following libraries are tied into
707    the system:
708    
709       $/basis.cm
710       $/smlnj-lib.cm
711       $/pp-lib.cm
712       $/controls-lib.cm
713       $/html-lib.cm
714       $/ml-yacc-lib.cm
715    
716    These libraries are now internally (as seen from the source code
717    of the implementation itself) known by the following names:
718    
719       $smlnj/basis/basis.cm
720       $smlnj/smlnj-lib/smlnj-lib.cm
721       $smlnj/smlnj-lib/pp-lib.cm
722       $smlnj/smlnj-lib/controls-lib.cm
723       $smlnj/smlnj-lib/html-lib.cm
724       $smlnj/ml-yacc/ml-yacc-lib.cm
725    
726    This makes it possible to work with code that requires different
727    versions of these libraries, and which refers to these libraries using
728    their "default" names (i.e., the first set of names above).  In other
729    words, one can un-define or re-define those default names without
730    compromising the proper functioning of the compiler itself.
731    
732    A similar procedure had already been performed for several of the
733    MLRISC libraries that are linked into the compiler.  I did some
734    cleanup on this code.
735    
736    A new file in the config directory (named extrapathconfig) is
737    responsible for setting up path anchors that the compiler itself does
738    not need, but that are typically required by user code.
739    
740    ----------------------------------------------------------------------
741    Name: Matthias Blume
742    Date: 2005/11/07 17:05:00 CST
743    Tag: blume-20051107-slice
744    Description:
745    
746    Fixed erroneous out-of-bounds test in the "update" function of
747    various *ArraySlice modules.  (Thanks to Vesa A. Norrman for pointing
748    out the problem.)
749    
750    Pushed some Basis changes through ML-Lex, CML, and eXene.
751    
752    ----------------------------------------------------------------------
753    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
754    Date: 2005/11/07
755    Description:
756    Fixed a Basis incompatibility: The depreciated function Substring.all
757    was removed (use Substring.full instead).
758    
759    ----------------------------------------------------------------------
760    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
761    Date: 2005/11/05
762    Description:
763    Tweaked interval set API in SML/NJ library; see the CHANGES file for details.
764    
765    ----------------------------------------------------------------------
766    Name: Matthias Blume (http://www.tti-c.org/blume/)
767    Date: 2005/11/02 16:25:00 CST
768    Tag: blume-20051102-hex
769    Description:
770    
771    * Runtime system bootstrap code now accepts hex digits in BOOTLIST
772      in either upper case or lower case format.
773    * Pushed changes to names of Pack<N>{Big,Little} structures through
774      CML and eXene.
775    
776    ----------------------------------------------------------------------
777    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
778    Date: 2005/11/02
779    Description:
780    Fixed a Basis incompatibility: Pack<N>{Big,Little} structures should
781    be called PackWord<N>{Big,Little}.
782    
783    ----------------------------------------------------------------------
784    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
785    Date: 2005/10/28
786    Description:
787    Fixed a minor Basis incompatibility: hex digits should be upper case.
788    
789    ----------------------------------------------------------------------
790    Name: Matthias Blume (blume (at) tti - c (dot) org)
791    Date: 2005/10/25 16:00:00 CDT
792    Tag: Release_110_56
793    Description:
794    
795    New working version (110.56).  NEW BOOTFILES!
796    
797    ----------------------------------------------------------------------
798    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
799    Date: 2005/10/25
800    Description:
801    Added interval sets to utility library (signatures INTERVAL_DOMAIN
802    and INTERVAL_SET, and functor IntervalSetFn).
803    
804    ----------------------------------------------------------------------
805    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
806    Date: 2005/10/14
807    Description:
808    Add Zhong Shao's fix for datatype equality functions.
809    
810    ----------------------------------------------------------------------
811    Name: Allen Leung (leunga (at) reservoir (dot) com)
812    Date: 2005/10/14 12:30:00 EST
813    Tag: leunga-20051014-x86-spill
814    Description:
815    
816    Bug fix a bug found by Carl Hauser.
817    There was a typo in the reload code for FCMP in x86SpillInstr.sml.
818    
819    ----------------------------------------------------------------------
820    Name: Allen Leung (leunga (at) reservoir (dot) com)
821    Date: 2005/10/14 11:15:00 EST
822    Tag: leunga-20051014-x86-asm
823    Description:
824    
825    Removed some debugging code in file x86Asm.sml.
826    The function emit_operand was printing out debugging output.
827    
828    ----------------------------------------------------------------------
829    Name: John Reppy
830    Date: 2005/07/27
831    Tag:
832    Description:
833    
834    Fixed ml-lex to recognize "\r" as representing carriage return.
835    
836    ----------------------------------------------------------------------
837    Name: John Reppy
838    Date: 2005/07/27
839    Tag:
840    Description:
841    
842    Fixed ml-yacc to work on files with non-native end-of-line
843    encodings (e.g., Windows text file on a Unix system).
844    
845    ----------------------------------------------------------------------
846    Name: John Reppy
847    Date: 2005/07/20
848    Tag:
849    Description:
850    
851    Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)
852    to support HPUX 11.
853    
854    ----------------------------------------------------------------------
855    Name: John Reppy
856    Date: 2005/07/06
857    Tag:
858    Description:
859    
860    Changes to the SML/NJ library.  See smlnj-lib/CHANGES for details.
861    
862    ----------------------------------------------------------------------
863    Name: Matthias Blume (blume (at) tti - c (dot) org)
864    Date: 2005/07/06 00:45:00 CDT
865    Tag: blume-20050706-slice-copy
866    Description:
867    
868    Fixed reversed logic for deciding whether to "copy up" or "copy down"
869    in *-array-slice.sml.
870    
871    ----------------------------------------------------------------------
872    Name: Allen Leung (leunga (at) reservoir (dot) com)
873    Date: 2005/05/31 17:00:00 EST
874    Tag: leunga-20050531-cygwin-fault-2
875    Description:
876    
877    A typo in the cygwin code fixed.
878    
879    ----------------------------------------------------------------------
880    Name: Allen Leung (leunga (at) reservoir (dot) com)
881    Date: 2005/05/31 16:47:00 EST
882    Tag: leunga-20050531-cygwin-fault
883    Description:
884    
885    Updated Cygwin's fault/signal handling to match the Windows version.
886    Updated the export list.
887    
888    ----------------------------------------------------------------------
889    Name: Matthias Blume (blume (at) tti - c (dot) org)
890    Date: 2005/05/18 13:35:00 CDT
891    Tag: Release_110_54
892    Description:
893    
894    New working version (110.54).  NEW BOOTFILES!
895    
896    ----------------------------------------------------------------------
897    Name: Matthias Blume (blume (at) tti - c (dot) org)
898    Date: 2005/05/18 11:58:00 CDT
899    Tag: blume-20050518-installer
900    Description:
901    
902    Added support scripts for Mac OS X PackageMaker and modified
903    config/install.sh so that it supports re-dumping a heap image
904    after customization.
905    
906    ----------------------------------------------------------------------
907    Name: Matthias Blume (blume (at) tti - c (dot) org)
908    Date: 2005/05/18 10:55:00 CDT
909    Tag: blume-20050518-realdiv-noovld
910    Description:
911    
912    Un-overloaded / to work around bug in overloading resolution code.
913    
914    ----------------------------------------------------------------------
915    Name: Matthias Blume (blume (at) tti - c (dot) org)
916    Date: 2005/05/16 23:50:00 CDT
917    Tag: blume-20050516-redump-heap
918    Description:
919    
920    Added mechanism for re-creating a heap file for the interactive system
921    after configuration variables have been changed.
922    
923       CM.redump_heap : string -> unit
924    
925    This is much like SMLofNJ.exportML, but starting from the resulting
926    heap does not return to the caller of CM.redump_heap but
927    restarts the interactive system from scratch.  The original call of
928    CM.redump_heap does not return but ends the interactive session.
929    Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.
930    
931    Internally, redump_heap winds the dynamic execution context back to
932    the point where the original heap image was created and re-executes
933    the heap image generation code in the boot code.
934    
935    ----------------------------------------------------------------------
936    Name: Matthias Blume (blume (at) tti - c (dot) org)
937    Date: 2005/05/09 21:55:00 CDT
938    Tag: blume-20050509-word64
939    Description:
940    
941    Added a hack to the existing hack known as Word64 to make fromString
942    behave correctly.  I am still not sure whether Word64.scan will work
943    as specified with respect to the interaction of radix and prefix.
944    
945    ----------------------------------------------------------------------
946    Name: Allen Leung (leunga (at) reservoir (dot) com)
947    Date: 2005/05/04 11:50:00 EST
948    Tag: leunga-20050504-checkgc
949    Description:
950    
951    Added a gc protocol checking phase.  This phase is enabled with
952    the flag "check-gc".  "debug-check-gc" turns on the verbose mode.
953    
954    ----------------------------------------------------------------------
955    Name: Matthias Blume (blume (at) tti - c (dot) org)
956    Date: 2005/05/04 10:45:00 CDT
957    Tag: blume-20050504-intinf
958    Description:
959    
960    Fixed a bug in the implementation of div and mod for IntInf.
961    Thanks to Neophytos Michael for reporting the problem.
962    
963    ----------------------------------------------------------------------
964    Name: Matthias Blume (blume (at) tti - c (dot) org)
965    Date: 2005/05/04 10:35:00 CDT
966    Tag: blume-20050504-join
967    Description:
968    
969    Added a "join" combinator to the ParserComb module in smlnj-lib.cm.
970    
971    ----------------------------------------------------------------------
972    Name: Matthias Blume (blume (at) tti - c (dot) org)
973    Date: 2005/02/28 23:40:00 CST
974    Tag: blume-20050228-mVar
975    Description:
976    
977    Fixed serious bug (brown paper bag variety) in new implementation of
978    structure Atom in CML.  (I had accidentally used a mailbox instead of
979    an mvar, leaving the door open for races.)
980    
981    ----------------------------------------------------------------------
982    Name: Matthias Blume (blume (at) tti - c (dot) org)
983    Date: 2005/02/25 15:00:00 CST
984    Tag: Release_110_53
985    Description:
986    
987    New working version (110.53).  NEW BOOTFILES!
988    
989    ----------------------------------------------------------------------
990    Name: Matthias Blume (blume (at) tti - c (dot) org)
991    Date: 2005/02/25 14:50:00 CST
992    Tag: blume-20050225-susp
993    Description:
994    
995    Brought back SMLofNJ.Susp.  The underlying suspension type is the one
996    implemented in Core -- which means that it is the same as the one used
997    by the lazy extension.
998    
999    ----------------------------------------------------------------------
1000    Name: Matthias Blume (blume (at) tti - c (dot) org)
1001    Date: 2005/02/24 16:50:00 CST
1002    Tag: blume-20050224-cml-atom
1003    Description:
1004    
1005    Simpler and at the same time more general implementation of structure
1006    Atom in CML.
1007    
1008    ----------------------------------------------------------------------
1009    Name: Matthias Blume (blume (at) tti - c (dot) org)
1010    Date: 2005/02/15 17:35:00 CST
1011    Tag: blume-20050215-tools
1012    Description:
1013    
1014    Created new "tools" directory under "src" and moved "TraceDebugProf"
1015    there.
1016    
1017    ----------------------------------------------------------------------
1018    Name: Matthias Blume (blume (at) tti - c (dot) org)
1019    Date: 2005/02/10 17:55:00 CST
1020    Tag: blume-20050210-longlong
1021    Description:
1022    
1023    Implemented "long long" arguments and results for NLFFI.  (Only the
1024    PPC/MacOS implementation is complete, the other backends still need to
1025    be updated.)
1026    
1027    ----------------------------------------------------------------------
1028    Name: Matthias Blume (blume (at) tti - c (dot) org)
1029    Date: 2005/01/24 17:40:00 CST
1030    Tag: blume-20050124-mlyacc
1031    Description:
1032    
1033    Minor cleanup in ML-Yacc rule printing mechanism.  This should fix a
1034    problem with certain "as" patterns which previously got rendered
1035    using incorrect syntax.
1036    
1037    ----------------------------------------------------------------------
1038    Name: Matthias Blume (blume (at) tti - c (dot) org)
1039    Date: 2005/01/18 12:00:00 CST
1040    Tag: blume-20050118-profile
1041    Description:
1042    
1043    Made time profiling code (interrupt handler) in runtime system aware
1044    of new array representation.
1045    
1046    ----------------------------------------------------------------------
1047    Name: Matthias Blume (blume (at) tti - c (dot) org)
1048    Date: 2005/01/14 18:00:00 CST
1049    Tag: blume-20050114-heap2exec
1050    Description:
1051    
1052    Implemented new (but still experimental) heap2exec facility.  This is
1053    tested under Mac OS X and should work under Linux (will test shortly).
1054    It will probably also work on the Sparc (will test some time later).
1055    
1056      - removed old "HACKED_STANDALONE" hack from runtime
1057    
1058    To be able to test this, uncomment the request for "heap2asm" in
1059    config/targets prior to installation.  (Notice that this is different
1060    from "heap2exec" mentioned below.  Not a typo.)
1061    
1062    To perform an actual test, run the command
1063    
1064       $ bin/heap2exec heapfile execfile
1065    
1066    (You can put heap2exec on your shell's path.)
1067    
1068    For example, run
1069    
1070      $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
1071    
1072    This will create a standalone executable called "mly" which you can
1073    then invoke directly as a command.
1074    
1075    ----------------------------------------------------------------------
1076    Name: Matthias Blume (blume (at) tti - c (dot) org)
1077    Date: 2005/01/07 11:44:00 CST
1078    Tag: blume-20050107-mlstring
1079    Description:
1080    
1081    fixed off-by-one error in ML_STRING macro (globals.c)
1082    
1083    ----------------------------------------------------------------------
1084    Name: Matthias Blume (blume (at) tti - c (dot) org)
1085    Date: 2004/12/23 18:00:00 CST
1086    Tag: blume-20041223-santa
1087    Description:
1088    
1089    Made ml-build script "smarter" (but only very little).
1090    
1091    ----------------------------------------------------------------------
1092    Name: Matthias Blume (blume (at) tti - c (dot) org)
1093    Date: 2004/12/21 15:05:00 CST
1094    Tag: blume-20041221-longlong
1095    Description:
1096    
1097    * Implemented access to signed and unsigned long long data in NLFFI.
1098    (The parameter-passing part of the picture has not complete. But
1099    data structure access seems to work.)
1100    
1101    * Fixed CM's incorrect assumption that the PPC is little-endian.
1102      (On the Mac, it is big-endian.  And that's currently our only
1103      PPC platform.)
1104    
1105    ----------------------------------------------------------------------
1106    Name: Matthias Blume (blume (at) tti - c (dot) org)
1107    Date: 2004/12/21 12:50:00 CST
1108    Tag: blume-20041221-memory
1109    Description:
1110    
1111    Some cleanup in the $c/memory.cm library: separated some concerns by
1112    moving allocation code and memory access code each into their own
1113    files.
1114    
1115    ----------------------------------------------------------------------
1116    Name: Allen Leung (leunga (at) reservoir (dot) com)
1117    Date: 2004/12/17 16:12:00 EST
1118    Tag: leunga-20041217-cygwin-smlnj-home
1119    Description:
1120    
1121        The Unix I/O library of SML/NJ on cygwin does not understand
1122    Windows style pathname, so problems arise when SMLNJ_HOME is set
1123    to a Windows style pathname.  _run-sml now converts SMLNJ_HOME
1124    to a POSIX pathname on cygwin.
1125    
1126    ----------------------------------------------------------------------
1127    Name: Matthias Blume (blume (at) tti - c (dot) org)
1128    Date: 2004/12/16 13:35:00 CST
1129    Tag: Release_110_52
1130    Description:
1131    
1132    Last-minute changes incorporated into 110.52.  Release tag moved.
1133    
1134    The changes:
1135       - HashString.hashString' -> HashString.hashSubstring
1136       - bug fix in UnivariateStats
1137    
1138    ----------------------------------------------------------------------
1139    Name: Matthias Blume (blume (at) tti - c (dot) org)
1140    Date: 2004/12/15 23:40:00 CST
1141    Tag: blume-20041215-hashSubstring
1142    Description:
1143    
1144    - HashString.hashString' -> HashString.hashSubstring
1145    - corresponding changes in atom.sml
1146    - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and
1147      added some comments
1148    
1149    ----------------------------------------------------------------------
1150    Name: Matthias Blume (blume (at) tti - c (dot) org)
1151    Date: 2004/12/15 15:30:00 CST
1152    Tag: (Release_110_52)
1153    Description:
1154    
1155    New working version (110.52).  NEW BOOTFILES!
1156    
1157    ----------------------------------------------------------------------
1158    Name: Matthias Blume (blume (at) tti - c (dot) org)
1159    Date: 2004/12/15 12:45:00 CST
1160    Tag: blume-20041215-spaces
1161    Description:
1162    
1163    More on the space problem (this time for Win32).
1164    
1165    ----------------------------------------------------------------------
1166    Name: Matthias Blume (blume (at) tti - c (dot) org)
1167    Date: 2004/12/14 17:30:00 CST
1168    Tag: blume-20041214-spaces
1169    Description:
1170    
1171    Hacked some of the scripts (in particular: the installer) to cope with
1172    spaces in filenames a bit better.  But beware: the current "solution"
1173    is likely still full of bugs and inherently incomplete.  (We need to
1174    do away with those shell scripts for a comprehensive solution.)
1175    
1176    ----------------------------------------------------------------------
1177    Name: Matthias Blume (blume (at) tti - c (dot) org)
1178    Date: 2004/12/13 14:45:00 CST
1179    Tag: blume-20041213-ml-makedepend
1180    Description:
1181    
1182    Fixed bug in code for ml-makedepend.
1183    
1184    ----------------------------------------------------------------------
1185    Name: Matthias Blume (blume (at) tti - c (dot) org)
1186    Date: 2004/12/09 16:30:00 CST
1187    Tag: blume-20041209-statistics
1188    Description:
1189    
1190    Added two simple but potentially useful statistics modules to SML/NJ Library.
1191    (See CHANGES file there.)
1192    
1193    ----------------------------------------------------------------------
1194    Name: Matthias Blume (blume (at) tti - c (dot) org)
1195    Date: 2004/12/01 16:50:00 CST
1196    Tag: blume-20041201-atom
1197    Description:
1198    
1199    smlnj-lib:
1200    
1201      Added function HashString.hashString' for substrings.
1202      Hand-inlined CharVector.foldl into HashString (for speed).
1203      Modified implementation of structure Atom to avoid extracting
1204      strings from substrings unless necessary.
1205      (Also see CHANGES file for smlnj-lib.)
1206    
1207    ----------------------------------------------------------------------
1208    Name: Matthias Blume (blume (at) tti - c (dot) org)
1209    Date: 2004/11/24 22:15:00 CST
1210    Tag: blume-20041124-cml
1211    Description:
1212    
1213    Made sure CML compiles when Position = Int64.
1214    
1215    ----------------------------------------------------------------------
1216    Name: Matthias Blume (blume (at) tti - c (dot) org)
1217    Date: 2004/11/24 14:30:00 CST
1218    Tag: blume-20041124-position
1219    Description:
1220    
1221    The compiler can now be compiled in a mode that makes structure Position
1222    equal to Int64.  The default, however, is unchanged (Position = Int31)
1223    for the time being.
1224    
1225    To enable 64-bit positions, use the following procedure:
1226    
1227    1. Start sml
1228    2. Autoload $smlnj/cmb.cm (if not already autoloaded)
1229    3. Type
1230          #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
1231    4. Run CMB.make() as usual.
1232    
1233    This is barely tested.  The only test so far was a little SML program
1234    counting the number of characters in an 8-gigabyte file by
1235    reading it character-by-character.  That test was successful.
1236    
1237    In support of 64-bit positions, a number of new functions have been
1238    added to the runtime system.
1239    
1240    ----------------------------------------------------------------------
1241    Name: Matthias Blume (blume (at) tti - c (dot) org)
1242    Date: 2004/11/23 14:45:00 CST
1243    Tag: blume-20041123-useFile
1244    Description:
1245    
1246    Fixed a problem with unhelpful error messages related to problems with
1247    .cm- or .sml files that appear as part of the sml command line.
1248    
1249    ----------------------------------------------------------------------
1250    Name: Matthias Blume (blume (at) tti - c (dot) org)
1251    Date: 2004/11/18 15:40:00 CST
1252    Tag: Release_110_51
1253    Description:
1254    
1255    New working version (110.51).  NEW BOOTFILES!
1256    
1257    ----------------------------------------------------------------------
1258    Name: Matthias Blume (blume (at) tti - c (dot) org)
1259    Date: 2004/11/18 15:35:00 CST
1260    Tag: <none>
1261    Description:
1262    
1263    Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5
1264    Joemann).
1265    
1266    ----------------------------------------------------------------------
1267    Name: Allen Leung (leunga (at) reservoir (dot) com)
1268    Date: 2004/11/17 16:05:21 EST 2004
1269    Tag: leunga-20041117-mlrisc-live-kill
1270    Description:
1271    
1272       Added support for MLTree constructs LIVE and KILL
1273    to all the architectures.
1274    
1275    ----------------------------------------------------------------------
1276    Name: Matthias Blume (blume (at) tti - c (dot) org)
1277    Date: 2004/11/13 00:20:00 CST
1278    Tag: blume-20041113-versiontool
1279    Description:
1280    
1281    - Stripped down the versiontool: It now only handles the version number.
1282      The date string is generated at bootstrap time (during makeml).
1283    
1284    - In a previous commit, fixed a minor issue with how polyequal is being
1285      translated.  In particular, the code now "looks through" abstractions.
1286      This results in slightly fewer polyEqual warnings and hopefully slightly
1287      more efficient code.  Important examples for where this matters are
1288      the new int64 and word64 types.
1289    
1290    ----------------------------------------------------------------------
1291    Name: Matthias Blume (blume (at) tti - c (dot) org)
1292    Date: 2004/11/12 00:30:00 CST
1293    Tag: blume-20041112-int64
1294    Description:
1295    
1296    Structure Int64 fully hooked in.  (The implementation is not very
1297    efficient, though.)
1298    
1299    ----------------------------------------------------------------------
1300    Name: Matthias Blume (blume (at) tti - c (dot) org)
1301    Date: 2004/11/11 17:30:00 CST
1302    Tag: blume-20041111-more64
1303    Description:
1304    
1305    All the pieces of Word64 are now there, with the exception of the
1306    conversions from and to LargeWord. (Eventually these need to be identities,
1307    but for the time being they don't even make sense because LargeWord is
1308    32-bit wide.)
1309    
1310    Also started to add similar support for Int64, but major pieces of that
1311    are still missing.
1312    
1313    ----------------------------------------------------------------------
1314    Name: Matthias Blume (blume (at) tti - c (dot) org)
1315    Date: 2004/11/11 00:15:00 CST
1316    Tag: blume-20041111-word64
1317    Description:
1318    
1319    Structure Word64 is now (almost) complete, word literals and patterns
1320    seem to work.  There are a few odd pieces missing.  In particular,
1321    I didn't do the {from,to}LargeWord parts because LargeWord is still Word32
1322    at the moment.
1323    
1324    Making Word64 official would mean that LargeWord becomes Word64.  But
1325    this requires extreme care because most word-word conversions have to
1326    go through LargeWord, so making a mistake means loss of efficiency or
1327    worse.  Eventually there will be a solution similar to (but actually
1328    simpler than) what I did with IntInf.
1329    
1330    ----------------------------------------------------------------------
1331    Name: Matthias Blume (blume (at) tti - c (dot) org)
1332    Date: 2004/11/10 18:12:00 CST
1333    Tag: blume-20041110-64bit
1334    Description:
1335    
1336    More 64-bit hacking (but still not even half-way there yet).
1337    Also, some assorted improvements to the handling of 8-bit words.
1338    
1339    ----------------------------------------------------------------------
1340    Name: Matthias Blume (blume (at) tti - c (dot) org)
1341    Date: 2004/11/09 17:50:00 CST
1342    Tag: <none>
1343    Description:
1344    
1345    Started adding some infrastructure for supporting 64-bit int- and
1346    word-types.  (Still in its very early stages.)
1347    
1348    ----------------------------------------------------------------------
1349    Name: Matthias Blume (blume (at) tti - c (dot) org)
1350    Date: 2004/10/28 10:45:00 CDT
1351    Tag: Release_110_50
1352    Description:
1353    
1354    New working version (110.50).  NEW BOOTFILES!
1355    
1356                 =====================
1357    
1358    Also:
1359    
1360      - Changend config/srcarchiveurl from a file just
1361        containing the URL string into a file containing
1362        shell script code.  The code has access to the $VERSION variable.
1363      - Made corresponding changes to config/install.sh and config/unpack.
1364      - Default contents of config/srcarchiveurl uses $VERSION and
1365        normally does not have to be edited to reflect a version change.
1366    
1367      (As a result, a version change can be done by just editing
1368       config/version, the rest is now automatic.)
1369    
1370    ----------------------------------------------------------------------
1371    Name: Matthias Blume (blume (at) tti - c (dot) org)
1372    Date: 2004/10/27 17:50:00 CDT
1373    Tag: blume-20041027-btrace-msg
1374    Description:
1375    
1376    BackTrace.monitor now also reports the source of the exception that
1377    triggered the trace.
1378    
1379    ----------------------------------------------------------------------
1380    Name: Matthias Blume (blume (at) tti - c (dot) org)
1381    Date: 2004/10/27 17:20:00 CDT
1382    Tag: blume-20041027-x86-c-calls
1383    Description:
1384    
1385    This is the HISTORY entry for two earlier commits, both concerning
1386    the x86 c-calls code in MLRISC:
1387    
1388      - added a missing LOAD in the code that deals with struct arguments
1389      - made sure the caller does not add the wrong number of bytes to the
1390        stack pointer after a call of a function returning a struct
1391        (the callee already pops the implicit argument which points to
1392         the space reserved for the result)
1393    
1394    ----------------------------------------------------------------------
1395    Name: Allen Leung (leunga (at) reservoir (dot) com)
1396    Date: 2004/10/24 14:00:00 EST
1397    Tag: leunga-20041024-x86-gas-fucomip
1398    Description:
1399    
1400       John discovered a bug in the syntax of fucomip.
1401       The opcodes FU?COMIP? have been changed to
1402    
1403           fu?comip? %st(i), %st
1404    
1405    ----------------------------------------------------------------------
1406    Name: Matthias Blume (blume (at) tti - c (dot) org)
1407    Date: 2004/10/20 15:06:00 CDT
1408    Tag: blume-20041020-standalone-backtrace
1409    Description:
1410    
1411    Added a mechanism for getting back-trace information from standalone
1412    programs.  Here is how it works:
1413    
1414       1. The part of the program from which you want to get backtrace
1415          information (usually the whole program) should be wrapped with
1416          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
1417          main program could be modified from something like
1418    
1419             fun main (pgm, args) = ...
1420    
1421         to
1422    
1423            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
1424    
1425       2. To be able to access BackTrace.monitor, you have to add
1426          library $smlnj-tdp/plugins.cm to the .cm file that contains your
1427          main function.
1428    
1429       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
1430          CM might have created in the past for your project).
1431    
1432       4. Build the system using this command line:
1433    
1434             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
1435                      myprog.cm MyProg.main myprog
1436    
1437          instead of the usual
1438    
1439             ml-build myprog.cm MyProg.main myprog
1440    
1441    I changed a library name:
1442    
1443       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
1444    
1445    New libraries:
1446    
1447       $smlnj-tdp/back-trace.cm
1448          -- when loaded causes the back-trace plugin to be installed
1449       $smlnj-tdp/coverage.cm
1450          -- when loaded causes the coverage plugin to be installed
1451    
1452    ----------------------------------------------------------------------
1453    Name: Matthias Blume (blume (at) tti - c (dot) org)
1454    Date: 2004/10/18 16:45:00 CDT
1455    Tag: blume-20041018-groupowner
1456    Description:
1457    
1458    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
1459    
1460    Eliminated group owner specs from .cm files throughout the source tree.
1461    
1462    ----------------------------------------------------------------------
1463    Name: Matthias Blume (blume (at) tti - c (dot) org)
1464    Date: 2004/10/15 15:45:00 CDT
1465    Tag: blume-20041015-coverage
1466    Description:
1467    
1468    * Test coverage tool added!
1469    * Further reorganization of tracing-, debugging-, and profiling support:
1470    
1471        - moved original BTImp -- now called BackTrace -- into a separate
1472          library called $/trace-debug-profile.cm
1473        - eliminated all mentions of BTrace from SMLofNJ.Internals
1474        - only the instrumentation mechanism is now left in the compiler proper
1475        - BackTrace module is a plugin which is NOT plugged in by default
1476        - Coverage module is another such plugin
1477    
1478    To get the benefits of any of these plugin modules, the code in
1479    question must be compiled with tdp instrumentation turned on.  This
1480    can be done by setting SMLofNJ.Internals.TDP.mode to true.
1481    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
1482    
1483    Plugins are selected at link time.  (Pre-compiled instrumented code
1484    can be re-loaded with different plugins in effect.)  When an
1485    instrumented module is linked, whatever plugins are at that time
1486    enabled will come into effect for that module.
1487    
1488    To enable the back-trace plugin, load library $/trace-debug-profile.cm
1489    and invoke BackTrace.install() (e.g., from the interactive prompt).
1490    To enable the coverage plugin, load the same library and invoke
1491    Coverage.install().
1492    
1493    Back-traces are generated automatically on uncaught exceptions and
1494    when the code in question explicitly invokes BackTrace.trigger().
1495    
1496    Coverage (and execution frequency-) information must be queried
1497    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
1498    
1499    ----------------------------------------------------------------------
1500    Name: Matthias Blume (blume (at) tti - c (dot) org)
1501    Date: 2004/10/14 17:40:00 CDT
1502    Tag: blume-20041014-tdp-core
1503    Description:
1504    
1505    Snapshot of a significant overhaul of how the trace/debug/profile support
1506    is hooked into the system (specifically: Core and SMLofNJ.Internals).
1507    
1508    ----------------------------------------------------------------------
1509    Name: Matthias Blume (blume (at) tti - c (dot) org)
1510    Date: 2004/10/13 16:34:00 CDT
1511    Tag: blume-20041013-tdp
1512    Description:
1513    
1514    Some rationalization of names:
1515    
1516       structure BTrace -> structure TDPInstrument
1517       etc.
1518    
1519    This is is preparation of using the original back-trace
1520    instrumentation for other purposes.  "TDP" stands for
1521    Trace/Debug/Profile.
1522    
1523    The control flag controlling whether instrumentation is on or off is now
1524    registered under a different name, so instead of running sml as
1525    
1526     sml -Cinstrument.btrace-mode=true
1527    
1528    one has to say
1529    
1530     sml -Ctdp.instrument=true
1531    
1532    ----------------------------------------------------------------------
1533    Name: Matthias Blume (blume (at) tti - c (dot) org)
1534    Date: 2004/10/11 16:37:00 CDT
1535    Tag: blume-20041011-regions
1536    Description:
1537    
1538    Made some minor modifications to elabcore.sml to have source regions
1539    be propagated more tightly -- resulting in better (i.e., smaller)
1540    regions being reported in error- and debug messages.
1541    
1542    ----------------------------------------------------------------------
1543    Name: Matthias Blume (blume (at) tti - c (dot) org)
1544    Date: 2004/10/08 22:50:00 CDT
1545    Tag: blume-20041008-cmkw
1546    Description:
1547    
1548    Fixed handling of keywords in .cm files: After seeing "is" the lexer
1549    treats subsequent occurrences of "group", "library", "source", "is",
1550    "*", and "-" as ordinary identifiers rather than keywords.
1551    
1552    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
1553    is supposed to accept a tool argument called "source", but this did
1554    not work because of the clash with the keyword.
1555    
1556    ----------------------------------------------------------------------
1557    Name: Matthias Blume (blume (at) tti - c (dot) org)
1558    Date: 2004/10/07 16:00:00 CDT
1559    Tag: blume-20041007-cleanup
1560    Description:
1561    
1562    Assorted cleanup work:
1563    
1564      - got rid of intstrmap in favor of using the library's
1565        hash table implementation
1566      - threw out most of the pathnames stuff, as it was not used anyway
1567      - simplified tokentable implementation
1568      - fixed some minor spelling errors
1569    
1570    ----------------------------------------------------------------------
1571    Name: Matthias Blume (blume (at) tti - c (dot) org)
1572    Date: 2004/10/06 15:15:15 CDT
1573    Tag: blume-20041006-handler
1574    Description:
1575    
1576    Cleaned up the absyn to reflect the invariant that HANDLE always
1577    carries a FNexp as part of the type definition.  This eliminates some
1578    superfluous sanity checks at runtime down the road.
1579    
1580    Some minor cleanup of the btrace code.
1581    
1582    ----------------------------------------------------------------------
1583    Name: Matthias Blume (blume (at) tti - c (dot) org)
1584    Date: 2004/10/01 10:20:30 CDT
1585    Tag: blume-20041001-slave
1586    Description:
1587    
1588    Added hack to make slave mode work in the presence of the version
1589    tool.  (Still, since the master does two passes over the code for
1590    CMB.make, the release number gets bumped twice when slaves are
1591    attached.  I don't know if this is worth fixing...)
1592    
1593    ----------------------------------------------------------------------
1594    Name: Matthias Blume (blume (at) tti - c (dot) org)
1595    Date: 2004/09/30 10:55:00 CDT
1596    Tag: blume-20040930-version
1597    Description:
1598    
1599    * Moved the "version" magic into its own little library under
1600      src/system/smlnj/internal.  This avoids expensive reconstruction of
1601      a stable src/compiler/core.cm.
1602    
1603    * At the same time, structure CompilerVersion is now known as
1604      structure SMLNJVersion.
1605    
1606    * Arranged for the version tool to NOT kick in when rebuilding the system
1607      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
1608      Also, loading the versiontool does not work when rebuilding the system
1609      because CM is not properly initialized at that time.
1610    
1611    ----------------------------------------------------------------------
1612    Name: Matthias Blume (blume (at) tti - c (dot) org)
1613    Date: 2004/09/29 14:00:00 CDT
1614    Tag: blume-20040929-autoversion
1615    Description:
1616    
1617    Implemented some CM magic to have
1618        file src/compiler/TopLevel/main/version.sml
1619    generated automagically.
1620    The version is taken from two files: config/version and config/release.
1621    The first is expected to contain a two-part version number such as 110.49.
1622    The second should contain a single number, but it may be missing.
1623    
1624    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
1625    time the version tool is loaded (which is the first time you say CMB.make),
1626    then the tool will increment the value stored in config/release every
1627    time CMB.make is invoked.
1628    
1629    The binfile format is now insensitive to anything beyond the first
1630    two components of a version number, so bumping the release does not render
1631    binfiles incompatible.  Auto-bumping can be used to keep track of versions
1632    during development without invalidating existing binfiles.
1633    
1634    In any case, every CMB.make updates the date information in version.sml.
1635    (This is the date that is printed in the banner.)
1636    
1637    ----------------------------------------------------------------------
1638    Name: Matthias Blume (blume (at) tti - c (dot) org)
1639    Date: 2004/09/28 10:53:00 CDT
1640    Tag: blume-20040928-controls
1641    Description:
1642    
1643    Some cleanup of the controls code.
1644    
1645    ----------------------------------------------------------------------
1646    Name: Matthias Blume (blume (at) tti - c (dot) org)
1647    Date: 2004/09/27 22:08:00 CDT
1648    Tag: blume-20040927-controls
1649    Description:
1650    
1651    Added two pieces of functionality to the Controls interface:
1652    
1653    1.   val save'restore: 'a control -> unit -> unit
1654    
1655       grabs the current value of the control in stage 1 and restores it
1656       in stage 2.
1657    
1658    2.   val set' : 'a control * 'a -> unit -> unit
1659    
1660       stores the given value into the control in stage 2 (i.e., delayed)
1661       but does all error checking in stage 1.
1662       (This is for string controls that need to do parse their argument --
1663        something that might fail.  In some cases, notably in CM, one
1664        already knows the intended argument but wants to delay the actual
1665        assignment until a time when error recovery would be more difficult.)
1666    
1667    Changed the handling of controls in tool arguments to classes "sml" and
1668    "lazysml":
1669       - use Controls.save'restore as a more robust way of restoring the
1670         old value (in particular: without having to re-parse the string)
1671       - use controls to handle the "overload" keyword in the init group
1672         (I believe this change actually fixes a long-standing obscure bug.)
1673    
1674    ----------------------------------------------------------------------
1675    Name: Matthias Blume (blume (at) tti - c (dot) org)
1676    Date: 2004/09/27 17:00:00 CDT
1677    Tag: blume-20040927-lazysml
1678    Description:
1679    
1680    Added a new tool class called "lazysml" to CM's tool chest.  The only
1681    difference to "sml" is that compilation is done with Control.lazysml
1682    set to true.  A source of class "lazysml" is automatically recognized
1683    by a file name suffix of ".lml".
1684    
1685    In addition to the above feature, the original class "sml" now also
1686    supports a tool argument "lazy" which has the same effect.  As a
1687    result, the following three lines are equivalent:
1688    
1689        foo.sml : lazysml
1690        foo.sml : sml (lazy)
1691        foo.sml (lazy)
1692    
1693    The setting goes into effect both during parsing and during
1694    compilation.  The original setting is restored right after parsing and
1695    after compilation, respectively.
1696    
1697    In addition to all the above, there is also a general mechanism to set
1698    ANY of the "controls" that are available at the command line via
1699    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
1700    apply as well. (In fact, "lazy" is implemented as a special case of
1701    the general mechanism.)
1702    
1703    The .cm file syntax uses a new keyword tool argument called "with".
1704    There are several ways of indicating the desired settings:
1705    
1706        foo.sml (with:parser.quotations=true)
1707        foo.sml (with:(name:parser.quotations value:true))
1708        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
1709        foo.sml (with:(name1=value1 name2=value2 ...))
1710        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
1711    
1712        etc.
1713    
1714    Another possible abbreviation is to leave out the =v or value:v part
1715    if the name refers to a boolean control (in which case the value is
1716    taken to be true).  Thus, one could get lazy sml also by saying:
1717    
1718        foo.sml (with:parser.lazy-keyword=true)
1719        foo.sml (with:parser.lazy-keyword)
1720        foo.sml (with:(name:parser.lazy-keyword value:true))
1721        foo.sml (with:(name:parser.lazy-keyword))
1722    
1723    ----------------------------------------------------------------------
1724    Name: Matthias Blume (blume (at) tti - c (dot) org)
1725    Date: 2004/09/24 16:22:00 CDT
1726    Tag: blume-20040924-ppc-long-branch
1727    Description:
1728    
1729    Turned message about "emiting long form of branch" off by default.
1730    Added a control flag to turn it back on when desired.
1731    
1732    ----------------------------------------------------------------------
1733    Name: Matthias Blume (blume (at) tti - c (dot) org)
1734    Date: 2004/09/24 16:05:00 CDT
1735    Tag: blume-20040924-rounding
1736    Description:
1737    
1738    Applied patch for setting rounding modes under Mac OS X.  Thanks to
1739    Melissa O'Neill for providing the code!
1740    
1741    ----------------------------------------------------------------------
1742    Name: Matthias Blume (blume (at) tti - c (dot) org)
1743    Date: 2004/09/23 17:30:00 CDT
1744    Tag: blume-20040923-envvars
1745    Description:
1746    
1747    1. Changed definition of type ControlRegistry.registry_tree to
1748       include control_info (i.e., the name of the controlling environment
1749       variable).
1750    
1751    2. Added command-line flags -e and -E to print the names of environment
1752       variables that can be used to control internal settings.
1753       (This uses the new API mentioned in 1.)
1754    
1755    ----------------------------------------------------------------------
1756    Name: Matthias Blume (blume (at) tti - c (dot) org)
1757    Date: 2004/09/13 16:50:00 CDT
1758    Tag: Release_110_49
1759    Description:
1760    
1761    New working version (110.49).  NEW BOOTFILES!
1762    
1763    ----------------------------------------------------------------------
1764    Name: Matthias Blume
1765    Date: 2004/09/13 16:20:00 CDT
1766    Tag: blume-20040913-config-mlrisc
1767    Description:
1768    
1769    Put target "mlrisc" back into the default list.
1770    (There is no harm in having it, and some users have expressed their
1771    wish to have "mlrisc" included by default.)
1772    
1773    ----------------------------------------------------------------------
1774    Name: John Reppy
1775    Date: 2004/09/13
1776    Tag: jhr-20040913-signals
1777    Description:
1778    
1779    Fixed the signal masking code to properly nest mask/unmask operations
1780    on a per-signal basis.
1781    
1782    ----------------------------------------------------------------------
1783    Name: Matthias Blume (blume (at) tti - c (dot) org)
1784    Date: 2004/09/08 13:20:00 CDT
1785    Tag: blume-20040908-heap-magic
1786    Description:
1787    
1788    Bumped the heap macig number to 0x09082004 to account for the changed
1789    layout of the ML frame under MacOS X.
1790    
1791    ----------------------------------------------------------------------
1792    Name: Allen Leung (leunga (at) reservoir (dot) com)
1793    Date: 2004/09/03 11:26:00 EST
1794    Tag: leunga-20040903-cygwin-install
1795    Description:
1796    
1797       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
1798    The Cygwin runtime is turned on by setting the environment
1799    variable SMLNJ_CYGWIN_RUNTIME to 1.
1800    
1801    ----------------------------------------------------------------------
1802    Name: Matthias Blume (blume (at) tti - c (dot) org)
1803    Date: 2004/08/31 17:15:00 CDT
1804    Tag: blume-20040831-core
1805    Description:
1806    
1807    Added some exports to src/compiler/core.cm upon request by J. Joemann.
1808    
1809    ----------------------------------------------------------------------
1810    Name: Matthias Blume (blume (at) tti - c (dot) org)
1811    Date: 2004/08/30 17:55:00 CDT
1812    Tag: blume-20040830-installer
1813    Description:
1814    
1815    Upon request by Johannes Joemann:
1816    
1817    - improved ML code of installer to fall back to coping when renaming
1818      fails (i.e., when source and target are on different file systems);
1819      the code compiles but has yet to be tested in anger
1820    - removed mlrisc from list of default targets (config/targets)
1821    
1822    ----------------------------------------------------------------------
1823    Name: Matthias Blume (blume (at) tti - c (dot) org)
1824    Date: 2004/08/27 17:20:00 CDT
1825    Tag: blume-20040827-ptreql
1826    Description:
1827    
1828    Added ptreql primop to structure InlineT (upon request from Larry
1829    Paulson).
1830    
1831    ----------------------------------------------------------------------
1832    Name: Allen Leung (leunga (at) reservoir (dot) com)
1833    Date: 2004/08/15 21:21:00 EST
1834    Tag: leunga-110_48-udgraph
1835    Description:
1836    
1837    Another bug fix from Carl Hauser:
1838    
1839    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
1840    > 48c48
1841    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
1842    > e::L)
1843    > ---
1844    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
1845    > Without this, any deletion of an edge in an undirected graph does severe
1846    > violence to the graph.
1847    
1848    ----------------------------------------------------------------------
1849    Name: Allen Leung (leunga (at) reservoir (dot) com)
1850    Date: 2004/08/10 23:35:00 EST
1851    Tag: leunga-110_48-ppc
1852    Description:
1853    
1854       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
1855    
1856    ----------------------------------------------------------------------
1857    Name: Matthias Blume (blume (at) tti - c (dot) org)
1858    Date: 2004/08/10 12:00:00 CDT
1859    Tag: Release_110_48
1860    Description:
1861    
1862    New working version (110.48).  NEW BOOTFILES!
1863    
1864    ----------------------------------------------------------------------
1865    Name: Allen Leung (leunga (at) reservoir (dot) com)
1866    Date: 2004/08/09 12:21:00 EST
1867    Tag: leunga-110_47-dijsktra
1868    Description:
1869    
1870    Bug fix from Carl Hauser:
1871    
1872    single_source_shortest_paths in dijkstra.sml was observed to get wrong
1873    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
1874    
1875    The problem is that following the expression A.update(dist,s,Num.zero)
1876    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
1877    
1878    ----------------------------------------------------------------------
1879    Name: Matthias Blume (blume (at) tti - c (dot) org)
1880    Date: 2004/08/06 18:10:00 CDT
1881    Tag: blume-20040806-cmdline
1882    Description:
1883    
1884    Fiddled with handling of command-line options:
1885    
1886      * sml now quits after processing the command line
1887        if -H, -S, -h<n>, or -s<n> appears as the last
1888        command-line argument
1889      * a new option -q terminates the session when encountered on
1890        the command line; subsequent arguments will be ignored
1891      * bug fixes: short (erroneous) arguments are no longer ignored
1892        completely
1893    
1894    ----------------------------------------------------------------------
1895    Name: Allen Leung (leunga (at) reservoir (dot) com)
1896    Date: 2004/08/04 18:17:00 EST
1897    Tag: leunga-110_47-ppc-ibm-asm
1898    Description:
1899    
1900      - Added minimal IBM assembly syntax support for PowerPC.
1901    
1902      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
1903        been altered in the runtime.  We need an automatic way to keep the file
1904        in sync.
1905    
1906    ----------------------------------------------------------------------
1907    Name: Matthias Blume (blume (at) tti - c (dot) org)
1908    Date: 2004/08/04 14:00:00 CDT
1909    Tag: Release_110_47
1910    Description:
1911    
1912    New working version (110.47).  NEW BOOTFILES!
1913    
1914    ----------------------------------------------------------------------
1915    Name: Matthias Blume (blume (at) tti - c (dot) org)
1916    Date: 2004/08/03 14:25:00 CDT
1917    Tag: blume-20040803-callingconv
1918    Description:
1919    
1920    Added low-level support for choosing C calling conventions by
1921    twiddling the type of rawccall.  (See
1922    src/compiler/Semant/types/cproto.sml for details.)
1923    
1924    ----------------------------------------------------------------------
1925    Name: Matthias Blume (blume (at) tti - c (dot) org)
1926    Date: 2004/08/02 15:55:00 CDT
1927    Tag: blume-20040802-backout
1928    Description:
1929    
1930    Backed out of change to win32-filesys.c.  The earlier patch to
1931    get_file_time caused CM to produce files with the wrong time stamp.
1932    
1933    ----------------------------------------------------------------------
1934    Name: Matthias Blume (blume (at) tti - c (dot) org)
1935    Date: 2004/08/02 14:45:00 CDT
1936    Tag: blume-20040802-nlffi-win32
1937    Description:
1938    
1939    Added NLFFI support for Win32, adapted from a patch provided by David
1940    Hansel.  This is currently completely untested.  Also, the issue
1941    concerning stdcall vs. ccall is still unresolved.
1942    
1943    ----------------------------------------------------------------------
1944    Name: Matthias Blume (blume (at) tti - c (dot) org)
1945    Date: 2004/07/30 17:55:00 CDT
1946    Tag: blume-20040730-various
1947    Description:
1948    
1949    Gearing up towards 110.47...
1950    
1951    - various minor bugfixes to ml-nlffigen
1952    - a beginning of a manual for nlffi
1953    
1954    - eliminated 'export name=value' in config/install.sh as this does
1955      not work with certain versions of /bin/sh
1956      (Thanks to David King at Motorola for catching this.)
1957    
1958    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
1959      - added a test for tm==NULL to gmtime.c and localtime.c
1960      - applied patch for incorrect GetFileTime under win32
1961      - toSeconds -> toMilliseconds in Win32/win32-process.sml
1962    
1963    ----------------------------------------------------------------------
1964    Name: Matthias Blume (blume (at) tti - c (dot) org)
1965    Date: 2004/07/21 18:20:00 CDT
1966    Tag: blume-20040721-nlffigen
1967    Description:
1968    
1969    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
1970      for a typedef to an incomplete type, but leave out the "typ" member.
1971      (This is just for consistency.)
1972    - Started to produce what is supposed to become better (i.e., comprehensive)
1973      documentation of what ml-nlffigen does and produces.
1974    
1975    ----------------------------------------------------------------------
1976    Name: Matthias Blume (blume (at) tti - c (dot) org)
1977    Date: 2004/07/14 16:25:00 CDT
1978    Tag: blume-20040714-union
1979    Description:
1980    
1981    Added C_UNION to c-calls/c-types.sml and updated the machinery
1982    (ml-nlffigen, cproto.sml) that conveys C function interface
1983    information to the code generator.
1984    
1985    However, the actual architecture-specific implementation of function
1986    arguments and results that are C unions is still not implemented.
1987    
1988    ----------------------------------------------------------------------
1989    Name: Allen Leung (leunga (at) reservoir (dot) com)
1990    Date: 2004/07/14 14:38:00 EST
1991    Tag: leunga-110_46_1-ppc-lwzu
1992    Description:
1993    
1994        Added these instructions to the PowerPC architecture:
1995        LBZU(X), LHZU(X), LWZU(X),
1996        STWU(X), STFDU, STFSU
1997    
1998        etc...
1999    
2000        Note: I haven't added their instruction encoding into the description.
2001    
2002    ----------------------------------------------------------------------
2003    Name: Allen Leung (leunga (at) reservoir (dot) com)
2004    Date: 2004/07/13 15:04:00 EST
2005    Tag: leunga-110_46_1-ppc-lwarx
2006    Description:
2007    
2008       Added the two instructions LWARX and STWCX to the PowerPC
2009    instruction set.
2010    
2011       A (untested) rewrite of loop-structure.sml.  The old version
2012    is completely broken.
2013    
2014    ----------------------------------------------------------------------
2015    Name: Matthias Blume (blume (at) tti - c (dot) org)
2016    Date: 2004/07/13 13:50:00 CDT
2017    Tag: blume-20040713-nlffi
2018    Description:
2019    
2020    - use paramAlloc to report c-calls with too many arguments
2021      (for PPC version where parameter area is pre-allocated)
2022    - added ccall_maxargspace to machspec (to implement the above)
2023    - made "make" commend in CM's "make" tool configurable
2024    - added option (default: on) for passing the name of the SML/NJ's "bin"
2025      directory to "make"; the call looks like this:
2026    
2027         make <options> SMLNJ_BINDIR=<dir> <target>
2028    
2029      This can be used by the Makefile to, e.g., pick the "right" version
2030      of ml-nlffigen.
2031    - minor code tweaks
2032    
2033    ----------------------------------------------------------------------
2034    Name: Matthias Blume (blume (at) tti - c (dot) org)
2035    Date: 2004/07/12 22:50:00 CDT
2036    Tag: blume-110_46_1-macosx-nlffi
2037    Description:
2038    
2039    NLFFI under Mac OS X now working (sort of).  This is largely untested,
2040    though.
2041    
2042    Note:  1. You have to make a new, clean build of the runtime system.
2043           2. There are new BOOTFILES, you have to use them!
2044              (Doing the bootstrap process yourself would be *very* painful!
2045               If you absolutely have to do it, build the system under
2046               a different architecture and then cross-compile.)
2047    
2048    Version bumped to 110.46.1 to account for runtime data format changes.
2049    
2050    ----------------------------------------------------------------------
2051    Name: Matthias Blume (blume (at) tti - c (dot) org)
2052    Date: 2004/06/18 14:30:00 CDT
2053    Tag: blume-20040618-unix
2054    Description:
2055    
2056    Changed the implementation of structure Unix so that the same stream
2057    is returned every time one of the {text,bin}{In,Out}streamOf functions
2058    is invoked on the same proc.  This is not what the spec currently
2059    says -- although IMO it arguably should.  (See discussion below.)
2060    
2061    ----------------------------------------------------------------------
2062    Name: Matthias Blume (blume (at) tti - c (dot) org)
2063    Date: 2004/06/17 18:15:00 CDT
2064    Tag: Release_110_46
2065    Description:
2066    
2067    New working version (110.46).  NEW BOOTFILES!
2068    
2069    ----------------------------------------------------------------------
2070    Name: Matthias Blume (blume (at) tti - c (dot) org)
2071    Date: 2004/06/17 17:20:00 CDT
2072    Tag: blume-20040617-timer-unix
2073    Description:
2074    
2075    Changed the interface of structures Timer and Unix to match the most
2076    recent Basis spec.
2077    
2078    In the case of Unix there still seems to be an open/weird issue:
2079    
2080       The {text,bin}{In,Out}streamOf functions are supposed to create
2081       fresh streams whenever they are called -- as opposed to have them
2082       return the same stream every time.  This design is supposed to
2083       prevent space leaks caused by proc values hanging on to streams.
2084    
2085       The reap function, on the other hand, is supposed to close the
2086       streams.  This cannot be done without having a handle on the
2087       stream in proc after all...
2088    
2089    I took the liberty to implement the following stopgap solution:
2090    
2091      The proc value hangs on to the most recently created stream(s).
2092      Reap closes those.  If either or both of the two streams hadn't
2093      been created at all yet, then reap will close the corresponding
2094      file descriptors directly.
2095    
2096    PS: I don't understand the original space leak argument anymore.  If
2097    a proc hangs on to the imperative stream, then I/O operations on those
2098    will advance the state of the cached stream and avoid the space leak.
2099    
2100    ----------------------------------------------------------------------
2101    Name: Matthias Blume (blume (at) tti - c (dot) org)
2102    Date: 2004/05/28 16:45:00 CDT
2103    Tag: blume-20040528-basis
2104    Description:
2105    
2106    Added signature PACK_REAL and exported functor PrimIO.
2107    
2108    ----------------------------------------------------------------------
2109    Name: Matthias Blume (blume (at) tti - c (dot) org)
2110    Date: 2004/05/25 16:00:00 CDT
2111    Tag: blume-20040525-group-owner
2112    Description:
2113    
2114    CM now ignores (but still accepts) the "owner" information in group
2115    descriptions.  The owner of a group is its next enclosing
2116    library. Each group must have a unique owner.  (There is a virtual
2117    "toplevel" library that owns groups which are not nested within a real
2118    library.)  Previously, each group had to explicitly declare its owner,
2119    and CM would check that such a declaration is correct.  The new scheme
2120    is to have CM check that for each group there is precisely one owning
2121    library.
2122    
2123    The advantage of the new scheme is that the programmer no longer needs
2124    to maintain the somewhat annoying owner information.  The downside is
2125    that CM cannot enforce the ownership rule across multiple runs of
2126    CM.make.  Fortunately, enclosing the same group in two different
2127    libraries A and B which are not part of the same program does not
2128    cause real problems.
2129    
2130    ----------------------------------------------------------------------
2131    Name: Matthias Blume (blume (at) tti - c (dot) org)
2132    Date: 2004/05/20 16:00:00 CDT
2133    Tag: blume-20040520-win32
2134    Description:
2135    
2136    Made the win32 version work again.  (Strangely, a misplaced comma had
2137    slipped into win32-process.c which prevented the runtime from being
2138    compiled correctly.)
2139    
2140    Also, included a minor addition to ml-build.bat analogous to what was
2141    done in blume-20040519-ml-build.
2142    
2143    ----------------------------------------------------------------------
2144    Name: Matthias Blume (blume (at) tti - c (dot) org)
2145    Date: 2004/05/19 22:10:00 CDT
2146    Tag: blume-20040519-ml-build
2147    Description:
2148    
2149    Arranged for ml-build to clean up after itself a little bit better.
2150    The script generates a temporary SML source file and compiles it using
2151    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
2152    gets rid of those at the end, so they don't accumulate under .cm.
2153    
2154    This required a minor change to install.sh because the name of the
2155    metadata directory (default: .cm) is actually configurable at
2156    installation time.
2157    
2158    ----------------------------------------------------------------------
2159    Name: Matthias Blume (blume (at) tti - c (dot) org)
2160    Date: 2004/05/18 15:50:00 CDT
2161    Tag: blume-20040518-mkreader
2162    Description:
2163    
2164    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
2165    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
2166    
2167    ----------------------------------------------------------------------
2168    Name: Matthias Blume (blume (at) tti - c (dot) org)
2169    Date: 2004/05/11 14:35:00 CDT
2170    Tag: blume-20040511-win32sock
2171    Description:
2172    
2173    Added previously missing support for many socket-related functions
2174    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
2175    for the voluminous patch!
2176    
2177    (I have not tested this patch under win32 yet.)
2178    
2179    Here is David's e-mail:
2180    
2181    Hi,
2182    
2183    Attached to this email you find a diff against sml/nj 110.45
2184    that will enable socket support under Windows.
2185    
2186    To apply the patch (using unix or cygwin)
2187    1) gunzip runtime.diff.gz
2188    2) "cd" into "src/runtime" in the source tree of a fresh
2189       110.45 installation.
2190    3) patch -p 1 < [your/path/to]runtime.diff
2191    
2192    The code compiles fine but has NOT yet been extensively tested.
2193    I only ran a few tests for basic socket client functionality
2194    (which worked fine).  Especially the functions that use ioctl
2195    are not tested at all and might not work (see below).
2196    
2197    I implemented this since we want to move to a newer version of sml/nj
2198    but need socket support in order to use it.  This is the first time I
2199    even had a look at the sml/nj source,  so please review my changes
2200    before making this part of the distribution!  Here are a few issues
2201    that I think might be better for someone to solve who is more
2202    familiar with the sml/nj source (and socket programming):
2203    
2204    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
2205      exception since I could not figure out what the windows equivalent
2206      of these functions is
2207    
2208    - In sockets-osdep.h there are a some #include statements that are
2209      only used in a few files that include sockets-osdep.h
2210    
2211    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
2212      does not process its return value since I don't know how to
2213      report an error upwards.
2214    
2215    - It would probably be good to have a call to WSACleanup() when
2216      the library is unloaded (if there is such a possibility).
2217      Otherwise I think Windows will take care of this automatically
2218      when the process finishes.
2219    
2220    - I used ioctlsocket() as a replacement for ioctl() but I have
2221      no idea if that is actually the proper replacement on Windows.
2222    
2223    - All these issues are marked in the code by "FIXME" comments.
2224    
2225    We use sml/nj extensively in our products and are quite happy
2226    with it.  I hope this contribution will help you.
2227    
2228    Keep up the good work!
2229    
2230    David
2231    
2232    ----------------------------------------------------------------------
2233    Name: Matthias Blume (blume (at) tti - c (dot) org)
2234    Date: 2004/05/11 14:20:00 CDT
2235    Tag: blume-20040511-installml
2236    Description:
2237    
2238    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
2239    the patch.)
2240    
2241    ----------------------------------------------------------------------
2242    Name: Matthias Blume (blume (at) tti - c (dot) org)
2243    Date: 2004/05/11 14:05:00 CDT
2244    Tag: blume-20040511-nlffi-netbsd
2245    Description:
2246    
2247    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
2248    the patch.)
2249    
2250    ----------------------------------------------------------------------
2251    Name: Matthias Blume (blume (at) tti - c (dot) org)
2252    Date: 2004/05/11 12:05:00 CDT
2253    Tag: blume-20040511-exports
2254    Description:
2255    
2256    As per request by Adam Chlipala <adam@hcoop.net>, extended various
2257    export lists in compiler-related .cm-files.
2258    
2259    ----------------------------------------------------------------------
2260    Name: Matthias Blume (blume (at) tti - c (dot) org)
2261    Date: 2004/05/11 11:35:00 CDT
2262    Tag: blume-20040511-allsource
2263    Description:
2264    
2265    The installer now honors the "src-smlnj" target again, although its meaning
2266    has changed from "all sources required for the compiler" to "all sources
2267    the installer knows about".  In other words, if you enable "src-smlnj"
2268    in the "targets" file, then the installer will pull in sources for
2269    everything.  (Notice that this refers to source code only.  Compiled
2270    code is still only installed for modules that were requested explicitly
2271    or which are required for other modules that were requested explicitly.)
2272    
2273    ----------------------------------------------------------------------
2274    Name: Matthias Blume (blume (at) tti - c (dot) org)
2275    Date: 2004/04/23 17:40:00 CDT
2276    Tag: blume-20040423-ieee-scan
2277    Description:
2278    
2279    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
2280    in the exponent calculation we get INF or ZERO (depending on the mantissa
2281    and the sign of the exponent).
2282    
2283    ----------------------------------------------------------------------
2284    Name: Matthias Blume (blume (at) tti - c (dot) org)
2285    Date: 2004/04/23 10:40:00 CDT
2286    Tag: blume-20040423-ml-build
2287    Description:
2288    
2289    The ml-build script now terminates with a non-0 status when something
2290    goes wrong.
2291    
2292    ----------------------------------------------------------------------
2293    Name: Matthias Blume (blume (at) tti - c (dot) org)
2294    Date: 2004/04/22 16:35:00 CDT
2295    Tag: blume-20040422-Option
2296    Description:
2297    
2298    Made exception Option to be the same as exception Option.Option
2299    (as it should be).
2300    
2301    ----------------------------------------------------------------------
2302    Name: Allen Leung (leunga (at) reservoir (dot) com)
2303    Date: 2004/03/19 14:40:00 EST
2304    Tag: leunga-20040319-cygwin-nlffi
2305    Description:
2306    
2307    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
2308    of SML/NJ.  The problem is that
2309    
2310       lib = dlopen(NULL, ...)
2311       f   = dlsym(lib, "malloc");
2312    
2313    does not work on Windows unless we explicitly export symbols
2314    such as 'malloc' during linking.  We fixed this by explicitly
2315    exporting the required symbols with the magic gcc incantation:
2316    
2317        -Wl,--export-all cygwin.def
2318    
2319    where cygwin.def is a file containing all the symbols that
2320    we wish to export.
2321    
2322    I suspect this is a Windows problem and we'll have to
2323    do the same (somehow with windows compilers) when
2324    we build the native win32 version with the system
2325    calls LoadLibrary/GetProcAddress.
2326    
2327    ----------------------------------------------------------------------
2328    Name: Matthias Blume (blume (at) tti - c (dot) org)
2329    Date: 2004/03/04 16:35:00 CST
2330    Tag: blume-20040304-intinf-fmt
2331    Description:
2332    
2333    Fixed problem with IntInf.fmt (sign would show up on the right instead
2334    of on the left for BIN, OCT, and HEX).
2335    
2336    ----------------------------------------------------------------------
2337    Name: Matthias Blume (blume (at) tti - c (dot) org)
2338    Date: 2004/03/04 11:25:00 CST
2339    Tag: blume-20040304-symlinks
2340    Description:
2341    
2342    Fixed problem with installer script (unix only) where bin/ml-yacc and
2343    friends pointed (via symlinks) to absolute locations instead of just
2344    .run-sml.  This was reported by Vesa A Norrman.
2345    
2346    ----------------------------------------------------------------------
2347    Name: Matthias Blume (blume (at) tti - c (dot) org)
2348    Date: 2004/02/13 14:50:00 CST
2349    Tag: Release_110_45
2350    Description:
2351    
2352    New working version (110.45). New bootfiles.
2353    
2354    ----------------------------------------------------------------------
2355    Name: Matthias Blume (blume (at) tti - c (dot) org)
2356    Date: 2004/01/26 15:15:15 CST
2357    Tag: blume-20040126-toplevel
2358    Description:
2359    
2360    Improved handling of exceptions at the interactive toplevel.
2361    
2362    ----------------------------------------------------------------------
2363    Name: Matthias Blume (blume (at) tti - c (dot) org)
2364    Date: 2004/01/26 11:25:00
2365    Tag: blume-20040126-app
2366    Description:
2367    
2368    Type of top-level "app" corrected.
2369    Added code for setting vp_limitPtrMask to Win32-specific runtime.
2370    
2371    ----------------------------------------------------------------------
2372    Name: Matthias Blume (blume (at) tti - c (dot) org)
2373    Date: 2003/11/18 17:10 CST
2374    Tag: blume-20031118-basis-fiddle
2375    Description:
2376    
2377    - changed Timer interface to what might become the spec
2378    - POSIX_FLAGS -> BIT_FLAGS according to spec
2379    - some other minor discrepancies wrt. spec eliminated
2380    
2381    ----------------------------------------------------------------------
2382    Name: Matthias Blume (blume (at) tti - c (dot) org)
2383    Date: 2003/11/06 12:00:00 CST
2384    Tag: Release_110_44
2385    Description:
2386    
2387    New working version (110.44). New bootfiles.
2388    
2389    ----------------------------------------------------------------------
2390    Name: Matthias Blume (blume (at) tti - c (dot) org)
2391    Date: 2003/11/04 11:50:00 CST
2392    Tag: blume-20031104-move-libraries
2393    Description:
2394    
2395    Eliminated the "dont_move_libraries" directive in config/targets.
2396    (The mechanism was broken and could not be fixed easily.  Moreover,
2397    there does not seem to be any reason not to move all libraries into
2398    lib during installation.  I originally implemented this directive as a
2399    backward-compatibility feature when I first introduced the new CM.
2400    Now that things have been stable for a long time and going back to the
2401    old CM is not an option, there is no reason to keep it around.)
2402    
2403    ----------------------------------------------------------------------
2404    Name: Matthias Blume (blume (at) tti - c (dot) org)
2405    Date: 2003/11/03 16:00:00 CST
2406    Tag: blume-20031103-installdir
2407    Description:
2408    
2409    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
2410    Richards for pointing out the problem and providing the solution.)
2411    
2412    ----------------------------------------------------------------------
2413    Name: Matthias Blume (blume (at) tti - c (dot) org)
2414    Date: 2003/10/01 17:05:00 CDT
2415    Tag: blume-20031001-lal-mlrisc
2416    Description:
2417    
2418    MLRISC bug fix from Lal.
2419    
2420    ----------------------------------------------------------------------
2421    Name: Matthias Blume (blume (at) tti - c (dot) org)
2422    Date: 2003/09/30 16:10:00 CDT
2423    Tag: blume-20030930-primio-bat
2424    Description:
2425    
2426    1. Added openVector, nullRd, and nullWr to PRIM_IO.
2427    2. Improved .bat files (for Win32 port) to make things work under Win95.
2428       (thanks to Aaron S. Hawley for this one)
2429    
2430    ----------------------------------------------------------------------
2431    Name: Matthias Blume (blume (at) tti - c (dot) org)
2432    Date: 2003/09/26 16:05:00 CDT
2433    Tag: blume-20030926-wrappriv
2434    Description:
2435    
2436    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
2437    
2438    ----------------------------------------------------------------------
2439    Name: Matthias Blume (blume (at) tti - c (dot) org)
2440    Date: 2003/09/26 15:00:00 CDT
2441    Tag: blume-20030926-110_43_3
2442    Description:
2443    
2444    - additional cleanup
2445    - version number bump, NEW BOOTFILES
2446    
2447    ----------------------------------------------------------------------
2448    Name: Matthias Blume (blume (at) tti - c (dot) org)
2449    Date: 2003/09/26 12:00:00 CDT
2450    Tag: blume-20030926-ppautoload
2451    Description:
2452    
2453    I modified the read-eval-print loop so that the autoloader gets
2454    invoked whenever the prettyprinter tries to look up a symbol that
2455    is not currently defined in the toplevel environment but which
2456    appears in CM's autoload registry.  As a result, we see far fewer of
2457    those ?.Foo.Bar.xxx names in the prettyprinter's output.
2458    
2459    In addition to this I tried to clean up some pieces of the Basis
2460    implementation (e.g., Socket, Word8Array) in order to prevent other
2461    instances of these ?.Foo.Bar.xxx names from being printed.
2462    
2463    The mechanism that picks names for types still needs some work, though.
2464    (Right now it seems that if there is a type A.t which is defined to
2465    be B.u, but B is unavailable at toplevel, then A.t gets printed as
2466    "?.B.u" although the perhaps more sensible solution would be to use
2467    "A.t" in this case.  In other words, the prettyprinter should follow
2468    a chain of DEFtycs not farther than there are corresponding toplevel
2469    names in the current environment.)
2470    
2471    ----------------------------------------------------------------------
2472    Name: Matthias Blume (blume (at) tti - c (dot) org)
2473    Date: 2003/09/24 16:31:00 CDT
2474    Tag: blume-20030924-installer
2475    Description:
2476    
2477    Another installer tweak:  All the ML code for the installer is now
2478    compiled during CMB.make and put into a little library called
2479    $smlnj/installer.cm.  The installation then simply invokes
2480    
2481       sml -m $smlnj/installer.cm
2482    
2483    and everything happens automagically.
2484    
2485    Win32:  ML code senses value of environment variable SMLNJ_HOME.
2486    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
2487            and BINDIR.
2488    
2489    The new scheme guarantees that the ML code responsible for the installation
2490    is in sync with the APIs of the main system.  Also, the installer is
2491    somewhat faster because the installer script is precompiled.
2492    
2493    ----------------------------------------------------------------------
2494    Name: Matthias Blume (blume (at) tti - c (dot) org)
2495    Date: 2003/09/24 15:35:00 CDT
2496    Tag: blume-20030924-synsock
2497    Description:
2498    
2499    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
2500    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
2501    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
2502    implementations of non-blocking operations from CML's Socket
2503    structure.
2504    
2505    ----------------------------------------------------------------------
2506    Name: Matthias Blume (blume (at) tti - c (dot) org)
2507    Date: 2003/09/24 15:10:05 CDT
2508    Tag: blume-20030924-sockets
2509    Description:
2510    
2511    1. Fixed SOCKET API and implementation to match Basis spec.
2512       This required changing the internal representation of sockets to one
2513       that remembers (for each socket file descriptor) whether it is currently
2514       blocking or non-blocking.  This state is maintained lazily (i.e., a system
2515       call is made only if the state actually needs to change).
2516    
2517    2. OS-specific details of sockets were moved into separate files, thus
2518       making it possible to unify the bulk of the socket implementations
2519       between Unix and Win32.
2520    
2521    3. CML's socket API changed accordingly.
2522       (Note that we need to remove non-blocking functions from this API
2523       since they are redundant in the case of CML!)
2524    
2525    4. CML's socket implementation now makes use of non-blocking functions
2526       provided by Basis, thus removing all OS-dependent code from this part
2527       of CML.
2528    
2529    5. Changed Real64.precision from 52 to 53.  Minor cleanup in Real64 code.
2530    
2531    ----------------------------------------------------------------------
2532    Name: Matthias Blume (blume (at) tti - c (dot) org)
2533    Date: 2003/09/22 12:10:00 CDT
2534    Tag: blume-20030922-110_43_2
2535    Description:
2536    
2537    Made a new interim version and bootfiles for developer's bootstrapping
2538    convenience.
2539    
2540       110.43.2 -- NEW BOOTFILES
2541    
2542    ----------------------------------------------------------------------
2543    Name: Matthias Blume (blume (at) tti - c (dot) org)
2544    Date: 2003/09/19 15:55:00 CDT
2545    Tag: blume-20030919-cmdir
2546    Description:
2547    
2548    1. new-install.sh -> install.sh
2549    2. changed default CM "metadata" directory name to ".cm" (instead of "CM")
2550    3. tweaked installer so that another name instead of .cm can be chosen
2551       at install time (by setting the CM_DIR_ARC environment variable
2552       during installation); once installation is complete, the name is
2553       fixed
2554    
2555    ----------------------------------------------------------------------
2556    Name: Matthias Blume (blume (at) tti - c (dot) org)
2557    Date: 2003/09/18 16:00:00 CDT
2558    Tag: blume-20030918-110_43_1
2559    Description:
2560    
2561    Made a new interim version and bootfiles for developer's bootstrapping
2562    convenience.
2563    
2564       110.43.1 -- NEW BOOTFILES
2565    
2566    ----------------------------------------------------------------------
2567    Name: Matthias Blume (blume (at) tti - c (dot) org)
2568    Date: 2003/09/18 15:20:00 CDT
2569    Tag: blume-20030918-misc
2570    Description:
2571    
2572    1. Exported fractionsPerSecond etc. from TimeImp (but not from Time as
2573       this seems to be controversial at the moment) and used those in
2574       Posix.ProcEnv.times.
2575    
2576    2. Added Time.{from,to}Nanoseconds to Time.
2577    
2578    3. Improved Real.{from,to}LargeInt by avoiding needless calculations.
2579       For example, fromLargeInt never needs to look at more than 3 "big
2580       digits" to get its 53 bits of precision.
2581    
2582    ----------------------------------------------------------------------
2583    Name: Matthias Blume (blume (at) tti - c (dot) org)
2584    Date: 2003/09/17 16:30:00 CDT
2585    Tag: blume-20030917-real32-slices
2586    Description:
2587    
2588    Added an entry to the primitive environment
2589    (compiler/Semant/statenv/prim.sml) for int32->real64 conversion and
2590    added code to compiler/CodeGen/main/mlriscGen.sml to implement it.
2591    
2592    Removed some of the "magic" constants in real64.sml and replaced them
2593    with code that generates these values from their corresponding
2594    integer counterparts.
2595    
2596    Made all(?) the slice-related changes to the Basis and made everything
2597    compile again...
2598    
2599    ----------------------------------------------------------------------
2600    Name: Matthias Blume (blume (at) tti - c (dot) org)
2601    Date: 2003/09/15 17:45:00 CDT
2602    Tag: blume-20030915-rbase
2603    Description:
2604    
2605    Fixed bug in Real.fromLargeInt.
2606    
2607    ----------------------------------------------------------------------
2608    Name: Matthias Blume (blume (at) tti - c (dot) org)
2609    Date: 2003/09/13 18:11:00 CDT
2610    Tag: blume-20030913-libinstall
2611    Description:
2612    
2613    Minor bugfix in config/libinstall (set anchor with path to
2614    standalone tool after installing it, otherwise libraries that
2615    need ml-lex or ml-yacc won't compile the first time the installer
2616    runs).
2617    
2618    ----------------------------------------------------------------------
2619    Name: Matthias Blume (blume (at) tti - c (dot) org)
2620    Date: 2003/09/12 11:45:00 CDT
2621    Tag: blume-20030912-various
2622    Description:
2623    
2624     - fixed bug in Real.toLargeInt
2625     - fixed bug in Posix.ProcEnv.times
2626     - changed inputLine functions to return an option
2627     - minor installer improvements / bugfixes
2628     - changed default @SMLalloc parameter for x86/celeron to 64k
2629    
2630    ----------------------------------------------------------------------
2631    Name: Matthias Blume (blume (at) tti - c (dot) org)
2632    Date: 2003/09/09 22:00:00 CDT
2633    Tag: Release_110_43
2634    Description:
2635    
2636        New working release 110.43.  New bootfiles.
2637    
2638    ----------------------------------------------------------------------
2639    Name: Matthias Blume (blume (at) tti - c (dot) org)
2640    Date: 2003/09/09 19:20:00 CDT
2641    Tag: blume-20030909-installer
2642    Description:
2643    
2644    Rewrote large parts of config/install.sh in SML (config/libinstall.sml).
2645    Modified config/install.bat to take advantage of it.  Also modified
2646    config/install.sh (and called it config/new-install.sh) to take advantage
2647    of it on Unix systems.  (The SML code is (supposed to be) platform-
2648    independent.)
2649    
2650    The installer can now install everything under Win32
2651    as well as under *nix as long as it compiles.
2652    
2653    Other changes:
2654    
2655      - made CML compile again under Win32
2656      - made eXene compile under Win32 (by providing a fake structure UnixSock
2657        and by using OS.Process.getEnv instead of Posix.ProcEnv.getenv)
2658      - fixed a bug in nowhere: it assumed that type OS.Process.status is the
2659        same as type int;  under Win32 it isn't
2660      - fixed some slice-related problems in the win32-specific parts of CML
2661      - added a functor argument "sameVol" to os-path-fn.sml in the Basis
2662        (under Win32, the volume name is case-insensitive, and the
2663        OS.Path code compares volume names for equality)
2664    
2665    ----------------------------------------------------------------------
2666    Name: Matthias Blume (blume (at) tti - c (dot) org)
2667    Date: 2003/09/08 11:55:00 CDT
2668    Tag: blume-20030908-fullpath
2669    Description:
2670    
2671    Made Win32 version of OS.FileSys.fullPath return current directory
2672    when given an empty string.  This is what the spec says, and incidentally,
2673    CM depends on it.  (CM otherwise goes into an infinite loop in certain
2674    cases when presented with the name of a non-existing .cm file.)
2675    
2676    ----------------------------------------------------------------------
2677    Name: Matthias Blume (blume (at) tti - c (dot) org)
2678    Date: 2003/09/04 16:30:00 CDT
2679    Tag: blume-20030905-slices-etc
2680    Description:
2681    
2682      1. Changed interface to vectors and arrays in Basis to match
2683         (draft) Basis spec.
2684      2. Added signatures and implementations of slices according to
2685         Basis spec.
2686      3. Edited source code throughout the system to make it compile again
2687         under 1. and 2.  (In some cases code had to be added to have it
2688         match the new signatures.)
2689      4. MLRISC should be backward-compatible: the copies of the originals
2690         of files that needed to change under 3. were retained, the .cm files
2691         check the compiler version number and use old versions when
2692         appropriate.
2693      5. Changed type of OS.FileSys.readDir and Posix.FileSys.readdir to
2694         dirstream -> string option (in accordance with Basis spec).
2695      6. When generating code that counts lines, ml-lex used function
2696         CharVector.foldli, taking advantage of its old interface.
2697         This has been replaced with the corresponding code from
2698         CharVectorSlice.  (html-lex must be re-lexed!)
2699      7. BitArray in smlnj-lib/Util has been extended/modified to match the
2700         new MONO_ARRAY signature.  (Do we need BitArraySlice?)
2701      8. Removed temporary additions (fromInternal, toInternal) from the
2702         (now obsolete) IntInf in smlnj-lib/Util.
2703      9. Cleaned up structure Byte.
2704     10. Added localOffset, scan, and fromString to Date (according to spec).
2705         Cleaned/corrected implementation of Date.
2706         (Still need to check for correctness; implement better canonicalizeDate.)
2707     11. Added "scan" to signature IEEE_REAL.
2708     12. Some improvements to IntInf [in particular: efficiency-hack for
2709         mod and rem when second operand is 2 (for parity checks).]
2710     13. Changed representation of type Time.time, using a single IntInf.int
2711         value counting microseconds.  This considerably simplified the
2712         implementation of structure Time.  We now support negative time
2713         values; scan and fromString handle signs.
2714     14. Functor PrimIO now takes two additional arguments (VectorSlice and
2715         ArraySlice).
2716    
2717    ----------------------------------------------------------------------
2718    Name: Matthias Blume (blume (at) tti - c (dot) org)
2719    Date: 2003/08/28 17:00:00 CDT
2720    Tag: blume-20030828-intinf
2721    Description:
2722    
2723    This is a major update which comes with a version number bump
2724    (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES,
2725    and an implementation of IntInf in the Basis.
2726    
2727    There are a fairly large number of related changes and updates throughout
2728    the system:
2729    
2730    Basis:
2731            - Implemented IntInf.
2732            - Made LargeInt a projection of IntInf (by filtering through INTEGER).
2733            - Added some missing Real64 operations, most notably Real.toLargeInt.
2734            - Added FixedInt as a synonym for Int32.
2735    
2736    compiler:
2737            * Added support for a built-in intinf type.
2738              - literals
2739              - pattern matching
2740              - conversion shortcuts (Int32.fromLarge o Int.toLarge etc.)
2741              - overloading on literals and operations
2742    
2743            This required adding a primitive type intinf, some additional
2744            primops, and implementations for several non-trivial intinf
2745            operations in Core.  (The intinf type is completely abstract
2746            to the compiler; all operations get delegated back to the Core.)
2747    
2748            * Intinf equality is handled by polyequal.  However, the compiler
2749            does not print its usual warning in this case (since polyequal
2750            is the right thing to do there).
2751    
2752            * Improved the organization of structure InlineT.
2753    
2754            * A word about conversion primops:
2755            If conversions involving intinf do not cancel out during
2756            CPS contract, then the compiler must insert calls to Core functions.
2757            Since all core access must be resolved already during the FLINT
2758            translate phase, it would be too late a the time of CPS contract
2759            to add new Core calls.  For this reason, conversion primops
2760            for intinf carry two arguments:  1. the numeric argument that
2761            they are supposed to convert, and 2. the Core function that
2762            can help with this conversion if necessary.  If CPS contract
2763            eliminates a primop, then the associated Core function becomes
2764            dead and goes away.  Intinf conversion primops that do not get
2765            eliminated by CPS contract get rewritten into calls of their
2766            core functions by a separate, new phase.
2767    
2768    interactive system:
2769            - Control.Print.intinfDepth controls max length of intinf constants
2770            being printed. (Analogous to Control.Print.stringDepth.)
2771            - Cleanup in printutil and pputil: got rid of unused stuff and
2772            duplicates; replaced some of the code with code that makes better
2773            use of library functionality.
2774    
2775    CM:
2776            Bugfix: parse-errors in init group (system/smlnj/init/init.cmi)
2777            are no longer silent.
2778    
2779    CKIT:
2780            Fixed mismatched uses of Int32 and LargeInt.  I always decided
2781            in favor of LargeInt -- which is now the same as IntInf.
2782            CKIT-knowledgable people should check whether this is what's
2783            intended and otherwise change things back to using Int32 or
2784            FixedInt.
2785    
2786    Throughout the code:
2787            Started using IntInf.int literals and built-in operations
2788            (e.g., comparison with 0) where this seems appropriate.
2789    
2790    
2791    ----------------------------------------------------------------------
2792    Name: Dave MacQueen (dbm@cs.uchicago.edu)
2793    Date: 2003/08/13 11:36:00 CDT
2794    Tag: dbm-20030813-mcz-merge1
2795    Description:
2796    
2797    Merging changes from the mcz-branch development branch into trunk.
2798    These changes involve replacement of the emulated old prettyprinter
2799    interface with direct use of the SML/NJ Lib PP library, and fixing
2800    of a couple of bugs (895, 1186) relating to error messages.  A new
2801    prettyprinter for ast datatypes (Elaborator/print/ppast.{sig,sml})
2802    has been added.
2803    
2804    ----------------------------------------------------------------------
2805    Name: Matthias Blume (blume (at) tti - c (dot) org)
2806    Date: 2003/08/11 15:45:00 CDT
2807    Tag: blume-20030811-windows
2808    Description:
2809    
2810    Version number bumped to 110.42.9.  NEW BOOTFILES!!!
2811    
2812        http://smlnj.cs.uchicago.edu/dist/working/110.42.9/
2813    
2814    This patch restores SML/NJ's ability to run under win32.  There are a
2815    number of changes, including fixes for several bugs that had gone
2816    unnoticed until now:
2817    
2818      - uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when
2819        trying to run the win32 version from within cygwin.)
2820    
2821      - There are a number of simple .bat scripts that substitute for their
2822        corresponding Unix shell-scripts.  (See below.)
2823    
2824      - The internals of ml-build have been modified slightly.  The main
2825        difference is that instead of calling ".link-sml" (or link-sml.bat)
2826        using OS.Process.system, the ML process delegates this task back
2827        to the script.  Otherwise problems arise in mixed environments such
2828        as Cygwin where scripts look and work like Unix scripts, but
2829        where OS.Process.system cannot run them.
2830    
2831      - In CM, the srcpath pickler used native pathname syntax -- which
2832        is incorrect in the case of cross-compilation.  The new pickle format
2833        is independent of platform-specific naming conventions.
2834    
2835      - Path configuration files (such as lib/pathconfig) can now choose
2836        between native and standard syntax.  Placing a line of the form
2837    
2838            standard!
2839    
2840        into the file causes all subsequent paths to be interpreted using
2841        CM standard pathname syntax (= Unix conventions); a line
2842    
2843            native!
2844    
2845        switches back to native style.  This was needed so that
2846        path config files can be written portably, see src/system/pathconfig.
2847    
2848      - Runtime system:
2849    
2850          - win32-filesys.c:  get_file_time and set_file_time now
2851            access modification time, not creation time.
2852    
2853          - I/O code made aware of new array representation.
2854    
2855          - Bug fixes in X86.prim.masm.
2856    
2857       - src/system/makeml made aware of win32. (For use under cygwin
2858            and other Unix-environments for windows.)
2859    
2860       - In Basis, fixed off-by-one error in win32-io.sml (function vecF)
2861         which caused BinIO.inputAll to fail consistently.
2862    
2863    .bat scripts:
2864    
2865       Windows .bat scripts assume that SMLNJ_HOME is defined.
2866    
2867       - sml.bat, ml-yacc.bat, ml-lex.bat:  Driver scripts for standalone
2868         applications (sml, ml-yacc, ml-lex).
2869       - ml-build.bat: analogous to ml-build.
2870       - config\install.bat:  Analogous to config/install.sh.  This requires
2871         that SMLNJ_HOME is set and that Microsoft Visual C is ready to use.
2872         (nmake etc. must be on the path, and vcvars32 must have been run.)
2873         Moreover, sources for ml-lex and ml-yacc need to exist under src,
2874         and the bootfile hierarchy must have been unpacked under
2875         sml.boot.x86-win32.
2876         The script is very primitive and does a poor job at error checking.
2877         It only installs the base system, ml-lex, and ml-yacc.  No other
2878         libraries are being installed (i.e., you get only those that
2879         are part of the compiler.)
2880       - link-sml.bat:  analogous to .link-sml, but not currently used
2881    
2882    Unrelated bug fixes:
2883    
2884      - ml-nlffigen now exports structures ST_* corresponding to incomplete
2885        types.
2886      - Added getDevice to PP/src/pp-debug-fn.sml.  (Would not compile
2887        otherwise.)
2888    
2889    ----------------------------------------------------------------------
2890    Name: Dave MacQueen (macqueen@cs.uchicago.edu)
2891    Date: 2003/06/17
2892    Tag: macqueen-20030617-bug895
2893    Description:
2894    
2895    Modified compiler/Elaborator/print/pptype.sml to fix bug 895.
2896    Tag will be used for new development branch (mcz-branch) for
2897    use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago.
2898    
2899    ----------------------------------------------------------------------
2900    Name: Matthias Blume (blume (at) tti - c (dot) org)
2901    Date: 2003/05/27 16:55:00 CDT
2902    Tag: blume-20030527-polyeq
2903    Description:
2904    
2905    Tried to eliminated most cases of polymorphic equality.
2906    
2907    ----------------------------------------------------------------------
2908    Name: Matthias Blume (blume (at) tti - c (dot) org)
2909    Date: 2003/05/21 17:45:00 CDT
2910    Tag: blume-20030517-complete
2911    Description:
2912    
2913    Two changes:
2914    
2915      1. Added a flag for controlling whether non-exhaustive bindings will
2916         be treated as errors (default is false).
2917      2. Cleaned up the *entire* source tree so that CMB.make goes through
2918         without a single non-exhaustive match- or bind warning.
2919    
2920    ----------------------------------------------------------------------
2921    Name: Matthias Blume (blume (at) tti - c (dot) org)
2922    Date: 2003/05/17 10:20:00 CDT
2923    Tag: blume-20030517-absyn
2924    Description:
2925    
2926    1. Added cases for IF, WHILE, ANDALSO, and ORELSE to Absyn.
2927    
2928       This mainly affects the quality of error messages.  However, some
2929       of the code is now more straightforward than before. (Treatment of
2930       the above four constructs in translate.sml is much simpler than
2931       the "macro-expansion" that was going on before.  Plus, the mach-
2932       compiler no longer gets invoked just to be able to compile an
2933       if-expression.)
2934    
2935    2. The ErrorMsg.Error exception is now caught and absorbed by the
2936       interactive loop.
2937    
2938    ----------------------------------------------------------------------
2939    Name: Allen Leung
2940    Date: 2003/05/16 13:05:00 CDT
2941    Tag: leunga-20030516-cygwin-runtime
2942    Description:
2943    
2944        Ported the runtime system to cygwin, which uses the unix
2945    x86-unix bin files.  Missing/buggy features:
2946    
2947       o getnetbyname, getnetbyaddr: these functions seem to be missing in
2948         the Cygwin library.
2949       o Ctrl-C handling may be flaky.
2950       o Windows system calls and Windows I/O are not supported.
2951    
2952       A new set of binfiles is located at:
2953    
2954         http://www.dorsai.org/~leunga/boot.x86-unix.tgz
2955    
2956       This is only needed for bootstrapping the cygwin version of smlnj.
2957       Other x86 versions can use the existing binfiles.
2958    
2959    ----------------------------------------------------------------------
2960    Name: Matthias Blume
2961    Date: 2003/04/08 15:42:00 CDT
2962    Tag: blume-20030408-listpair
2963    Description:
2964    
2965    1. Added a target 'mlrisc' to installer.
2966    
2967    2. Added missing elements to structure ListPair.
2968    
2969    ----------------------------------------------------------------------
2970    Name: Allen Leung
2971    Date: 2003/01/07 10:40:00 EST
2972    Tag: leunga-20030107-int-rem
2973    Description:
2974    
2975    Fixed a bug in Int.rem(x,y) where y is a power of 2 on x86.
2976    The arguments to the SUBL instruction were swapped.
2977    
2978    ----------------------------------------------------------------------
2979    Name: Matthias Blume
2980    Date: 2002/12/12 16:25:00 EST
2981    Tag: blume-20021212-risc-ra
2982    Description:
2983    
2984    Fixed a serious bug in the rewrite code for FP spilling/reloading that
2985    sent the RA into an infinite loop when floating point registers get
2986    spilled.  (Because of this bug, e.g., nucleic stopped compiling between
2987    110.37 and 110.38.)
2988    There was another set of potential problems related to the handling of
2989    MLRISC annotations (but those did not yet cause real problems, apparently).
2990    
2991    ----------------------------------------------------------------------
2992    Name: Matthias Blume
2993    Date: 2002/12/06 22:40:00 EST
2994    Tag: blume-20021206-cm-fileid
2995    Description:
2996    
2997    Added a call of SrcPath.sync at the beginning of Parse.parse (in CM).
2998    This fixes the problem of CM getting confused by files that suddenly
2999    change their identity (e.g., by getting unlinked and recreated by some
3000    text editor such as vi).  There might be a better/cheaper/cleaner way
3001    of doing this, but for now this will have to do.
3002    
3003    ----------------------------------------------------------------------
3004    Name: Matthias Blume
3005    Date: 2002/10/28 09:50:00 EST
3006    Tag: blume-20021028-typecheck
3007    Description:
3008    
3009    Exported structure Typecheck from $smlnj/viscomp/core.cm.
3010    
3011    ----------------------------------------------------------------------
3012    Name: Matthias Blume
3013    Date: 2002/10/17 09:10:00 EDT
3014    Tag: Release_110_42
3015    Description:
3016    
3017    In good old tradition, there has been a slight hiccup so that we have
3018    to patch 110.42 after the fact.   The old release tag has been replaced
3019    (see below).
3020    
3021    The change solves a problem with two competing approaches the
3022    configuration problem regarding MacOS 10.1 vs. MacOS 10.2 which got in
3023    each other's way.
3024    
3025    This change only affects the runtime system code and the installer script.
3026    (No new bootfiles.)
3027    
3028    ----------------------------------------------------------------------
3029    Name: Matthias Blume
3030    Date: 2002/10/16 12:00:00 EDT
3031    Tag: Release_110_42_removed
3032    Description:
3033    
3034    New working release.  New bootfiles.
3035    
3036    ----------------------------------------------------------------------
3037    Name: Matthias Blume
3038    Date: 2002/10/10 13:10:00 EDT
3039    Tag: blume-20021010-ppc-divs
3040    Description:
3041    
3042    The mltree operator DIVS must be implemented with an overflow check on
3043    the PPC because the hardware indicates divide-by-zero using "overflow" as
3044    well.
3045    
3046    ----------------------------------------------------------------------
3047    Name: Matthias Blume
3048    Date: 2002/07/23 11:45:00
3049    Tag: blume-20020723-smlnj-home
3050    Description:
3051    
3052    Sml now senses the SMLNJ_HOME environment variable.  If this is set,
3053    then the bin dir is assumed to be in $SMLNJ_HOME/bin and (unless
3054    CM_PATHCONFIG is also set), the path configuration file is assumed
3055    to be in $SMLNJ_HOME/lib/pathconfig.  This way one can easily move
3056    the entire tree to some other place and everything will "just work".
3057    
3058    (Companion commands such as ml-build and ml-makedepend also sense this
3059    variable.)
3060    
3061    ----------------------------------------------------------------------
3062    Name: Matthias Blume
3063    Date: 2002/07/12 21:19:00 EDT
3064    Tag: blume-20020712-liveness
3065    Description:
3066    
3067    Exported two useful "step" functions from liveness module (MLRISC).
3068    
3069    ----------------------------------------------------------------------
3070    Name: Matthias Blume
3071    Date: 2002/07/05 16:00 EDT
3072    Tag: Release_110_41
3073    Description:
3074    
3075    New working release.  New bootfiles.
3076    
3077    ----------------------------------------------------------------------
3078    Name: Matthias Blume
3079    Date: 2002/07/05 10:25:00 EDT
3080    Tag: blume-20020705-btimp
3081    Description:
3082    
3083    Exported structure BTImp from $smlnj/viscomp/debugprof.cm so that
3084    other clients can set up backtracing support.
3085    
3086    ----------------------------------------------------------------------
3087    Name: Matthias Blume
3088    Date: 2002/06/25 17:23:00 EDT
3089    Tag: blume-20020625-fpmax
3090    Description:
3091    
3092    Fixed a bug in translation of INLMAX (and INLMIN) for the floating-point
3093    case.  (The sense of the isNaN test was reversed -- which made min and
3094    max always return their first argument.)
3095    
3096    ----------------------------------------------------------------------
3097    Name: Matthias Blume
3098    Date: 2002/06/11
3099    Tag: blume-20020611-unixpath
3100    Description:
3101    
3102    Back-ported OS.Path.{from,to}UnixPath from idlbasis-devel branch.
3103    
3104    ----------------------------------------------------------------------
3105    Name: Matthias Blume
3106    Date: 2002/06/10 16:35:00 EDT
3107    Tag: blume-20020610-ieeereal
3108    Description:
3109    
3110    I back-ported my implementation of IEEEReal.fromString from the
3111    idlbasis-devel branch so that we can test it.
3112    
3113    Another small change is that ppDec tries to give more information
3114    than just "<sig>" in the case of functors.  However, this code is
3115    broken in some mysterious way if the functor's body's signature
3116    has not been declared by ascription but gets inferred from the
3117    implementation.  This needs fixing...
3118    
3119    ----------------------------------------------------------------------
3120    Name: Matthias Blume
3121    Date: 2002/05/31
3122    Tag: blume-20020531-btrace-mode
3123    Description:
3124    
3125    Resurrected SMLofNJ.Internals.BTrace.mode.  (It accidentally fell by
3126    the wayside when I switched over to using Controls everywhere.)
3127    
3128    ----------------------------------------------------------------------
3129    Name: Lal George
3130    Date: 2002/05/23 12:21:40 EDT
3131    Tag: george-20020523-visual-labels
3132    Description:
3133    
3134    Labels are now displayed in the graphical output to make
3135    the fall-through and target blocks obvious.
3136    
3137    ----------------------------------------------------------------------
3138    Name: Matthias Blume
3139    Date: 2002/05/22 11:03:00 EDT
3140    Tag: blume-20020522-shrink
3141    Description:
3142    
3143    John tweaked yesterday's fix for 1131 to handle an out-of-memory
3144    situation that comes up when allocating huge arrays.
3145    
3146    ----------------------------------------------------------------------
3147    Name: Matthias Blume
3148    Date: 2002/05/21 16:00:00 EDT
3149    Tag: Release_110_40
3150    Description:
3151    
3152    New working release (110.40).  New bootfiles.
3153    
3154    [Also: John Reppy fixed GC bug 1131.]
3155    
3156    ----------------------------------------------------------------------
3157    Name: Matthias Blume
3158    Date: 2002/05/21 12:35:00 EDT
3159    Tag: blume-20020521-cmdoc
3160    Description:
3161    
3162    CM documentation update.
3163    
3164    ----------------------------------------------------------------------
3165    Name: Matthias Blume
3166    Date: 2002/05/21 10:55:00 EDT
3167    Tag: blume-20020521-misc
3168    Description:
3169    
3170    - John tweaked runtime to be silent on heap export (except when
3171      GC messages are on).
3172    - I added a few more things (cross-compiling versions of CMB) to
3173      config/preloads (as suggestions).
3174    
3175    ----------------------------------------------------------------------
3176    Name: Matthias Blume
3177    Date: 2002/05/20 22:25:00 EDT
3178    Tag: blume-20020520-controls
3179    Description:
3180    
3181    - Added ControlUtil structure to control-lib.cm.
3182    - Use it throughout.
3183    - Used Controls facility to define MLRISC controls (as opposed to
3184      registering MLRISC control ref cells with Controls after the fact)
3185    - Fixed messed-up controls priorities.
3186    
3187    * Removed again all the stuff from config/preloads that one wouldn't
3188      be able to preload at the time the initial heap image is built.
3189      (Many libraries, e.g., CML, do not exist yet at this time.  The
3190       only libraries that can be preloaded via config/preloads are those
3191       that come bundled with the bootfiles.)
3192    
3193    ----------------------------------------------------------------------
3194    Name: Matthias Blume
3195    Date: 2002/05/20 10:59:00 EDT
3196    Tag: blume-20020520-preloads
3197    Description:
3198    
3199    Added a lot of commented-out suggestions for things to be included
3200    in config/preloads.
3201    
3202    ----------------------------------------------------------------------
3203    Name: Allen Leung
3204    Date: 2002/05/18 14:20:00 EDT
3205    Tag: leunga-20020518-mdl
3206    Description:
3207    
3208    o Made the mdl tool stuff compile and run again.
3209    o I've disabled all the stuff that depends on RTL specifications; they
3210      are all badly broken anyway.
3211    
3212    ----------------------------------------------------------------------
3213    Name: Matthias Blume
3214    Date: 2002/05/17 16:49:00 EDT
3215    Tag: blume-20020517-controls
3216    Description:
3217    
3218    0. John Reppy made several modifications to the SML/NJ library.
3219       In particular, there is a shiny new controls-lib.cm.
3220    
3221    1. Pushed new controls interface through compiler so that everything
3222       compiles again.
3223    
3224    2. Added FormatComb and FORMAT_COMB to the CML version of the
3225       SML/NJ library (so that CML compiles again).
3226    
3227    3. Modified init scripts because XXX_DEFAULT environment variables
3228       are no longer with us.  (Boot-time initialization is now done
3229       using the same environment variables that are also used for
3230       startup-time initialization of controls.)
3231    
3232    ----------------------------------------------------------------------
3233    Name: Lal George
3234    Date: 2002/05/15 09:20:10 EDT
3235    Tag: george-20020515-pseudo-op-decls
3236    Description:
3237    
3238            All pseudo-ops emitted before the first segment declaration
3239    such as TEXT, DATA, and BSS directives are assumed to be global
3240    declarations and are emitted first in the assembly file. This is
3241    useful in a number of situations where one has pseudo-ops that are not
3242    specific to any segment, and also works around the constraint that one
3243    cannot have client pseudo-ops in the TEXT segment.
3244    
3245            Because no segment is associated with these declarations it is
3246    an error to allocate any space or objects before the first segment
3247    directive and an exception will be raised. However, we cannot make
3248    this check for client pseudo-ops.
3249    
3250            These top level declarations are a field in the CFG graph_info.
3251    In theory you can continue to add to this field after the CFG has been
3252    built -- provided you know what you are doing;-)
3253    
3254    ----------------------------------------------------------------------
3255    Name: Matthias Blume
3256    Date: 2002/05/13 16:40:00 EDT
3257    Tag: blume-20020513-pp-etc
3258    Description:
3259    
3260    A few minor bugfixes:
3261    
3262      - Stopgap measure for bug recently reported by Elsa Gunter (ppDec).
3263        (Bogus printouts for redefined bindings still occur.  Compiler
3264        bug should no longer occur now.  We need to redo the prettyprinter
3265        from scratch.)
3266    
3267      - CM pathname printer now also adds escape sequences for ( and )
3268    
3269      - commend and docu fixes for ml-nlffi
3270    
3271    ----------------------------------------------------------------------
3272    Name: Matthias Blume
3273    Date: 2002/05/10 16:40:00 EDT
3274    Tag: blume-20020510-erg-textio
3275    Description:
3276    
3277    Applied the following bugfix provided by Emden Gansner:
3278    
3279        Output is corrupted when outputSubstr is used rather than output.
3280    
3281        The problem occurs when a substring
3282    
3283            ss = (s, dataStart, dataLen)
3284    
3285        where dataStart > 0, fills a stream buffer with avail bytes left.
3286        avail bytes of s, starting at index dataStart, are copied into the
3287        buffer, the buffer is flushed, and then the remaining dataLen-avail
3288        bytes of ss are copied into the beginning of the buffer. Instead of
3289        starting this copy at index dataStart+avail in s, the current code
3290        starts the copy at index avail.
3291    
3292        Fix:
3293        In text-io-fn.sml, change line 695 from
3294             val needsFlush = copyVec(v, avail, dataLen-avail, buf, 0)
3295        to
3296             val needsFlush = copyVec(v, dataStart+avail, dataLen-avail, buf, 0)
3297    
3298    ----------------------------------------------------------------------
3299    Name: Matthias Blume
3300    Date: 2002/04/12 13:55:00 EDT
3301    Tag: blume-20020412-assyntax
3302    Description:
3303    
3304    1. Grabbed newer assyntax.h from the XFree86 project.
3305    2. Fiddled with how to compile X86.prim.asm without warnings.
3306    3. (Very) Minor cleanup in CM.
3307    
3308    ----------------------------------------------------------------------
3309    Name: Matthias Blume
3310    Date: 2002/04/01 (no joke!) 17:07:00 EST
3311    Tag: blume-20020401-x86div
3312    Description:
3313    
3314    Added full support for div/mod/rem/quot on the x86, using the machine
3315    instruction's two results (without clumsily recomputing the remainder)
3316    directly where appropriate.
3317    
3318    Some more extensive power-of-two support was added to the x86 instruction
3319    selector (avoiding expensive divs, mods, and muls where they can be
3320    replaced with cheaper shifts and masks).  However, this sort of thing
3321    ought to be done earlier, e.g., within the CPS optimizer so that
3322    all architectures benefit from it.
3323    
3324    The compiler compiles to a fixed point, but changes might be somewhat
3325    fragile nevertheless.  Please, report any strange things that you might
3326    see wrt. div/mod/quot/rem...
3327    
3328    ----------------------------------------------------------------------
3329