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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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