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