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