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