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