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