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

Legend:
Removed from v.1494  
changed lines
  Added in v.3462

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0