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/branches/primop-branch-3/NOTES/HISTORY
ViewVC logotype

Diff of /sml/branches/primop-branch-3/NOTES/HISTORY

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

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

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

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