Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Diff of /sml/trunk/NOTES/HISTORY
ViewVC logotype

Diff of /sml/trunk/NOTES/HISTORY

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1389, Wed Sep 24 20:09:40 2003 UTC revision 1506, Thu Jun 17 22:19:15 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/06/17 17:20:00 CDT
18    Tag: blume-20040617-timer-unix
19    Description:
20    
21    Changed the interface of structures Timer and Unix to match the most
22    recent Basis spec.
23    
24    In the case of Unix there still seems to be an open/weird issue:
25    
26       The {text,bin}{In,Out}streamOf functions are supposed to create
27       fresh streams whenever they are called -- as opposed to have them
28       return the same stream every time.  This design is supposed to
29       prevent space leaks caused by proc values hanging on to streams.
30    
31       The reap function, on the other hand, is supposed to close the
32       streams.  This cannot be done without having a handle on the
33       stream in proc after all...
34    
35    I took the liberty to implement the following stopgap solution:
36    
37      The proc value hangs on to the most recently created stream(s).
38      Reap closes those.  If either or both of the two streams hadn't
39      been created at all yet, then reap will close the corresponding
40      file descriptors directly.
41    
42    PS: I don't understand the original space leak argument anymore.  If
43    a proc hangs on to the imperative stream, then I/O operations on those
44    will advance the state of the cached stream and avoid the space leak.
45    
46    ----------------------------------------------------------------------
47    Name: Matthias Blume (blume (at) tti - c (dot) org)
48    Date: 2004/05/28 16:45:00 CDT
49    Tag: blume-20040528-basis
50    Description:
51    
52    Added signature PACK_REAL and exported functor PrimIO.
53    
54    ----------------------------------------------------------------------
55    Name: Matthias Blume (blume (at) tti - c (dot) org)
56    Date: 2004/05/25 16:00:00 CDT
57    Tag: blume-20040525-group-owner
58    Description:
59    
60    CM now ignores (but still accepts) the "owner" information in group
61    descriptions.  The owner of a group is its next enclosing
62    library. Each group must have a unique owner.  (There is a virtual
63    "toplevel" library that owns groups which are not nested within a real
64    library.)  Previously, each group had to explicitly declare its owner,
65    and CM would check that such a declaration is correct.  The new scheme
66    is to have CM check that for each group there is precisely one owning
67    library.
68    
69    The advantage of the new scheme is that the programmer no longer needs
70    to maintain the somewhat annoying owner information.  The downside is
71    that CM cannot enforce the ownership rule across multiple runs of
72    CM.make.  Fortunately, enclosing the same group in two different
73    libraries A and B which are not part of the same program does not
74    cause real problems.
75    
76    ----------------------------------------------------------------------
77    Name: Matthias Blume (blume (at) tti - c (dot) org)
78    Date: 2004/05/20 16:00:00 CDT
79    Tag: blume-20040520-win32
80    Description:
81    
82    Made the win32 version work again.  (Strangely, a misplaced comma had
83    slipped into win32-process.c which prevented the runtime from being
84    compiled correctly.)
85    
86    Also, included a minor addition to ml-build.bat analogous to what was
87    done in blume-20040519-ml-build.
88    
89    ----------------------------------------------------------------------
90    Name: Matthias Blume (blume (at) tti - c (dot) org)
91    Date: 2004/05/19 22:10:00 CDT
92    Tag: blume-20040519-ml-build
93    Description:
94    
95    Arranged for ml-build to clean up after itself a little bit better.
96    The script generates a temporary SML source file and compiles it using
97    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
98    gets rid of those at the end, so they don't accumulate under .cm.
99    
100    This required a minor change to install.sh because the name of the
101    metadata directory (default: .cm) is actually configurable at
102    installation time.
103    
104    ----------------------------------------------------------------------
105    Name: Matthias Blume (blume (at) tti - c (dot) org)
106    Date: 2004/05/18 15:50:00 CDT
107    Tag: blume-20040518-mkreader
108    Description:
109    
110    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
111    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
112    
113    ----------------------------------------------------------------------
114    Name: Matthias Blume (blume (at) tti - c (dot) org)
115    Date: 2004/05/11 14:35:00 CDT
116    Tag: blume-20040511-win32sock
117    Description:
118    
119    Added previously missing support for many socket-related functions
120    under win32.  Thanks to David Hansel <hansel@reactive-systems.com>
121    for the voluminous patch!
122    
123    (I have not tested this patch under win32 yet.)
124    
125    Here is David's e-mail:
126    
127    Hi,
128    
129    Attached to this email you find a diff against sml/nj 110.45
130    that will enable socket support under Windows.
131    
132    To apply the patch (using unix or cygwin)
133    1) gunzip runtime.diff.gz
134    2) "cd" into "src/runtime" in the source tree of a fresh
135       110.45 installation.
136    3) patch -p 1 < [your/path/to]runtime.diff
137    
138    The code compiles fine but has NOT yet been extensively tested.
139    I only ran a few tests for basic socket client functionality
140    (which worked fine).  Especially the functions that use ioctl
141    are not tested at all and might not work (see below).
142    
143    I implemented this since we want to move to a newer version of sml/nj
144    but need socket support in order to use it.  This is the first time I
145    even had a look at the sml/nj source,  so please review my changes
146    before making this part of the distribution!  Here are a few issues
147    that I think might be better for someone to solve who is more
148    familiar with the sml/nj source (and socket programming):
149    
150    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
151      exception since I could not figure out what the windows equivalent
152      of these functions is
153    
154    - In sockets-osdep.h there are a some #include statements that are
155      only used in a few files that include sockets-osdep.h
156    
157    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
158      does not process its return value since I don't know how to
159      report an error upwards.
160    
161    - It would probably be good to have a call to WSACleanup() when
162      the library is unloaded (if there is such a possibility).
163      Otherwise I think Windows will take care of this automatically
164      when the process finishes.
165    
166    - I used ioctlsocket() as a replacement for ioctl() but I have
167      no idea if that is actually the proper replacement on Windows.
168    
169    - All these issues are marked in the code by "FIXME" comments.
170    
171    We use sml/nj extensively in our products and are quite happy
172    with it.  I hope this contribution will help you.
173    
174    Keep up the good work!
175    
176    David
177    
178    ----------------------------------------------------------------------
179    Name: Matthias Blume (blume (at) tti - c (dot) org)
180    Date: 2004/05/11 14:20:00 CDT
181    Tag: blume-20040511-installml
182    Description:
183    
184    Fixed two bugs in installml script.  (Thanks to Vesa A. Norrman for
185    the patch.)
186    
187    ----------------------------------------------------------------------
188    Name: Matthias Blume (blume (at) tti - c (dot) org)
189    Date: 2004/05/11 14:05:00 CDT
190    Tag: blume-20040511-nlffi-netbsd
191    Description:
192    
193    Added support for nlffi under netbsd.  (Thanks to Vesa A. Norrman for
194    the patch.)
195    
196    ----------------------------------------------------------------------
197    Name: Matthias Blume (blume (at) tti - c (dot) org)
198    Date: 2004/05/11 12:05:00 CDT
199    Tag: blume-20040511-exports
200    Description:
201    
202    As per request by Adam Chlipala <adam@hcoop.net>, extended various
203    export lists in compiler-related .cm-files.
204    
205    ----------------------------------------------------------------------
206    Name: Matthias Blume (blume (at) tti - c (dot) org)
207    Date: 2004/05/11 11:35:00 CDT
208    Tag: blume-20040511-allsource
209    Description:
210    
211    The installer now honors the "src-smlnj" target again, although its meaning
212    has changed from "all sources required for the compiler" to "all sources
213    the installer knows about".  In other words, if you enable "src-smlnj"
214    in the "targets" file, then the installer will pull in sources for
215    everything.  (Notice that this refers to source code only.  Compiled
216    code is still only installed for modules that were requested explicitly
217    or which are required for other modules that were requested explicitly.)
218    
219    ----------------------------------------------------------------------
220    Name: Matthias Blume (blume (at) tti - c (dot) org)
221    Date: 2004/04/23 17:40:00 CDT
222    Tag: blume-20040423-ieee-scan
223    Description:
224    
225    Fixed IEEEReal.scan (and .fromString) so that if there is an overflow
226    in the exponent calculation we get INF or ZERO (depending on the mantissa
227    and the sign of the exponent).
228    
229    ----------------------------------------------------------------------
230    Name: Matthias Blume (blume (at) tti - c (dot) org)
231    Date: 2004/04/23 10:40:00 CDT
232    Tag: blume-20040423-ml-build
233    Description:
234    
235    The ml-build script now terminates with a non-0 status when something
236    goes wrong.
237    
238    ----------------------------------------------------------------------
239    Name: Matthias Blume (blume (at) tti - c (dot) org)
240    Date: 2004/04/22 16:35:00 CDT
241    Tag: blume-20040422-Option
242    Description:
243    
244    Made exception Option to be the same as exception Option.Option
245    (as it should be).
246    
247    ----------------------------------------------------------------------
248    Name: Allen Leung (leunga (at) reservoir (dot) com)
249    Date: 2004/03/19 14:40:00 EST
250    Tag: leunga-20040319-cygwin-nlffi
251    Description:
252    
253    Fixed the runtime so that ml-nlffi-lib runs on the cygwin version
254    of SML/NJ.  The problem is that
255    
256       lib = dlopen(NULL, ...)
257       f   = dlsym(lib, "malloc");
258    
259    does not work on Windows unless we explicitly export symbols
260    such as 'malloc' during linking.  We fixed this by explicitly
261    exporting the required symbols with the magic gcc incantation:
262    
263        -Wl,--export-all cygwin.def
264    
265    where cygwin.def is a file containing all the symbols that
266    we wish to export.
267    
268    I suspect this is a Windows problem and we'll have to
269    do the same (somehow with windows compilers) when
270    we build the native win32 version with the system
271    calls LoadLibrary/GetProcAddress.
272    
273    ----------------------------------------------------------------------
274    Name: Matthias Blume (blume (at) tti - c (dot) org)
275    Date: 2004/03/04 16:35:00 CST
276    Tag: blume-20040304-intinf-fmt
277    Description:
278    
279    Fixed problem with IntInf.fmt (sign would show up on the right instead
280    of on the left for BIN, OCT, and HEX).
281    
282    ----------------------------------------------------------------------
283    Name: Matthias Blume (blume (at) tti - c (dot) org)
284    Date: 2004/03/04 11:25:00 CST
285    Tag: blume-20040304-symlinks
286    Description:
287    
288    Fixed problem with installer script (unix only) where bin/ml-yacc and
289    friends pointed (via symlinks) to absolute locations instead of just
290    .run-sml.  This was reported by Vesa A Norrman.
291    
292    ----------------------------------------------------------------------
293    Name: Matthias Blume (blume (at) tti - c (dot) org)
294    Date: 2004/02/13 14:50:00 CST
295    Tag: Release_110_45
296    Description:
297    
298    New working version (110.45). New bootfiles.
299    
300    ----------------------------------------------------------------------
301    Name: Matthias Blume (blume (at) tti - c (dot) org)
302    Date: 2004/01/26 15:15:15 CST
303    Tag: blume-20040126-toplevel
304    Description:
305    
306    Improved handling of exceptions at the interactive toplevel.
307    
308    ----------------------------------------------------------------------
309    Name: Matthias Blume (blume (at) tti - c (dot) org)
310    Date: 2004/01/26 11:25:00
311    Tag: blume-20040126-app
312    Description:
313    
314    Type of top-level "app" corrected.
315    Added code for setting vp_limitPtrMask to Win32-specific runtime.
316    
317    ----------------------------------------------------------------------
318    Name: Matthias Blume (blume (at) tti - c (dot) org)
319    Date: 2003/11/18 17:10 CST
320    Tag: blume-20031118-basis-fiddle
321    Description:
322    
323    - changed Timer interface to what might become the spec
324    - POSIX_FLAGS -> BIT_FLAGS according to spec
325    - some other minor discrepancies wrt. spec eliminated
326    
327    ----------------------------------------------------------------------
328    Name: Matthias Blume (blume (at) tti - c (dot) org)
329    Date: 2003/11/06 12:00:00 CST
330    Tag: Release_110_44
331    Description:
332    
333    New working version (110.44). New bootfiles.
334    
335    ----------------------------------------------------------------------
336    Name: Matthias Blume (blume (at) tti - c (dot) org)
337    Date: 2003/11/04 11:50:00 CST
338    Tag: blume-20031104-move-libraries
339    Description:
340    
341    Eliminated the "dont_move_libraries" directive in config/targets.
342    (The mechanism was broken and could not be fixed easily.  Moreover,
343    there does not seem to be any reason not to move all libraries into
344    lib during installation.  I originally implemented this directive as a
345    backward-compatibility feature when I first introduced the new CM.
346    Now that things have been stable for a long time and going back to the
347    old CM is not an option, there is no reason to keep it around.)
348    
349    ----------------------------------------------------------------------
350    Name: Matthias Blume (blume (at) tti - c (dot) org)
351    Date: 2003/11/03 16:00:00 CST
352    Tag: blume-20031103-installdir
353    Description:
354    
355    Made installer honor INSTALLDIR variable again.  (Thanks to Chris
356    Richards for pointing out the problem and providing the solution.)
357    
358    ----------------------------------------------------------------------
359    Name: Matthias Blume (blume (at) tti - c (dot) org)
360    Date: 2003/10/01 17:05:00 CDT
361    Tag: blume-20031001-lal-mlrisc
362    Description:
363    
364    MLRISC bug fix from Lal.
365    
366    ----------------------------------------------------------------------
367    Name: Matthias Blume (blume (at) tti - c (dot) org)
368    Date: 2003/09/30 16:10:00 CDT
369    Tag: blume-20030930-primio-bat
370    Description:
371    
372    1. Added openVector, nullRd, and nullWr to PRIM_IO.
373    2. Improved .bat files (for Win32 port) to make things work under Win95.
374       (thanks to Aaron S. Hawley for this one)
375    
376    ----------------------------------------------------------------------
377    Name: Matthias Blume (blume (at) tti - c (dot) org)
378    Date: 2003/09/26 16:05:00 CDT
379    Tag: blume-20030926-wrappriv
380    Description:
381    
382    Added missing wrapper for privilege "primitive" in $smlnj/viscomp/core.cm.
383    
384    ----------------------------------------------------------------------
385    Name: Matthias Blume (blume (at) tti - c (dot) org)
386    Date: 2003/09/26 15:00:00 CDT
387    Tag: blume-20030926-110_43_3
388    Description:
389    
390    - additional cleanup
391    - version number bump, NEW BOOTFILES
392    
393    ----------------------------------------------------------------------
394    Name: Matthias Blume (blume (at) tti - c (dot) org)
395    Date: 2003/09/26 12:00:00 CDT
396    Tag: blume-20030926-ppautoload
397    Description:
398    
399    I modified the read-eval-print loop so that the autoloader gets
400    invoked whenever the prettyprinter tries to look up a symbol that
401    is not currently defined in the toplevel environment but which
402    appears in CM's autoload registry.  As a result, we see far fewer of
403    those ?.Foo.Bar.xxx names in the prettyprinter's output.
404    
405    In addition to this I tried to clean up some pieces of the Basis
406    implementation (e.g., Socket, Word8Array) in order to prevent other
407    instances of these ?.Foo.Bar.xxx names from being printed.
408    
409    The mechanism that picks names for types still needs some work, though.
410    (Right now it seems that if there is a type A.t which is defined to
411    be B.u, but B is unavailable at toplevel, then A.t gets printed as
412    "?.B.u" although the perhaps more sensible solution would be to use
413    "A.t" in this case.  In other words, the prettyprinter should follow
414    a chain of DEFtycs not farther than there are corresponding toplevel
415    names in the current environment.)
416    
417    ----------------------------------------------------------------------
418    Name: Matthias Blume (blume (at) tti - c (dot) org)
419    Date: 2003/09/24 16:31:00 CDT
420    Tag: blume-20030924-installer
421    Description:
422    
423    Another installer tweak:  All the ML code for the installer is now
424    compiled during CMB.make and put into a little library called
425    $smlnj/installer.cm.  The installation then simply invokes
426    
427       sml -m $smlnj/installer.cm
428    
429    and everything happens automagically.
430    
431    Win32:  ML code senses value of environment variable SMLNJ_HOME.
432    Unix:   ML code senses values of environment variables ROOT, CONFIGDIR,
433            and BINDIR.
434    
435    The new scheme guarantees that the ML code responsible for the installation
436    is in sync with the APIs of the main system.  Also, the installer is
437    somewhat faster because the installer script is precompiled.
438    
439    ----------------------------------------------------------------------
440    Name: Matthias Blume (blume (at) tti - c (dot) org)
441    Date: 2003/09/24 15:35:00 CDT
442    Tag: blume-20030924-synsock
443    Description:
444    
445    Added a signature SYNCHRONOUS_SOCKET to basis.cm.  This is like SOCKET
446    but excludes all non-blocking operations.  Defined SOCKET (in Basis)
447    and CML_SOCKET in terms of SYNCHRONOUS_SOCKET.  Removed superfluous
448    implementations of non-blocking operations from CML's Socket
449    structure.
450    
451    ----------------------------------------------------------------------
452    Name: Matthias Blume (blume (at) tti - c (dot) org)
453  Date: 2003/09/24 15:10:05 CDT  Date: 2003/09/24 15:10:05 CDT
454  Tag: blume-20030924-sockets  Tag: blume-20030924-sockets
455  Description:  Description:

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

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