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