[Python-Dev] Portable "spawn" module for core?
Greg Ward
gward@cnri.reston.va.us
Mon, 30 Aug 1999 17:38:36 -0400
On 30 August 1999, Guido van Rossum said:
> Indeed. I'm guessing that Greg wrote his code specifically to drive
> compilers, not so much to invoke an editor on a specific file. It so
> happens that the Windows compilers have command lines that look
> sufficiently like the Unix compilers that this might actually work.
Correct, but the spawn module I posted should work for any case where
you want to run an external command synchronously without redirecting
I/O. (And it could probably be extended to handle those cases, but a) I
don't need them for Distutils [yet!], and b) I don't know how to do it
portably.)
> On the Mac, driving the compilers is best done using AppleEvents, so
> it's probably better to to try to abuse the spawn() interface for
> that... (Greg, is there a higher level where the compiler actions are
> described without referring to specific programs, but perhaps just to
> compiler actions and input and output files?)
[off-topic alert... probably belongs on distutils-sig, but there you go]
Yes, my CCompiler class is all about providing a (hopefully) compiler-
and platform-neutral interface to a C/C++ compiler. Currently there're
only two concrete subclasses of this: UnixCCompiler and MSVCCompiler,
and they both obviously use spawn, because Unix C compilers and MSVC
both provide that kind of interface. A hypothetical sibling class that
provides an interface to some Mac C compiler might use a souped-up spawn
that "knows about" Apple Events, or it might use some other interface to
Apple Events. If Jack's simplified summary of what passing Apple Events
to a command looks like is accurate, maybe spawn can be souped up to
work on the Mac. Or we might need a dedicated module for running Mac
programs.
So does anybody have code to run external programs on the Mac using
Apple Events? Would it be possible/reasonable to add that as
'_spawn_mac()' to my spawn module?
Greg
--
Greg Ward - software developer gward@cnri.reston.va.us
Corporation for National Research Initiatives
1895 Preston White Drive voice: +1-703-620-8990
Reston, Virginia, USA 20191-5434 fax: +1-703-620-0913