Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Drop vfork support #279

Merged
merged 1 commit into from
Mar 14, 2023
Merged

Drop vfork support #279

merged 1 commit into from
Mar 14, 2023

Conversation

bgamari
Copy link
Contributor

@bgamari bgamari commented Mar 13, 2023

vfork is something of a relic, originally introduced as a (rather unsafe) optimisation of fork in 3.0BSD, allowing the user to eliminate the cost of cloning the parent process's address space (as early BSDs would do) when forking with the intent of immediately execing.

However, its design has long been considered a mistake (being nigh impossible to use safely in a multithreaded environment), its benefits have largely vanished (since modern operating systems rely on virtual memory to remap the parent's address space as copy-on-write instead of copying), and nearly all platforms now consider it to be an alias of fork.

Remove process's support for vfork.

Fixes #261.

`vfork` is something of a relic, originally introduced as a (rather
unsafe) optimisation of `fork` in 3.0BSD, allowing the user to eliminate
the cost of cloning the parent process's address space (as early BSDs
would do) when `fork`ing with the intent of immediately `exec`ing.

However, its design has long been considered a mistake (being nigh
impossible to use safely in a multithreaded environment), its benefits
have largely vanished (since modern operating systems rely on virtual
memory to remap the parent's address space as copy-on-write instead of
copying), and nearly all platforms now consider it to be an alias of
`fork`.

Remove `process`'s support for `vfork`.

Fixes haskell#261.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Deprecation errors compiling process on MacOS
2 participants