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