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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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