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