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