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 1348, Fri Aug 29 17:06:53 2003 UTC revision 1642, Thu Oct 7 21:00:04 2004 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16  Name: Matthias Blume (blume@tti-c.org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
17    Date: 2004/10/07 16:00:00 CDT
18    Tag: blume-20041007-cleanup
19    Description:
20    
21    Assorted cleanup work:
22    
23      - got rid of intstrmap in favor of using the library's
24        hash table implementation
25      - threw out most of the pathnames stuff, as it was not used anyway
26      - simplified tokentable implementation
27      - fixed some minor spelling errors
28    
29    ----------------------------------------------------------------------
30    Name: Matthias Blume (blume (at) tti - c (dot) org)
31    Date: 2004/10/06 15:15:15 CDT
32    Tag: blume-20041006-handler
33    Description:
34    
35    Cleaned up the absyn to reflect the invariant that HANDLE always
36    carries a FNexp as part of the type definition.  This eliminates some
37    superfluous sanity checks at runtime down the road.
38    
39    Some minor cleanup of the btrace code.
40    
41    ----------------------------------------------------------------------
42    Name: Matthias Blume (blume (at) tti - c (dot) org)
43    Date: 2004/10/01 10:20:30 CDT
44    Tag: blume-20041001-slave
45    Description:
46    
47    Added hack to make slave mode work in the presence of the version
48    tool.  (Still, since the master does two passes over the code for
49    CMB.make, the release number gets bumped twice when slaves are
50    attached.  I don't know if this is worth fixing...)
51    
52    ----------------------------------------------------------------------
53    Name: Matthias Blume (blume (at) tti - c (dot) org)
54    Date: 2004/09/30 10:55:00 CDT
55    Tag: blume-20040930-version
56    Description:
57    
58    * Moved the "version" magic into its own little library under
59    src/system/smlnj/internal.  This avoids expensive reconstruction
60    of a stable src/compiler/core.cm.
61    
62    * At the same time, structure CompilerVersion is now known as structure
63    SMLNJVersion.
64    
65    * Arranged for the version tool to NOT kick in when rebuilding the system
66      (makeml -rebuild, fixpt).  Otherwise one would never reach a fixpoint.
67      Also, loading the versiontool does not work when rebuilding the system
68      because CM is not properly initialized at that time.
69    
70    ----------------------------------------------------------------------
71    Name: Matthias Blume (blume (at) tti - c (dot) org)
72    Date: 2004/09/29 14:00:00 CDT
73    Tag: blume-20040929-autoversion
74    Description:
75    
76    Implemented some CM magic to have
77        file src/compiler/TopLevel/main/version.sml
78    generated automagically.
79    The version is taken from two files: config/version and config/release.
80    The first is expected to contain a two-part version number such as 110.49.
81    The second should contain a single number, but it may be missing.
82    
83    If the environment variable VERSIONTOOL_BUMP_RELEASE is defined at the
84    time the version tool is loaded (which is the first time you say CMB.make),
85    then the tool will increment the value stored in config/release every
86    time CMB.make is invoked.
87    
88    The binfile format is now insensitive to anything beyond the first
89    two components of a version number, so bumping the release does not render
90    binfiles incompatible.  Auto-bumping can be used to keep track of versions
91    during development without invalidating existing binfiles.
92    
93    In any case, every CMB.make updates the date information in version.sml.
94    (This is the date that is printed in the banner.)
95    
96    ----------------------------------------------------------------------
97    Name: Matthias Blume (blume (at) tti - c (dot) org)
98    Date: 2004/09/28 10:53:00 CDT
99    Tag: blume-20040928-controls
100    Description:
101    
102    Some cleanup of the controls code.
103    
104    ----------------------------------------------------------------------
105    Name: Matthias Blume (blume (at) tti - c (dot) org)
106    Date: 2004/09/27 22:08:00 CDT
107    Tag: blume-20040927-controls
108    Description:
109    
110    Added two pieces of functionality to the Controls interface:
111    
112    1.   val save'restore: 'a control -> unit -> unit
113    
114       grabs the current value of the control in stage 1 and restores it
115       in stage 2.
116    
117    2.   val set' : 'a control * 'a -> unit -> unit
118    
119       stores the given value into the control in stage 2 (i.e., delayed)
120       but does all error checking in stage 1.
121       (This is for string controls that need to do parse their argument --
122        something that might fail.  In some cases, notably in CM, one
123        already knows the intended argument but wants to delay the actual
124        assignment until a time when error recovery would be more difficult.)
125    
126    Changed the handling of controls in tool arguments to classes "sml" and
127    "lazysml":
128       - use Controls.save'restore as a more robust way of restoring the
129         old value (in particular: without having to re-parse the string)
130       - use controls to handle the "overload" keyword in the init group
131         (I believe this change actually fixes a long-standing obscure bug.)
132    
133    ----------------------------------------------------------------------
134    Name: Matthias Blume (blume (at) tti - c (dot) org)
135    Date: 2004/09/27 17:00:00 CDT
136    Tag: blume-20040927-lazysml
137    Description:
138    
139    Added a new tool class called "lazysml" to CM's tool chest.  The only
140    difference to "sml" is that compilation is done with Control.lazysml
141    set to true.  A source of class "lazysml" is automatically recognized
142    by a file name suffix of ".lml".
143    
144    In addition to the above feature, the original class "sml" now also
145    supports a tool argument "lazy" which has the same effect.  As a
146    result, the following three lines are equivalent:
147    
148        foo.sml : lazysml
149        foo.sml : sml (lazy)
150        foo.sml (lazy)
151    
152    The setting goes into effect both during parsing and during
153    compilation.  The original setting is restored right after parsing and
154    after compilation, respectively.
155    
156    In addition to all the above, there is also a general mechanism to set
157    ANY of the "controls" that are available at the command line via
158    "-C..." on a per-sml-file basis.  The same rules that apply for "lazy"
159    apply as well. (In fact, "lazy" is implemented as a special case of
160    the general mechanism.)
161    
162    The .cm file syntax uses a new keyword tool argument called "with".
163    There are several ways of indicating the desired settings:
164    
165        foo.sml (with:parser.quotations=true)
166        foo.sml (with:(name:parser.quotations value:true))
167        foo.sml (with:(name:name1 value:value1 name:name2 value:value2 ...))
168        foo.sml (with:(name1=value1 name2=value2 ...))
169        foo.sml (with:(name1=value1 name:name2 value:value2 name3=value3 ...))
170    
171        etc.
172    
173    Another possible abbreviation is to leave out the =v or value:v part
174    if the name refers to a boolean control (in which case the value is
175    taken to be true).  Thus, one could get lazy sml also by saying:
176    
177        foo.sml (with:parser.lazy-keyword=true)
178        foo.sml (with:parser.lazy-keyword)
179        foo.sml (with:(name:parser.lazy-keyword value:true))
180        foo.sml (with:(name:parser.lazy-keyword))
181    
182    ----------------------------------------------------------------------
183    Name: Matthias Blume (blume (at) tti - c (dot) org)
184    Date: 2004/09/24 16:22:00 CDT
185    Tag: blume-20040924-ppc-long-branch
186    Description:
187    
188    Turned message about "emiting long form of branch" off by default.
189    Added a control flag to turn it back on when desired.
190    
191    ----------------------------------------------------------------------
192    Name: Matthias Blume (blume (at) tti - c (dot) org)
193    Date: 2004/09/24 16:05:00 CDT
194    Tag: blume-20040924-rounding
195    Description:
196    
197    Applied patch for setting rounding modes under Mac OS X.  Thanks to
198    Melissa O'Neill for providing the code!
199    
200    ----------------------------------------------------------------------
201    Name: Matthias Blume (blume (at) tti - c (dot) org)
202    Date: 2004/09/23 17:30:00 CDT
203    Tag: blume-20040923-envvars
204    Description:
205    
206    1. Changed definition of type ControlRegistry.registry_tree to
207       include control_info (i.e., the name of the controlling environment
208       variable).
209    
210    2. Added command-line flags -e and -E to print the names of environment
211       variables that can be used to control internal settings.
212       (This uses the new API mentioned in 1.)
213    
214    ----------------------------------------------------------------------
215    Name: Matthias Blume (blume (at) tti - c (dot) org)
216    Date: 2004/09/13 16:50:00 CDT
217    Tag: Release_110_49
218    Description:
219    
220    New working version (110.49).  NEW BOOTFILES!
221    
222    ----------------------------------------------------------------------
223    Name: Matthias Blume
224    Date: 2004/09/13 16:20:00 CDT
225    Tag: blume-20040913-config-mlrisc
226    Description:
227    
228    Put target "mlrisc" back into the default list.
229    (There is no harm in having it, and some users have expressed their
230    wish to have "mlrisc" included by default.)
231    
232    ----------------------------------------------------------------------
233    Name: John Reppy
234    Date: 2004/09/13
235    Tag: jhr-20040913-signals
236    Description:
237    
238    Fixed the signal masking code to properly nest mask/unmask operations
239    on a per-signal basis.
240    
241    ----------------------------------------------------------------------
242    Name: Matthias Blume (blume (at) tti - c (dot) org)
243    Date: 2004/09/08 13:20:00 CDT
244    Tag: blume-20040908-heap-magic
245    Description:
246    
247    Bumped the heap macig number to 0x09082004 to account for the changed
248    layout of the ML frame under MacOS X.
249    
250    ----------------------------------------------------------------------
251    Name: Allen Leung (leunga (at) reservoir (dot) com)
252    Date: 2004/09/03 11:26:00 EST
253    Tag: leunga-20040903-cygwin-install
254    Description:
255    
256       Added a patch to _arch-n-opsys to enable the Cygwin runtime.
257    The Cygwin runtime is turned on by setting the environment
258    variable SMLNJ_CYGWIN_RUNTIME to 1.
259    
260    ----------------------------------------------------------------------
261    Name: Matthias Blume (blume (at) tti - c (dot) org)
262    Date: 2004/08/31 17:15:00 CDT
263    Tag: blume-20040831-core
264    Description:
265    
266    Added some exports to src/compiler/core.cm upon request by J. Joemann.
267    
268    ----------------------------------------------------------------------
269    Name: Matthias Blume (blume (at) tti - c (dot) org)
270    Date: 2004/08/30 17:55:00 CDT
271    Tag: blume-20040830-installer
272    Description:
273    
274    Upon request by Johannes Joemann:
275    
276    - improved ML code of installer to fall back to coping when renaming
277      fails (i.e., when source and target are on different file systems);
278      the code compiles but has yet to be tested in anger
279    - removed mlrisc from list of default targets (config/targets)
280    
281    ----------------------------------------------------------------------
282    Name: Matthias Blume (blume (at) tti - c (dot) org)
283    Date: 2004/08/27 17:20:00 CDT
284    Tag: blume-20040827-ptreql
285    Description:
286    
287    Added ptreql primop to structure InlineT (upon request from Larry
288    Paulson).
289    
290    ----------------------------------------------------------------------
291    Name: Allen Leung (leunga (at) reservoir (dot) com)
292    Date: 2004/08/15 21:21:00 EST
293    Tag: leunga-110_48-udgraph
294    Description:
295    
296    Another bug fix from Carl Hauser:
297    
298    diff /net/niflab/smlnj48/src/MLRISC/graphs/udgraph.sml udgraph.sml
299    > 48c48
300    > <              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then es else
301    > e::L)
302    > ---
303    > >              | rmv((e as (k,_))::es,L) = rmv(es,if k = i then L else e::L)
304    > Without this, any deletion of an edge in an undirected graph does severe
305    > violence to the graph.
306    
307    ----------------------------------------------------------------------
308    Name: Allen Leung (leunga (at) reservoir (dot) com)
309    Date: 2004/08/10 23:35:00 EST
310    Tag: leunga-110_48-ppc
311    Description:
312    
313       The IBM/MacOS syntax switch on PPC was incorrectly swapped.
314    
315    ----------------------------------------------------------------------
316    Name: Matthias Blume (blume (at) tti - c (dot) org)
317    Date: 2004/08/10 12:00:00 CDT
318    Tag: Release_110_48
319    Description:
320    
321    New working version (110.48).  NEW BOOTFILES!
322    
323    ----------------------------------------------------------------------
324    Name: Allen Leung (leunga (at) reservoir (dot) com)
325    Date: 2004/08/09 12:21:00 EST
326    Tag: leunga-110_47-dijsktra
327    Description:
328    
329    Bug fix from Carl Hauser:
330    
331    single_source_shortest_paths in dijkstra.sml was observed to get wrong
332    answers (by comparing to single_source_shortest_paths in bellman-ford.sml).
333    
334    The problem is that following the expression A.update(dist,s,Num.zero)
335    it is necessary to update the priority queue using Q.decreaseWeight(Q,s).
336    
337    ----------------------------------------------------------------------
338    Name: Matthias Blume (blume (at) tti - c (dot) org)
339    Date: 2004/08/06 18:10:00 CDT
340    Tag: blume-20040806-cmdline
341    Description:
342    
343    Fiddled with handling of command-line options:
344    
345      * sml now quits after processing the command line
346        if -H, -S, -h<n>, or -s<n> appears as the last
347        command-line argument
348      * a new option -q terminates the session when encountered on
349        the command line; subsequent arguments will be ignored
350      * bug fixes: short (erroneous) arguments are no longer ignored
351        completely
352    
353    ----------------------------------------------------------------------
354    Name: Allen Leung (leunga (at) reservoir (dot) com)
355    Date: 2004/08/04 18:17:00 EST
356    Tag: leunga-110_47-ppc-ibm-asm
357    Description:
358    
359      - Added minimal IBM assembly syntax support for PowerPC.
360    
361      - Cygwin: manually changed the file cygwin.def.  Some exported symbols have
362        been altered in the runtime.  We need an automatic way to keep the file
363        in sync.
364    
365    ----------------------------------------------------------------------
366    Name: Matthias Blume (blume (at) tti - c (dot) org)
367    Date: 2004/08/04 14:00:00 CDT
368    Tag: Release_110_47
369    Description:
370    
371    New working version (110.47).  NEW BOOTFILES!
372    
373    ----------------------------------------------------------------------
374    Name: Matthias Blume (blume (at) tti - c (dot) org)
375    Date: 2004/08/03 14:25:00 CDT
376    Tag: blume-20040803-callingconv
377    Description:
378    
379    Added low-level support for choosing C calling conventions by
380    twiddling the type of rawccall.  (See
381    src/compiler/Semant/types/cproto.sml for details.)
382    
383    ----------------------------------------------------------------------
384    Name: Matthias Blume (blume (at) tti - c (dot) org)
385    Date: 2004/08/02 15:55:00 CDT
386    Tag: blume-20040802-backout
387    Description:
388    
389    Backed out of change to win32-filesys.c.  The earlier patch to
390    get_file_time caused CM to produce files with the wrong time stamp.
391    
392    ----------------------------------------------------------------------
393    Name: Matthias Blume (blume (at) tti - c (dot) org)
394    Date: 2004/08/02 14:45:00 CDT
395    Tag: blume-20040802-nlffi-win32
396    Description:
397    
398    Added NLFFI support for Win32, adapted from a patch provided by David
399    Hansel.  This is currently completely untested.  Also, the issue
400    concerning stdcall vs. ccall is still unresolved.
401    
402    ----------------------------------------------------------------------
403    Name: Matthias Blume (blume (at) tti - c (dot) org)
404    Date: 2004/07/30 17:55:00 CDT
405    Tag: blume-20040730-various
406    Description:
407    
408    Gearing up towards 110.47...
409    
410    - various minor bugfixes to ml-nlffigen
411    - a beginning of a manual for nlffi
412    
413    - eliminated 'export name=value' in config/install.sh as this does
414      not work with certain versions of /bin/sh
415      (Thanks to David King at Motorola for catching this.)
416    
417    - several bugfixes provided or suggested by David Hansel at Reactive Systems:
418      - added a test for tm==NULL to gmtime.c and localtime.c
419      - applied patch for incorrect GetFileTime under win32
420      - toSeconds -> toMilliseconds in Win32/win32-process.sml
421    
422    ----------------------------------------------------------------------
423    Name: Matthias Blume (blume (at) tti - c (dot) org)
424    Date: 2004/07/21 18:20:00 CDT
425    Tag: blume-20040721-nlffigen
426    Description:
427    
428    - Fixed minor issue in ml-nlffigen: Now generate structure T_foo
429      for a typedef to an incomplete type, but leave out the "typ" member.
430      (This is just for consistency.)
431    - Started to produce what is supposed to become better (i.e., comprehensive)
432      documentation of what ml-nlffigen does and produces.
433    
434    ----------------------------------------------------------------------
435    Name: Matthias Blume (blume (at) tti - c (dot) org)
436    Date: 2004/07/14 16:25:00 CDT
437    Tag: blume-20040714-union
438    Description:
439    
440    Added C_UNION to c-calls/c-types.sml and updated the machinery
441    (ml-nlffigen, cproto.sml) that conveys C function interface
442    information to the code generator.
443    
444    However, the actual architecture-specific implementation of function
445    arguments and results that are C unions is still not implemented.
446    
447    ----------------------------------------------------------------------
448    Name: Allen Leung (leunga (at) reservoir (dot) com)
449    Date: 2004/07/14 14:38:00 EST
450    Tag: leunga-110_46_1-ppc-lwzu
451    Description:
452    
453        Added these instructions to the PowerPC architecture:
454        LBZU(X), LHZU(X), LWZU(X),
455        STWU(X), STFDU, STFSU
456    
457        etc...
458    
459        Note: I haven't added their instruction encoding into the description.
460    
461    ----------------------------------------------------------------------
462    Name: Allen Leung (leunga (at) reservoir (dot) com)
463    Date: 2004/07/13 15:04:00 EST
464    Tag: leunga-110_46_1-ppc-lwarx
465    Description:
466    
467       Added the two instructions LWARX and STWCX to the PowerPC
468    instruction set.
469    
470       A (untested) rewrite of loop-structure.sml.  The old version
471    is completely broken.
472    
473    ----------------------------------------------------------------------
474    Name: Matthias Blume (blume (at) tti - c (dot) org)
475    Date: 2004/07/13 13:50:00 CDT
476    Tag: blume-20040713-nlffi
477    Description:
478    
479    - use paramAlloc to report c-calls with too many arguments
480      (for PPC version where parameter area is pre-allocated)
481    - added ccall_maxargspace to machspec (to implement the above)
482    - made "make" commend in CM's "make" tool configurable
483    - added option (default: on) for passing the name of the SML/NJ's "bin"
484      directory to "make"; the call looks like this:
485    
486         make <options> SMLNJ_BINDIR=<dir> <target>
487    
488      This can be used by the Makefile to, e.g., pick the "right" version
489      of ml-nlffigen.
490    - minor code tweaks
491    
492    ----------------------------------------------------------------------
493    Name: Matthias Blume (blume (at) tti - c (dot) org)
494    Date: 2004/07/12 22:50:00 CDT
495    Tag: blume-110_46_1-macosx-nlffi
496    Description:
497    
498    NLFFI under Mac OS X now working (sort of).  This is largely untested,
499    though.
500    
501    Note:  1. You have to make a new, clean build of the runtime system.
502           2. There are new BOOTFILES, you have to use them!
503              (Doing the bootstrap process yourself would be *very* painful!
504               If you absolutely have to do it, build the system under
505               a different architecture and then cross-compile.)
506    
507    Version bumped to 110.46.1 to account for runtime data format changes.
508    
509    ----------------------------------------------------------------------
510    Name: Matthias Blume (blume (at) tti - c (dot) org)
511    Date: 2004/06/18 14:30:00 CDT
512    Tag: blume-20040618-unix
513    Description:
514    
515    Changed the implementation of structure Unix so that the same stream
516    is returned every time one of the {text,bin}{In,Out}streamOf functions
517    is invoked on the same proc.  This is not what the spec currently
518    says -- although IMO it arguably should.  (See discussion below.)
519    
520    ----------------------------------------------------------------------
521    Name: Matthias Blume (blume (at) tti - c (dot) org)
522    Date: 2004/06/17 18:15:00 CDT
523    Tag: Release_110_46
524    Description:
525    
526    New working version (110.46).  NEW BOOTFILES!
527    
528    ----------------------------------------------------------------------
529    Name: Matthias Blume (blume (at) tti - c (dot) org)
530    Date: 2004/06/17 17:20:00 CDT
531    Tag: blume-20040617-timer-unix
532    Description:
533    
534    Changed the interface of structures Timer and Unix to match the most
535    recent Basis spec.
536    
537    In the case of Unix there still seems to be an open/weird issue:
538    
539       The {text,bin}{In,Out}streamOf functions are supposed to create
540       fresh streams whenever they are called -- as opposed to have them
541       return the same stream every time.  This design is supposed to
542       prevent space leaks caused by proc values hanging on to streams.
543    
544       The reap function, on the other hand, is supposed to close the
545       streams.  This cannot be done without having a handle on the
546       stream in proc after all...
547    
548    I took the liberty to implement the following stopgap solution:
549    
550      The proc value hangs on to the most recently created stream(s).
551      Reap closes those.  If either or both of the two streams hadn't
552      been created at all yet, then reap will close the corresponding
553      file descriptors directly.
554    
555    PS: I don't understand the original space leak argument anymore.  If
556    a proc hangs on to the imperative stream, then I/O operations on those
557    will advance the state of the cached stream and avoid the space leak.
558    
559    ----------------------------------------------------------------------
560    Name: Matthias Blume (blume (at) tti - c (dot) org)
561    Date: 2004/05/28 16:45:00 CDT
562    Tag: blume-20040528-basis
563    Description:
564    
565    Added signature PACK_REAL and exported functor PrimIO.
566    
567    ----------------------------------------------------------------------
568    Name: Matthias Blume (blume (at) tti - c (dot) org)
569    Date: 2004/05/25 16:00:00 CDT
570    Tag: blume-20040525-group-owner
571    Description:
572    
573    CM now ignores (but still accepts) the "owner" information in group
574    descriptions.  The owner of a group is its next enclosing
575    library. Each group must have a unique owner.  (There is a virtual
576    "toplevel" library that owns groups which are not nested within a real
577    library.)  Previously, each group had to explicitly declare its owner,
578    and CM would check that such a declaration is correct.  The new scheme
579    is to have CM check that for each group there is precisely one owning
580    library.
581    
582    The advantage of the new scheme is that the programmer no longer needs
583    to maintain the somewhat annoying owner information.  The downside is
584    that CM cannot enforce the ownership rule across multiple runs of
585    CM.make.  Fortunately, enclosing the same group in two different
586    libraries A and B which are not part of the same program does not
587    cause real problems.
588    
589    ----------------------------------------------------------------------
590    Name: Matthias Blume (blume (at) tti - c (dot) org)
591    Date: 2004/05/20 16:00:00 CDT
592    Tag: blume-20040520-win32
593    Description:
594    
595    Made the win32 version work again.  (Strangely, a misplaced comma had
596    slipped into win32-process.c which prevented the runtime from being
597    compiled correctly.)
598    
599    Also, included a minor addition to ml-build.bat analogous to what was
600    done in blume-20040519-ml-build.
601    
602    ----------------------------------------------------------------------
603    Name: Matthias Blume (blume (at) tti - c (dot) org)
604    Date: 2004/05/19 22:10:00 CDT
605    Tag: blume-20040519-ml-build
606    Description:
607    
608    Arranged for ml-build to clean up after itself a little bit better.
609    The script generates a temporary SML source file and compiles it using
610    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
611    gets rid of those at the end, so they don't accumulate under .cm.
612    
613    This required a minor change to install.sh because the name of the
614    metadata directory (default: .cm) is actually configurable at
615    installation time.
616    
617    ----------------------------------------------------------------------
618    Name: Matthias Blume (blume (at) tti - c (dot) org)
619    Date: 2004/05/18 15:50:00 CDT
620    Tag: blume-20040518-mkreader
621    Description:
622    
623    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
624    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
625    
626    ----------------------------------------------------------------------
627    Name: Matthias Blume (blume (at) tti - c (dot) org)
628    Date: 2004/05/11 14:35:00 CDT
629    Tag: blume-20040511-win32sock
630    Description:
631    
632    Added previously missing support for many socket-related functions
633    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
634    for the voluminous patch!
635    
636    (I have not tested this patch under win32 yet.)
637    
638    Here is David's e-mail:
639    
640    Hi,
641    
642    Attached to this email you find a diff against sml/nj 110.45
643    that will enable socket support under Windows.
644    
645    To apply the patch (using unix or cygwin)
646    1) gunzip runtime.diff.gz
647    2) "cd" into "src/runtime" in the source tree of a fresh
648       110.45 installation.
649    3) patch -p 1 < [your/path/to]runtime.diff
650    
651    The code compiles fine but has NOT yet been extensively tested.
652    I only ran a few tests for basic socket client functionality
653    (which worked fine).  Especially the functions that use ioctl
654    are not tested at all and might not work (see below).
655    
656    I implemented this since we want to move to a newer version of sml/nj
657    but need socket support in order to use it.  This is the first time I
658    even had a look at the sml/nj source,  so please review my changes
659    before making this part of the distribution!  Here are a few issues
660    that I think might be better for someone to solve who is more
661    familiar with the sml/nj source (and socket programming):
662    
663    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
664      exception since I could not figure out what the windows equivalent
665      of these functions is
666    
667    - In sockets-osdep.h there are a some #include statements that are
668      only used in a few files that include sockets-osdep.h
669    
670    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
671      does not process its return value since I don't know how to
672      report an error upwards.
673    
674    - It would probably be good to have a call to WSACleanup() when
675      the library is unloaded (if there is such a possibility).
676      Otherwise I think Windows will take care of this automatically
677      when the process finishes.
678    
679    - I used ioctlsocket() as a replacement for ioctl() but I have
680      no idea if that is actually the proper replacement on Windows.
681    
682    - All these issues are marked in the code by "FIXME" comments.
683    
684    We use sml/nj extensively in our products and are quite happy
685    with it.  I hope this contribution will help you.
686    
687    Keep up the good work!
688    
689    David
690    
691    ----------------------------------------------------------------------
692    Name: Matthias Blume (blume (at) tti - c (dot) org)
693    Date: 2004/05/11 14:20:00 CDT
694    Tag: blume-20040511-installml
695    Description:
696    
697    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
698    the patch.)
699    
700    ----------------------------------------------------------------------
701    Name: Matthias Blume (blume (at) tti - c (dot) org)
702    Date: 2004/05/11 14:05:00 CDT
703    Tag: blume-20040511-nlffi-netbsd
704    Description:
705    
706    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
707    the patch.)
708    
709    ----------------------------------------------------------------------
710    Name: Matthias Blume (blume (at) tti - c (dot) org)
711    Date: 2004/05/11 12:05:00 CDT
712    Tag: blume-20040511-exports
713    Description:
714    
715    As per request by Adam Chlipala <adam@hcoop.net>, extended various
716    export lists in compiler-related .cm-files.
717    
718    ----------------------------------------------------------------------
719    Name: Matthias Blume (blume (at) tti - c (dot) org)
720    Date: 2004/05/11 11:35:00 CDT
721    Tag: blume-20040511-allsource
722    Description:
723    
724    The installer now honors the "src-smlnj" target again, although its meaning
725    has changed from "all sources required for the compiler" to "all sources
726    the installer knows about".  In other words, if you enable "src-smlnj"
727    in the "targets" file, then the installer will pull in sources for
728    everything.  (Notice that this refers to source code only.  Compiled
729    code is still only installed for modules that were requested explicitly
730    or which are required for other modules that were requested explicitly.)
731    
732    ----------------------------------------------------------------------
733    Name: Matthias Blume (blume (at) tti - c (dot) org)
734    Date: 2004/04/23 17:40:00 CDT
735    Tag: blume-20040423-ieee-scan
736    Description:
737    
738    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
739    in the exponent calculation we get INF or ZERO (depending on the mantissa
740    and the sign of the exponent).
741    
742    ----------------------------------------------------------------------
743    Name: Matthias Blume (blume (at) tti - c (dot) org)
744    Date: 2004/04/23 10:40:00 CDT
745    Tag: blume-20040423-ml-build
746    Description:
747    
748    The ml-build script now terminates with a non-0 status when something
749    goes wrong.
750    
751    ----------------------------------------------------------------------
752    Name: Matthias Blume (blume (at) tti - c (dot) org)
753    Date: 2004/04/22 16:35:00 CDT
754    Tag: blume-20040422-Option
755    Description:
756    
757    Made exception Option to be the same as exception Option.Option
758    (as it should be).
759    
760    ----------------------------------------------------------------------
761    Name: Allen Leung (leunga (at) reservoir (dot) com)
762    Date: 2004/03/19 14:40:00 EST
763    Tag: leunga-20040319-cygwin-nlffi
764    Description:
765    
766    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
767    of SML/NJ.  The problem is that
768    
769       lib = dlopen(NULL, ...)
770       f   = dlsym(lib, "malloc");
771    
772    does not work on Windows unless we explicitly export symbols
773    such as 'malloc' during linking.  We fixed this by explicitly
774    exporting the required symbols with the magic gcc incantation:
775    
776        -Wl,--export-all cygwin.def
777    
778    where cygwin.def is a file containing all the symbols that
779    we wish to export.
780    
781    I suspect this is a Windows problem and we'll have to
782    do the same (somehow with windows compilers) when
783    we build the native win32 version with the system
784    calls LoadLibrary/GetProcAddress.
785    
786    ----------------------------------------------------------------------
787    Name: Matthias Blume (blume (at) tti - c (dot) org)
788    Date: 2004/03/04 16:35:00 CST
789    Tag: blume-20040304-intinf-fmt
790    Description:
791    
792    Fixed problem with IntInf.fmt (sign would show up on the right instead
793    of on the left for BIN, OCT, and HEX).
794    
795    ----------------------------------------------------------------------
796    Name: Matthias Blume (blume (at) tti - c (dot) org)
797    Date: 2004/03/04 11:25:00 CST
798    Tag: blume-20040304-symlinks
799    Description:
800    
801    Fixed problem with installer script (unix only) where bin/ml-yacc and
802    friends pointed (via symlinks) to absolute locations instead of just
803    .run-sml.  This was reported by Vesa A Norrman.
804    
805    ----------------------------------------------------------------------
806    Name: Matthias Blume (blume (at) tti - c (dot) org)
807    Date: 2004/02/13 14:50:00 CST
808    Tag: Release_110_45
809    Description:
810    
811    New working version (110.45). New bootfiles.
812    
813    ----------------------------------------------------------------------
814    Name: Matthias Blume (blume (at) tti - c (dot) org)
815    Date: 2004/01/26 15:15:15 CST
816    Tag: blume-20040126-toplevel
817    Description:
818    
819    Improved handling of exceptions at the interactive toplevel.
820    
821    ----------------------------------------------------------------------
822    Name: Matthias Blume (blume (at) tti - c (dot) org)
823    Date: 2004/01/26 11:25:00
824    Tag: blume-20040126-app
825    Description:
826    
827    Type of top-level "app" corrected.
828    Added code for setting vp_limitPtrMask to Win32-specific runtime.
829    
830    ----------------------------------------------------------------------
831    Name: Matthias Blume (blume (at) tti - c (dot) org)
832    Date: 2003/11/18 17:10 CST
833    Tag: blume-20031118-basis-fiddle
834    Description:
835    
836    - changed Timer interface to what might become the spec
837    - POSIX_FLAGS -> BIT_FLAGS according to spec
838    - some other minor discrepancies wrt. spec eliminated
839    
840    ----------------------------------------------------------------------
841    Name: Matthias Blume (blume (at) tti - c (dot) org)
842    Date: 2003/11/06 12:00:00 CST
843    Tag: Release_110_44
844    Description:
845    
846    New working version (110.44). New bootfiles.
847    
848    ----------------------------------------------------------------------
849    Name: Matthias Blume (blume (at) tti - c (dot) org)
850    Date: 2003/11/04 11:50:00 CST
851    Tag: blume-20031104-move-libraries
852    Description:
853    
854    Eliminated the "dont_move_libraries" directive in config/targets.
855    (The mechanism was broken and could not be fixed easily.  Moreover,
856    there does not seem to be any reason not to move all libraries into
857    lib during installation.  I originally implemented this directive as a
858    backward-compatibility feature when I first introduced the new CM.
859    Now that things have been stable for a long time and going back to the
860    old CM is not an option, there is no reason to keep it around.)
861    
862    ----------------------------------------------------------------------
863    Name: Matthias Blume (blume (at) tti - c (dot) org)
864    Date: 2003/11/03 16:00:00 CST
865    Tag: blume-20031103-installdir
866    Description:
867    
868    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
869    Richards for pointing out the problem and providing the solution.)
870    
871    ----------------------------------------------------------------------
872    Name: Matthias Blume (blume (at) tti - c (dot) org)
873    Date: 2003/10/01 17:05:00 CDT
874    Tag: blume-20031001-lal-mlrisc
875    Description:
876    
877    MLRISC bug fix from Lal.
878    
879    ----------------------------------------------------------------------
880    Name: Matthias Blume (blume (at) tti - c (dot) org)
881    Date: 2003/09/30 16:10:00 CDT
882    Tag: blume-20030930-primio-bat
883    Description:
884    
885    1. Added openVector, nullRd, and nullWr to PRIM_IO.
886    2. Improved .bat files (for Win32 port) to make things work under Win95.
887       (thanks to Aaron S. Hawley for this one)
888    
889    ----------------------------------------------------------------------
890    Name: Matthias Blume (blume (at) tti - c (dot) org)
891    Date: 2003/09/26 16:05:00 CDT
892    Tag: blume-20030926-wrappriv
893    Description:
894    
895    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
896    
897    ----------------------------------------------------------------------
898    Name: Matthias Blume (blume (at) tti - c (dot) org)
899    Date: 2003/09/26 15:00:00 CDT
900    Tag: blume-20030926-110_43_3
901    Description:
902    
903    - additional cleanup
904    - version number bump, NEW BOOTFILES
905    
906    ----------------------------------------------------------------------
907    Name: Matthias Blume (blume (at) tti - c (dot) org)
908    Date: 2003/09/26 12:00:00 CDT
909    Tag: blume-20030926-ppautoload
910    Description:
911    
912    I modified the read-eval-print loop so that the autoloader gets
913    invoked whenever the prettyprinter tries to look up a symbol that
914    is not currently defined in the toplevel environment but which
915    appears in CM's autoload registry.  As a result, we see far fewer of
916    those ?.Foo.Bar.xxx names in the prettyprinter's output.
917    
918    In addition to this I tried to clean up some pieces of the Basis
919    implementation (e.g., Socket, Word8Array) in order to prevent other
920    instances of these ?.Foo.Bar.xxx names from being printed.
921    
922    The mechanism that picks names for types still needs some work, though.
923    (Right now it seems that if there is a type A.t which is defined to
924    be B.u, but B is unavailable at toplevel, then A.t gets printed as
925    "?.B.u" although the perhaps more sensible solution would be to use
926    "A.t" in this case.  In other words, the prettyprinter should follow
927    a chain of DEFtycs not farther than there are corresponding toplevel
928    names in the current environment.)
929    
930    ----------------------------------------------------------------------
931    Name: Matthias Blume (blume (at) tti - c (dot) org)
932    Date: 2003/09/24 16:31:00 CDT
933    Tag: blume-20030924-installer
934    Description:
935    
936    Another installer tweak:  All the ML code for the installer is now
937    compiled during CMB.make and put into a little library called
938    $smlnj/installer.cm.  The installation then simply invokes
939    
940       sml -m $smlnj/installer.cm
941    
942    and everything happens automagically.
943    
944    Win32:  ML code senses value of environment variable SMLNJ_HOME.
945    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
946            and BINDIR.
947    
948    The new scheme guarantees that the ML code responsible for the installation
949    is in sync with the APIs of the main system.  Also, the installer is
950    somewhat faster because the installer script is precompiled.
951    
952    ----------------------------------------------------------------------
953    Name: Matthias Blume (blume (at) tti - c (dot) org)
954    Date: 2003/09/24 15:35:00 CDT
955    Tag: blume-20030924-synsock
956    Description:
957    
958    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
959    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
960    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
961    implementations of non-blocking operations from CML's Socket
962    structure.
963    
964    ----------------------------------------------------------------------
965    Name: Matthias Blume (blume (at) tti - c (dot) org)
966    Date: 2003/09/24 15:10:05 CDT
967    Tag: blume-20030924-sockets
968    Description:
969    
970    1. Fixed SOCKET API and implementation to match Basis spec.
971       This required changing the internal representation of sockets to one
972       that remembers (for each socket file descriptor) whether it is currently
973       blocking or non-blocking.  This state is maintained lazily (i.e., a system
974       call is made only if the state actually needs to change).
975    
976    2. OS-specific details of sockets were moved into separate files, thus
977       making it possible to unify the bulk of the socket implementations
978       between Unix and Win32.
979    
980    3. CML's socket API changed accordingly.
981       (Note that we need to remove non-blocking functions from this API
982       since they are redundant in the case of CML!)
983    
984    4. CML's socket implementation now makes use of non-blocking functions
985       provided by Basis, thus removing all OS-dependent code from this part
986       of CML.
987    
988    5. Changed Real64.precision from 52 to 53.  Minor cleanup in Real64 code.
989    
990    ----------------------------------------------------------------------
991    Name: Matthias Blume (blume (at) tti - c (dot) org)
992    Date: 2003/09/22 12:10:00 CDT
993    Tag: blume-20030922-110_43_2
994    Description:
995    
996    Made a new interim version and bootfiles for developer's bootstrapping
997    convenience.
998    
999       110.43.2 -- NEW BOOTFILES
1000    
1001    ----------------------------------------------------------------------
1002    Name: Matthias Blume (blume (at) tti - c (dot) org)
1003    Date: 2003/09/19 15:55:00 CDT
1004    Tag: blume-20030919-cmdir
1005    Description:
1006    
1007    1. new-install.sh -> install.sh
1008    2. changed default CM "metadata" directory name to ".cm" (instead of "CM")
1009    3. tweaked installer so that another name instead of .cm can be chosen
1010       at install time (by setting the CM_DIR_ARC environment variable
1011       during installation); once installation is complete, the name is
1012       fixed
1013    
1014    ----------------------------------------------------------------------
1015    Name: Matthias Blume (blume (at) tti - c (dot) org)
1016    Date: 2003/09/18 16:00:00 CDT
1017    Tag: blume-20030918-110_43_1
1018    Description:
1019    
1020    Made a new interim version and bootfiles for developer's bootstrapping
1021    convenience.
1022    
1023       110.43.1 -- NEW BOOTFILES
1024    
1025    ----------------------------------------------------------------------
1026    Name: Matthias Blume (blume (at) tti - c (dot) org)
1027    Date: 2003/09/18 15:20:00 CDT
1028    Tag: blume-20030918-misc
1029    Description:
1030    
1031    1. Exported fractionsPerSecond etc. from TimeImp (but not from Time as
1032       this seems to be controversial at the moment) and used those in
1033       Posix.ProcEnv.times.
1034    
1035    2. Added Time.{from,to}Nanoseconds to Time.
1036    
1037    3. Improved Real.{from,to}LargeInt by avoiding needless calculations.
1038       For example, fromLargeInt never needs to look at more than 3 "big
1039       digits" to get its 53 bits of precision.
1040    
1041    ----------------------------------------------------------------------
1042    Name: Matthias Blume (blume (at) tti - c (dot) org)
1043    Date: 2003/09/17 16:30:00 CDT
1044    Tag: blume-20030917-real32-slices
1045    Description:
1046    
1047    Added an entry to the primitive environment
1048    (compiler/Semant/statenv/prim.sml) for int32->real64 conversion and
1049    added code to compiler/CodeGen/main/mlriscGen.sml to implement it.
1050    
1051    Removed some of the "magic" constants in real64.sml and replaced them
1052    with code that generates these values from their corresponding
1053    integer counterparts.
1054    
1055    Made all(?) the slice-related changes to the Basis and made everything
1056    compile again...
1057    
1058    ----------------------------------------------------------------------
1059    Name: Matthias Blume (blume (at) tti - c (dot) org)
1060    Date: 2003/09/15 17:45:00 CDT
1061    Tag: blume-20030915-rbase
1062    Description:
1063    
1064    Fixed bug in Real.fromLargeInt.
1065    
1066    ----------------------------------------------------------------------
1067    Name: Matthias Blume (blume (at) tti - c (dot) org)
1068    Date: 2003/09/13 18:11:00 CDT
1069    Tag: blume-20030913-libinstall
1070    Description:
1071    
1072    Minor bugfix in config/libinstall (set anchor with path to
1073    standalone tool after installing it, otherwise libraries that
1074    need ml-lex or ml-yacc won't compile the first time the installer
1075    runs).
1076    
1077    ----------------------------------------------------------------------
1078    Name: Matthias Blume (blume (at) tti - c (dot) org)
1079    Date: 2003/09/12 11:45:00 CDT
1080    Tag: blume-20030912-various
1081    Description:
1082    
1083     - fixed bug in Real.toLargeInt
1084     - fixed bug in Posix.ProcEnv.times
1085     - changed inputLine functions to return an option
1086     - minor installer improvements / bugfixes
1087     - changed default @SMLalloc parameter for x86/celeron to 64k
1088    
1089    ----------------------------------------------------------------------
1090    Name: Matthias Blume (blume (at) tti - c (dot) org)
1091    Date: 2003/09/09 22:00:00 CDT
1092    Tag: Release_110_43
1093    Description:
1094    
1095        New working release 110.43.  New bootfiles.
1096    
1097    ----------------------------------------------------------------------
1098    Name: Matthias Blume (blume (at) tti - c (dot) org)
1099    Date: 2003/09/09 19:20:00 CDT
1100    Tag: blume-20030909-installer
1101    Description:
1102    
1103    Rewrote large parts of config/install.sh in SML (config/libinstall.sml).
1104    Modified config/install.bat to take advantage of it.  Also modified
1105    config/install.sh (and called it config/new-install.sh) to take advantage
1106    of it on Unix systems.  (The SML code is (supposed to be) platform-
1107    independent.)
1108    
1109    The installer can now install everything under Win32
1110    as well as under *nix as long as it compiles.
1111    
1112    Other changes:
1113    
1114      - made CML compile again under Win32
1115      - made eXene compile under Win32 (by providing a fake structure UnixSock
1116        and by using OS.Process.getEnv instead of Posix.ProcEnv.getenv)
1117      - fixed a bug in nowhere: it assumed that type OS.Process.status is the
1118        same as type int;  under Win32 it isn't
1119      - fixed some slice-related problems in the win32-specific parts of CML
1120      - added a functor argument "sameVol" to os-path-fn.sml in the Basis
1121        (under Win32, the volume name is case-insensitive, and the
1122        OS.Path code compares volume names for equality)
1123    
1124    ----------------------------------------------------------------------
1125    Name: Matthias Blume (blume (at) tti - c (dot) org)
1126    Date: 2003/09/08 11:55:00 CDT
1127    Tag: blume-20030908-fullpath
1128    Description:
1129    
1130    Made Win32 version of OS.FileSys.fullPath return current directory
1131    when given an empty string.  This is what the spec says, and incidentally,
1132    CM depends on it.  (CM otherwise goes into an infinite loop in certain
1133    cases when presented with the name of a non-existing .cm file.)
1134    
1135    ----------------------------------------------------------------------
1136    Name: Matthias Blume (blume (at) tti - c (dot) org)
1137    Date: 2003/09/04 16:30:00 CDT
1138    Tag: blume-20030905-slices-etc
1139    Description:
1140    
1141      1. Changed interface to vectors and arrays in Basis to match
1142         (draft) Basis spec.
1143      2. Added signatures and implementations of slices according to
1144         Basis spec.
1145      3. Edited source code throughout the system to make it compile again
1146         under 1. and 2.  (In some cases code had to be added to have it
1147         match the new signatures.)
1148      4. MLRISC should be backward-compatible: the copies of the originals
1149         of files that needed to change under 3. were retained, the .cm files
1150         check the compiler version number and use old versions when
1151         appropriate.
1152      5. Changed type of OS.FileSys.readDir and Posix.FileSys.readdir to
1153         dirstream -> string option (in accordance with Basis spec).
1154      6. When generating code that counts lines, ml-lex used function
1155         CharVector.foldli, taking advantage of its old interface.
1156         This has been replaced with the corresponding code from
1157         CharVectorSlice.  (html-lex must be re-lexed!)
1158      7. BitArray in smlnj-lib/Util has been extended/modified to match the
1159         new MONO_ARRAY signature.  (Do we need BitArraySlice?)
1160      8. Removed temporary additions (fromInternal, toInternal) from the
1161         (now obsolete) IntInf in smlnj-lib/Util.
1162      9. Cleaned up structure Byte.
1163     10. Added localOffset, scan, and fromString to Date (according to spec).
1164         Cleaned/corrected implementation of Date.
1165         (Still need to check for correctness; implement better canonicalizeDate.)
1166     11. Added "scan" to signature IEEE_REAL.
1167     12. Some improvements to IntInf [in particular: efficiency-hack for
1168         mod and rem when second operand is 2 (for parity checks).]
1169     13. Changed representation of type Time.time, using a single IntInf.int
1170         value counting microseconds.  This considerably simplified the
1171         implementation of structure Time.  We now support negative time
1172         values; scan and fromString handle signs.
1173     14. Functor PrimIO now takes two additional arguments (VectorSlice and
1174         ArraySlice).
1175    
1176    ----------------------------------------------------------------------
1177    Name: Matthias Blume (blume (at) tti - c (dot) org)
1178  Date: 2003/08/28 17:00:00 CDT  Date: 2003/08/28 17:00:00 CDT
1179  Tag: blume-20030828-intinf  Tag: blume-20030828-intinf
1180  Description:  Description:
# Line 100  Line 1261 
1261  has been added.  has been added.
1262    
1263  ----------------------------------------------------------------------  ----------------------------------------------------------------------
1264  Name: Matthias Blume (blume@tti-c.org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
1265  Date: 2003/08/11 15:45:00 CDT  Date: 2003/08/11 15:45:00 CDT
1266  Tag: blume-20030811-windows  Tag: blume-20030811-windows
1267  Description:  Description:
# Line 195  Line 1356 
1356  use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago.  use by MacQueen, (Lucasz) Zairek, and (George) Cao at uchicago.
1357    
1358  ----------------------------------------------------------------------  ----------------------------------------------------------------------
1359  Name: Matthias Blume (blume@tti-c.org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
1360  Date: 2003/05/27 16:55:00 CDT  Date: 2003/05/27 16:55:00 CDT
1361  Tag: blume-20030527-polyeq  Tag: blume-20030527-polyeq
1362  Description:  Description:
# Line 203  Line 1364 
1364  Tried to eliminated most cases of polymorphic equality.  Tried to eliminated most cases of polymorphic equality.
1365    
1366  ----------------------------------------------------------------------  ----------------------------------------------------------------------
1367  Name: Matthias Blume (blume@tti-c.org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
1368  Date: 2003/05/21 17:45:00 CDT  Date: 2003/05/21 17:45:00 CDT
1369  Tag: blume-20030517-complete  Tag: blume-20030517-complete
1370  Description:  Description:
# Line 216  Line 1377 
1377       without a single non-exhaustive match- or bind warning.       without a single non-exhaustive match- or bind warning.
1378    
1379  ----------------------------------------------------------------------  ----------------------------------------------------------------------
1380  Name: Matthias Blume (blume@tti-c.org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
1381  Date: 2003/05/17 10:20:00 CDT  Date: 2003/05/17 10:20:00 CDT
1382  Tag: blume-20030517-absyn  Tag: blume-20030517-absyn
1383  Description:  Description:

Legend:
Removed from v.1348  
changed lines
  Added in v.1642

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