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/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

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

revision 1613, Wed Aug 11 03:35:58 2004 UTC revision 1882, Mon Feb 6 22:04:00 2006 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
17    Date: 2006/02/06
18    Tag: jhr-20060206-intel-mac
19    Description:
20    Changes to support MacOS X on Intel hardware.  The C-calls support in
21    MLRISC must also be updated to support the MacOS X ABI.
22    
23    ----------------------------------------------------------------------
24    Name: Matthias Blume (http://www.tti-c.org/blume/)
25    Date: 2005/12/16 00:15:00 CST
26    Tag: blume-20051216-cm
27    Description:
28    
29    Improved error reporting and handling in CM.
30    
31    ----------------------------------------------------------------------
32    Name: Matthias Blume (http://www.tti-c.org/blume/)
33    Date: 2005/11/21 14:00:00 CST
34    Tag: blume-20051121-html-lib
35    Description:
36    
37    Enabling $/html-lib.cm in config/preloads did not work.  This is fixed
38    now.  (Since the anchor mapping for html-lib.cm is not yet in effect
39    at the time when config/preloads is processed, the library has to
40    be referred to by another name.  In 110.57 this would be
41    $SMLNJ-LIB/HTML/html-lib.cm.  I arranged for $smlnj/smlnj-lib/html-lib.cm
42    to be valid as well.)
43    
44    Thanks to Todd Wilson (Fresno) for alerting me to this issue.
45    
46    ----------------------------------------------------------------------
47    Name: Matthias Blume (http://www.tti-c.org/blume/)
48    Date: 2005/11/19 13:45:00 CST
49    Tag: Release_110_57
50    Description:
51    
52    Moved release tag for 110.57.
53    
54    ----------------------------------------------------------------------
55    Name: Matthias Blume (http://www.tti-c.org/blume/)
56    Date: 2005/11/19 23:35:00 CST
57    Tag: blume-20051119-fish
58    Description:
59    
60    Fixed a problem in config/install.sh where it tries to "fish" the
61    name of the CM metadata directory from the wrong place (because
62    the physical location of basis.cm has changed).  Also, corrected the
63    path anchor for $/html-lib.cm.  (Thanks to M. Fluet for pointing out
64    these problems.)
65    
66    ----------------------------------------------------------------------
67    Name: Matthias Blume (http://www.tti-c.org/blume/)
68    Date: 2005/11/16 14:30:00 CST
69    Tag: blume-orig-110_57
70    Description:
71    
72    New working version (110.57).  NEW BOOTFILES!
73    
74    UPDATE: The release tag has been moved to include a fix for a brown-paper-
75            bag glitch (see above).
76    
77    ----------------------------------------------------------------------
78    Name: Matthias Blume (http://www.tti-c.org/blume/)
79    Date: 2005/11/16 10:25:00 CST
80    Tag: blume-22051116-btrace
81    Description:
82    
83    Fixed problem with bogus exception message when using back-trace
84    facility.
85    
86    ----------------------------------------------------------------------
87    Name: Matthias Blume (http://www.tti-c.org/blume/)
88    Date: 2005/11/15 22:35:00 CST
89    Tag: blume-22051115-array2copy
90    Description:
91    
92    Added simple implementation of Array2.copy.  (Warning: mostly untested.)
93    
94    ----------------------------------------------------------------------
95    Name: Matthias Blume (http://www.tti-c.org/blume/)
96    Date: 2005/11/15 21:35:00 CST
97    Tag: blume-22051115-versiontool
98    Description:
99    
100    Reversed change to src/system/smlnj/internals/versiontool.cm.  This
101    file gets loaded as a tool -- by the equivalent of CM.make during the
102    run of CMB.make.  Thus, CMB's path configuration is meaningless for
103    it.  Instead, it has the status of "user code", so it should use
104    $/basis.cm to refer to the Basis library.  (At least that's true for
105    the purpose of bootstrapping the previous change.  In the future it
106    might make sense to have versiontool.cm refer to
107    $smlnj/basis/basis.cm, i.e., the version of the Basis that the
108    compiler itself uses.)
109    
110    Also patched src/system/testml to have it activate those extra anchor
111    bindings in config/extrapathconfig.
112    
113    ----------------------------------------------------------------------
114    Name: Matthias Blume (http://www.tti-c.org/blume/)
115    Date: 2005/11/15 16:35:00 CST
116    Tag: blume-22051115-libraries
117    Description:
118    
119    This change affects the way the following libraries are tied into
120    the system:
121    
122       $/basis.cm
123       $/smlnj-lib.cm
124       $/pp-lib.cm
125       $/controls-lib.cm
126       $/html-lib.cm
127       $/ml-yacc-lib.cm
128    
129    These libraries are now internally (as seen from the source code
130    of the implementation itself) known by the following names:
131    
132       $smlnj/basis/basis.cm
133       $smlnj/smlnj-lib/smlnj-lib.cm
134       $smlnj/smlnj-lib/pp-lib.cm
135       $smlnj/smlnj-lib/controls-lib.cm
136       $smlnj/smlnj-lib/html-lib.cm
137       $smlnj/ml-yacc/ml-yacc-lib.cm
138    
139    This makes it possible to work with code that requires different
140    versions of these libraries, and which refers to these libraries using
141    their "default" names (i.e., the first set of names above).  In other
142    words, one can un-define or re-define those default names without
143    compromising the proper functioning of the compiler itself.
144    
145    A similar procedure had already been performed for several of the
146    MLRISC libraries that are linked into the compiler.  I did some
147    cleanup on this code.
148    
149    A new file in the config directory (named extrapathconfig) is
150    responsible for setting up path anchors that the compiler itself does
151    not need, but that are typically required by user code.
152    
153    ----------------------------------------------------------------------
154    Name: Matthias Blume
155    Date: 2005/11/07 17:05:00 CST
156    Tag: blume-20051107-slice
157    Description:
158    
159    Fixed erroneous out-of-bounds test in the "update" function of
160    various *ArraySlice modules.  (Thanks to Vesa A. Norrman for pointing
161    out the problem.)
162    
163    Pushed some Basis changes through ML-Lex, CML, and eXene.
164    
165    ----------------------------------------------------------------------
166    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
167    Date: 2005/11/07
168    Description:
169    Fixed a Basis incompatibility: The depreciated function Substring.all
170    was removed (use Substring.full instead).
171    
172    ----------------------------------------------------------------------
173    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
174    Date: 2005/11/05
175    Description:
176    Tweaked interval set API in SML/NJ library; see the CHANGES file for details.
177    
178    ----------------------------------------------------------------------
179    Name: Matthias Blume (http://www.tti-c.org/blume/)
180    Date: 2005/11/02 16:25:00 CST
181    Tag: blume-20051102-hex
182    Description:
183    
184    * Runtime system bootstrap code now accepts hex digits in BOOTLIST
185      in either upper case or lower case format.
186    * Pushed changes to names of Pack<N>{Big,Little} structures through
187      CML and eXene.
188    
189    ----------------------------------------------------------------------
190    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
191    Date: 2005/11/02
192    Description:
193    Fixed a Basis incompatibility: Pack<N>{Big,Little} structures should
194    be called PackWord<N>{Big,Little}.
195    
196    ----------------------------------------------------------------------
197    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
198    Date: 2005/10/28
199    Description:
200    Fixed a minor Basis incompatibility: hex digits should be upper case.
201    
202    ----------------------------------------------------------------------
203    Name: Matthias Blume (blume (at) tti - c (dot) org)
204    Date: 2005/10/25 16:00:00 CDT
205    Tag: Release_110_56
206    Description:
207    
208    New working version (110.56).  NEW BOOTFILES!
209    
210    ----------------------------------------------------------------------
211    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
212    Date: 2005/10/25
213    Description:
214    Added interval sets to utility library (signatures INTERVAL_DOMAIN
215    and INTERVAL_SET, and functor IntervalSetFn).
216    
217    ----------------------------------------------------------------------
218    Name: John Reppy (http://www.cs.uchicago.edu/~jhr)
219    Date: 2005/10/14
220    Description:
221    Add Zhong Shao's fix for datatype equality functions.
222    
223    ----------------------------------------------------------------------
224    Name: Allen Leung (leunga (at) reservoir (dot) com)
225    Date: 2005/10/14 12:30:00 EST
226    Tag: leunga-20051014-x86-spill
227    Description:
228    
229    Bug fix a bug found by Carl Hauser.
230    There was a typo in the reload code for FCMP in x86SpillInstr.sml.
231    
232    ----------------------------------------------------------------------
233    Name: Allen Leung (leunga (at) reservoir (dot) com)
234    Date: 2005/10/14 11:15:00 EST
235    Tag: leunga-20051014-x86-asm
236    Description:
237    
238    Removed some debugging code in file x86Asm.sml.
239    The function emit_operand was printing out debugging output.
240    
241    ----------------------------------------------------------------------
242    Name: John Reppy
243    Date: 2005/07/27
244    Tag:
245    Description:
246    
247    Fixed ml-lex to recognize "\r" as representing carriage return.
248    
249    ----------------------------------------------------------------------
250    Name: John Reppy
251    Date: 2005/07/27
252    Tag:
253    Description:
254    
255    Fixed ml-yacc to work on files with non-native end-of-line
256    encodings (e.g., Windows text file on a Unix system).
257    
258    ----------------------------------------------------------------------
259    Name: John Reppy
260    Date: 2005/07/20
261    Tag:
262    Description:
263    
264    Added changes from Dominic Evans (oldmanuk (at) gmail (dot) com)
265    to support HPUX 11.
266    
267    ----------------------------------------------------------------------
268    Name: John Reppy
269    Date: 2005/07/06
270    Tag:
271    Description:
272    
273    Changes to the SML/NJ library.  See smlnj-lib/CHANGES for details.
274    
275    ----------------------------------------------------------------------
276    Name: Matthias Blume (blume (at) tti - c (dot) org)
277    Date: 2005/07/06 00:45:00 CDT
278    Tag: blume-20050706-slice-copy
279    Description:
280    
281    Fixed reversed logic for deciding whether to "copy up" or "copy down"
282    in *-array-slice.sml.
283    
284    ----------------------------------------------------------------------
285    Name: Allen Leung (leunga (at) reservoir (dot) com)
286    Date: 2005/05/31 17:00:00 EST
287    Tag: leunga-20050531-cygwin-fault-2
288    Description:
289    
290    A typo in the cygwin code fixed.
291    
292    ----------------------------------------------------------------------
293    Name: Allen Leung (leunga (at) reservoir (dot) com)
294    Date: 2005/05/31 16:47:00 EST
295    Tag: leunga-20050531-cygwin-fault
296    Description:
297    
298    Updated Cygwin's fault/signal handling to match the Windows version.
299    Updated the export list.
300    
301    ----------------------------------------------------------------------
302    Name: Matthias Blume (blume (at) tti - c (dot) org)
303    Date: 2005/05/18 13:35:00 CDT
304    Tag: Release_110_54
305    Description:
306    
307    New working version (110.54).  NEW BOOTFILES!
308    
309    ----------------------------------------------------------------------
310    Name: Matthias Blume (blume (at) tti - c (dot) org)
311    Date: 2005/05/18 11:58:00 CDT
312    Tag: blume-20050518-installer
313    Description:
314    
315    Added support scripts for Mac OS X PackageMaker and modified
316    config/install.sh so that it supports re-dumping a heap image
317    after customization.
318    
319    ----------------------------------------------------------------------
320    Name: Matthias Blume (blume (at) tti - c (dot) org)
321    Date: 2005/05/18 10:55:00 CDT
322    Tag: blume-20050518-realdiv-noovld
323    Description:
324    
325    Un-overloaded / to work around bug in overloading resolution code.
326    
327    ----------------------------------------------------------------------
328    Name: Matthias Blume (blume (at) tti - c (dot) org)
329    Date: 2005/05/16 23:50:00 CDT
330    Tag: blume-20050516-redump-heap
331    Description:
332    
333    Added mechanism for re-creating a heap file for the interactive system
334    after configuration variables have been changed.
335    
336       CM.redump_heap : string -> unit
337    
338    This is much like SMLofNJ.exportML, but starting from the resulting
339    heap does not return to the caller of CM.redump_heap but
340    restarts the interactive system from scratch.  The original call of
341    CM.redump_heap does not return but ends the interactive session.
342    Thus, CM.redump_heap is a lot like SMLofNJ.exportFn.
343    
344    Internally, redump_heap winds the dynamic execution context back to
345    the point where the original heap image was created and re-executes
346    the heap image generation code in the boot code.
347    
348    ----------------------------------------------------------------------
349    Name: Matthias Blume (blume (at) tti - c (dot) org)
350    Date: 2005/05/09 21:55:00 CDT
351    Tag: blume-20050509-word64
352    Description:
353    
354    Added a hack to the existing hack known as Word64 to make fromString
355    behave correctly.  I am still not sure whether Word64.scan will work
356    as specified with respect to the interaction of radix and prefix.
357    
358    ----------------------------------------------------------------------
359    Name: Allen Leung (leunga (at) reservoir (dot) com)
360    Date: 2005/05/04 11:50:00 EST
361    Tag: leunga-20050504-checkgc
362    Description:
363    
364    Added a gc protocol checking phase.  This phase is enabled with
365    the flag "check-gc".  "debug-check-gc" turns on the verbose mode.
366    
367    ----------------------------------------------------------------------
368    Name: Matthias Blume (blume (at) tti - c (dot) org)
369    Date: 2005/05/04 10:45:00 CDT
370    Tag: blume-20050504-intinf
371    Description:
372    
373    Fixed a bug in the implementation of div and mod for IntInf.
374    Thanks to Neophytos Michael for reporting the problem.
375    
376    ----------------------------------------------------------------------
377    Name: Matthias Blume (blume (at) tti - c (dot) org)
378    Date: 2005/05/04 10:35:00 CDT
379    Tag: blume-20050504-join
380    Description:
381    
382    Added a "join" combinator to the ParserComb module in smlnj-lib.cm.
383    
384    ----------------------------------------------------------------------
385    Name: Matthias Blume (blume (at) tti - c (dot) org)
386    Date: 2005/02/28 23:40:00 CST
387    Tag: blume-20050228-mVar
388    Description:
389    
390    Fixed serious bug (brown paper bag variety) in new implementation of
391    structure Atom in CML.  (I had accidentally used a mailbox instead of
392    an mvar, leaving the door open for races.)
393    
394    ----------------------------------------------------------------------
395    Name: Matthias Blume (blume (at) tti - c (dot) org)
396    Date: 2005/02/25 15:00:00 CST
397    Tag: Release_110_53
398    Description:
399    
400    New working version (110.53).  NEW BOOTFILES!
401    
402    ----------------------------------------------------------------------
403    Name: Matthias Blume (blume (at) tti - c (dot) org)
404    Date: 2005/02/25 14:50:00 CST
405    Tag: blume-20050225-susp
406    Description:
407    
408    Brought back SMLofNJ.Susp.  The underlying suspension type is the one
409    implemented in Core -- which means that it is the same as the one used
410    by the lazy extension.
411    
412    ----------------------------------------------------------------------
413    Name: Matthias Blume (blume (at) tti - c (dot) org)
414    Date: 2005/02/24 16:50:00 CST
415    Tag: blume-20050224-cml-atom
416    Description:
417    
418    Simpler and at the same time more general implementation of structure
419    Atom in CML.
420    
421    ----------------------------------------------------------------------
422    Name: Matthias Blume (blume (at) tti - c (dot) org)
423    Date: 2005/02/15 17:35:00 CST
424    Tag: blume-20050215-tools
425    Description:
426    
427    Created new "tools" directory under "src" and moved "TraceDebugProf"
428    there.
429    
430    ----------------------------------------------------------------------
431    Name: Matthias Blume (blume (at) tti - c (dot) org)
432    Date: 2005/02/10 17:55:00 CST
433    Tag: blume-20050210-longlong
434    Description:
435    
436    Implemented "long long" arguments and results for NLFFI.  (Only the
437    PPC/MacOS implementation is complete, the other backends still need to
438    be updated.)
439    
440    ----------------------------------------------------------------------
441    Name: Matthias Blume (blume (at) tti - c (dot) org)
442    Date: 2005/01/24 17:40:00 CST
443    Tag: blume-20050124-mlyacc
444    Description:
445    
446    Minor cleanup in ML-Yacc rule printing mechanism.  This should fix a
447    problem with certain "as" patterns which previously got rendered
448    using incorrect syntax.
449    
450    ----------------------------------------------------------------------
451    Name: Matthias Blume (blume (at) tti - c (dot) org)
452    Date: 2005/01/18 12:00:00 CST
453    Tag: blume-20050118-profile
454    Description:
455    
456    Made time profiling code (interrupt handler) in runtime system aware
457    of new array representation.
458    
459    ----------------------------------------------------------------------
460    Name: Matthias Blume (blume (at) tti - c (dot) org)
461    Date: 2005/01/14 18:00:00 CST
462    Tag: blume-20050114-heap2exec
463    Description:
464    
465    Implemented new (but still experimental) heap2exec facility.  This is
466    tested under Mac OS X and should work under Linux (will test shortly).
467    It will probably also work on the Sparc (will test some time later).
468    
469      - removed old "HACKED_STANDALONE" hack from runtime
470    
471    To be able to test this, uncomment the request for "heap2asm" in
472    config/targets prior to installation.  (Notice that this is different
473    from "heap2exec" mentioned below.  Not a typo.)
474    
475    To perform an actual test, run the command
476    
477       $ bin/heap2exec heapfile execfile
478    
479    (You can put heap2exec on your shell's path.)
480    
481    For example, run
482    
483      $ bin/heap2exec bin/.heap/ml-yacc.ppc-darwin mly
484    
485    This will create a standalone executable called "mly" which you can
486    then invoke directly as a command.
487    
488    ----------------------------------------------------------------------
489    Name: Matthias Blume (blume (at) tti - c (dot) org)
490    Date: 2005/01/07 11:44:00 CST
491    Tag: blume-20050107-mlstring
492    Description:
493    
494    fixed off-by-one error in ML_STRING macro (globals.c)
495    
496    ----------------------------------------------------------------------
497    Name: Matthias Blume (blume (at) tti - c (dot) org)
498    Date: 2004/12/23 18:00:00 CST
499    Tag: blume-20041223-santa
500    Description:
501    
502    Made ml-build script "smarter" (but only very little).
503    
504    ----------------------------------------------------------------------
505    Name: Matthias Blume (blume (at) tti - c (dot) org)
506    Date: 2004/12/21 15:05:00 CST
507    Tag: blume-20041221-longlong
508    Description:
509    
510    * Implemented access to signed and unsigned long long data in NLFFI.
511    (The parameter-passing part of the picture has not complete. But
512    data structure access seems to work.)
513    
514    * Fixed CM's incorrect assumption that the PPC is little-endian.
515      (On the Mac, it is big-endian.  And that's currently our only
516      PPC platform.)
517    
518    ----------------------------------------------------------------------
519    Name: Matthias Blume (blume (at) tti - c (dot) org)
520    Date: 2004/12/21 12:50:00 CST
521    Tag: blume-20041221-memory
522    Description:
523    
524    Some cleanup in the $c/memory.cm library: separated some concerns by
525    moving allocation code and memory access code each into their own
526    files.
527    
528    ----------------------------------------------------------------------
529    Name: Allen Leung (leunga (at) reservoir (dot) com)
530    Date: 2004/12/17 16:12:00 EST
531    Tag: leunga-20041217-cygwin-smlnj-home
532    Description:
533    
534        The Unix I/O library of SML/NJ on cygwin does not understand
535    Windows style pathname, so problems arise when SMLNJ_HOME is set
536    to a Windows style pathname.  _run-sml now converts SMLNJ_HOME
537    to a POSIX pathname on cygwin.
538    
539    ----------------------------------------------------------------------
540    Name: Matthias Blume (blume (at) tti - c (dot) org)
541    Date: 2004/12/16 13:35:00 CST
542    Tag: Release_110_52
543    Description:
544    
545    Last-minute changes incorporated into 110.52.  Release tag moved.
546    
547    The changes:
548       - HashString.hashString' -> HashString.hashSubstring
549       - bug fix in UnivariateStats
550    
551    ----------------------------------------------------------------------
552    Name: Matthias Blume (blume (at) tti - c (dot) org)
553    Date: 2004/12/15 23:40:00 CST
554    Tag: blume-20041215-hashSubstring
555    Description:
556    
557    - HashString.hashString' -> HashString.hashSubstring
558    - corresponding changes in atom.sml
559    - "de-compressed" (aka. un-obfuscated) code for UnivariateStats and
560      added some comments
561    
562    ----------------------------------------------------------------------
563    Name: Matthias Blume (blume (at) tti - c (dot) org)
564    Date: 2004/12/15 15:30:00 CST
565    Tag: (Release_110_52)
566    Description:
567    
568    New working version (110.52).  NEW BOOTFILES!
569    
570    ----------------------------------------------------------------------
571    Name: Matthias Blume (blume (at) tti - c (dot) org)
572    Date: 2004/12/15 12:45:00 CST
573    Tag: blume-20041215-spaces
574    Description:
575    
576    More on the space problem (this time for Win32).
577    
578    ----------------------------------------------------------------------
579    Name: Matthias Blume (blume (at) tti - c (dot) org)
580    Date: 2004/12/14 17:30:00 CST
581    Tag: blume-20041214-spaces
582    Description:
583    
584    Hacked some of the scripts (in particular: the installer) to cope with
585    spaces in filenames a bit better.  But beware: the current "solution"
586    is likely still full of bugs and inherently incomplete.  (We need to
587    do away with those shell scripts for a comprehensive solution.)
588    
589    ----------------------------------------------------------------------
590    Name: Matthias Blume (blume (at) tti - c (dot) org)
591    Date: 2004/12/13 14:45:00 CST
592    Tag: blume-20041213-ml-makedepend
593    Description:
594    
595    Fixed bug in code for ml-makedepend.
596    
597    ----------------------------------------------------------------------
598    Name: Matthias Blume (blume (at) tti - c (dot) org)
599    Date: 2004/12/09 16:30:00 CST
600    Tag: blume-20041209-statistics
601    Description:
602    
603    Added two simple but potentially useful statistics modules to SML/NJ Library.
604    (See CHANGES file there.)
605    
606    ----------------------------------------------------------------------
607    Name: Matthias Blume (blume (at) tti - c (dot) org)
608    Date: 2004/12/01 16:50:00 CST
609    Tag: blume-20041201-atom
610    Description:
611    
612    smlnj-lib:
613    
614      Added function HashString.hashString' for substrings.
615      Hand-inlined CharVector.foldl into HashString (for speed).
616      Modified implementation of structure Atom to avoid extracting
617      strings from substrings unless necessary.
618      (Also see CHANGES file for smlnj-lib.)
619    
620    ----------------------------------------------------------------------
621    Name: Matthias Blume (blume (at) tti - c (dot) org)
622    Date: 2004/11/24 22:15:00 CST
623    Tag: blume-20041124-cml
624    Description:
625    
626    Made sure CML compiles when Position = Int64.
627    
628    ----------------------------------------------------------------------
629    Name: Matthias Blume (blume (at) tti - c (dot) org)
630    Date: 2004/11/24 14:30:00 CST
631    Tag: blume-20041124-position
632    Description:
633    
634    The compiler can now be compiled in a mode that makes structure Position
635    equal to Int64.  The default, however, is unchanged (Position = Int31)
636    for the time being.
637    
638    To enable 64-bit positions, use the following procedure:
639    
640    1. Start sml
641    2. Autoload $smlnj/cmb.cm (if not already autoloaded)
642    3. Type
643          #set (CMB.symval "USE_64_BIT_POSITIONS") (SOME 1);
644    4. Run CMB.make() as usual.
645    
646    This is barely tested.  The only test so far was a little SML program
647    counting the number of characters in an 8-gigabyte file by
648    reading it character-by-character.  That test was successful.
649    
650    In support of 64-bit positions, a number of new functions have been
651    added to the runtime system.
652    
653    ----------------------------------------------------------------------
654    Name: Matthias Blume (blume (at) tti - c (dot) org)
655    Date: 2004/11/23 14:45:00 CST
656    Tag: blume-20041123-useFile
657    Description:
658    
659    Fixed a problem with unhelpful error messages related to problems with
660    .cm- or .sml files that appear as part of the sml command line.
661    
662    ----------------------------------------------------------------------
663    Name: Matthias Blume (blume (at) tti - c (dot) org)
664    Date: 2004/11/18 15:40:00 CST
665    Tag: Release_110_51
666    Description:
667    
668    New working version (110.51).  NEW BOOTFILES!
669    
670    ----------------------------------------------------------------------
671    Name: Matthias Blume (blume (at) tti - c (dot) org)
672    Date: 2004/11/18 15:35:00 CST
673    Tag: <none>
674    Description:
675    
676    Enabled dlopen and friends for FreeBSD (as recommended by Johannes 5
677    Joemann).
678    
679    ----------------------------------------------------------------------
680    Name: Allen Leung (leunga (at) reservoir (dot) com)
681    Date: 2004/11/17 16:05:21 EST 2004
682    Tag: leunga-20041117-mlrisc-live-kill
683    Description:
684    
685       Added support for MLTree constructs LIVE and KILL
686    to all the architectures.
687    
688    ----------------------------------------------------------------------
689    Name: Matthias Blume (blume (at) tti - c (dot) org)
690    Date: 2004/11/13 00:20:00 CST
691    Tag: blume-20041113-versiontool
692    Description:
693    
694    - Stripped down the versiontool: It now only handles the version number.
695      The date string is generated at bootstrap time (during makeml).
696    
697    - In a previous commit, fixed a minor issue with how polyequal is being
698      translated.  In particular, the code now "looks through" abstractions.
699      This results in slightly fewer polyEqual warnings and hopefully slightly
700      more efficient code.  Important examples for where this matters are
701      the new int64 and word64 types.
702    
703    ----------------------------------------------------------------------
704    Name: Matthias Blume (blume (at) tti - c (dot) org)
705    Date: 2004/11/12 00:30:00 CST
706    Tag: blume-20041112-int64
707    Description:
708    
709    Structure Int64 fully hooked in.  (The implementation is not very
710    efficient, though.)
711    
712    ----------------------------------------------------------------------
713    Name: Matthias Blume (blume (at) tti - c (dot) org)
714    Date: 2004/11/11 17:30:00 CST
715    Tag: blume-20041111-more64
716    Description:
717    
718    All the pieces of Word64 are now there, with the exception of the
719    conversions from and to LargeWord. (Eventually these need to be identities,
720    but for the time being they don't even make sense because LargeWord is
721    32-bit wide.)
722    
723    Also started to add similar support for Int64, but major pieces of that
724    are still missing.
725    
726    ----------------------------------------------------------------------
727    Name: Matthias Blume (blume (at) tti - c (dot) org)
728    Date: 2004/11/11 00:15:00 CST
729    Tag: blume-20041111-word64
730    Description:
731    
732    Structure Word64 is now (almost) complete, word literals and patterns
733    seem to work.  There are a few odd pieces missing.  In particular,
734    I didn't do the {from,to}LargeWord parts because LargeWord is still Word32
735    at the moment.
736    
737    Making Word64 official would mean that LargeWord becomes Word64.  But
738    this requires extreme care because most word-word conversions have to
739    go through LargeWord, so making a mistake means loss of efficiency or
740    worse.  Eventually there will be a solution similar to (but actually
741    simpler than) what I did with IntInf.
742    
743    ----------------------------------------------------------------------
744    Name: Matthias Blume (blume (at) tti - c (dot) org)
745    Date: 2004/11/10 18:12:00 CST
746    Tag: blume-20041110-64bit
747    Description:
748    
749    More 64-bit hacking (but still not even half-way there yet).
750    Also, some assorted improvements to the handling of 8-bit words.
751    
752    ----------------------------------------------------------------------
753    Name: Matthias Blume (blume (at) tti - c (dot) org)
754    Date: 2004/11/09 17:50:00 CST
755    Tag: <none>
756    Description:
757    
758    Started adding some infrastructure for supporting 64-bit int- and
759    word-types.  (Still in its very early stages.)
760    
761    ----------------------------------------------------------------------
762    Name: Matthias Blume (blume (at) tti - c (dot) org)
763    Date: 2004/10/28 10:45:00 CDT
764    Tag: Release_110_50
765    Description:
766    
767    New working version (110.50).  NEW BOOTFILES!
768    
769                 =====================
770    
771    Also:
772    
773      - Changend config/srcarchiveurl from a file just
774        containing the URL string into a file containing
775        shell script code.  The code has access to the $VERSION variable.
776      - Made corresponding changes to config/install.sh and config/unpack.
777      - Default contents of config/srcarchiveurl uses $VERSION and
778        normally does not have to be edited to reflect a version change.
779    
780      (As a result, a version change can be done by just editing
781       config/version, the rest is now automatic.)
782    
783    ----------------------------------------------------------------------
784    Name: Matthias Blume (blume (at) tti - c (dot) org)
785    Date: 2004/10/27 17:50:00 CDT
786    Tag: blume-20041027-btrace-msg
787    Description:
788    
789    BackTrace.monitor now also reports the source of the exception that
790    triggered the trace.
791    
792    ----------------------------------------------------------------------
793    Name: Matthias Blume (blume (at) tti - c (dot) org)
794    Date: 2004/10/27 17:20:00 CDT
795    Tag: blume-20041027-x86-c-calls
796    Description:
797    
798    This is the HISTORY entry for two earlier commits, both concerning
799    the x86 c-calls code in MLRISC:
800    
801      - added a missing LOAD in the code that deals with struct arguments
802      - made sure the caller does not add the wrong number of bytes to the
803        stack pointer after a call of a function returning a struct
804        (the callee already pops the implicit argument which points to
805         the space reserved for the result)
806    
807    ----------------------------------------------------------------------
808    Name: Allen Leung (leunga (at) reservoir (dot) com)
809    Date: 2004/10/24 14:00:00 EST
810    Tag: leunga-20041024-x86-gas-fucomip
811    Description:
812    
813       John discovered a bug in the syntax of fucomip.
814       The opcodes FU?COMIP? have been changed to
815    
816           fu?comip? %st(i), %st
817    
818    ----------------------------------------------------------------------
819    Name: Matthias Blume (blume (at) tti - c (dot) org)
820    Date: 2004/10/20 15:06:00 CDT
821    Tag: blume-20041020-standalone-backtrace
822    Description:
823    
824    Added a mechanism for getting back-trace information from standalone
825    programs.  Here is how it works:
826    
827       1. The part of the program from which you want to get backtrace
828          information (usually the whole program) should be wrapped with
829          BackTrace.monitor.  This is a (unit->'a)->'a function, and your
830          main program could be modified from something like
831    
832             fun main (pgm, args) = ...
833    
834         to
835    
836            fun main (pgm, args) = BackTrace.monitor (fn () => ...)
837    
838       2. To be able to access BackTrace.monitor, you have to add
839          library $smlnj-tdp/plugins.cm to the .cm file that contains your
840          main function.
841    
842       3. Remove all compiled code (i.e., all the .cm/ subdirectories that
843          CM might have created in the past for your project).
844    
845       4. Build the system using this command line:
846    
847             ml-build -Ctdp.instrument=true \$smlnj-tdp/back-trace.cm \
848                      myprog.cm MyProg.main myprog
849    
850          instead of the usual
851    
852             ml-build myprog.cm MyProg.main myprog
853    
854    I changed a library name:
855    
856       $/trace-debug-profile.cm --> $smlnj-tdp/plugins.cm
857    
858    New libraries:
859    
860       $smlnj-tdp/back-trace.cm
861          -- when loaded causes the back-trace plugin to be installed
862       $smlnj-tdp/coverage.cm
863          -- when loaded causes the coverage plugin to be installed
864    
865    ----------------------------------------------------------------------
866    Name: Matthias Blume (blume (at) tti - c (dot) org)
867    Date: 2004/10/18 16:45:00 CDT
868    Tag: blume-20041018-groupowner
869    Description:
870    
871    Added an "obsolete" warning for the "group owner" syntax to CM's parser.
872    
873    Eliminated group owner specs from .cm files throughout the source tree.
874    
875    ----------------------------------------------------------------------
876    Name: Matthias Blume (blume (at) tti - c (dot) org)
877    Date: 2004/10/15 15:45:00 CDT
878    Tag: blume-20041015-coverage
879    Description:
880    
881    * Test coverage tool added!
882    * Further reorganization of tracing-, debugging-, and profiling support:
883    
884        - moved original BTImp -- now called BackTrace -- into a separate
885          library called $/trace-debug-profile.cm
886        - eliminated all mentions of BTrace from SMLofNJ.Internals
887        - only the instrumentation mechanism is now left in the compiler proper
888        - BackTrace module is a plugin which is NOT plugged in by default
889        - Coverage module is another such plugin
890    
891    To get the benefits of any of these plugin modules, the code in
892    question must be compiled with tdp instrumentation turned on.  This
893    can be done by setting SMLofNJ.Internals.TDP.mode to true.
894    (The ref cell is also controlled via the -Ctdp.instrument=... switch.)
895    
896    Plugins are selected at link time.  (Pre-compiled instrumented code
897    can be re-loaded with different plugins in effect.)  When an
898    instrumented module is linked, whatever plugins are at that time
899    enabled will come into effect for that module.
900    
901    To enable the back-trace plugin, load library $/trace-debug-profile.cm
902    and invoke BackTrace.install() (e.g., from the interactive prompt).
903    To enable the coverage plugin, load the same library and invoke
904    Coverage.install().
905    
906    Back-traces are generated automatically on uncaught exceptions and
907    when the code in question explicitly invokes BackTrace.trigger().
908    
909    Coverage (and execution frequency-) information must be queried
910    explicitly by calling Coverage.not_covered and Coverage.hot_spots.
911    
912    ----------------------------------------------------------------------
913    Name: Matthias Blume (blume (at) tti - c (dot) org)
914    Date: 2004/10/14 17:40:00 CDT
915    Tag: blume-20041014-tdp-core
916    Description:
917    
918    Snapshot of a significant overhaul of how the trace/debug/profile support
919    is hooked into the system (specifically: Core and SMLofNJ.Internals).
920    
921    ----------------------------------------------------------------------
922    Name: Matthias Blume (blume (at) tti - c (dot) org)
923    Date: 2004/10/13 16:34:00 CDT
924    Tag: blume-20041013-tdp
925    Description:
926    
927    Some rationalization of names:
928    
929       structure BTrace -> structure TDPInstrument
930       etc.
931    
932    This is is preparation of using the original back-trace
933    instrumentation for other purposes.  "TDP" stands for
934    Trace/Debug/Profile.
935    
936    The control flag controlling whether instrumentation is on or off is now
937    registered under a different name, so instead of running sml as
938    
939     sml -Cinstrument.btrace-mode=true
940    
941    one has to say
942    
943     sml -Ctdp.instrument=true
944    
945    ----------------------------------------------------------------------
946    Name: Matthias Blume (blume (at) tti - c (dot) org)
947    Date: 2004/10/11 16:37:00 CDT
948    Tag: blume-20041011-regions
949    Description:
950    
951    Made some minor modifications to elabcore.sml to have source regions
952    be propagated more tightly -- resulting in better (i.e., smaller)
953    regions being reported in error- and debug messages.
954    
955    ----------------------------------------------------------------------
956    Name: Matthias Blume (blume (at) tti - c (dot) org)
957    Date: 2004/10/08 22:50:00 CDT
958    Tag: blume-20041008-cmkw
959    Description:
960    
961    Fixed handling of keywords in .cm files: After seeing "is" the lexer
962    treats subsequent occurrences of "group", "library", "source", "is",
963    "*", and "-" as ordinary identifiers rather than keywords.
964    
965    Most seriously, this fixes a problem with CM's "shell" tool.  The tool
966    is supposed to accept a tool argument called "source", but this did
967    not work because of the clash with the keyword.
968    
969    ----------------------------------------------------------------------
970    Name: Matthias Blume (blume (at) tti - c (dot) org)
971    Date: 2004/10/07 16:00:00 CDT
972    Tag: blume-20041007-cleanup
973    Description:
974    
975    Assorted cleanup work:
976    
977      - got rid of intstrmap in favor of using the library's
978        hash table implementation
979      - threw out most of the pathnames stuff, as it was not used anyway
980      - simplified tokentable implementation
981      - fixed some minor spelling errors
982    
983    ----------------------------------------------------------------------
984    Name: Matthias Blume (blume (at) tti - c (dot) org)
985    Date: 2004/10/06 15:15:15 CDT
986    Tag: blume-20041006-handler
987    Description:
988    
989    Cleaned up the absyn to reflect the invariant that HANDLE always
990    carries a FNexp as part of the type definition.  This eliminates some
991    superfluous sanity checks at runtime down the road.
992    
993    Some minor cleanup of the btrace code.
994    
995    ----------------------------------------------------------------------
996    Name: Matthias Blume (blume (at) tti - c (dot) org)
997    Date: 2004/10/01 10:20:30 CDT
998    Tag: blume-20041001-slave
999    Description:
1000    
1001    Added hack to make slave mode work in the presence of the version
1002    tool.  (Still, since the master does two passes over the code for
1003    CMB.make, the release number gets bumped twice when slaves are
1004    attached.  I don't know if this is worth fixing...)
1005    
1006    ----------------------------------------------------------------------
1007    Name: Matthias Blume (blume (at) tti - c (dot) org)
1008    Date: 2004/09/30 10:55:00 CDT
1009    Tag: blume-20040930-version
1010    Description:
1011    
1012    * Moved the "version" magic into its own little library under
1013      src/system/smlnj/internal.  This avoids expensive reconstruction of
1014      a stable src/compiler/core.cm.
1015    
1016    * At the same time, structure CompilerVersion is now known as
1017      structure SMLNJVersion.
1018    
1019    * Arranged for the version tool to NOT kick in when rebuilding the system
1020      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
1021      Also, loading the versiontool does not work when rebuilding the system
1022      because CM is not properly initialized at that time.
1023    
1024    ----------------------------------------------------------------------
1025    Name: Matthias Blume (blume (at) tti - c (dot) org)
1026    Date: 2004/09/29 14:00:00 CDT
1027    Tag: blume-20040929-autoversion
1028    Description:
1029    
1030    Implemented some CM magic to have
1031        file src/compiler/TopLevel/main/version.sml
1032    generated automagically.
1033    The version is taken from two files: config/version and config/release.
1034    The first is expected to contain a two-part version number such as 110.49.
1035    The second should contain a single number, but it may be missing.
1036    
1037    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
1038    time the version tool is loaded (which is the first time you say CMB.make),
1039    then the tool will increment the value stored in config/release every
1040    time CMB.make is invoked.
1041    
1042    The binfile format is now insensitive to anything beyond the first
1043    two components of a version number, so bumping the release does not render
1044    binfiles incompatible.  Auto-bumping can be used to keep track of versions
1045    during development without invalidating existing binfiles.
1046    
1047    In any case, every CMB.make updates the date information in version.sml.
1048    (This is the date that is printed in the banner.)
1049    
1050    ----------------------------------------------------------------------
1051    Name: Matthias Blume (blume (at) tti - c (dot) org)
1052    Date: 2004/09/28 10:53:00 CDT
1053    Tag: blume-20040928-controls
1054    Description:
1055    
1056    Some cleanup of the controls code.
1057    
1058    ----------------------------------------------------------------------
1059    Name: Matthias Blume (blume (at) tti - c (dot) org)
1060    Date: 2004/09/27 22:08:00 CDT
1061    Tag: blume-20040927-controls
1062    Description:
1063    
1064    Added two pieces of functionality to the Controls interface:
1065    
1066    1.   val save'restore: 'a control -> unit -> unit
1067    
1068       grabs the current value of the control in stage 1 and restores it
1069       in stage 2.
1070    
1071    2.   val set' : 'a control * 'a -> unit -> unit
1072    
1073       stores the given value into the control in stage 2 (i.e., delayed)
1074       but does all error checking in stage 1.
1075       (This is for string controls that need to do parse their argument --
1076        something that might fail.  In some cases, notably in CM, one
1077        already knows the intended argument but wants to delay the actual
1078        assignment until a time when error recovery would be more difficult.)
1079    
1080    Changed the handling of controls in tool arguments to classes "sml" and
1081    "lazysml":
1082       - use Controls.save'restore as a more robust way of restoring the
1083         old value (in particular: without having to re-parse the string)
1084       - use controls to handle the "overload" keyword in the init group
1085         (I believe this change actually fixes a long-standing obscure bug.)
1086    
1087    ----------------------------------------------------------------------
1088    Name: Matthias Blume (blume (at) tti - c (dot) org)
1089    Date: 2004/09/27 17:00:00 CDT
1090    Tag: blume-20040927-lazysml
1091    Description:
1092    
1093    Added a new tool class called "lazysml" to CM's tool chest.  The only
1094    difference to "sml" is that compilation is done with Control.lazysml
1095    set to true.  A source of class "lazysml" is automatically recognized
1096    by a file name suffix of ".lml".
1097    
1098    In addition to the above feature, the original class "sml" now also
1099    supports a tool argument "lazy" which has the same effect.  As a
1100    result, the following three lines are equivalent:
1101    
1102        foo.sml : lazysml
1103        foo.sml : sml (lazy)
1104        foo.sml (lazy)
1105    
1106    The setting goes into effect both during parsing and during
1107    compilation.  The original setting is restored right after parsing and
1108    after compilation, respectively.
1109    
1110    In addition to all the above, there is also a general mechanism to set
1111    ANY of the "controls" that are available at the command line via
1112    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
1113    apply as well. (In fact, "lazy" is implemented as a special case of
1114    the general mechanism.)
1115    
1116    The .cm file syntax uses a new keyword tool argument called "with".
1117    There are several ways of indicating the desired settings:
1118    
1119        foo.sml (with:parser.quotations=true)
1120        foo.sml (with:(name:parser.quotations value:true))
1121        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
1122        foo.sml (with:(name1=value1 name2=value2 ...))
1123        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
1124    
1125        etc.
1126    
1127    Another possible abbreviation is to leave out the =v or value:v part
1128    if the name refers to a boolean control (in which case the value is
1129    taken to be true).  Thus, one could get lazy sml also by saying:
1130    
1131        foo.sml (with:parser.lazy-keyword=true)
1132        foo.sml (with:parser.lazy-keyword)
1133        foo.sml (with:(name:parser.lazy-keyword value:true))
1134        foo.sml (with:(name:parser.lazy-keyword))
1135    
1136    ----------------------------------------------------------------------
1137    Name: Matthias Blume (blume (at) tti - c (dot) org)
1138    Date: 2004/09/24 16:22:00 CDT
1139    Tag: blume-20040924-ppc-long-branch
1140    Description:
1141    
1142    Turned message about "emiting long form of branch" off by default.
1143    Added a control flag to turn it back on when desired.
1144    
1145    ----------------------------------------------------------------------
1146    Name: Matthias Blume (blume (at) tti - c (dot) org)
1147    Date: 2004/09/24 16:05:00 CDT
1148    Tag: blume-20040924-rounding
1149    Description:
1150    
1151    Applied patch for setting rounding modes under Mac OS X.  Thanks to
1152    Melissa O'Neill for providing the code!
1153    
1154    ----------------------------------------------------------------------
1155    Name: Matthias Blume (blume (at) tti - c (dot) org)
1156    Date: 2004/09/23 17:30:00 CDT
1157    Tag: blume-20040923-envvars
1158    Description:
1159    
1160    1. Changed definition of type ControlRegistry.registry_tree to
1161       include control_info (i.e., the name of the controlling environment
1162       variable).
1163    
1164    2. Added command-line flags -e and -E to print the names of environment
1165       variables that can be used to control internal settings.
1166       (This uses the new API mentioned in 1.)
1167    
1168    ----------------------------------------------------------------------
1169    Name: Matthias Blume (blume (at) tti - c (dot) org)
1170    Date: 2004/09/13 16:50:00 CDT
1171    Tag: Release_110_49
1172    Description:
1173    
1174    New working version (110.49).  NEW BOOTFILES!
1175    
1176    ----------------------------------------------------------------------
1177    Name: Matthias Blume
1178    Date: 2004/09/13 16:20:00 CDT
1179    Tag: blume-20040913-config-mlrisc
1180    Description:
1181    
1182    Put target "mlrisc" back into the default list.
1183    (There is no harm in having it, and some users have expressed their
1184    wish to have "mlrisc" included by default.)
1185    
1186    ----------------------------------------------------------------------
1187    Name: John Reppy
1188    Date: 2004/09/13
1189    Tag: jhr-20040913-signals
1190    Description:
1191    
1192    Fixed the signal masking code to properly nest mask/unmask operations
1193    on a per-signal basis.
1194    
1195    ----------------------------------------------------------------------
1196    Name: Matthias Blume (blume (at) tti - c (dot) org)
1197    Date: 2004/09/08 13:20:00 CDT
1198    Tag: blume-20040908-heap-magic
1199    Description:
1200    
1201    Bumped the heap macig number to 0x09082004 to account for the changed
1202    layout of the ML frame under MacOS X.
1203    
1204    ----------------------------------------------------------------------
1205    Name: Allen Leung (leunga (at) reservoir (dot) com)
1206    Date: 2004/09/03 11:26:00 EST
1207    Tag: leunga-20040903-cygwin-install
1208    Description:
1209    
1210       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
1211    The Cygwin runtime is turned on by setting the environment
1212    variable SMLNJ_CYGWIN_RUNTIME to 1.
1213    
1214    ----------------------------------------------------------------------
1215    Name: Matthias Blume (blume (at) tti - c (dot) org)
1216    Date: 2004/08/31 17:15:00 CDT
1217    Tag: blume-20040831-core
1218    Description:
1219    
1220    Added some exports to src/compiler/core.cm upon request by J. Joemann.
1221    
1222    ----------------------------------------------------------------------
1223    Name: Matthias Blume (blume (at) tti - c (dot) org)
1224    Date: 2004/08/30 17:55:00 CDT
1225    Tag: blume-20040830-installer
1226    Description:
1227    
1228    Upon request by Johannes Joemann:
1229    
1230    - improved ML code of installer to fall back to coping when renaming
1231      fails (i.e., when source and target are on different file systems);
1232      the code compiles but has yet to be tested in anger
1233    - removed mlrisc from list of default targets (config/targets)
1234    
1235    ----------------------------------------------------------------------
1236    Name: Matthias Blume (blume (at) tti - c (dot) org)
1237    Date: 2004/08/27 17:20:00 CDT
1238    Tag: blume-20040827-ptreql
1239    Description:
1240    
1241    Added ptreql primop to structure InlineT (upon request from Larry
1242    Paulson).
1243    
1244    ----------------------------------------------------------------------
1245    Name: Allen Leung (leunga (at) reservoir (dot) com)
1246    Date: 2004/08/15 21:21:00 EST
1247    Tag: leunga-110_48-udgraph
1248    Description:
1249    
1250    Another bug fix from Carl Hauser:
1251    
1252    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
1253    > 48c48
1254    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
1255    > e::L)
1256    > ---
1257    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
1258    > Without this, any deletion of an edge in an undirected graph does severe
1259    > violence to the graph.
1260    
1261    ----------------------------------------------------------------------
1262  Name: Allen Leung (leunga (at) reservoir (dot) com)  Name: Allen Leung (leunga (at) reservoir (dot) com)
1263  Date: 2004/08/10 23:35:00 EST  Date: 2004/08/10 23:35:00 EST
1264  Tag: leunga-110_48-ppc  Tag: leunga-110_48-ppc
# Line 22  Line 1268 
1268    
1269  ----------------------------------------------------------------------  ----------------------------------------------------------------------
1270  Name: Matthias Blume (blume (at) tti - c (dot) org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
1271  Date: 2004/10/04 12:00:00 CDT  Date: 2004/08/10 12:00:00 CDT
1272  Tag: Release_110_48  Tag: Release_110_48
1273  Description:  Description:
1274    

Legend:
Removed from v.1613  
changed lines
  Added in v.1882

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