emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: master 2c79a8f 2/2: Use posix_spawn if possible.


From: Philipp Stephani
Subject: Re: master 2c79a8f 2/2: Use posix_spawn if possible.
Date: Sat, 26 Dec 2020 12:26:24 +0100

Am Fr., 25. Dez. 2020 um 14:17 Uhr schrieb Eli Zaretskii <eliz@gnu.org>:
>
> I'm sorry, but I reverted this commit and the previous one.  They
> broke the MinGW build in fundamental ways, and I cannot afford having
> the master branch broken so frequently, definitely not on weekends,
> which are the only time I can work seriously on Emacs.

OK.

>
> If you cannot make sure Emacs still builds on all supported platforms,

Hmm, that's indeed a rather challenging request. Don't we support like
dozens of platforms, including several nonfree operating systems? It
would be rather difficult to contribute changes if the authors needed
to test them on all supported platforms, especially in areas of the
code with lots of conditional compilation.
How do others deal with this? Do people run Windows VMs and try to
build Emacs on them before pushing?

> please either post your patches first, or push them to a scratch
> branch, and ask people who have access to those platforms to test it
> before the changes land on master.

OK, I've now done that (branch scratch/posix-spawn).

>
> Btw, regarding use of posix_spawn, I'd expect a discussion before we
> make such a change.  AFAIU it is not a trivial decision, as
> posix_spawn has its down sides, and therefore is not necessarily the
> best API for running sub-processes on every supported platform, even
> if you consider only the Posix ones.  We should consider the
> advantages and disadvantages before we make the decision.

Sure, I'm happy to have that discussion. I briefly reviewed the
posix_spawn implementation of GNU libc and Gnulib, and found that it
uses vfork/clone + execve like our hand-rolled code, so I wouldn't
expect any significant change. The primary advantage is to offload
complexity into a library that can properly deal with system-specific
issues and can improve over time. For example, on Linux, posix_spawn
can use clone instead of vfork. On Windows, posix_spawn could directly
call CreateProcess (though Gnulib doesn't implement that yet).



reply via email to

[Prev in Thread] Current Thread [Next in Thread]