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

Legend:
Removed from v.1294  
changed lines
  Added in v.1640

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