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 1389, Wed Sep 24 20:09:40 2003 UTC revision 1640, Fri Oct 1 15:20:40 2004 UTC
# Line 14  Line 14 
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16  Name: Matthias Blume (blume (at) tti - c (dot) org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
17    Date: 2004/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  Date: 2003/09/24 15:10:05 CDT
941  Tag: blume-20030924-sockets  Tag: blume-20030924-sockets
942  Description:  Description:

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

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