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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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