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/branches/primop-branch-3/NOTES/HISTORY
ViewVC logotype

Diff of /sml/branches/primop-branch-3/NOTES/HISTORY

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

revision 1220, Wed May 22 15:04:10 2002 UTC revision 2066, Thu Oct 5 16:26:30 2006 UTC
# 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    ----------------------------------------------------------------------
17    Name: Matthias Blume (http://www.tti-c.org/blume/)
18    Date: 2006/10/05 11:30:00 CDT
19    Tag: blume-20061005-merge-amd64
20    Description:
21    
22    Merged code for AMD64 backend (Mike Rainey's work).
23    Everything is hooked up but untested.
24    
25    ----------------------------------------------------------------------
26    Name: Matthias Blume (http://www.tti-c.org/blume/)
27    Date: 2006/05/17 14:00:00 CST
28    Tag: Release_110_59
29    Description:
30    
31    New working version (110.58).  NEW BOOTFILES!
32    
33    I am freezing 110.59.  Changes other than the version-number increase:
34    
35      eXene:
36    
37         * committed changes to eXene from Alley Stoughton:
38             "fixed bugs in X authorization and resource handling, as well
39              as in the pile and viewport widgets"
40    
41      Runtime:
42        * fixed linking problem with NetBSD 3.x.
43    
44      Lexgen:
45        * lexgen tool handles non-ascii characters in 7-bit mode the same
46          way that ml-lex does
47    
48        * lexgen propagates exceptions the same way that ml-lex does
49    
50      CML:
51        * Fixed a bug in the SyncVar polling functions (iGetPoll,
52          mTakePoll, and mGetPoll) that could lead to livelock.
53    
54    ----------------------------------------------------------------------
55    Name: Matthias Blume (http://www.tti-c.org/blume/)
56    Date: 2006/05/12 15:20:00 CST
57    Tag: blume-20060515-makedepend
58    Description:
59    
60    Implemented ml-makedepend (i.e., CM.sources) in a better (more robust)
61    way.  This should hopefully fix the ml-makedepend problem permanently.
62    
63    ----------------------------------------------------------------------
64    Name: Matthias Blume (http://www.tti-c.org/blume/)
65    Date: 2006/05/12 15:15:00 CST
66    Tag: blume-20060512-makedepend
67    Description:
68    
69    Fixed long-standing bug with ml-makedepend where it would output a
70    spurious dependency to a non-existing file.  (This is a simple fix.
71    It might need further looking into.)
72    
73    ----------------------------------------------------------------------
74    Name: Matthias Blume (http://www.tti-c.org/blume/)
75    Date: 2006/04/20 10:30:00 CDT
76    Tag: blume-20060420-heap2exec
77    Description:
78    
79    Committed patches received from Johannes 5 Joemann (joemann@befree.free.de)
80    that enable heap2exec under Linux and FreeBSD.
81    
82    ----------------------------------------------------------------------
83    Name: John Reppy
84    Date: 2006/04/14
85    Tag:
86    Description:
87    
88    MLRISC changes:
89      1) renamed GAS_PSEUDO_OPS to AS_PSEUDO_OPS and put it in its own file.
90      2) added support for NOTB and XORB operators in pseudo-op expressions
91      3) added DarwinPseudoOp functor that supports Darwin's assembler syntax.
92      4) added support for 64-bit integer literals
93    
94    ----------------------------------------------------------------------
95    Name: Matthias Blume (http://www.tti-c.org/blume/)
96  Date: yyyy/mm/dd  Date: yyyy/mm/dd
97  Tag: <post-commit CVS tag>  Tag: Release_110_58
98    Description:
99    
100    New working version (110.58).  NEW BOOTFILES!
101    
102    ----------------------------------------------------------------------
103    Name: Matthias Blume (http://www.tti-c.org/blume/)
104    Date: 2006/03/01 22:15:00 CST
105    Tag: blume-20060301-lexgen
106    Description:
107    
108    Incorporated several bugfixes to lexgen.  Compiler now compiles to
109    fixpoint when using lexgen instead of ml-lex.
110    
111    ----------------------------------------------------------------------
112    Name: Matthias Blume (http://www.tti-c.org/blume/)
113    Date: 2006/02/28 22:45:00 CST
114    Tag: blume-20060228-lexgen
115    Description:
116    
117    Removed ml-flex and added lexgen instead, using Aaron Turon's newly
118    provided tarball.  The generated lexers still have problems.
119    
120    ----------------------------------------------------------------------
121    Name: Matthias Blume (http://www.tti-c.org/blume/)
122    Date: 2006/02/26 23:30:00 CST
123    Tag: blume-20060226-ml-flex
124    Description:
125    
126    Removed ml-flex' dependency on regexp-lib.cm.  Turned installation
127    of ml-flex on by default.
128    
129    ----------------------------------------------------------------------
130    Name: Matthias Blume (http://www.tti-c.org/blume/)
131    Date: 2006/02/24 16:30:00 CST
132    Tag: blume-20060224-ml-flex
133    Description:
134    
135    Added ml-flex sources.  Partially integrated, but should not be
136    turned on yet!  (Read: leave it commented-out in config/targets!)
137    
138    ----------------------------------------------------------------------
139    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
140    Date: 2006/02/23
141    Tag: jhr-20060223-x86-64
142    Description:
143    Changes to support building on x86-64 systems (using the 32-bit mode).
144    Also cleaned up signal handling on Linux.  Support for pre-2.2 Linux
145    kernels dropped.
146    
147    ----------------------------------------------------------------------
148    Name: Allen Leung (leunga (at) reservoir (dot) com)
149    Date: 2006/02/22 15:07:00 EST
150    Tag: leunga-20060222-mdl-gen
151    Description:
152    
153      CM has changed.  Updated the script for rebuilding the MLRISC generated
154    files.
155    
156    ----------------------------------------------------------------------
157    Name: Matthias Blume (http://www.tti-c.org/blume/)
158    Date: 2006/02/14 17:30:00 CST
159    Tag: blume-20060214-intel-mac
160    Description:
161    
162    Hooked code for Darwin-specific Intel ABI into main compiler.
163    (This is a temporary solution which relies on the fact that the
164    compiler itself does not use NLFFI.  Eventually we need to divorce
165    intel mac from generic x86 unix code and make separate sets of binaries.)
166    
167    ----------------------------------------------------------------------
168    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
169    Date: 2006/02/13
170    Tag: jhr-20060213-intel-mac
171    Description:
172    Changed MLRISC x86 CCalls for partial support of MacOS X ABI.
173    
174    ----------------------------------------------------------------------
175    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
176    Date: 2006/02/06
177    Tag: jhr-20060206-intel-mac
178    Description:
179    Changes to support MacOS X on Intel hardware.  The C-calls support in
180    MLRISC must also be updated to support the MacOS X ABI.
181    
182    ----------------------------------------------------------------------
183    Name: Matthias Blume (http://www.tti-c.org/blume/)
184    Date: 2005/12/16 00:15:00 CST
185    Tag: blume-20051216-cm
186    Description:
187    
188    Improved error reporting and handling in CM.
189    
190    ----------------------------------------------------------------------
191    Name: Matthias Blume (http://www.tti-c.org/blume/)
192    Date: 2005/11/21 14:00:00 CST
193    Tag: blume-20051121-html-lib
194    Description:
195    
196    Enabling $/html-lib.cm in config/preloads did not work.  This is fixed
197    now.  (Since the anchor mapping for html-lib.cm is not yet in effect
198    at the time when config/preloads is processed, the library has to
199    be referred to by another name.  In 110.57 this would be
200    $SMLNJ-LIB/HTML/html-lib.cm.  I arranged for $smlnj/smlnj-lib/html-lib.cm
201    to be valid as well.)
202    
203    Thanks to Todd Wilson (Fresno) for alerting me to this issue.
204    
205    ----------------------------------------------------------------------
206    Name: Matthias Blume (http://www.tti-c.org/blume/)
207    Date: 2005/11/19 13:45:00 CST
208    Tag: Release_110_57
209    Description:
210    
211    Moved release tag for 110.57.
212    
213    ----------------------------------------------------------------------
214    Name: Matthias Blume (http://www.tti-c.org/blume/)
215    Date: 2005/11/19 23:35:00 CST
216    Tag: blume-20051119-fish
217    Description:
218    
219    Fixed a problem in config/install.sh where it tries to "fish" the
220    name of the CM metadata directory from the wrong place (because
221    the physical location of basis.cm has changed).  Also, corrected the
222    path anchor for $/html-lib.cm.  (Thanks to M. Fluet for pointing out
223    these problems.)
224    
225    ----------------------------------------------------------------------
226    Name: Matthias Blume (http://www.tti-c.org/blume/)
227    Date: 2005/11/16 14:30:00 CST
228    Tag: blume-orig-110_57
229    Description:
230    
231    New working version (110.57).  NEW BOOTFILES!
232    
233    UPDATE: The release tag has been moved to include a fix for a brown-paper-
234            bag glitch (see above).
235    
236    ----------------------------------------------------------------------
237    Name: Matthias Blume (http://www.tti-c.org/blume/)
238    Date: 2005/11/16 10:25:00 CST
239    Tag: blume-22051116-btrace
240    Description:
241    
242    Fixed problem with bogus exception message when using back-trace
243    facility.
244    
245    ----------------------------------------------------------------------
246    Name: Matthias Blume (http://www.tti-c.org/blume/)
247    Date: 2005/11/15 22:35:00 CST
248    Tag: blume-22051115-array2copy
249    Description:
250    
251    Added simple implementation of Array2.copy.  (Warning: mostly untested.)
252    
253    ----------------------------------------------------------------------
254    Name: Matthias Blume (http://www.tti-c.org/blume/)
255    Date: 2005/11/15 21:35:00 CST
256    Tag: blume-22051115-versiontool
257    Description:
258    
259    Reversed change to src/system/smlnj/internals/versiontool.cm.  This
260    file gets loaded as a tool -- by the equivalent of CM.make during the
261    run of CMB.make.  Thus, CMB's path configuration is meaningless for
262    it.  Instead, it has the status of "user code", so it should use
263    $/basis.cm to refer to the Basis library.  (At least that's true for
264    the purpose of bootstrapping the previous change.  In the future it
265    might make sense to have versiontool.cm refer to
266    $smlnj/basis/basis.cm, i.e., the version of the Basis that the
267    compiler itself uses.)
268    
269    Also patched src/system/testml to have it activate those extra anchor
270    bindings in config/extrapathconfig.
271    
272    ----------------------------------------------------------------------
273    Name: Matthias Blume (http://www.tti-c.org/blume/)
274    Date: 2005/11/15 16:35:00 CST
275    Tag: blume-22051115-libraries
276    Description:
277    
278    This change affects the way the following libraries are tied into
279    the system:
280    
281       $/basis.cm
282       $/smlnj-lib.cm
283       $/pp-lib.cm
284       $/controls-lib.cm
285       $/html-lib.cm
286       $/ml-yacc-lib.cm
287    
288    These libraries are now internally (as seen from the source code
289    of the implementation itself) known by the following names:
290    
291       $smlnj/basis/basis.cm
292       $smlnj/smlnj-lib/smlnj-lib.cm
293       $smlnj/smlnj-lib/pp-lib.cm
294       $smlnj/smlnj-lib/controls-lib.cm
295       $smlnj/smlnj-lib/html-lib.cm
296       $smlnj/ml-yacc/ml-yacc-lib.cm
297    
298    This makes it possible to work with code that requires different
299    versions of these libraries, and which refers to these libraries using
300    their "default" names (i.e., the first set of names above).  In other
301    words, one can un-define or re-define those default names without
302    compromising the proper functioning of the compiler itself.
303    
304    A similar procedure had already been performed for several of the
305    MLRISC libraries that are linked into the compiler.  I did some
306    cleanup on this code.
307    
308    A new file in the config directory (named extrapathconfig) is
309    responsible for setting up path anchors that the compiler itself does
310    not need, but that are typically required by user code.
311    
312    ----------------------------------------------------------------------
313    Name: Matthias Blume
314    Date: 2005/11/07 17:05:00 CST
315    Tag: blume-20051107-slice
316    Description:
317    
318    Fixed erroneous out-of-bounds test in the "update" function of
319    various *ArraySlice modules.  (Thanks to Vesa A. Norrman for pointing
320    out the problem.)
321    
322    Pushed some Basis changes through ML-Lex, CML, and eXene.
323    
324    ----------------------------------------------------------------------
325    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
326    Date: 2005/11/07
327    Description:
328    Fixed a Basis incompatibility: The depreciated function Substring.all
329    was removed (use Substring.full instead).
330    
331    ----------------------------------------------------------------------
332    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
333    Date: 2005/11/05
334    Description:
335    Tweaked interval set API in SML/NJ library; see the CHANGES file for details.
336    
337    ----------------------------------------------------------------------
338    Name: Matthias Blume (http://www.tti-c.org/blume/)
339    Date: 2005/11/02 16:25:00 CST
340    Tag: blume-20051102-hex
341    Description:
342    
343    * Runtime system bootstrap code now accepts hex digits in BOOTLIST
344      in either upper case or lower case format.
345    * Pushed changes to names of Pack<N>{Big,Little} structures through
346      CML and eXene.
347    
348    ----------------------------------------------------------------------
349    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
350    Date: 2005/11/02
351    Description:
352    Fixed a Basis incompatibility: Pack<N>{Big,Little} structures should
353    be called PackWord<N>{Big,Little}.
354    
355    ----------------------------------------------------------------------
356    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
357    Date: 2005/10/28
358    Description:
359    Fixed a minor Basis incompatibility: hex digits should be upper case.
360    
361    ----------------------------------------------------------------------
362    Name: Matthias Blume (blume (at) tti - c (dot) org)
363    Date: 2005/10/25 16:00:00 CDT
364    Tag: Release_110_56
365    Description:
366    
367    New working version (110.56).  NEW BOOTFILES!
368    
369    ----------------------------------------------------------------------
370    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
371    Date: 2005/10/25
372    Description:
373    Added interval sets to utility library (signatures INTERVAL_DOMAIN
374    and INTERVAL_SET, and functor IntervalSetFn).
375    
376    ----------------------------------------------------------------------
377    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
378    Date: 2005/10/14
379    Description:
380    Add Zhong Shao's fix for datatype equality functions.
381    
382    ----------------------------------------------------------------------
383    Name: Allen Leung (leunga (at) reservoir (dot) com)
384    Date: 2005/10/14 12:30:00 EST
385    Tag: leunga-20051014-x86-spill
386    Description:
387    
388    Bug fix a bug found by Carl Hauser.
389    There was a typo in the reload code for FCMP in x86SpillInstr.sml.
390    
391    ----------------------------------------------------------------------
392    Name: Allen Leung (leunga (at) reservoir (dot) com)
393    Date: 2005/10/14 11:15:00 EST
394    Tag: leunga-20051014-x86-asm
395    Description:
396    
397    Removed some debugging code in file x86Asm.sml.
398    The function emit_operand was printing out debugging output.
399    
400    ----------------------------------------------------------------------
401    Name: John Reppy
402    Date: 2005/07/27
403    Tag:
404    Description:
405    
406    Fixed ml-lex to recognize "\r" as representing carriage return.
407    
408    ----------------------------------------------------------------------
409    Name: John Reppy
410    Date: 2005/07/27
411    Tag:
412    Description:
413    
414    Fixed ml-yacc to work on files with non-native end-of-line
415    encodings (e.g., Windows text file on a Unix system).
416    
417    ----------------------------------------------------------------------
418    Name: John Reppy
419    Date: 2005/07/20
420    Tag:
421    Description:
422    
423    Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)
424    to support HPUX 11.
425    
426    ----------------------------------------------------------------------
427    Name: John Reppy
428    Date: 2005/07/06
429    Tag:
430    Description:
431    
432    Changes to the SML/NJ library.  See smlnj-lib/CHANGES for details.
433    
434    ----------------------------------------------------------------------
435    Name: Matthias Blume (blume (at) tti - c (dot) org)
436    Date: 2005/07/06 00:45:00 CDT
437    Tag: blume-20050706-slice-copy
438    Description:
439    
440    Fixed reversed logic for deciding whether to "copy up" or "copy down"
441    in *-array-slice.sml.
442    
443    ----------------------------------------------------------------------
444    Name: Allen Leung (leunga (at) reservoir (dot) com)
445    Date: 2005/05/31 17:00:00 EST
446    Tag: leunga-20050531-cygwin-fault-2
447    Description:
448    
449    A typo in the cygwin code fixed.
450    
451    ----------------------------------------------------------------------
452    Name: Allen Leung (leunga (at) reservoir (dot) com)
453    Date: 2005/05/31 16:47:00 EST
454    Tag: leunga-20050531-cygwin-fault
455    Description:
456    
457    Updated Cygwin's fault/signal handling to match the Windows version.
458    Updated the export list.
459    
460    ----------------------------------------------------------------------
461    Name: Matthias Blume (blume (at) tti - c (dot) org)
462    Date: 2005/05/18 13:35:00 CDT
463    Tag: Release_110_54
464    Description:
465    
466    New working version (110.54).  NEW BOOTFILES!
467    
468    ----------------------------------------------------------------------
469    Name: Matthias Blume (blume (at) tti - c (dot) org)
470    Date: 2005/05/18 11:58:00 CDT
471    Tag: blume-20050518-installer
472    Description:
473    
474    Added support scripts for Mac OS X PackageMaker and modified
475    config/install.sh so that it supports re-dumping a heap image
476    after customization.
477    
478    ----------------------------------------------------------------------
479    Name: Matthias Blume (blume (at) tti - c (dot) org)
480    Date: 2005/05/18 10:55:00 CDT
481    Tag: blume-20050518-realdiv-noovld
482    Description:
483    
484    Un-overloaded / to work around bug in overloading resolution code.
485    
486    ----------------------------------------------------------------------
487    Name: Matthias Blume (blume (at) tti - c (dot) org)
488    Date: 2005/05/16 23:50:00 CDT
489    Tag: blume-20050516-redump-heap
490    Description:
491    
492    Added mechanism for re-creating a heap file for the interactive system
493    after configuration variables have been changed.
494    
495       CM.redump_heap : string -> unit
496    
497    This is much like SMLofNJ.exportML, but starting from the resulting
498    heap does not return to the caller of CM.redump_heap but
499    restarts the interactive system from scratch.  The original call of
500    CM.redump_heap does not return but ends the interactive session.
501    Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.
502    
503    Internally, redump_heap winds the dynamic execution context back to
504    the point where the original heap image was created and re-executes
505    the heap image generation code in the boot code.
506    
507    ----------------------------------------------------------------------
508    Name: Matthias Blume (blume (at) tti - c (dot) org)
509    Date: 2005/05/09 21:55:00 CDT
510    Tag: blume-20050509-word64
511    Description:
512    
513    Added a hack to the existing hack known as Word64 to make fromString
514    behave correctly.  I am still not sure whether Word64.scan will work
515    as specified with respect to the interaction of radix and prefix.
516    
517    ----------------------------------------------------------------------
518    Name: Allen Leung (leunga (at) reservoir (dot) com)
519    Date: 2005/05/04 11:50:00 EST
520    Tag: leunga-20050504-checkgc
521    Description:
522    
523    Added a gc protocol checking phase.  This phase is enabled with
524    the flag "check-gc".  "debug-check-gc" turns on the verbose mode.
525    
526    ----------------------------------------------------------------------
527    Name: Matthias Blume (blume (at) tti - c (dot) org)
528    Date: 2005/05/04 10:45:00 CDT
529    Tag: blume-20050504-intinf
530    Description:
531    
532    Fixed a bug in the implementation of div and mod for IntInf.
533    Thanks to Neophytos Michael for reporting the problem.
534    
535    ----------------------------------------------------------------------
536    Name: Matthias Blume (blume (at) tti - c (dot) org)
537    Date: 2005/05/04 10:35:00 CDT
538    Tag: blume-20050504-join
539    Description:
540    
541    Added a "join" combinator to the ParserComb module in smlnj-lib.cm.
542    
543    ----------------------------------------------------------------------
544    Name: Matthias Blume (blume (at) tti - c (dot) org)
545    Date: 2005/02/28 23:40:00 CST
546    Tag: blume-20050228-mVar
547    Description:
548    
549    Fixed serious bug (brown paper bag variety) in new implementation of
550    structure Atom in CML.  (I had accidentally used a mailbox instead of
551    an mvar, leaving the door open for races.)
552    
553    ----------------------------------------------------------------------
554    Name: Matthias Blume (blume (at) tti - c (dot) org)
555    Date: 2005/02/25 15:00:00 CST
556    Tag: Release_110_53
557  Description:  Description:
558    
559    New working version (110.53).  NEW BOOTFILES!
560    
561    ----------------------------------------------------------------------
562    Name: Matthias Blume (blume (at) tti - c (dot) org)
563    Date: 2005/02/25 14:50:00 CST
564    Tag: blume-20050225-susp
565    Description:
566    
567    Brought back SMLofNJ.Susp.  The underlying suspension type is the one
568    implemented in Core -- which means that it is the same as the one used
569    by the lazy extension.
570    
571    ----------------------------------------------------------------------
572    Name: Matthias Blume (blume (at) tti - c (dot) org)
573    Date: 2005/02/24 16:50:00 CST
574    Tag: blume-20050224-cml-atom
575    Description:
576    
577    Simpler and at the same time more general implementation of structure
578    Atom in CML.
579    
580    ----------------------------------------------------------------------
581    Name: Matthias Blume (blume (at) tti - c (dot) org)
582    Date: 2005/02/15 17:35:00 CST
583    Tag: blume-20050215-tools
584    Description:
585    
586    Created new "tools" directory under "src" and moved "TraceDebugProf"
587    there.
588    
589    ----------------------------------------------------------------------
590    Name: Matthias Blume (blume (at) tti - c (dot) org)
591    Date: 2005/02/10 17:55:00 CST
592    Tag: blume-20050210-longlong
593    Description:
594    
595    Implemented "long long" arguments and results for NLFFI.  (Only the
596    PPC/MacOS implementation is complete, the other backends still need to
597    be updated.)
598    
599    ----------------------------------------------------------------------
600    Name: Matthias Blume (blume (at) tti - c (dot) org)
601    Date: 2005/01/24 17:40:00 CST
602    Tag: blume-20050124-mlyacc
603    Description:
604    
605    Minor cleanup in ML-Yacc rule printing mechanism.  This should fix a
606    problem with certain "as" patterns which previously got rendered
607    using incorrect syntax.
608    
609    ----------------------------------------------------------------------
610    Name: Matthias Blume (blume (at) tti - c (dot) org)
611    Date: 2005/01/18 12:00:00 CST
612    Tag: blume-20050118-profile
613    Description:
614    
615    Made time profiling code (interrupt handler) in runtime system aware
616    of new array representation.
617    
618    ----------------------------------------------------------------------
619    Name: Matthias Blume (blume (at) tti - c (dot) org)
620    Date: 2005/01/14 18:00:00 CST
621    Tag: blume-20050114-heap2exec
622    Description:
623    
624    Implemented new (but still experimental) heap2exec facility.  This is
625    tested under Mac OS X and should work under Linux (will test shortly).
626    It will probably also work on the Sparc (will test some time later).
627    
628      - removed old "HACKED_STANDALONE" hack from runtime
629    
630    To be able to test this, uncomment the request for "heap2asm" in
631    config/targets prior to installation.  (Notice that this is different
632    from "heap2exec" mentioned below.  Not a typo.)
633    
634    To perform an actual test, run the command
635    
636       $ bin/heap2exec heapfile execfile
637    
638    (You can put heap2exec on your shell's path.)
639    
640    For example, run
641    
642      $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
643    
644    This will create a standalone executable called "mly" which you can
645    then invoke directly as a command.
646    
647    ----------------------------------------------------------------------
648    Name: Matthias Blume (blume (at) tti - c (dot) org)
649    Date: 2005/01/07 11:44:00 CST
650    Tag: blume-20050107-mlstring
651    Description:
652    
653    fixed off-by-one error in ML_STRING macro (globals.c)
654    
655    ----------------------------------------------------------------------
656    Name: Matthias Blume (blume (at) tti - c (dot) org)
657    Date: 2004/12/23 18:00:00 CST
658    Tag: blume-20041223-santa
659    Description:
660    
661    Made ml-build script "smarter" (but only very little).
662    
663    ----------------------------------------------------------------------
664    Name: Matthias Blume (blume (at) tti - c (dot) org)
665    Date: 2004/12/21 15:05:00 CST
666    Tag: blume-20041221-longlong
667    Description:
668    
669    * Implemented access to signed and unsigned long long data in NLFFI.
670    (The parameter-passing part of the picture has not complete. But
671    data structure access seems to work.)
672    
673    * Fixed CM's incorrect assumption that the PPC is little-endian.
674      (On the Mac, it is big-endian.  And that's currently our only
675      PPC platform.)
676    
677    ----------------------------------------------------------------------
678    Name: Matthias Blume (blume (at) tti - c (dot) org)
679    Date: 2004/12/21 12:50:00 CST
680    Tag: blume-20041221-memory
681    Description:
682    
683    Some cleanup in the $c/memory.cm library: separated some concerns by
684    moving allocation code and memory access code each into their own
685    files.
686    
687    ----------------------------------------------------------------------
688    Name: Allen Leung (leunga (at) reservoir (dot) com)
689    Date: 2004/12/17 16:12:00 EST
690    Tag: leunga-20041217-cygwin-smlnj-home
691    Description:
692    
693        The Unix I/O library of SML/NJ on cygwin does not understand
694    Windows style pathname, so problems arise when SMLNJ_HOME is set
695    to a Windows style pathname.  _run-sml now converts SMLNJ_HOME
696    to a POSIX pathname on cygwin.
697    
698    ----------------------------------------------------------------------
699    Name: Matthias Blume (blume (at) tti - c (dot) org)
700    Date: 2004/12/16 13:35:00 CST
701    Tag: Release_110_52
702    Description:
703    
704    Last-minute changes incorporated into 110.52.  Release tag moved.
705    
706    The changes:
707       - HashString.hashString' -> HashString.hashSubstring
708       - bug fix in UnivariateStats
709    
710    ----------------------------------------------------------------------
711    Name: Matthias Blume (blume (at) tti - c (dot) org)
712    Date: 2004/12/15 23:40:00 CST
713    Tag: blume-20041215-hashSubstring
714    Description:
715    
716    - HashString.hashString' -> HashString.hashSubstring
717    - corresponding changes in atom.sml
718    - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and
719      added some comments
720    
721    ----------------------------------------------------------------------
722    Name: Matthias Blume (blume (at) tti - c (dot) org)
723    Date: 2004/12/15 15:30:00 CST
724    Tag: (Release_110_52)
725    Description:
726    
727    New working version (110.52).  NEW BOOTFILES!
728    
729    ----------------------------------------------------------------------
730    Name: Matthias Blume (blume (at) tti - c (dot) org)
731    Date: 2004/12/15 12:45:00 CST
732    Tag: blume-20041215-spaces
733    Description:
734    
735    More on the space problem (this time for Win32).
736    
737    ----------------------------------------------------------------------
738    Name: Matthias Blume (blume (at) tti - c (dot) org)
739    Date: 2004/12/14 17:30:00 CST
740    Tag: blume-20041214-spaces
741    Description:
742    
743    Hacked some of the scripts (in particular: the installer) to cope with
744    spaces in filenames a bit better.  But beware: the current "solution"
745    is likely still full of bugs and inherently incomplete.  (We need to
746    do away with those shell scripts for a comprehensive solution.)
747    
748    ----------------------------------------------------------------------
749    Name: Matthias Blume (blume (at) tti - c (dot) org)
750    Date: 2004/12/13 14:45:00 CST
751    Tag: blume-20041213-ml-makedepend
752    Description:
753    
754    Fixed bug in code for ml-makedepend.
755    
756    ----------------------------------------------------------------------
757    Name: Matthias Blume (blume (at) tti - c (dot) org)
758    Date: 2004/12/09 16:30:00 CST
759    Tag: blume-20041209-statistics
760    Description:
761    
762    Added two simple but potentially useful statistics modules to SML/NJ Library.
763    (See CHANGES file there.)
764    
765    ----------------------------------------------------------------------
766    Name: Matthias Blume (blume (at) tti - c (dot) org)
767    Date: 2004/12/01 16:50:00 CST
768    Tag: blume-20041201-atom
769    Description:
770    
771    smlnj-lib:
772    
773      Added function HashString.hashString' for substrings.
774      Hand-inlined CharVector.foldl into HashString (for speed).
775      Modified implementation of structure Atom to avoid extracting
776      strings from substrings unless necessary.
777      (Also see CHANGES file for smlnj-lib.)
778    
779    ----------------------------------------------------------------------
780    Name: Matthias Blume (blume (at) tti - c (dot) org)
781    Date: 2004/11/24 22:15:00 CST
782    Tag: blume-20041124-cml
783    Description:
784    
785    Made sure CML compiles when Position = Int64.
786    
787    ----------------------------------------------------------------------
788    Name: Matthias Blume (blume (at) tti - c (dot) org)
789    Date: 2004/11/24 14:30:00 CST
790    Tag: blume-20041124-position
791    Description:
792    
793    The compiler can now be compiled in a mode that makes structure Position
794    equal to Int64.  The default, however, is unchanged (Position = Int31)
795    for the time being.
796    
797    To enable 64-bit positions, use the following procedure:
798    
799    1. Start sml
800    2. Autoload $smlnj/cmb.cm (if not already autoloaded)
801    3. Type
802          #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
803    4. Run CMB.make() as usual.
804    
805    This is barely tested.  The only test so far was a little SML program
806    counting the number of characters in an 8-gigabyte file by
807    reading it character-by-character.  That test was successful.
808    
809    In support of 64-bit positions, a number of new functions have been
810    added to the runtime system.
811    
812    ----------------------------------------------------------------------
813    Name: Matthias Blume (blume (at) tti - c (dot) org)
814    Date: 2004/11/23 14:45:00 CST
815    Tag: blume-20041123-useFile
816    Description:
817    
818    Fixed a problem with unhelpful error messages related to problems with
819    .cm- or .sml files that appear as part of the sml command line.
820    
821    ----------------------------------------------------------------------
822    Name: Matthias Blume (blume (at) tti - c (dot) org)
823    Date: 2004/11/18 15:40:00 CST
824    Tag: Release_110_51
825    Description:
826    
827    New working version (110.51).  NEW BOOTFILES!
828    
829    ----------------------------------------------------------------------
830    Name: Matthias Blume (blume (at) tti - c (dot) org)
831    Date: 2004/11/18 15:35:00 CST
832    Tag: <none>
833    Description:
834    
835    Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5
836    Joemann).
837    
838    ----------------------------------------------------------------------
839    Name: Allen Leung (leunga (at) reservoir (dot) com)
840    Date: 2004/11/17 16:05:21 EST 2004
841    Tag: leunga-20041117-mlrisc-live-kill
842    Description:
843    
844       Added support for MLTree constructs LIVE and KILL
845    to all the architectures.
846    
847    ----------------------------------------------------------------------
848    Name: Matthias Blume (blume (at) tti - c (dot) org)
849    Date: 2004/11/13 00:20:00 CST
850    Tag: blume-20041113-versiontool
851    Description:
852    
853    - Stripped down the versiontool: It now only handles the version number.
854      The date string is generated at bootstrap time (during makeml).
855    
856    - In a previous commit, fixed a minor issue with how polyequal is being
857      translated.  In particular, the code now "looks through" abstractions.
858      This results in slightly fewer polyEqual warnings and hopefully slightly
859      more efficient code.  Important examples for where this matters are
860      the new int64 and word64 types.
861    
862    ----------------------------------------------------------------------
863    Name: Matthias Blume (blume (at) tti - c (dot) org)
864    Date: 2004/11/12 00:30:00 CST
865    Tag: blume-20041112-int64
866    Description:
867    
868    Structure Int64 fully hooked in.  (The implementation is not very
869    efficient, though.)
870    
871    ----------------------------------------------------------------------
872    Name: Matthias Blume (blume (at) tti - c (dot) org)
873    Date: 2004/11/11 17:30:00 CST
874    Tag: blume-20041111-more64
875    Description:
876    
877    All the pieces of Word64 are now there, with the exception of the
878    conversions from and to LargeWord. (Eventually these need to be identities,
879    but for the time being they don't even make sense because LargeWord is
880    32-bit wide.)
881    
882    Also started to add similar support for Int64, but major pieces of that
883    are still missing.
884    
885    ----------------------------------------------------------------------
886    Name: Matthias Blume (blume (at) tti - c (dot) org)
887    Date: 2004/11/11 00:15:00 CST
888    Tag: blume-20041111-word64
889    Description:
890    
891    Structure Word64 is now (almost) complete, word literals and patterns
892    seem to work.  There are a few odd pieces missing.  In particular,
893    I didn't do the {from,to}LargeWord parts because LargeWord is still Word32
894    at the moment.
895    
896    Making Word64 official would mean that LargeWord becomes Word64.  But
897    this requires extreme care because most word-word conversions have to
898    go through LargeWord, so making a mistake means loss of efficiency or
899    worse.  Eventually there will be a solution similar to (but actually
900    simpler than) what I did with IntInf.
901    
902    ----------------------------------------------------------------------
903    Name: Matthias Blume (blume (at) tti - c (dot) org)
904    Date: 2004/11/10 18:12:00 CST
905    Tag: blume-20041110-64bit
906    Description:
907    
908    More 64-bit hacking (but still not even half-way there yet).
909    Also, some assorted improvements to the handling of 8-bit words.
910    
911    ----------------------------------------------------------------------
912    Name: Matthias Blume (blume (at) tti - c (dot) org)
913    Date: 2004/11/09 17:50:00 CST
914    Tag: <none>
915    Description:
916    
917    Started adding some infrastructure for supporting 64-bit int- and
918    word-types.  (Still in its very early stages.)
919    
920    ----------------------------------------------------------------------
921    Name: Matthias Blume (blume (at) tti - c (dot) org)
922    Date: 2004/10/28 10:45:00 CDT
923    Tag: Release_110_50
924    Description:
925    
926    New working version (110.50).  NEW BOOTFILES!
927    
928                 =====================
929    
930    Also:
931    
932      - Changend config/srcarchiveurl from a file just
933        containing the URL string into a file containing
934        shell script code.  The code has access to the $VERSION variable.
935      - Made corresponding changes to config/install.sh and config/unpack.
936      - Default contents of config/srcarchiveurl uses $VERSION and
937        normally does not have to be edited to reflect a version change.
938    
939      (As a result, a version change can be done by just editing
940       config/version, the rest is now automatic.)
941    
942    ----------------------------------------------------------------------
943    Name: Matthias Blume (blume (at) tti - c (dot) org)
944    Date: 2004/10/27 17:50:00 CDT
945    Tag: blume-20041027-btrace-msg
946    Description:
947    
948    BackTrace.monitor now also reports the source of the exception that
949    triggered the trace.
950    
951    ----------------------------------------------------------------------
952    Name: Matthias Blume (blume (at) tti - c (dot) org)
953    Date: 2004/10/27 17:20:00 CDT
954    Tag: blume-20041027-x86-c-calls
955    Description:
956    
957    This is the HISTORY entry for two earlier commits, both concerning
958    the x86 c-calls code in MLRISC:
959    
960      - added a missing LOAD in the code that deals with struct arguments
961      - made sure the caller does not add the wrong number of bytes to the
962        stack pointer after a call of a function returning a struct
963        (the callee already pops the implicit argument which points to
964         the space reserved for the result)
965    
966    ----------------------------------------------------------------------
967    Name: Allen Leung (leunga (at) reservoir (dot) com)
968    Date: 2004/10/24 14:00:00 EST
969    Tag: leunga-20041024-x86-gas-fucomip
970    Description:
971    
972       John discovered a bug in the syntax of fucomip.
973       The opcodes FU?COMIP? have been changed to
974    
975           fu?comip? %st(i), %st
976    
977    ----------------------------------------------------------------------
978    Name: Matthias Blume (blume (at) tti - c (dot) org)
979    Date: 2004/10/20 15:06:00 CDT
980    Tag: blume-20041020-standalone-backtrace
981    Description:
982    
983    Added a mechanism for getting back-trace information from standalone
984    programs.  Here is how it works:
985    
986       1. The part of the program from which you want to get backtrace
987          information (usually the whole program) should be wrapped with
988          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
989          main program could be modified from something like
990    
991             fun main (pgm, args) = ...
992    
993         to
994    
995            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
996    
997       2. To be able to access BackTrace.monitor, you have to add
998          library $smlnj-tdp/plugins.cm to the .cm file that contains your
999          main function.
1000    
1001       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
1002          CM might have created in the past for your project).
1003    
1004       4. Build the system using this command line:
1005    
1006             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
1007                      myprog.cm MyProg.main myprog
1008    
1009          instead of the usual
1010    
1011             ml-build myprog.cm MyProg.main myprog
1012    
1013    I changed a library name:
1014    
1015       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
1016    
1017    New libraries:
1018    
1019       $smlnj-tdp/back-trace.cm
1020          -- when loaded causes the back-trace plugin to be installed
1021       $smlnj-tdp/coverage.cm
1022          -- when loaded causes the coverage plugin to be installed
1023    
1024    ----------------------------------------------------------------------
1025    Name: Matthias Blume (blume (at) tti - c (dot) org)
1026    Date: 2004/10/18 16:45:00 CDT
1027    Tag: blume-20041018-groupowner
1028    Description:
1029    
1030    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
1031    
1032    Eliminated group owner specs from .cm files throughout the source tree.
1033    
1034    ----------------------------------------------------------------------
1035    Name: Matthias Blume (blume (at) tti - c (dot) org)
1036    Date: 2004/10/15 15:45:00 CDT
1037    Tag: blume-20041015-coverage
1038    Description:
1039    
1040    * Test coverage tool added!
1041    * Further reorganization of tracing-, debugging-, and profiling support:
1042    
1043        - moved original BTImp -- now called BackTrace -- into a separate
1044          library called $/trace-debug-profile.cm
1045        - eliminated all mentions of BTrace from SMLofNJ.Internals
1046        - only the instrumentation mechanism is now left in the compiler proper
1047        - BackTrace module is a plugin which is NOT plugged in by default
1048        - Coverage module is another such plugin
1049    
1050    To get the benefits of any of these plugin modules, the code in
1051    question must be compiled with tdp instrumentation turned on.  This
1052    can be done by setting SMLofNJ.Internals.TDP.mode to true.
1053    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
1054    
1055    Plugins are selected at link time.  (Pre-compiled instrumented code
1056    can be re-loaded with different plugins in effect.)  When an
1057    instrumented module is linked, whatever plugins are at that time
1058    enabled will come into effect for that module.
1059    
1060    To enable the back-trace plugin, load library $/trace-debug-profile.cm
1061    and invoke BackTrace.install() (e.g., from the interactive prompt).
1062    To enable the coverage plugin, load the same library and invoke
1063    Coverage.install().
1064    
1065    Back-traces are generated automatically on uncaught exceptions and
1066    when the code in question explicitly invokes BackTrace.trigger().
1067    
1068    Coverage (and execution frequency-) information must be queried
1069    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
1070    
1071    ----------------------------------------------------------------------
1072    Name: Matthias Blume (blume (at) tti - c (dot) org)
1073    Date: 2004/10/14 17:40:00 CDT
1074    Tag: blume-20041014-tdp-core
1075    Description:
1076    
1077    Snapshot of a significant overhaul of how the trace/debug/profile support
1078    is hooked into the system (specifically: Core and SMLofNJ.Internals).
1079    
1080    ----------------------------------------------------------------------
1081    Name: Matthias Blume (blume (at) tti - c (dot) org)
1082    Date: 2004/10/13 16:34:00 CDT
1083    Tag: blume-20041013-tdp
1084    Description:
1085    
1086    Some rationalization of names:
1087    
1088       structure BTrace -> structure TDPInstrument
1089       etc.
1090    
1091    This is is preparation of using the original back-trace
1092    instrumentation for other purposes.  "TDP" stands for
1093    Trace/Debug/Profile.
1094    
1095    The control flag controlling whether instrumentation is on or off is now
1096    registered under a different name, so instead of running sml as
1097    
1098     sml -Cinstrument.btrace-mode=true
1099    
1100    one has to say
1101    
1102     sml -Ctdp.instrument=true
1103    
1104    ----------------------------------------------------------------------
1105    Name: Matthias Blume (blume (at) tti - c (dot) org)
1106    Date: 2004/10/11 16:37:00 CDT
1107    Tag: blume-20041011-regions
1108    Description:
1109    
1110    Made some minor modifications to elabcore.sml to have source regions
1111    be propagated more tightly -- resulting in better (i.e., smaller)
1112    regions being reported in error- and debug messages.
1113    
1114    ----------------------------------------------------------------------
1115    Name: Matthias Blume (blume (at) tti - c (dot) org)
1116    Date: 2004/10/08 22:50:00 CDT
1117    Tag: blume-20041008-cmkw
1118    Description:
1119    
1120    Fixed handling of keywords in .cm files: After seeing "is" the lexer
1121    treats subsequent occurrences of "group", "library", "source", "is",
1122    "*", and "-" as ordinary identifiers rather than keywords.
1123    
1124    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
1125    is supposed to accept a tool argument called "source", but this did
1126    not work because of the clash with the keyword.
1127    
1128    ----------------------------------------------------------------------
1129    Name: Matthias Blume (blume (at) tti - c (dot) org)
1130    Date: 2004/10/07 16:00:00 CDT
1131    Tag: blume-20041007-cleanup
1132    Description:
1133    
1134    Assorted cleanup work:
1135    
1136      - got rid of intstrmap in favor of using the library's
1137        hash table implementation
1138      - threw out most of the pathnames stuff, as it was not used anyway
1139      - simplified tokentable implementation
1140      - fixed some minor spelling errors
1141    
1142    ----------------------------------------------------------------------
1143    Name: Matthias Blume (blume (at) tti - c (dot) org)
1144    Date: 2004/10/06 15:15:15 CDT
1145    Tag: blume-20041006-handler
1146    Description:
1147    
1148    Cleaned up the absyn to reflect the invariant that HANDLE always
1149    carries a FNexp as part of the type definition.  This eliminates some
1150    superfluous sanity checks at runtime down the road.
1151    
1152    Some minor cleanup of the btrace code.
1153    
1154    ----------------------------------------------------------------------
1155    Name: Matthias Blume (blume (at) tti - c (dot) org)
1156    Date: 2004/10/01 10:20:30 CDT
1157    Tag: blume-20041001-slave
1158    Description:
1159    
1160    Added hack to make slave mode work in the presence of the version
1161    tool.  (Still, since the master does two passes over the code for
1162    CMB.make, the release number gets bumped twice when slaves are
1163    attached.  I don't know if this is worth fixing...)
1164    
1165    ----------------------------------------------------------------------
1166    Name: Matthias Blume (blume (at) tti - c (dot) org)
1167    Date: 2004/09/30 10:55:00 CDT
1168    Tag: blume-20040930-version
1169    Description:
1170    
1171    * Moved the "version" magic into its own little library under
1172      src/system/smlnj/internal.  This avoids expensive reconstruction of
1173      a stable src/compiler/core.cm.
1174    
1175    * At the same time, structure CompilerVersion is now known as
1176      structure SMLNJVersion.
1177    
1178    * Arranged for the version tool to NOT kick in when rebuilding the system
1179      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
1180      Also, loading the versiontool does not work when rebuilding the system
1181      because CM is not properly initialized at that time.
1182    
1183    ----------------------------------------------------------------------
1184    Name: Matthias Blume (blume (at) tti - c (dot) org)
1185    Date: 2004/09/29 14:00:00 CDT
1186    Tag: blume-20040929-autoversion
1187    Description:
1188    
1189    Implemented some CM magic to have
1190        file src/compiler/TopLevel/main/version.sml
1191    generated automagically.
1192    The version is taken from two files: config/version and config/release.
1193    The first is expected to contain a two-part version number such as 110.49.
1194    The second should contain a single number, but it may be missing.
1195    
1196    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
1197    time the version tool is loaded (which is the first time you say CMB.make),
1198    then the tool will increment the value stored in config/release every
1199    time CMB.make is invoked.
1200    
1201    The binfile format is now insensitive to anything beyond the first
1202    two components of a version number, so bumping the release does not render
1203    binfiles incompatible.  Auto-bumping can be used to keep track of versions
1204    during development without invalidating existing binfiles.
1205    
1206    In any case, every CMB.make updates the date information in version.sml.
1207    (This is the date that is printed in the banner.)
1208    
1209    ----------------------------------------------------------------------
1210    Name: Matthias Blume (blume (at) tti - c (dot) org)
1211    Date: 2004/09/28 10:53:00 CDT
1212    Tag: blume-20040928-controls
1213    Description:
1214    
1215    Some cleanup of the controls code.
1216    
1217    ----------------------------------------------------------------------
1218    Name: Matthias Blume (blume (at) tti - c (dot) org)
1219    Date: 2004/09/27 22:08:00 CDT
1220    Tag: blume-20040927-controls
1221    Description:
1222    
1223    Added two pieces of functionality to the Controls interface:
1224    
1225    1.   val save'restore: 'a control -> unit -> unit
1226    
1227       grabs the current value of the control in stage 1 and restores it
1228       in stage 2.
1229    
1230    2.   val set' : 'a control * 'a -> unit -> unit
1231    
1232       stores the given value into the control in stage 2 (i.e., delayed)
1233       but does all error checking in stage 1.
1234       (This is for string controls that need to do parse their argument --
1235        something that might fail.  In some cases, notably in CM, one
1236        already knows the intended argument but wants to delay the actual
1237        assignment until a time when error recovery would be more difficult.)
1238    
1239    Changed the handling of controls in tool arguments to classes "sml" and
1240    "lazysml":
1241       - use Controls.save'restore as a more robust way of restoring the
1242         old value (in particular: without having to re-parse the string)
1243       - use controls to handle the "overload" keyword in the init group
1244         (I believe this change actually fixes a long-standing obscure bug.)
1245    
1246    ----------------------------------------------------------------------
1247    Name: Matthias Blume (blume (at) tti - c (dot) org)
1248    Date: 2004/09/27 17:00:00 CDT
1249    Tag: blume-20040927-lazysml
1250    Description:
1251    
1252    Added a new tool class called "lazysml" to CM's tool chest.  The only
1253    difference to "sml" is that compilation is done with Control.lazysml
1254    set to true.  A source of class "lazysml" is automatically recognized
1255    by a file name suffix of ".lml".
1256    
1257    In addition to the above feature, the original class "sml" now also
1258    supports a tool argument "lazy" which has the same effect.  As a
1259    result, the following three lines are equivalent:
1260    
1261        foo.sml : lazysml
1262        foo.sml : sml (lazy)
1263        foo.sml (lazy)
1264    
1265    The setting goes into effect both during parsing and during
1266    compilation.  The original setting is restored right after parsing and
1267    after compilation, respectively.
1268    
1269    In addition to all the above, there is also a general mechanism to set
1270    ANY of the "controls" that are available at the command line via
1271    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
1272    apply as well. (In fact, "lazy" is implemented as a special case of
1273    the general mechanism.)
1274    
1275    The .cm file syntax uses a new keyword tool argument called "with".
1276    There are several ways of indicating the desired settings:
1277    
1278        foo.sml (with:parser.quotations=true)
1279        foo.sml (with:(name:parser.quotations value:true))
1280        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
1281        foo.sml (with:(name1=value1 name2=value2 ...))
1282        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
1283    
1284        etc.
1285    
1286    Another possible abbreviation is to leave out the =v or value:v part
1287    if the name refers to a boolean control (in which case the value is
1288    taken to be true).  Thus, one could get lazy sml also by saying:
1289    
1290        foo.sml (with:parser.lazy-keyword=true)
1291        foo.sml (with:parser.lazy-keyword)
1292        foo.sml (with:(name:parser.lazy-keyword value:true))
1293        foo.sml (with:(name:parser.lazy-keyword))
1294    
1295    ----------------------------------------------------------------------
1296    Name: Matthias Blume (blume (at) tti - c (dot) org)
1297    Date: 2004/09/24 16:22:00 CDT
1298    Tag: blume-20040924-ppc-long-branch
1299    Description:
1300    
1301    Turned message about "emiting long form of branch" off by default.
1302    Added a control flag to turn it back on when desired.
1303    
1304    ----------------------------------------------------------------------
1305    Name: Matthias Blume (blume (at) tti - c (dot) org)
1306    Date: 2004/09/24 16:05:00 CDT
1307    Tag: blume-20040924-rounding
1308    Description:
1309    
1310    Applied patch for setting rounding modes under Mac OS X.  Thanks to
1311    Melissa O'Neill for providing the code!
1312    
1313    ----------------------------------------------------------------------
1314    Name: Matthias Blume (blume (at) tti - c (dot) org)
1315    Date: 2004/09/23 17:30:00 CDT
1316    Tag: blume-20040923-envvars
1317    Description:
1318    
1319    1. Changed definition of type ControlRegistry.registry_tree to
1320       include control_info (i.e., the name of the controlling environment
1321       variable).
1322    
1323    2. Added command-line flags -e and -E to print the names of environment
1324       variables that can be used to control internal settings.
1325       (This uses the new API mentioned in 1.)
1326    
1327    ----------------------------------------------------------------------
1328    Name: Matthias Blume (blume (at) tti - c (dot) org)
1329    Date: 2004/09/13 16:50:00 CDT
1330    Tag: Release_110_49
1331    Description:
1332    
1333    New working version (110.49).  NEW BOOTFILES!
1334    
1335    ----------------------------------------------------------------------
1336    Name: Matthias Blume
1337    Date: 2004/09/13 16:20:00 CDT
1338    Tag: blume-20040913-config-mlrisc
1339    Description:
1340    
1341    Put target "mlrisc" back into the default list.
1342    (There is no harm in having it, and some users have expressed their
1343    wish to have "mlrisc" included by default.)
1344    
1345    ----------------------------------------------------------------------
1346    Name: John Reppy
1347    Date: 2004/09/13
1348    Tag: jhr-20040913-signals
1349    Description:
1350    
1351    Fixed the signal masking code to properly nest mask/unmask operations
1352    on a per-signal basis.
1353    
1354    ----------------------------------------------------------------------
1355    Name: Matthias Blume (blume (at) tti - c (dot) org)
1356    Date: 2004/09/08 13:20:00 CDT
1357    Tag: blume-20040908-heap-magic
1358    Description:
1359    
1360    Bumped the heap macig number to 0x09082004 to account for the changed
1361    layout of the ML frame under MacOS X.
1362    
1363    ----------------------------------------------------------------------
1364    Name: Allen Leung (leunga (at) reservoir (dot) com)
1365    Date: 2004/09/03 11:26:00 EST
1366    Tag: leunga-20040903-cygwin-install
1367    Description:
1368    
1369       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
1370    The Cygwin runtime is turned on by setting the environment
1371    variable SMLNJ_CYGWIN_RUNTIME to 1.
1372    
1373    ----------------------------------------------------------------------
1374    Name: Matthias Blume (blume (at) tti - c (dot) org)
1375    Date: 2004/08/31 17:15:00 CDT
1376    Tag: blume-20040831-core
1377    Description:
1378    
1379    Added some exports to src/compiler/core.cm upon request by J. Joemann.
1380    
1381    ----------------------------------------------------------------------
1382    Name: Matthias Blume (blume (at) tti - c (dot) org)
1383    Date: 2004/08/30 17:55:00 CDT
1384    Tag: blume-20040830-installer
1385    Description:
1386    
1387    Upon request by Johannes Joemann:
1388    
1389    - improved ML code of installer to fall back to coping when renaming
1390      fails (i.e., when source and target are on different file systems);
1391      the code compiles but has yet to be tested in anger
1392    - removed mlrisc from list of default targets (config/targets)
1393    
1394    ----------------------------------------------------------------------
1395    Name: Matthias Blume (blume (at) tti - c (dot) org)
1396    Date: 2004/08/27 17:20:00 CDT
1397    Tag: blume-20040827-ptreql
1398    Description:
1399    
1400    Added ptreql primop to structure InlineT (upon request from Larry
1401    Paulson).
1402    
1403    ----------------------------------------------------------------------
1404    Name: Allen Leung (leunga (at) reservoir (dot) com)
1405    Date: 2004/08/15 21:21:00 EST
1406    Tag: leunga-110_48-udgraph
1407    Description:
1408    
1409    Another bug fix from Carl Hauser:
1410    
1411    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
1412    > 48c48
1413    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
1414    > e::L)
1415    > ---
1416    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
1417    > Without this, any deletion of an edge in an undirected graph does severe
1418    > violence to the graph.
1419    
1420    ----------------------------------------------------------------------
1421    Name: Allen Leung (leunga (at) reservoir (dot) com)
1422    Date: 2004/08/10 23:35:00 EST
1423    Tag: leunga-110_48-ppc
1424    Description:
1425    
1426       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
1427    
1428    ----------------------------------------------------------------------
1429    Name: Matthias Blume (blume (at) tti - c (dot) org)
1430    Date: 2004/08/10 12:00:00 CDT
1431    Tag: Release_110_48
1432    Description:
1433    
1434    New working version (110.48).  NEW BOOTFILES!
1435    
1436    ----------------------------------------------------------------------
1437    Name: Allen Leung (leunga (at) reservoir (dot) com)
1438    Date: 2004/08/09 12:21:00 EST
1439    Tag: leunga-110_47-dijsktra
1440    Description:
1441    
1442    Bug fix from Carl Hauser:
1443    
1444    single_source_shortest_paths in dijkstra.sml was observed to get wrong
1445    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
1446    
1447    The problem is that following the expression A.update(dist,s,Num.zero)
1448    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
1449    
1450    ----------------------------------------------------------------------
1451    Name: Matthias Blume (blume (at) tti - c (dot) org)
1452    Date: 2004/08/06 18:10:00 CDT
1453    Tag: blume-20040806-cmdline
1454    Description:
1455    
1456    Fiddled with handling of command-line options:
1457    
1458      * sml now quits after processing the command line
1459        if -H, -S, -h<n>, or -s<n> appears as the last
1460        command-line argument
1461      * a new option -q terminates the session when encountered on
1462        the command line; subsequent arguments will be ignored
1463      * bug fixes: short (erroneous) arguments are no longer ignored
1464        completely
1465    
1466    ----------------------------------------------------------------------
1467    Name: Allen Leung (leunga (at) reservoir (dot) com)
1468    Date: 2004/08/04 18:17:00 EST
1469    Tag: leunga-110_47-ppc-ibm-asm
1470    Description:
1471    
1472      - Added minimal IBM assembly syntax support for PowerPC.
1473    
1474      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
1475        been altered in the runtime.  We need an automatic way to keep the file
1476        in sync.
1477    
1478    ----------------------------------------------------------------------
1479    Name: Matthias Blume (blume (at) tti - c (dot) org)
1480    Date: 2004/08/04 14:00:00 CDT
1481    Tag: Release_110_47
1482    Description:
1483    
1484    New working version (110.47).  NEW BOOTFILES!
1485    
1486    ----------------------------------------------------------------------
1487    Name: Matthias Blume (blume (at) tti - c (dot) org)
1488    Date: 2004/08/03 14:25:00 CDT
1489    Tag: blume-20040803-callingconv
1490    Description:
1491    
1492    Added low-level support for choosing C calling conventions by
1493    twiddling the type of rawccall.  (See
1494    src/compiler/Semant/types/cproto.sml for details.)
1495    
1496    ----------------------------------------------------------------------
1497    Name: Matthias Blume (blume (at) tti - c (dot) org)
1498    Date: 2004/08/02 15:55:00 CDT
1499    Tag: blume-20040802-backout
1500    Description:
1501    
1502    Backed out of change to win32-filesys.c.  The earlier patch to
1503    get_file_time caused CM to produce files with the wrong time stamp.
1504    
1505    ----------------------------------------------------------------------
1506    Name: Matthias Blume (blume (at) tti - c (dot) org)
1507    Date: 2004/08/02 14:45:00 CDT
1508    Tag: blume-20040802-nlffi-win32
1509    Description:
1510    
1511    Added NLFFI support for Win32, adapted from a patch provided by David
1512    Hansel.  This is currently completely untested.  Also, the issue
1513    concerning stdcall vs. ccall is still unresolved.
1514    
1515    ----------------------------------------------------------------------
1516    Name: Matthias Blume (blume (at) tti - c (dot) org)
1517    Date: 2004/07/30 17:55:00 CDT
1518    Tag: blume-20040730-various
1519    Description:
1520    
1521    Gearing up towards 110.47...
1522    
1523    - various minor bugfixes to ml-nlffigen
1524    - a beginning of a manual for nlffi
1525    
1526    - eliminated 'export name=value' in config/install.sh as this does
1527      not work with certain versions of /bin/sh
1528      (Thanks to David King at Motorola for catching this.)
1529    
1530    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
1531      - added a test for tm==NULL to gmtime.c and localtime.c
1532      - applied patch for incorrect GetFileTime under win32
1533      - toSeconds -> toMilliseconds in Win32/win32-process.sml
1534    
1535    ----------------------------------------------------------------------
1536    Name: Matthias Blume (blume (at) tti - c (dot) org)
1537    Date: 2004/07/21 18:20:00 CDT
1538    Tag: blume-20040721-nlffigen
1539    Description:
1540    
1541    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
1542      for a typedef to an incomplete type, but leave out the "typ" member.
1543      (This is just for consistency.)
1544    - Started to produce what is supposed to become better (i.e., comprehensive)
1545      documentation of what ml-nlffigen does and produces.
1546    
1547    ----------------------------------------------------------------------
1548    Name: Matthias Blume (blume (at) tti - c (dot) org)
1549    Date: 2004/07/14 16:25:00 CDT
1550    Tag: blume-20040714-union
1551    Description:
1552    
1553    Added C_UNION to c-calls/c-types.sml and updated the machinery
1554    (ml-nlffigen, cproto.sml) that conveys C function interface
1555    information to the code generator.
1556    
1557    However, the actual architecture-specific implementation of function
1558    arguments and results that are C unions is still not implemented.
1559    
1560    ----------------------------------------------------------------------
1561    Name: Allen Leung (leunga (at) reservoir (dot) com)
1562    Date: 2004/07/14 14:38:00 EST
1563    Tag: leunga-110_46_1-ppc-lwzu
1564    Description:
1565    
1566        Added these instructions to the PowerPC architecture:
1567        LBZU(X), LHZU(X), LWZU(X),
1568        STWU(X), STFDU, STFSU
1569    
1570        etc...
1571    
1572        Note: I haven't added their instruction encoding into the description.
1573    
1574    ----------------------------------------------------------------------
1575    Name: Allen Leung (leunga (at) reservoir (dot) com)
1576    Date: 2004/07/13 15:04:00 EST
1577    Tag: leunga-110_46_1-ppc-lwarx
1578    Description:
1579    
1580       Added the two instructions LWARX and STWCX to the PowerPC
1581    instruction set.
1582    
1583       A (untested) rewrite of loop-structure.sml.  The old version
1584    is completely broken.
1585    
1586    ----------------------------------------------------------------------
1587    Name: Matthias Blume (blume (at) tti - c (dot) org)
1588    Date: 2004/07/13 13:50:00 CDT
1589    Tag: blume-20040713-nlffi
1590    Description:
1591    
1592    - use paramAlloc to report c-calls with too many arguments
1593      (for PPC version where parameter area is pre-allocated)
1594    - added ccall_maxargspace to machspec (to implement the above)
1595    - made "make" commend in CM's "make" tool configurable
1596    - added option (default: on) for passing the name of the SML/NJ's "bin"
1597      directory to "make"; the call looks like this:
1598    
1599         make <options> SMLNJ_BINDIR=<dir> <target>
1600    
1601      This can be used by the Makefile to, e.g., pick the "right" version
1602      of ml-nlffigen.
1603    - minor code tweaks
1604    
1605    ----------------------------------------------------------------------
1606    Name: Matthias Blume (blume (at) tti - c (dot) org)
1607    Date: 2004/07/12 22:50:00 CDT
1608    Tag: blume-110_46_1-macosx-nlffi
1609    Description:
1610    
1611    NLFFI under Mac OS X now working (sort of).  This is largely untested,
1612    though.
1613    
1614    Note:  1. You have to make a new, clean build of the runtime system.
1615           2. There are new BOOTFILES, you have to use them!
1616              (Doing the bootstrap process yourself would be *very* painful!
1617               If you absolutely have to do it, build the system under
1618               a different architecture and then cross-compile.)
1619    
1620    Version bumped to 110.46.1 to account for runtime data format changes.
1621    
1622    ----------------------------------------------------------------------
1623    Name: Matthias Blume (blume (at) tti - c (dot) org)
1624    Date: 2004/06/18 14:30:00 CDT
1625    Tag: blume-20040618-unix
1626    Description:
1627    
1628    Changed the implementation of structure Unix so that the same stream
1629    is returned every time one of the {text,bin}{In,Out}streamOf functions
1630    is invoked on the same proc.  This is not what the spec currently
1631    says -- although IMO it arguably should.  (See discussion below.)
1632    
1633    ----------------------------------------------------------------------
1634    Name: Matthias Blume (blume (at) tti - c (dot) org)
1635    Date: 2004/06/17 18:15:00 CDT
1636    Tag: Release_110_46
1637    Description:
1638    
1639    New working version (110.46).  NEW BOOTFILES!
1640    
1641    ----------------------------------------------------------------------
1642    Name: Matthias Blume (blume (at) tti - c (dot) org)
1643    Date: 2004/06/17 17:20:00 CDT
1644    Tag: blume-20040617-timer-unix
1645    Description:
1646    
1647    Changed the interface of structures Timer and Unix to match the most
1648    recent Basis spec.
1649    
1650    In the case of Unix there still seems to be an open/weird issue:
1651    
1652       The {text,bin}{In,Out}streamOf functions are supposed to create
1653       fresh streams whenever they are called -- as opposed to have them
1654       return the same stream every time.  This design is supposed to
1655       prevent space leaks caused by proc values hanging on to streams.
1656    
1657       The reap function, on the other hand, is supposed to close the
1658       streams.  This cannot be done without having a handle on the
1659       stream in proc after all...
1660    
1661    I took the liberty to implement the following stopgap solution:
1662    
1663      The proc value hangs on to the most recently created stream(s).
1664      Reap closes those.  If either or both of the two streams hadn't
1665      been created at all yet, then reap will close the corresponding
1666      file descriptors directly.
1667    
1668    PS: I don't understand the original space leak argument anymore.  If
1669    a proc hangs on to the imperative stream, then I/O operations on those
1670    will advance the state of the cached stream and avoid the space leak.
1671    
1672    ----------------------------------------------------------------------
1673    Name: Matthias Blume (blume (at) tti - c (dot) org)
1674    Date: 2004/05/28 16:45:00 CDT
1675    Tag: blume-20040528-basis
1676    Description:
1677    
1678    Added signature PACK_REAL and exported functor PrimIO.
1679    
1680    ----------------------------------------------------------------------
1681    Name: Matthias Blume (blume (at) tti - c (dot) org)
1682    Date: 2004/05/25 16:00:00 CDT
1683    Tag: blume-20040525-group-owner
1684    Description:
1685    
1686    CM now ignores (but still accepts) the "owner" information in group
1687    descriptions.  The owner of a group is its next enclosing
1688    library. Each group must have a unique owner.  (There is a virtual
1689    "toplevel" library that owns groups which are not nested within a real
1690    library.)  Previously, each group had to explicitly declare its owner,
1691    and CM would check that such a declaration is correct.  The new scheme
1692    is to have CM check that for each group there is precisely one owning
1693    library.
1694    
1695    The advantage of the new scheme is that the programmer no longer needs
1696    to maintain the somewhat annoying owner information.  The downside is
1697    that CM cannot enforce the ownership rule across multiple runs of
1698    CM.make.  Fortunately, enclosing the same group in two different
1699    libraries A and B which are not part of the same program does not
1700    cause real problems.
1701    
1702    ----------------------------------------------------------------------
1703    Name: Matthias Blume (blume (at) tti - c (dot) org)
1704    Date: 2004/05/20 16:00:00 CDT
1705    Tag: blume-20040520-win32
1706    Description:
1707    
1708    Made the win32 version work again.  (Strangely, a misplaced comma had
1709    slipped into win32-process.c which prevented the runtime from being
1710    compiled correctly.)
1711    
1712    Also, included a minor addition to ml-build.bat analogous to what was
1713    done in blume-20040519-ml-build.
1714    
1715    ----------------------------------------------------------------------
1716    Name: Matthias Blume (blume (at) tti - c (dot) org)
1717    Date: 2004/05/19 22:10:00 CDT
1718    Tag: blume-20040519-ml-build
1719    Description:
1720    
1721    Arranged for ml-build to clean up after itself a little bit better.
1722    The script generates a temporary SML source file and compiles it using
1723    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
1724    gets rid of those at the end, so they don't accumulate under .cm.
1725    
1726    This required a minor change to install.sh because the name of the
1727    metadata directory (default: .cm) is actually configurable at
1728    installation time.
1729    
1730    ----------------------------------------------------------------------
1731    Name: Matthias Blume (blume (at) tti - c (dot) org)
1732    Date: 2004/05/18 15:50:00 CDT
1733    Tag: blume-20040518-mkreader
1734    Description:
1735    
1736    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
1737    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
1738    
1739    ----------------------------------------------------------------------
1740    Name: Matthias Blume (blume (at) tti - c (dot) org)
1741    Date: 2004/05/11 14:35:00 CDT
1742    Tag: blume-20040511-win32sock
1743    Description:
1744    
1745    Added previously missing support for many socket-related functions
1746    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
1747    for the voluminous patch!
1748    
1749    (I have not tested this patch under win32 yet.)
1750    
1751    Here is David's e-mail:
1752    
1753    Hi,
1754    
1755    Attached to this email you find a diff against sml/nj 110.45
1756    that will enable socket support under Windows.
1757    
1758    To apply the patch (using unix or cygwin)
1759    1) gunzip runtime.diff.gz
1760    2) "cd" into "src/runtime" in the source tree of a fresh
1761       110.45 installation.
1762    3) patch -p 1 < [your/path/to]runtime.diff
1763    
1764    The code compiles fine but has NOT yet been extensively tested.
1765    I only ran a few tests for basic socket client functionality
1766    (which worked fine).  Especially the functions that use ioctl
1767    are not tested at all and might not work (see below).
1768    
1769    I implemented this since we want to move to a newer version of sml/nj
1770    but need socket support in order to use it.  This is the first time I
1771    even had a look at the sml/nj source,  so please review my changes
1772    before making this part of the distribution!  Here are a few issues
1773    that I think might be better for someone to solve who is more
1774    familiar with the sml/nj source (and socket programming):
1775    
1776    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
1777      exception since I could not figure out what the windows equivalent
1778      of these functions is
1779    
1780    - In sockets-osdep.h there are a some #include statements that are
1781      only used in a few files that include sockets-osdep.h
1782    
1783    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
1784      does not process its return value since I don't know how to
1785      report an error upwards.
1786    
1787    - It would probably be good to have a call to WSACleanup() when
1788      the library is unloaded (if there is such a possibility).
1789      Otherwise I think Windows will take care of this automatically
1790      when the process finishes.
1791    
1792    - I used ioctlsocket() as a replacement for ioctl() but I have
1793      no idea if that is actually the proper replacement on Windows.
1794    
1795    - All these issues are marked in the code by "FIXME" comments.
1796    
1797    We use sml/nj extensively in our products and are quite happy
1798    with it.  I hope this contribution will help you.
1799    
1800    Keep up the good work!
1801    
1802    David
1803    
1804    ----------------------------------------------------------------------
1805    Name: Matthias Blume (blume (at) tti - c (dot) org)
1806    Date: 2004/05/11 14:20:00 CDT
1807    Tag: blume-20040511-installml
1808    Description:
1809    
1810    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
1811    the patch.)
1812    
1813    ----------------------------------------------------------------------
1814    Name: Matthias Blume (blume (at) tti - c (dot) org)
1815    Date: 2004/05/11 14:05:00 CDT
1816    Tag: blume-20040511-nlffi-netbsd
1817    Description:
1818    
1819    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
1820    the patch.)
1821    
1822    ----------------------------------------------------------------------
1823    Name: Matthias Blume (blume (at) tti - c (dot) org)
1824    Date: 2004/05/11 12:05:00 CDT
1825    Tag: blume-20040511-exports
1826    Description:
1827    
1828    As per request by Adam Chlipala <adam@hcoop.net>, extended various
1829    export lists in compiler-related .cm-files.
1830    
1831    ----------------------------------------------------------------------
1832    Name: Matthias Blume (blume (at) tti - c (dot) org)
1833    Date: 2004/05/11 11:35:00 CDT
1834    Tag: blume-20040511-allsource
1835    Description:
1836    
1837    The installer now honors the "src-smlnj" target again, although its meaning
1838    has changed from "all sources required for the compiler" to "all sources
1839    the installer knows about".  In other words, if you enable "src-smlnj"
1840    in the "targets" file, then the installer will pull in sources for
1841    everything.  (Notice that this refers to source code only.  Compiled
1842    code is still only installed for modules that were requested explicitly
1843    or which are required for other modules that were requested explicitly.)
1844    
1845    ----------------------------------------------------------------------
1846    Name: Matthias Blume (blume (at) tti - c (dot) org)
1847    Date: 2004/04/23 17:40:00 CDT
1848    Tag: blume-20040423-ieee-scan
1849    Description:
1850    
1851    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
1852    in the exponent calculation we get INF or ZERO (depending on the mantissa
1853    and the sign of the exponent).
1854    
1855    ----------------------------------------------------------------------
1856    Name: Matthias Blume (blume (at) tti - c (dot) org)
1857    Date: 2004/04/23 10:40:00 CDT
1858    Tag: blume-20040423-ml-build
1859    Description:
1860    
1861    The ml-build script now terminates with a non-0 status when something
1862    goes wrong.
1863    
1864    ----------------------------------------------------------------------
1865    Name: Matthias Blume (blume (at) tti - c (dot) org)
1866    Date: 2004/04/22 16:35:00 CDT
1867    Tag: blume-20040422-Option
1868    Description:
1869    
1870    Made exception Option to be the same as exception Option.Option
1871    (as it should be).
1872    
1873    ----------------------------------------------------------------------
1874    Name: Allen Leung (leunga (at) reservoir (dot) com)
1875    Date: 2004/03/19 14:40:00 EST
1876    Tag: leunga-20040319-cygwin-nlffi
1877    Description:
1878    
1879    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
1880    of SML/NJ.  The problem is that
1881    
1882       lib = dlopen(NULL, ...)
1883       f   = dlsym(lib, "malloc");
1884    
1885    does not work on Windows unless we explicitly export symbols
1886    such as 'malloc' during linking.  We fixed this by explicitly
1887    exporting the required symbols with the magic gcc incantation:
1888    
1889        -Wl,--export-all cygwin.def
1890    
1891    where cygwin.def is a file containing all the symbols that
1892    we wish to export.
1893    
1894    I suspect this is a Windows problem and we'll have to
1895    do the same (somehow with windows compilers) when
1896    we build the native win32 version with the system
1897    calls LoadLibrary/GetProcAddress.
1898    
1899    ----------------------------------------------------------------------
1900    Name: Matthias Blume (blume (at) tti - c (dot) org)
1901    Date: 2004/03/04 16:35:00 CST
1902    Tag: blume-20040304-intinf-fmt
1903    Description:
1904    
1905    Fixed problem with IntInf.fmt (sign would show up on the right instead
1906    of on the left for BIN, OCT, and HEX).
1907    
1908    ----------------------------------------------------------------------
1909    Name: Matthias Blume (blume (at) tti - c (dot) org)
1910    Date: 2004/03/04 11:25:00 CST
1911    Tag: blume-20040304-symlinks
1912    Description:
1913    
1914    Fixed problem with installer script (unix only) where bin/ml-yacc and
1915    friends pointed (via symlinks) to absolute locations instead of just
1916    .run-sml.  This was reported by Vesa A Norrman.
1917    
1918    ----------------------------------------------------------------------
1919    Name: Matthias Blume (blume (at) tti - c (dot) org)
1920    Date: 2004/02/13 14:50:00 CST
1921    Tag: Release_110_45
1922    Description:
1923    
1924    New working version (110.45). New bootfiles.
1925    
1926    ----------------------------------------------------------------------
1927    Name: Matthias Blume (blume (at) tti - c (dot) org)
1928    Date: 2004/01/26 15:15:15 CST
1929    Tag: blume-20040126-toplevel
1930    Description:
1931    
1932    Improved handling of exceptions at the interactive toplevel.
1933    
1934    ----------------------------------------------------------------------
1935    Name: Matthias Blume (blume (at) tti - c (dot) org)
1936    Date: 2004/01/26 11:25:00
1937    Tag: blume-20040126-app
1938    Description:
1939    
1940    Type of top-level "app" corrected.
1941    Added code for setting vp_limitPtrMask to Win32-specific runtime.
1942    
1943    ----------------------------------------------------------------------
1944    Name: Matthias Blume (blume (at) tti - c (dot) org)
1945    Date: 2003/11/18 17:10 CST
1946    Tag: blume-20031118-basis-fiddle
1947    Description:
1948    
1949    - changed Timer interface to what might become the spec
1950    - POSIX_FLAGS -> BIT_FLAGS according to spec
1951    - some other minor discrepancies wrt. spec eliminated
1952    
1953    ----------------------------------------------------------------------
1954    Name: Matthias Blume (blume (at) tti - c (dot) org)
1955    Date: 2003/11/06 12:00:00 CST
1956    Tag: Release_110_44
1957    Description:
1958    
1959    New working version (110.44). New bootfiles.
1960    
1961    ----------------------------------------------------------------------
1962    Name: Matthias Blume (blume (at) tti - c (dot) org)
1963    Date: 2003/11/04 11:50:00 CST
1964    Tag: blume-20031104-move-libraries
1965    Description:
1966    
1967    Eliminated the "dont_move_libraries" directive in config/targets.
1968    (The mechanism was broken and could not be fixed easily.  Moreover,
1969    there does not seem to be any reason not to move all libraries into
1970    lib during installation.  I originally implemented this directive as a
1971    backward-compatibility feature when I first introduced the new CM.
1972    Now that things have been stable for a long time and going back to the
1973    old CM is not an option, there is no reason to keep it around.)
1974    
1975    ----------------------------------------------------------------------
1976    Name: Matthias Blume (blume (at) tti - c (dot) org)
1977    Date: 2003/11/03 16:00:00 CST
1978    Tag: blume-20031103-installdir
1979    Description:
1980    
1981    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
1982    Richards for pointing out the problem and providing the solution.)
1983    
1984    ----------------------------------------------------------------------
1985    Name: Matthias Blume (blume (at) tti - c (dot) org)
1986    Date: 2003/10/01 17:05:00 CDT
1987    Tag: blume-20031001-lal-mlrisc
1988    Description:
1989    
1990    MLRISC bug fix from Lal.
1991    
1992    ----------------------------------------------------------------------
1993    Name: Matthias Blume (blume (at) tti - c (dot) org)
1994    Date: 2003/09/30 16:10:00 CDT
1995    Tag: blume-20030930-primio-bat
1996    Description:
1997    
1998    1. Added openVector, nullRd, and nullWr to PRIM_IO.
1999    2. Improved .bat files (for Win32 port) to make things work under Win95.
2000       (thanks to Aaron S. Hawley for this one)
2001    
2002    ----------------------------------------------------------------------
2003    Name: Matthias Blume (blume (at) tti - c (dot) org)
2004    Date: 2003/09/26 16:05:00 CDT
2005    Tag: blume-20030926-wrappriv
2006    Description:
2007    
2008    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
2009    
2010    ----------------------------------------------------------------------
2011    Name: Matthias Blume (blume (at) tti - c (dot) org)
2012    Date: 2003/09/26 15:00:00 CDT
2013    Tag: blume-20030926-110_43_3
2014    Description:
2015    
2016    - additional cleanup
2017    - version number bump, NEW BOOTFILES
2018    
2019    ----------------------------------------------------------------------
2020    Name: Matthias Blume (blume (at) tti - c (dot) org)
2021    Date: 2003/09/26 12:00:00 CDT
2022    Tag: blume-20030926-ppautoload
2023    Description:
2024    
2025    I modified the read-eval-print loop so that the autoloader gets
2026    invoked whenever the prettyprinter tries to look up a symbol that
2027    is not currently defined in the toplevel environment but which
2028    appears in CM's autoload registry.  As a result, we see far fewer of
2029    those ?.Foo.Bar.xxx names in the prettyprinter's output.
2030    
2031    In addition to this I tried to clean up some pieces of the Basis
2032    implementation (e.g., Socket, Word8Array) in order to prevent other
2033    instances of these ?.Foo.Bar.xxx names from being printed.
2034    
2035    The mechanism that picks names for types still needs some work, though.
2036    (Right now it seems that if there is a type A.t which is defined to
2037    be B.u, but B is unavailable at toplevel, then A.t gets printed as
2038    "?.B.u" although the perhaps more sensible solution would be to use
2039    "A.t" in this case.  In other words, the prettyprinter should follow
2040    a chain of DEFtycs not farther than there are corresponding toplevel
2041    names in the current environment.)
2042    
2043    ----------------------------------------------------------------------
2044    Name: Matthias Blume (blume (at) tti - c (dot) org)
2045    Date: 2003/09/24 16:31:00 CDT
2046    Tag: blume-20030924-installer
2047    Description:
2048    
2049    Another installer tweak:  All the ML code for the installer is now
2050    compiled during CMB.make and put into a little library called
2051    $smlnj/installer.cm.  The installation then simply invokes
2052    
2053       sml -m $smlnj/installer.cm
2054    
2055    and everything happens automagically.
2056    
2057    Win32:  ML code senses value of environment variable SMLNJ_HOME.
2058    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
2059            and BINDIR.
2060    
2061    The new scheme guarantees that the ML code responsible for the installation
2062    is in sync with the APIs of the main system.  Also, the installer is
2063    somewhat faster because the installer script is precompiled.
2064    
2065    ----------------------------------------------------------------------
2066    Name: Matthias Blume (blume (at) tti - c (dot) org)
2067    Date: 2003/09/24 15:35:00 CDT
2068    Tag: blume-20030924-synsock
2069    Description:
2070    
2071    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
2072    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
2073    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
2074    implementations of non-blocking operations from CML's Socket
2075    structure.
2076    
2077    ----------------------------------------------------------------------
2078    Name: Matthias Blume (blume (at) tti - c (dot) org)
2079    Date: 2003/09/24 15:10:05 CDT
2080    Tag: blume-20030924-sockets
2081    Description:
2082    
2083    1. Fixed SOCKET API and implementation to match Basis spec.
2084       This required changing the internal representation of sockets to one
2085       that remembers (for each socket file descriptor) whether it is currently
2086       blocking or non-blocking.  This state is maintained lazily (i.e., a system
2087       call is made only if the state actually needs to change).
2088    
2089    2. OS-specific details of sockets were moved into separate files, thus
2090       making it possible to unify the bulk of the socket implementations
2091       between Unix and Win32.
2092    
2093    3. CML's socket API changed accordingly.
2094       (Note that we need to remove non-blocking functions from this API
2095       since they are redundant in the case of CML!)
2096    
2097    4. CML's socket implementation now makes use of non-blocking functions
2098       provided by Basis, thus removing all OS-dependent code from this part
2099       of CML.
2100    
2101    5. Changed Real64.precision from 52 to 53.  Minor cleanup in Real64 code.
2102    
2103    ----------------------------------------------------------------------
2104    Name: Matthias Blume (blume (at) tti - c (dot) org)
2105    Date: 2003/09/22 12:10:00 CDT
2106    Tag: blume-20030922-110_43_2
2107    Description:
2108    
2109    Made a new interim version and bootfiles for developer's bootstrapping
2110    convenience.
2111    
2112       110.43.2 -- NEW BOOTFILES
2113    
2114    ----------------------------------------------------------------------
2115    Name: Matthias Blume (blume (at) tti - c (dot) org)
2116    Date: 2003/09/19 15:55:00 CDT
2117    Tag: blume-20030919-cmdir
2118    Description:
2119    
2120    1. new-install.sh -> install.sh
2121    2. changed default CM "metadata" directory name to ".cm" (instead of "CM")
2122    3. tweaked installer so that another name instead of .cm can be chosen
2123       at install time (by setting the CM_DIR_ARC environment variable
2124       during installation); once installation is complete, the name is
2125       fixed
2126    
2127    ----------------------------------------------------------------------
2128    Name: Matthias Blume (blume (at) tti - c (dot) org)
2129    Date: 2003/09/18 16:00:00 CDT
2130    Tag: blume-20030918-110_43_1
2131    Description:
2132    
2133    Made a new interim version and bootfiles for developer's bootstrapping
2134    convenience.
2135    
2136       110.43.1 -- NEW BOOTFILES
2137    
2138    ----------------------------------------------------------------------
2139    Name: Matthias Blume (blume (at) tti - c (dot) org)
2140    Date: 2003/09/18 15:20:00 CDT
2141    Tag: blume-20030918-misc
2142    Description:
2143    
2144    1. Exported fractionsPerSecond etc. from TimeImp (but not from Time as
2145       this seems to be controversial at the moment) and used those in
2146       Posix.ProcEnv.times.
2147    
2148    2. Added Time.{from,to}Nanoseconds to Time.
2149    
2150    3. Improved Real.{from,to}LargeInt by avoiding needless calculations.
2151       For example, fromLargeInt never needs to look at more than 3 "big
2152       digits" to get its 53 bits of precision.
2153    
2154    ----------------------------------------------------------------------
2155    Name: Matthias Blume (blume (at) tti - c (dot) org)
2156    Date: 2003/09/17 16:30:00 CDT
2157    Tag: blume-20030917-real32-slices
2158    Description:
2159    
2160    Added an entry to the primitive environment
2161    (compiler/Semant/statenv/prim.sml) for int32->real64 conversion and
2162    added code to compiler/CodeGen/main/mlriscGen.sml to implement it.
2163    
2164    Removed some of the "magic" constants in real64.sml and replaced them
2165    with code that generates these values from their corresponding
2166    integer counterparts.
2167    
2168    Made all(?) the slice-related changes to the Basis and made everything
2169    compile again...
2170    
2171    ----------------------------------------------------------------------
2172    Name: Matthias Blume (blume (at) tti - c (dot) org)
2173    Date: 2003/09/15 17:45:00 CDT
2174    Tag: blume-20030915-rbase
2175    Description:
2176    
2177    Fixed bug in Real.fromLargeInt.
2178    
2179    ----------------------------------------------------------------------
2180    Name: Matthias Blume (blume (at) tti - c (dot) org)
2181    Date: 2003/09/13 18:11:00 CDT
2182    Tag: blume-20030913-libinstall
2183    Description:
2184    
2185    Minor bugfix in config/libinstall (set anchor with path to
2186    standalone tool after installing it, otherwise libraries that
2187    need ml-lex or ml-yacc won't compile the first time the installer
2188    runs).
2189    
2190    ----------------------------------------------------------------------
2191    Name: Matthias Blume (blume (at) tti - c (dot) org)
2192    Date: 2003/09/12 11:45:00 CDT
2193    Tag: blume-20030912-various
2194    Description:
2195    
2196     - fixed bug in Real.toLargeInt
2197     - fixed bug in Posix.ProcEnv.times
2198     - changed inputLine functions to return an option
2199     - minor installer improvements / bugfixes
2200     - changed default @SMLalloc parameter for x86/celeron to 64k
2201    
2202    ----------------------------------------------------------------------
2203    Name: Matthias Blume (blume (at) tti - c (dot) org)
2204    Date: 2003/09/09 22:00:00 CDT
2205    Tag: Release_110_43
2206    Description:
2207    
2208        New working release 110.43.  New bootfiles.
2209    
2210    ----------------------------------------------------------------------
2211    Name: Matthias Blume (blume (at) tti - c (dot) org)
2212    Date: 2003/09/09 19:20:00 CDT
2213    Tag: blume-20030909-installer
2214    Description:
2215    
2216    Rewrote large parts of config/install.sh in SML (config/libinstall.sml).
2217    Modified config/install.bat to take advantage of it.  Also modified
2218    config/install.sh (and called it config/new-install.sh) to take advantage
2219    of it on Unix systems.  (The SML code is (supposed to be) platform-
2220    independent.)
2221    
2222    The installer can now install everything under Win32
2223    as well as under *nix as long as it compiles.
2224    
2225    Other changes:
2226    
2227      - made CML compile again under Win32
2228      - made eXene compile under Win32 (by providing a fake structure UnixSock
2229        and by using OS.Process.getEnv instead of Posix.ProcEnv.getenv)
2230      - fixed a bug in nowhere: it assumed that type OS.Process.status is the
2231        same as type int;  under Win32 it isn't
2232      - fixed some slice-related problems in the win32-specific parts of CML
2233      - added a functor argument "sameVol" to os-path-fn.sml in the Basis
2234        (under Win32, the volume name is case-insensitive, and the
2235        OS.Path code compares volume names for equality)
2236    
2237    ----------------------------------------------------------------------
2238    Name: Matthias Blume (blume (at) tti - c (dot) org)
2239    Date: 2003/09/08 11:55:00 CDT
2240    Tag: blume-20030908-fullpath
2241    Description:
2242    
2243    Made Win32 version of OS.FileSys.fullPath return current directory
2244    when given an empty string.  This is what the spec says, and incidentally,
2245    CM depends on it.  (CM otherwise goes into an infinite loop in certain
2246    cases when presented with the name of a non-existing .cm file.)
2247    
2248    ----------------------------------------------------------------------
2249    Name: Matthias Blume (blume (at) tti - c (dot) org)
2250    Date: 2003/09/04 16:30:00 CDT
2251    Tag: blume-20030905-slices-etc
2252    Description:
2253    
2254      1. Changed interface to vectors and arrays in Basis to match
2255         (draft) Basis spec.
2256      2. Added signatures and implementations of slices according to
2257         Basis spec.
2258      3. Edited source code throughout the system to make it compile again
2259         under 1. and 2.  (In some cases code had to be added to have it
2260         match the new signatures.)
2261      4. MLRISC should be backward-compatible: the copies of the originals
2262         of files that needed to change under 3. were retained, the .cm files
2263         check the compiler version number and use old versions when
2264         appropriate.
2265      5. Changed type of OS.FileSys.readDir and Posix.FileSys.readdir to
2266         dirstream -> string option (in accordance with Basis spec).
2267      6. When generating code that counts lines, ml-lex used function
2268         CharVector.foldli, taking advantage of its old interface.
2269         This has been replaced with the corresponding code from
2270         CharVectorSlice.  (html-lex must be re-lexed!)
2271      7. BitArray in smlnj-lib/Util has been extended/modified to match the
2272         new MONO_ARRAY signature.  (Do we need BitArraySlice?)
2273      8. Removed temporary additions (fromInternal, toInternal) from the
2274         (now obsolete) IntInf in smlnj-lib/Util.
2275      9. Cleaned up structure Byte.
2276     10. Added localOffset, scan, and fromString to Date (according to spec).
2277         Cleaned/corrected implementation of Date.
2278         (Still need to check for correctness; implement better canonicalizeDate.)
2279     11. Added "scan" to signature IEEE_REAL.
2280     12. Some improvements to IntInf [in particular: efficiency-hack for
2281         mod and rem when second operand is 2 (for parity checks).]
2282     13. Changed representation of type Time.time, using a single IntInf.int
2283         value counting microseconds.  This considerably simplified the
2284         implementation of structure Time.  We now support negative time
2285         values; scan and fromString handle signs.
2286     14. Functor PrimIO now takes two additional arguments (VectorSlice and
2287         ArraySlice).
2288    
2289    ----------------------------------------------------------------------
2290    Name: Matthias Blume (blume (at) tti - c (dot) org)
2291    Date: 2003/08/28 17:00:00 CDT
2292    Tag: blume-20030828-intinf
2293    Description:
2294    
2295    This is a major update which comes with a version number bump
2296    (110.42.99 -- yes, we are really close to 110.43 :-), NEW BOOTFILES,
2297    and an implementation of IntInf in the Basis.
2298    
2299    There are a fairly large number of related changes and updates throughout
2300    the system:
2301    
2302    Basis:
2303            - Implemented IntInf.
2304            - Made LargeInt a projection of IntInf (by filtering through INTEGER).
2305            - Added some missing Real64 operations, most notably Real.toLargeInt.
2306            - Added FixedInt as a synonym for Int32.
2307    
2308    compiler:
2309            * Added support for a built-in intinf type.
2310              - literals
2311              - pattern matching
2312              - conversion shortcuts (Int32.fromLarge o Int.toLarge etc.)
2313              - overloading on literals and operations
2314    
2315            This required adding a primitive type intinf, some additional
2316            primops, and implementations for several non-trivial intinf
2317            operations in Core.  (The intinf type is completely abstract
2318            to the compiler; all operations get delegated back to the Core.)
2319    
2320            * Intinf equality is handled by polyequal.  However, the compiler
2321            does not print its usual warning in this case (since polyequal
2322            is the right thing to do there).
2323    
2324            * Improved the organization of structure InlineT.
2325    
2326            * A word about conversion primops:
2327            If conversions involving intinf do not cancel out during
2328            CPS contract, then the compiler must insert calls to Core functions.
2329            Since all core access must be resolved already during the FLINT
2330            translate phase, it would be too late a the time of CPS contract
2331            to add new Core calls.  For this reason, conversion primops
2332            for intinf carry two arguments:  1. the numeric argument that
2333            they are supposed to convert, and 2. the Core function that
2334            can help with this conversion if necessary.  If CPS contract
2335            eliminates a primop, then the associated Core function becomes
2336            dead and goes away.  Intinf conversion primops that do not get
2337            eliminated by CPS contract get rewritten into calls of their
2338            core functions by a separate, new phase.
2339    
2340    interactive system:
2341            - Control.Print.intinfDepth controls max length of intinf constants
2342            being printed. (Analogous to Control.Print.stringDepth.)
2343            - Cleanup in printutil and pputil: got rid of unused stuff and
2344            duplicates; replaced some of the code with code that makes better
2345            use of library functionality.
2346    
2347    CM:
2348            Bugfix: parse-errors in init group (system/smlnj/init/init.cmi)
2349            are no longer silent.
2350    
2351    CKIT:
2352            Fixed mismatched uses of Int32 and LargeInt.  I always decided
2353            in favor of LargeInt -- which is now the same as IntInf.
2354            CKIT-knowledgable people should check whether this is what's
2355            intended and otherwise change things back to using Int32 or
2356            FixedInt.
2357    
2358    Throughout the code:
2359            Started using IntInf.int literals and built-in operations
2360            (e.g., comparison with 0) where this seems appropriate.
2361    
2362    
2363    ----------------------------------------------------------------------
2364    Name: Dave MacQueen (dbm@cs.uchicago.edu)
2365    Date: 2003/08/13 11:36:00 CDT
2366    Tag: dbm-20030813-mcz-merge1
2367    Description:
2368    
2369    Merging changes from the mcz-branch development branch into trunk.
2370    These changes involve replacement of the emulated old prettyprinter
2371    interface with direct use of the SML/NJ Lib PP library, and fixing
2372    of a couple of bugs (895, 1186) relating to error messages.  A new
2373    prettyprinter for ast datatypes (Elaborator/print/ppast.{sig,sml})
2374    has been added.
2375    
2376    ----------------------------------------------------------------------
2377    Name: Matthias Blume (blume (at) tti - c (dot) org)
2378    Date: 2003/08/11 15:45:00 CDT
2379    Tag: blume-20030811-windows
2380    Description:
2381    
2382    Version number bumped to 110.42.9.  NEW BOOTFILES!!!
2383    
2384        http://smlnj.cs.uchicago.edu/dist/working/110.42.9/
2385    
2386    This patch restores SML/NJ's ability to run under win32.  There are a
2387    number of changes, including fixes for several bugs that had gone
2388    unnoticed until now:
2389    
2390      - uname "CYGWIN_NT*" is recognized as win32 (This is relevant only when
2391        trying to run the win32 version from within cygwin.)
2392    
2393      - There are a number of simple .bat scripts that substitute for their
2394        corresponding Unix shell-scripts.  (See below.)
2395    
2396      - The internals of ml-build have been modified slightly.  The main
2397        difference is that instead of calling ".link-sml" (or link-sml.bat)
2398        using OS.Process.system, the ML process delegates this task back
2399        to the script.  Otherwise problems arise in mixed environments such
2400        as Cygwin where scripts look and work like Unix scripts, but
2401        where OS.Process.system cannot run them.
2402    
2403      - In CM, the srcpath pickler used native pathname syntax -- which
2404        is incorrect in the case of cross-compilation.  The new pickle format
2405        is independent of platform-specific naming conventions.
2406    
2407      - Path configuration files (such as lib/pathconfig) can now choose
2408        between native and standard syntax.  Placing a line of the form
2409    
2410            standard!
2411    
2412        into the file causes all subsequent paths to be interpreted using
2413        CM standard pathname syntax (= Unix conventions); a line
2414    
2415            native!
2416    
2417        switches back to native style.  This was needed so that
2418        path config files can be written portably, see src/system/pathconfig.
2419    
2420      - Runtime system:
2421    
2422          - win32-filesys.c:  get_file_time and set_file_time now
2423            access modification time, not creation time.
2424    
2425          - I/O code made aware of new array representation.
2426    
2427          - Bug fixes in X86.prim.masm.
2428    
2429       - src/system/makeml made aware of win32. (For use under cygwin
2430            and other Unix-environments for windows.)
2431    
2432       - In Basis, fixed off-by-one error in win32-io.sml (function vecF)
2433         which caused BinIO.inputAll to fail consistently.
2434    
2435    .bat scripts:
2436    
2437       Windows .bat scripts assume that SMLNJ_HOME is defined.
2438    
2439       - sml.bat, ml-yacc.bat, ml-lex.bat:  Driver scripts for standalone
2440         applications (sml, ml-yacc, ml-lex).
2441       - ml-build.bat: analogous to ml-build.
2442       - config\install.bat:  Analogous to config/install.sh.  This requires
2443         that SMLNJ_HOME is set and that Microsoft Visual C is ready to use.
2444         (nmake etc. must be on the path, and vcvars32 must have been run.)
2445         Moreover, sources for ml-lex and ml-yacc need to exist under src,
2446         and the bootfile hierarchy must have been unpacked under
2447         sml.boot.x86-win32.
2448         The script is very primitive and does a poor job at error checking.
2449         It only installs the base system, ml-lex, and ml-yacc.  No other
2450         libraries are being installed (i.e., you get only those that
2451         are part of the compiler.)
2452       - link-sml.bat:  analogous to .link-sml, but not currently used
2453    
2454    Unrelated bug fixes:
2455    
2456      - ml-nlffigen now exports structures ST_* corresponding to incomplete
2457        types.
2458      - Added getDevice to PP/src/pp-debug-fn.sml.  (Would not compile
2459        otherwise.)
2460    
2461    ----------------------------------------------------------------------
2462    Name: Dave MacQueen (macqueen@cs.uchicago.edu)
2463    Date: 2003/06/17
2464    Tag: macqueen-20030617-bug895
2465    Description:
2466    
2467    Modified compiler/Elaborator/print/pptype.sml to fix bug 895.
2468    Tag will be used for new development branch (mcz-branch) for
2469    use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago.
2470    
2471    ----------------------------------------------------------------------
2472    Name: Matthias Blume (blume (at) tti - c (dot) org)
2473    Date: 2003/05/27 16:55:00 CDT
2474    Tag: blume-20030527-polyeq
2475    Description:
2476    
2477    Tried to eliminated most cases of polymorphic equality.
2478    
2479    ----------------------------------------------------------------------
2480    Name: Matthias Blume (blume (at) tti - c (dot) org)
2481    Date: 2003/05/21 17:45:00 CDT
2482    Tag: blume-20030517-complete
2483    Description:
2484    
2485    Two changes:
2486    
2487      1. Added a flag for controlling whether non-exhaustive bindings will
2488         be treated as errors (default is false).
2489      2. Cleaned up the *entire* source tree so that CMB.make goes through
2490         without a single non-exhaustive match- or bind warning.
2491    
2492    ----------------------------------------------------------------------
2493    Name: Matthias Blume (blume (at) tti - c (dot) org)
2494    Date: 2003/05/17 10:20:00 CDT
2495    Tag: blume-20030517-absyn
2496    Description:
2497    
2498    1. Added cases for IF, WHILE, ANDALSO, and ORELSE to Absyn.
2499    
2500       This mainly affects the quality of error messages.  However, some
2501       of the code is now more straightforward than before. (Treatment of
2502       the above four constructs in translate.sml is much simpler than
2503       the "macro-expansion" that was going on before.  Plus, the mach-
2504       compiler no longer gets invoked just to be able to compile an
2505       if-expression.)
2506    
2507    2. The ErrorMsg.Error exception is now caught and absorbed by the
2508       interactive loop.
2509    
2510    ----------------------------------------------------------------------
2511    Name: Allen Leung
2512    Date: 2003/05/16 13:05:00 CDT
2513    Tag: leunga-20030516-cygwin-runtime
2514    Description:
2515    
2516        Ported the runtime system to cygwin, which uses the unix
2517    x86-unix bin files.  Missing/buggy features:
2518    
2519       o getnetbyname, getnetbyaddr: these functions seem to be missing in
2520         the Cygwin library.
2521       o Ctrl-C handling may be flaky.
2522       o Windows system calls and Windows I/O are not supported.
2523    
2524       A new set of binfiles is located at:
2525    
2526         http://www.dorsai.org/~leunga/boot.x86-unix.tgz
2527    
2528       This is only needed for bootstrapping the cygwin version of smlnj.
2529       Other x86 versions can use the existing binfiles.
2530    
2531    ----------------------------------------------------------------------
2532    Name: Matthias Blume
2533    Date: 2003/04/08 15:42:00 CDT
2534    Tag: blume-20030408-listpair
2535    Description:
2536    
2537    1. Added a target 'mlrisc' to installer.
2538    
2539    2. Added missing elements to structure ListPair.
2540    
2541    ----------------------------------------------------------------------
2542    Name: Allen Leung
2543    Date: 2003/01/07 10:40:00 EST
2544    Tag: leunga-20030107-int-rem
2545    Description:
2546    
2547    Fixed a bug in Int.rem(x,y) where y is a power of 2 on x86.
2548    The arguments to the SUBL instruction were swapped.
2549    
2550    ----------------------------------------------------------------------
2551    Name: Matthias Blume
2552    Date: 2002/12/12 16:25:00 EST
2553    Tag: blume-20021212-risc-ra
2554    Description:
2555    
2556    Fixed a serious bug in the rewrite code for FP spilling/reloading that
2557    sent the RA into an infinite loop when floating point registers get
2558    spilled.  (Because of this bug, e.g., nucleic stopped compiling between
2559    110.37 and 110.38.)
2560    There was another set of potential problems related to the handling of
2561    MLRISC annotations (but those did not yet cause real problems, apparently).
2562    
2563    ----------------------------------------------------------------------
2564    Name: Matthias Blume
2565    Date: 2002/12/06 22:40:00 EST
2566    Tag: blume-20021206-cm-fileid
2567    Description:
2568    
2569    Added a call of SrcPath.sync at the beginning of Parse.parse (in CM).
2570    This fixes the problem of CM getting confused by files that suddenly
2571    change their identity (e.g., by getting unlinked and recreated by some
2572    text editor such as vi).  There might be a better/cheaper/cleaner way
2573    of doing this, but for now this will have to do.
2574    
2575    ----------------------------------------------------------------------
2576    Name: Matthias Blume
2577    Date: 2002/10/28 09:50:00 EST
2578    Tag: blume-20021028-typecheck
2579    Description:
2580    
2581    Exported structure Typecheck from $smlnj/viscomp/core.cm.
2582    
2583    ----------------------------------------------------------------------
2584    Name: Matthias Blume
2585    Date: 2002/10/17 09:10:00 EDT
2586    Tag: Release_110_42
2587    Description:
2588    
2589    In good old tradition, there has been a slight hiccup so that we have
2590    to patch 110.42 after the fact.   The old release tag has been replaced
2591    (see below).
2592    
2593    The change solves a problem with two competing approaches the
2594    configuration problem regarding MacOS 10.1 vs. MacOS 10.2 which got in
2595    each other's way.
2596    
2597    This change only affects the runtime system code and the installer script.
2598    (No new bootfiles.)
2599    
2600    ----------------------------------------------------------------------
2601    Name: Matthias Blume
2602    Date: 2002/10/16 12:00:00 EDT
2603    Tag: Release_110_42_removed
2604    Description:
2605    
2606    New working release.  New bootfiles.
2607    
2608    ----------------------------------------------------------------------
2609    Name: Matthias Blume
2610    Date: 2002/10/10 13:10:00 EDT
2611    Tag: blume-20021010-ppc-divs
2612    Description:
2613    
2614    The mltree operator DIVS must be implemented with an overflow check on
2615    the PPC because the hardware indicates divide-by-zero using "overflow" as
2616    well.
2617    
2618    ----------------------------------------------------------------------
2619    Name: Matthias Blume
2620    Date: 2002/07/23 11:45:00
2621    Tag: blume-20020723-smlnj-home
2622    Description:
2623    
2624    Sml now senses the SMLNJ_HOME environment variable.  If this is set,
2625    then the bin dir is assumed to be in $SMLNJ_HOME/bin and (unless
2626    CM_PATHCONFIG is also set), the path configuration file is assumed
2627    to be in $SMLNJ_HOME/lib/pathconfig.  This way one can easily move
2628    the entire tree to some other place and everything will "just work".
2629    
2630    (Companion commands such as ml-build and ml-makedepend also sense this
2631    variable.)
2632    
2633    ----------------------------------------------------------------------
2634    Name: Matthias Blume
2635    Date: 2002/07/12 21:19:00 EDT
2636    Tag: blume-20020712-liveness
2637    Description:
2638    
2639    Exported two useful "step" functions from liveness module (MLRISC).
2640    
2641    ----------------------------------------------------------------------
2642    Name: Matthias Blume
2643    Date: 2002/07/05 16:00 EDT
2644    Tag: Release_110_41
2645    Description:
2646    
2647    New working release.  New bootfiles.
2648    
2649    ----------------------------------------------------------------------
2650    Name: Matthias Blume
2651    Date: 2002/07/05 10:25:00 EDT
2652    Tag: blume-20020705-btimp
2653    Description:
2654    
2655    Exported structure BTImp from $smlnj/viscomp/debugprof.cm so that
2656    other clients can set up backtracing support.
2657    
2658    ----------------------------------------------------------------------
2659    Name: Matthias Blume
2660    Date: 2002/06/25 17:23:00 EDT
2661    Tag: blume-20020625-fpmax
2662    Description:
2663    
2664    Fixed a bug in translation of INLMAX (and INLMIN) for the floating-point
2665    case.  (The sense of the isNaN test was reversed -- which made min and
2666    max always return their first argument.)
2667    
2668    ----------------------------------------------------------------------
2669    Name: Matthias Blume
2670    Date: 2002/06/11
2671    Tag: blume-20020611-unixpath
2672    Description:
2673    
2674    Back-ported OS.Path.{from,to}UnixPath from idlbasis-devel branch.
2675    
2676    ----------------------------------------------------------------------
2677    Name: Matthias Blume
2678    Date: 2002/06/10 16:35:00 EDT
2679    Tag: blume-20020610-ieeereal
2680    Description:
2681    
2682    I back-ported my implementation of IEEEReal.fromString from the
2683    idlbasis-devel branch so that we can test it.
2684    
2685    Another small change is that ppDec tries to give more information
2686    than just "<sig>" in the case of functors.  However, this code is
2687    broken in some mysterious way if the functor's body's signature
2688    has not been declared by ascription but gets inferred from the
2689    implementation.  This needs fixing...
2690    
2691    ----------------------------------------------------------------------
2692    Name: Matthias Blume
2693    Date: 2002/05/31
2694    Tag: blume-20020531-btrace-mode
2695    Description:
2696    
2697    Resurrected SMLofNJ.Internals.BTrace.mode.  (It accidentally fell by
2698    the wayside when I switched over to using Controls everywhere.)
2699    
2700    ----------------------------------------------------------------------
2701    Name: Lal George
2702    Date: 2002/05/23 12:21:40 EDT
2703    Tag: george-20020523-visual-labels
2704    Description:
2705    
2706    Labels are now displayed in the graphical output to make
2707    the fall-through and target blocks obvious.
2708    
2709  ----------------------------------------------------------------------  ----------------------------------------------------------------------
2710  Name: Matthias Blume  Name: Matthias Blume
2711  Date: 2002/05/22 11:03:00 EDT  Date: 2002/05/22 11:03:00 EDT

Legend:
Removed from v.1220  
changed lines
  Added in v.2066

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