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