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

Legend:
Removed from v.1390  
changed lines
  Added in v.1532

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