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 1387, Mon Sep 22 17:10:40 2003 UTC revision 1490, Tue May 11 19:32:39 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/05/11 14:35:00 CDT
18    Tag: blume-20040511-win32sock
19    Description:
20    
21    Added previously missing support for many socket-related functions
22    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
23    for the voluminous patch!
24    
25    (I have not tested this patch under win32 yet.)
26    
27    Here is David's e-mail:
28    
29    Hi,
30    
31    Attached to this email you find a diff against sml/nj 110.45
32    that will enable socket support under Windows.
33    
34    To apply the patch (using unix or cygwin)
35    1) gunzip runtime.diff.gz
36    2) "cd" into "src/runtime" in the source tree of a fresh
37       110.45 installation.
38    3) patch -p 1 < [your/path/to]runtime.diff
39    
40    The code compiles fine but has NOT yet been extensively tested.
41    I only ran a few tests for basic socket client functionality
42    (which worked fine).  Especially the functions that use ioctl
43    are not tested at all and might not work (see below).
44    
45    I implemented this since we want to move to a newer version of sml/nj
46    but need socket support in order to use it.  This is the first time I
47    even had a look at the sml/nj source,  so please review my changes
48    before making this part of the distribution!  Here are a few issues
49    that I think might be better for someone to solve who is more
50    familiar with the sml/nj source (and socket programming):
51    
52    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
53      exception since I could not figure out what the windows equivalent
54      of these functions is
55    
56    - In sockets-osdep.h there are a some #include statements that are
57      only used in a few files that include sockets-osdep.h
58    
59    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
60      does not process its return value since I don't know how to
61      report an error upwards.
62    
63    - It would probably be good to have a call to WSACleanup() when
64      the library is unloaded (if there is such a possibility).
65      Otherwise I think Windows will take care of this automatically
66      when the process finishes.
67    
68    - I used ioctlsocket() as a replacement for ioctl() but I have
69      no idea if that is actually the proper replacement on Windows.
70    
71    - All these issues are marked in the code by "FIXME" comments.
72    
73    We use sml/nj extensively in our products and are quite happy
74    with it.  I hope this contribution will help you.
75    
76    Keep up the good work!
77    
78    David
79    
80    ----------------------------------------------------------------------
81    Name: Matthias Blume (blume (at) tti - c (dot) org)
82    Date: 2004/05/11 14:20:00 CDT
83    Tag: blume-20040511-installml
84    Description:
85    
86    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
87    the patch.)
88    
89    ----------------------------------------------------------------------
90    Name: Matthias Blume (blume (at) tti - c (dot) org)
91    Date: 2004/05/11 14:05:00 CDT
92    Tag: blume-20040511-nlffi-netbsd
93    Description:
94    
95    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
96    the patch.)
97    
98    ----------------------------------------------------------------------
99    Name: Matthias Blume (blume (at) tti - c (dot) org)
100    Date: 2004/05/11 12:05:00 CDT
101    Tag: blume-20040511-exports
102    Description:
103    
104    As per request by Adam Chlipala <adam@hcoop.net>, extended various
105    export lists in compiler-related .cm-files.
106    
107    ----------------------------------------------------------------------
108    Name: Matthias Blume (blume (at) tti - c (dot) org)
109    Date: 2004/05/11 11:35:00 CDT
110    Tag: blume-20040511-allsource
111    Description:
112    
113    The installer now honors the "src-smlnj" target again, although its meaning
114    has changed from "all sources required for the compiler" to "all sources
115    the installer knows about".  In other words, if you enable "src-smlnj"
116    in the "targets" file, then the installer will pull in sources for
117    everything.  (Notice that this refers to source code only.  Compiled
118    code is still only installed for modules that were requested explicitly
119    or which are required for other modules that were requested explicitly.)
120    
121    ----------------------------------------------------------------------
122    Name: Matthias Blume (blume (at) tti - c (dot) org)
123    Date: 2004/04/23 17:40:00 CDT
124    Tag: blume-20040423-ieee-scan
125    Description:
126    
127    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
128    in the exponent calculation we get INF or ZERO (depending on the mantissa
129    and the sign of the exponent).
130    
131    ----------------------------------------------------------------------
132    Name: Matthias Blume (blume (at) tti - c (dot) org)
133    Date: 2004/04/23 10:40:00 CDT
134    Tag: blume-20040423-ml-build
135    Description:
136    
137    The ml-build script now terminates with a non-0 status when something
138    goes wrong.
139    
140    ----------------------------------------------------------------------
141    Name: Matthias Blume (blume (at) tti - c (dot) org)
142    Date: 2004/04/22 16:35:00 CDT
143    Tag: blume-20040422-Option
144    Description:
145    
146    Made exception Option to be the same as exception Option.Option
147    (as it should be).
148    
149    ----------------------------------------------------------------------
150    Name: Allen Leung (leunga (at) reservoir (dot) com)
151    Date: 2004/03/19 14:40:00 EST
152    Tag: leunga-20040319-cygwin-nlffi
153    Description:
154    
155    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
156    of SML/NJ.  The problem is that
157    
158       lib = dlopen(NULL, ...)
159       f   = dlsym(lib, "malloc");
160    
161    does not work on Windows unless we explicitly export symbols
162    such as 'malloc' during linking.  We fixed this by explicitly
163    exporting the required symbols with the magic gcc incantation:
164    
165        -Wl,--export-all cygwin.def
166    
167    where cygwin.def is a file containing all the symbols that
168    we wish to export.
169    
170    I suspect this is a Windows problem and we'll have to
171    do the same (somehow with windows compilers) when
172    we build the native win32 version with the system
173    calls LoadLibrary/GetProcAddress.
174    
175    ----------------------------------------------------------------------
176    Name: Matthias Blume (blume (at) tti - c (dot) org)
177    Date: 2004/03/04 16:35:00 CST
178    Tag: blume-20040304-intinf-fmt
179    Description:
180    
181    Fixed problem with IntInf.fmt (sign would show up on the right instead
182    of on the left for BIN, OCT, and HEX).
183    
184    ----------------------------------------------------------------------
185    Name: Matthias Blume (blume (at) tti - c (dot) org)
186    Date: 2004/03/04 11:25:00 CST
187    Tag: blume-20040304-symlinks
188    Description:
189    
190    Fixed problem with installer script (unix only) where bin/ml-yacc and
191    friends pointed (via symlinks) to absolute locations instead of just
192    .run-sml.  This was reported by Vesa A Norrman.
193    
194    ----------------------------------------------------------------------
195    Name: Matthias Blume (blume (at) tti - c (dot) org)
196    Date: 2004/02/13 14:50:00 CST
197    Tag: Release_110_45
198    Description:
199    
200    New working version (110.45). New bootfiles.
201    
202    ----------------------------------------------------------------------
203    Name: Matthias Blume (blume (at) tti - c (dot) org)
204    Date: 2004/01/26 15:15:15 CST
205    Tag: blume-20040126-toplevel
206    Description:
207    
208    Improved handling of exceptions at the interactive toplevel.
209    
210    ----------------------------------------------------------------------
211    Name: Matthias Blume (blume (at) tti - c (dot) org)
212    Date: 2004/01/26 11:25:00
213    Tag: blume-20040126-app
214    Description:
215    
216    Type of top-level "app" corrected.
217    Added code for setting vp_limitPtrMask to Win32-specific runtime.
218    
219    ----------------------------------------------------------------------
220    Name: Matthias Blume (blume (at) tti - c (dot) org)
221    Date: 2003/11/18 17:10 CST
222    Tag: blume-20031118-basis-fiddle
223    Description:
224    
225    - changed Timer interface to what might become the spec
226    - POSIX_FLAGS -> BIT_FLAGS according to spec
227    - some other minor discrepancies wrt. spec eliminated
228    
229    ----------------------------------------------------------------------
230    Name: Matthias Blume (blume (at) tti - c (dot) org)
231    Date: 2003/11/06 12:00:00 CST
232    Tag: Release_110_44
233    Description:
234    
235    New working version (110.44). New bootfiles.
236    
237    ----------------------------------------------------------------------
238    Name: Matthias Blume (blume (at) tti - c (dot) org)
239    Date: 2003/11/04 11:50:00 CST
240    Tag: blume-20031104-move-libraries
241    Description:
242    
243    Eliminated the "dont_move_libraries" directive in config/targets.
244    (The mechanism was broken and could not be fixed easily.  Moreover,
245    there does not seem to be any reason not to move all libraries into
246    lib during installation.  I originally implemented this directive as a
247    backward-compatibility feature when I first introduced the new CM.
248    Now that things have been stable for a long time and going back to the
249    old CM is not an option, there is no reason to keep it around.)
250    
251    ----------------------------------------------------------------------
252    Name: Matthias Blume (blume (at) tti - c (dot) org)
253    Date: 2003/11/03 16:00:00 CST
254    Tag: blume-20031103-installdir
255    Description:
256    
257    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
258    Richards for pointing out the problem and providing the solution.)
259    
260    ----------------------------------------------------------------------
261    Name: Matthias Blume (blume (at) tti - c (dot) org)
262    Date: 2003/10/01 17:05:00 CDT
263    Tag: blume-20031001-lal-mlrisc
264    Description:
265    
266    MLRISC bug fix from Lal.
267    
268    ----------------------------------------------------------------------
269    Name: Matthias Blume (blume (at) tti - c (dot) org)
270    Date: 2003/09/30 16:10:00 CDT
271    Tag: blume-20030930-primio-bat
272    Description:
273    
274    1. Added openVector, nullRd, and nullWr to PRIM_IO.
275    2. Improved .bat files (for Win32 port) to make things work under Win95.
276       (thanks to Aaron S. Hawley for this one)
277    
278    ----------------------------------------------------------------------
279    Name: Matthias Blume (blume (at) tti - c (dot) org)
280    Date: 2003/09/26 16:05:00 CDT
281    Tag: blume-20030926-wrappriv
282    Description:
283    
284    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
285    
286    ----------------------------------------------------------------------
287    Name: Matthias Blume (blume (at) tti - c (dot) org)
288    Date: 2003/09/26 15:00:00 CDT
289    Tag: blume-20030926-110_43_3
290    Description:
291    
292    - additional cleanup
293    - version number bump, NEW BOOTFILES
294    
295    ----------------------------------------------------------------------
296    Name: Matthias Blume (blume (at) tti - c (dot) org)
297    Date: 2003/09/26 12:00:00 CDT
298    Tag: blume-20030926-ppautoload
299    Description:
300    
301    I modified the read-eval-print loop so that the autoloader gets
302    invoked whenever the prettyprinter tries to look up a symbol that
303    is not currently defined in the toplevel environment but which
304    appears in CM's autoload registry.  As a result, we see far fewer of
305    those ?.Foo.Bar.xxx names in the prettyprinter's output.
306    
307    In addition to this I tried to clean up some pieces of the Basis
308    implementation (e.g., Socket, Word8Array) in order to prevent other
309    instances of these ?.Foo.Bar.xxx names from being printed.
310    
311    The mechanism that picks names for types still needs some work, though.
312    (Right now it seems that if there is a type A.t which is defined to
313    be B.u, but B is unavailable at toplevel, then A.t gets printed as
314    "?.B.u" although the perhaps more sensible solution would be to use
315    "A.t" in this case.  In other words, the prettyprinter should follow
316    a chain of DEFtycs not farther than there are corresponding toplevel
317    names in the current environment.)
318    
319    ----------------------------------------------------------------------
320    Name: Matthias Blume (blume (at) tti - c (dot) org)
321    Date: 2003/09/24 16:31:00 CDT
322    Tag: blume-20030924-installer
323    Description:
324    
325    Another installer tweak:  All the ML code for the installer is now
326    compiled during CMB.make and put into a little library called
327    $smlnj/installer.cm.  The installation then simply invokes
328    
329       sml -m $smlnj/installer.cm
330    
331    and everything happens automagically.
332    
333    Win32:  ML code senses value of environment variable SMLNJ_HOME.
334    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
335            and BINDIR.
336    
337    The new scheme guarantees that the ML code responsible for the installation
338    is in sync with the APIs of the main system.  Also, the installer is
339    somewhat faster because the installer script is precompiled.
340    
341    ----------------------------------------------------------------------
342    Name: Matthias Blume (blume (at) tti - c (dot) org)
343    Date: 2003/09/24 15:35:00 CDT
344    Tag: blume-20030924-synsock
345    Description:
346    
347    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
348    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
349    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
350    implementations of non-blocking operations from CML's Socket
351    structure.
352    
353    ----------------------------------------------------------------------
354    Name: Matthias Blume (blume (at) tti - c (dot) org)
355    Date: 2003/09/24 15:10:05 CDT
356    Tag: blume-20030924-sockets
357    Description:
358    
359    1. Fixed SOCKET API and implementation to match Basis spec.
360       This required changing the internal representation of sockets to one
361       that remembers (for each socket file descriptor) whether it is currently
362       blocking or non-blocking.  This state is maintained lazily (i.e., a system
363       call is made only if the state actually needs to change).
364    
365    2. OS-specific details of sockets were moved into separate files, thus
366       making it possible to unify the bulk of the socket implementations
367       between Unix and Win32.
368    
369    3. CML's socket API changed accordingly.
370       (Note that we need to remove non-blocking functions from this API
371       since they are redundant in the case of CML!)
372    
373    4. CML's socket implementation now makes use of non-blocking functions
374       provided by Basis, thus removing all OS-dependent code from this part
375       of CML.
376    
377    5. Changed Real64.precision from 52 to 53.  Minor cleanup in Real64 code.
378    
379    ----------------------------------------------------------------------
380    Name: Matthias Blume (blume (at) tti - c (dot) org)
381  Date: 2003/09/22 12:10:00 CDT  Date: 2003/09/22 12:10:00 CDT
382  Tag: blume-20030918-110_43_2  Tag: blume-20030922-110_43_2
383  Description:  Description:
384    
385  Made a new interim version and bootfiles for developer's bootstrapping  Made a new interim version and bootfiles for developer's bootstrapping

Legend:
Removed from v.1387  
changed lines
  Added in v.1490

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