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

Legend:
Removed from v.1343  
changed lines
  Added in v.1837

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