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