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 1489, Tue May 11 19:31:06 2004 UTC revision 1546, Wed Jul 14 18:38:08 2004 UTC
# Line 13  Line 13 
13  Description:  Description:
14    
15  ----------------------------------------------------------------------  ----------------------------------------------------------------------
16    Name: Allen Leung (leunga (at) reservoir (dot) com)
17    Date: 2004/07/14 14:38:00 EST
18    Tag: leunga-110_46_1-ppc-lwzu
19    Description:
20    
21        Added these instructions to the PowerPC architecture:
22        LBZU(X), LHZU(X), LWZU(X),
23        STWU(X), STFDU, STFSU
24    
25        etc...
26    
27        Note: I haven't added their instruction encoding into the description.
28    
29    ----------------------------------------------------------------------
30    Name: Allen Leung (leunga (at) reservoir (dot) com)
31    Date: 2004/07/13 15:04:00 EST
32    Tag: leunga-110_46_1-ppc-lwarx
33    Description:
34    
35       Added the two instructions LWARX and STWCX to the PowerPC
36    instruction set.
37    
38       A (untested) rewrite of loop-structure.sml.  The old version
39    is completely broken.
40    
41    ----------------------------------------------------------------------
42    Name: Matthias Blume (blume (at) tti - c (dot) org)
43    Date: 2004/07/13 13:50:00 CDT
44    Tag: blume-20040713-nlffi
45    Description:
46    
47    - use paramAlloc to report c-calls with too many arguments
48      (for PPC version where parameter area is pre-allocated)
49    - added ccall_maxargspace to machspec (to implement the above)
50    - made "make" commend in CM's "make" tool configurable
51    - added option (default: on) for passing the name of the SML/NJ's "bin"
52      directory to "make"; the call looks like this:
53    
54         make <options> SMLNJ_BINDIR=<dir> <target>
55    
56      This can be used by the Makefile to, e.g., pick the "right" version
57      of ml-nlffigen.
58    - minor code tweaks
59    
60    ----------------------------------------------------------------------
61    Name: Matthias Blume (blume (at) tti - c (dot) org)
62    Date: 2004/07/12 22:50:00 CDT
63    Tag: blume-110_46_1-macosx-nlffi
64    Description:
65    
66    NLFFI under Mac OS X now working (sort of).  This is largely untested,
67    though.
68    
69    Note:  1. You have to make a new, clean build of the runtime system.
70           2. There are new BOOTFILES, you have to use them!
71              (Doing the bootstrap process yourself would be *very* painful!
72               If you absolutely have to do it, build the system under
73               a different architecture and then cross-compile.)
74    
75    Version bumped to 110.46.1 to account for runtime data format changes.
76    
77    ----------------------------------------------------------------------
78    Name: Matthias Blume (blume (at) tti - c (dot) org)
79    Date: 2004/06/18 14:30:00 CDT
80    Tag: blume-20040618-unix
81    Description:
82    
83    Changed the implementation of structure Unix so that the same stream
84    is returned every time one of the {text,bin}{In,Out}streamOf functions
85    is invoked on the same proc.  This is not what the spec currently
86    says -- although IMO it arguably should.  (See discussion below.)
87    
88    ----------------------------------------------------------------------
89    Name: Matthias Blume (blume (at) tti - c (dot) org)
90    Date: 2004/06/17 18:15:00 CDT
91    Tag: Release_110_46
92    Description:
93    
94    New working version (110.46).  NEW BOOTFILES!
95    
96    ----------------------------------------------------------------------
97    Name: Matthias Blume (blume (at) tti - c (dot) org)
98    Date: 2004/06/17 17:20:00 CDT
99    Tag: blume-20040617-timer-unix
100    Description:
101    
102    Changed the interface of structures Timer and Unix to match the most
103    recent Basis spec.
104    
105    In the case of Unix there still seems to be an open/weird issue:
106    
107       The {text,bin}{In,Out}streamOf functions are supposed to create
108       fresh streams whenever they are called -- as opposed to have them
109       return the same stream every time.  This design is supposed to
110       prevent space leaks caused by proc values hanging on to streams.
111    
112       The reap function, on the other hand, is supposed to close the
113       streams.  This cannot be done without having a handle on the
114       stream in proc after all...
115    
116    I took the liberty to implement the following stopgap solution:
117    
118      The proc value hangs on to the most recently created stream(s).
119      Reap closes those.  If either or both of the two streams hadn't
120      been created at all yet, then reap will close the corresponding
121      file descriptors directly.
122    
123    PS: I don't understand the original space leak argument anymore.  If
124    a proc hangs on to the imperative stream, then I/O operations on those
125    will advance the state of the cached stream and avoid the space leak.
126    
127    ----------------------------------------------------------------------
128    Name: Matthias Blume (blume (at) tti - c (dot) org)
129    Date: 2004/05/28 16:45:00 CDT
130    Tag: blume-20040528-basis
131    Description:
132    
133    Added signature PACK_REAL and exported functor PrimIO.
134    
135    ----------------------------------------------------------------------
136    Name: Matthias Blume (blume (at) tti - c (dot) org)
137    Date: 2004/05/25 16:00:00 CDT
138    Tag: blume-20040525-group-owner
139    Description:
140    
141    CM now ignores (but still accepts) the "owner" information in group
142    descriptions.  The owner of a group is its next enclosing
143    library. Each group must have a unique owner.  (There is a virtual
144    "toplevel" library that owns groups which are not nested within a real
145    library.)  Previously, each group had to explicitly declare its owner,
146    and CM would check that such a declaration is correct.  The new scheme
147    is to have CM check that for each group there is precisely one owning
148    library.
149    
150    The advantage of the new scheme is that the programmer no longer needs
151    to maintain the somewhat annoying owner information.  The downside is
152    that CM cannot enforce the ownership rule across multiple runs of
153    CM.make.  Fortunately, enclosing the same group in two different
154    libraries A and B which are not part of the same program does not
155    cause real problems.
156    
157    ----------------------------------------------------------------------
158    Name: Matthias Blume (blume (at) tti - c (dot) org)
159    Date: 2004/05/20 16:00:00 CDT
160    Tag: blume-20040520-win32
161    Description:
162    
163    Made the win32 version work again.  (Strangely, a misplaced comma had
164    slipped into win32-process.c which prevented the runtime from being
165    compiled correctly.)
166    
167    Also, included a minor addition to ml-build.bat analogous to what was
168    done in blume-20040519-ml-build.
169    
170    ----------------------------------------------------------------------
171    Name: Matthias Blume (blume (at) tti - c (dot) org)
172    Date: 2004/05/19 22:10:00 CDT
173    Tag: blume-20040519-ml-build
174    Description:
175    
176    Arranged for ml-build to clean up after itself a little bit better.
177    The script generates a temporary SML source file and compiles it using
178    CM, so CM generates metadata (GUID, SKEL, objectfile) for it.  It now
179    gets rid of those at the end, so they don't accumulate under .cm.
180    
181    This required a minor change to install.sh because the name of the
182    metadata directory (default: .cm) is actually configurable at
183    installation time.
184    
185    ----------------------------------------------------------------------
186    Name: Matthias Blume (blume (at) tti - c (dot) org)
187    Date: 2004/05/18 15:50:00 CDT
188    Tag: blume-20040518-mkreader
189    Description:
190    
191    Added Posix.IO.mk{Bin,Text}{Reader,Writer} by lifting their respective
192    implementations from internal modules PosixBinPrimIO and PosixTextPrimIO.
193    
194    ----------------------------------------------------------------------
195  Name: Matthias Blume (blume (at) tti - c (dot) org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
196  Date: 2004/05/11 14:35:00 CDT  Date: 2004/05/11 14:35:00 CDT
197  Tag: blume-20040511-win32sock  Tag: blume-20040511-win32sock
# Line 24  Line 203 
203    
204  (I have not tested this patch under win32 yet.)  (I have not tested this patch under win32 yet.)
205    
206    Here is David's e-mail:
207    
208    Hi,
209    
210    Attached to this email you find a diff against sml/nj 110.45
211    that will enable socket support under Windows.
212    
213    To apply the patch (using unix or cygwin)
214    1) gunzip runtime.diff.gz
215    2) "cd" into "src/runtime" in the source tree of a fresh
216       110.45 installation.
217    3) patch -p 1 < [your/path/to]runtime.diff
218    
219    The code compiles fine but has NOT yet been extensively tested.
220    I only ran a few tests for basic socket client functionality
221    (which worked fine).  Especially the functions that use ioctl
222    are not tested at all and might not work (see below).
223    
224    I implemented this since we want to move to a newer version of sml/nj
225    but need socket support in order to use it.  This is the first time I
226    even had a look at the sml/nj source,  so please review my changes
227    before making this part of the distribution!  Here are a few issues
228    that I think might be better for someone to solve who is more
229    familiar with the sml/nj source (and socket programming):
230    
231    - getnetbyaddr.c and getnetbyname.c will raise a "not implemented"
232      exception since I could not figure out what the windows equivalent
233      of these functions is
234    
235    - In sockets-osdep.h there are a some #include statements that are
236      only used in a few files that include sockets-osdep.h
237    
238    - In smlnj-sock-lib.c, function init_fn() calls WSAStartup() but
239      does not process its return value since I don't know how to
240      report an error upwards.
241    
242    - It would probably be good to have a call to WSACleanup() when
243      the library is unloaded (if there is such a possibility).
244      Otherwise I think Windows will take care of this automatically
245      when the process finishes.
246    
247    - I used ioctlsocket() as a replacement for ioctl() but I have
248      no idea if that is actually the proper replacement on Windows.
249    
250    - All these issues are marked in the code by "FIXME" comments.
251    
252    We use sml/nj extensively in our products and are quite happy
253    with it.  I hope this contribution will help you.
254    
255    Keep up the good work!
256    
257    David
258    
259  ----------------------------------------------------------------------  ----------------------------------------------------------------------
260  Name: Matthias Blume (blume (at) tti - c (dot) org)  Name: Matthias Blume (blume (at) tti - c (dot) org)
261  Date: 2004/05/11 14:20:00 CDT  Date: 2004/05/11 14:20:00 CDT

Legend:
Removed from v.1489  
changed lines
  Added in v.1546

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