Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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