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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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