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

Legend:
Removed from v.1211  
changed lines
  Added in v.1639

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