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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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