<div dir="ltr"><div>I've written a cross-platform* implementation of the pipe() syscall, currently for use within Cabal:<br></div><div><br></div><div>createPipe :: IO (Handle, Handle)<br></div><a href="https://github.com/haskell/cabal/blob/master/Cabal/tests/Distribution/Compat/CreatePipe.hsc">https://github.com/haskell/cabal/blob/master/Cabal/tests/Distribution/Compat/CreatePipe.hsc</a><div>

<br></div><div>It's a bit of a shame to leave it in Cabal as it's generally useful.</div><div><div><br></div><div>I propose we add it to System.IO. Note that we'd have to copy the 5 lines in System.Posix.IO.createPipe into base as the above implementation would otherwise depend on the unix package.</div>

<div><br></div><div>Discussion period: 3 weeks.</div><div><br></div><div>* Only tested on OS X, Windows, and Linux.</div><div><br></div></div></div>