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