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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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

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

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