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