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

Legend:
Removed from v.1190  
changed lines
  Added in v.1866

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