[MLton] Finished (?) MLton.Child

Wesley W. Terpstra terpstra@gkec.tu-darmstadt.de
Wed, 24 Nov 2004 14:23:07 +0100


--UugvWAfsgieZRqgk
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Alrighty!

I think it's ready from my side. I have attached two patches. One is against
20041109 which I was developing against. The other is against cvs/HEAD. Both
have been tested on linux->{linux,mingw} and cygwin->{cygwin,mingw}.

Changes since the last patch:
  Integrated your 'forget' to deal with runtime determined redirects.
  Renamed 'dest' to 'remember' for symmetry->easier to remember.
  Renamed 'unknown' to 'any'; when you forget the type it can be used
    for anything, not unknown.
  Did not include isPipe/isNotPipe; they aren't needed.
  Grouped things into Child.* and Param.* as per your suggestion.
  Simplified the type output by create and consumed by kill+reap
  Added two exceptions:
    exception MisuseOfForget   (* you avoided the type safety and broke it *)
    exception DoublyRedirected (* you tried to reuse a Param.child *)

Potential bugs:
  My patch still changes cygwin to use mmap instead of VirtualAlloc.
  
  If you are sure this is a problem, omit that part of the patch (cygwin.h).
  Then Unix.* and MLton.Child.* won't work on cygwin, but this is no loss of
  functionality since Unix.* doesn't work before the patch either.

To apply the 20041109 version:
        gzip -dc ~/mlton-child.path.gz | patch -p1

To apply the cvs version:
        gzip -dc ~/mlton-child-cvs.patch.gz | patch -p0
        cvs add basis-library/mlton/child.sig
        cvs add basis-library/mlton/child.sml
        cvs add lib/mlton-stubs/child.sig
        cvs add runtime/Posix/IO/setbin.c
        cvs add runtime/Posix/IO/settext.c
        cvs add runtime/basis/MLton/create.c

I await the onslaught of complaints. =)

Thank you very much for your support Stephen; your input was very helpful.

-- 
Wesley W. Terpstra

--UugvWAfsgieZRqgk
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="mlton-child.patch.gz"
Content-Transfer-Encoding: base64

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
qQAA

--UugvWAfsgieZRqgk
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="mlton-child-cvs.patch.gz"
Content-Transfer-Encoding: base64

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

--UugvWAfsgieZRqgk--