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

Legend:
Removed from v.1181  
changed lines
  Added in v.2304

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