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