Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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