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