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