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

SCM Repository

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

Diff of /sml/trunk/HISTORY

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

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

Legend:
Removed from v.1204  
changed lines
  Added in v.1862

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