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

Legend:
Removed from v.1446  
changed lines
  Added in v.1846

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