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