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