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