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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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

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

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