What exactly does PROP_IPC (fd_INTERPROCESSABLE in the source) permit? Consider this usage:
object stdout = Stdio.File(); Process.create_process(cmd, (["stdout": stdout->pipe()]);
Is this at risk of failing, where stdout->pipe(Stdio.PROP_IPC) would succeed?
I can't find anything that indicates exactly what "IPC" means, and whether using one end of a pipe for a process's standard stream counts as IPC. It seems like it ought to, but the Pike standard library isn't consistent about requesting it (see Sql.pmod/rsql.pike:36, Git.pmod/Export.pike:46, and githelper.pike:60 from the companion repo).
In _Stdio/file.c, file_pipe(), checks are made for a pipe (if PIPE_CAPABILITIES is defined), a socketpair, or a socketpair_ultra. All three of these have fd_INTERPROCESSABLE set, so far as I can tell. Does that imply that PROP_IPC is effectively always implied when creating a pipe?
ChrisA