ExternalProcess for D6?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

ExternalProcess for D6?

Jochen Riekhof-6
Hi...

today I tried to load the Burning River Goodie ExternalProcess (Download
fresh from http://www.nls.net/mp/jarvis/Bob/DolphinGoodies.htm) but it
does not work in D6 it seems. Is there an update available for D6 yet
(or soon)?

Ciao

...Jochen


Reply | Threaded
Open this post in threaded view
|

Re: ExternalProcess for D6?

Chris Uppal-3
Jochen,

> today I tried to load the Burning River Goodie ExternalProcess (Download
> fresh from http://www.nls.net/mp/jarvis/Bob/DolphinGoodies.htm) but it
> does not work in D6 it seems. Is there an update available for D6 yet
> (or soon)?

What goes wrong ?  My (old) copy appears to wok OK under D6.


Reply | Threaded
Open this post in threaded view
|

Re: ExternalProcess for D6?

Jochen Riekhof-7
Hi Chris...

don't have it here. I remember at least 3 methods failed to compile on
loading package. Something with ExternalProcess>>getExitStatus containing a
ref. to ExternalFile>>handle: did not work and two others that I fail to
remember. If possible could you mail me your version if possible (just
remove the _nospam_ from my email)?

Ciao

...Jochen


Reply | Threaded
Open this post in threaded view
|

Re: ExternalProcess for D6?

Chris Uppal-3
Jochen,

> If possible could you mail me your version if possible

I just checked again, and found that though the version I had worked in the
sense that it passed its tests, they didn't require redirection of stdio
streams, and that was broken because of the missing #handle: method.

Anyway, going back to Bob's site for the latest version, it seems that there
are only two small problems.  One is that the ExternalProcess package defined
STILL_ACTIVE in the post-install script rather than the pre-install (which is
too late).  The other is that InheritableFile depends on there being an
implementation of #handle: in its superclass -- and that has gone away.

You can move the script and reload the package, or just resave the
ExternalProcess>>getExitCodes method, which will now compile OK since
STILL_ACTIVE is defined.  Just ignore warnings about #hThread and #hProcess
being undefined (it's a result of the DNU-style accessors used by
ExternalStructures and is misleading).

Adding:
========================
    handle: anExternalHandle
        #CUadded.
         handle := anExternalHandle.
========================
to InheritableFile fixes the missing method.  It's probably not the ideal fix,
but it seems sufficient for the short term.

With that, the tests pass, and my own small uses of ExternalProcess work fine.

I'll send you my old version of Bob's stuff if you like, but since his current
version (with the above added) works appears to work at least as well as the
old version, /and/ has some useful new features, you may not need it.

    -- chris


Reply | Threaded
Open this post in threaded view
|

Re: ExternalProcess for D6?

Jochen Riekhof-6
Hi...

thanks  a lot Chris, works smoothly now! I found I could also remove the
loose method in Bobs
KernelLibrary>>terminateProcess:exitCode:
which is now defined out of the box in D6.

Ciao

...Jochen