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

Legend:
Removed from v.1389  
changed lines
  Added in v.3579

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0