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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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