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

SCM Repository

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

Diff of /sml/trunk/NOTES/HISTORY

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

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