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