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