[armedbear-devel] ABCL and XCVB
Mark Evenson
evenson at panix.com
Mon Apr 11 14:44:54 UTC 2011
On 4/11/11 16:19 , Faré wrote:
> On 11 April 2011 10:07, Alessio Stalla<alessiostalla at gmail.com> wrote:
>> On Mon, Apr 11, 2011 at 3:19 PM, Ville Voutilainen
>> <ville.voutilainen at gmail.com> wrote:
>>>> Could you implement a variant of run-program? It might require some
>>>> trickery to support both Unix and Windows, but it would be very
>>>> useful, probably beyond just XCVB.
>>>
>>> Seems something worth considering.
>>
>> I can work on it. It should be rather easy using the JVM APIs. Faré,
>> do you have an example of a good Lisp API for this feature?
>>
> I suppose you could copy the API from CCL or SBCL, both of which are
> reasonably complete, and IIUC, portably implemented on both Windows
> and Unix at least for CCL. CMUCL and SCL have something similar, too -
> for good historical reasons. If it makes sense, I'd like also a
> :directory argument, but that's relatively secondary.
>
The JVM has reasonably a reasonably complete abstraction in
[ProcessBuilder][1] that would be a fairly easy starting point.
[1]:
http://download.oracle.com/javase/6/docs/api/java/lang/ProcessBuilder.html
A couple questions after a quick glance through the SBCL documentation
for RUN-PROGRAM:
1) How important is the PROCESS structure returned? We can copy that,
but don't totally have mappings for all its possible contents (like
CORE-DUMP).
2) Can we skip the PTY part? This certainly doesn't have an analog
under Windows, and I'm not sure how we would implement "the subprocess
is established under a PTY" anyways.
3) Is it ok if STATUS-HOOK is only invoked when the process exits? I
can't think of any other meaning for the abstractions available under
the PTY.
> I don't know if it makes sense wrt the underlying JVM API, but another
> different approach would be to expose posix_spawn - except that its
> libc implementation seems somewhat broken, so obviously no one is
> using it too seriously. Libfixposix reimplements it and iolib uses it
> to build its create-process abstraction that I'm working on refining.
> I don't know how much sense this makes on Windows or on the JVM API,
> though. But if you're interested, you should discuss with me and/or
> Stelian as we're trying to settle on an API for IOLib.
In the current ABCL implementation, exposing something like posix_spawn
is really not the direction we want to go, as there are many different
types of JVMs out there, and I would be hard put to see how we could
implement this without heavy dependencies on the underlying JVM.
--
"A screaming comes across the sky. It has happened before, but there
is nothing to compare to it now."
More information about the armedbear-devel
mailing list