File:  [NetBSD Developer Wiki] / wikisrc / projects / project / pkgsrc_spawn_support.mdwn
Revision 1.3: download - view: text, annotated - select for diffs
Sat Mar 17 20:40:46 2012 UTC (5 years, 11 months ago) by asau
Branches: MAIN
CVS tags: HEAD
Make it of medium complexity.

[[!template id=project

title="spawn support in pkgsrc tools"


[Aleksej Saushev](

duration="3 months"

There exist two ways of launching processes: one is forking them
with fork or vfork and replacing the clone with exec-family function,
another is spawning process directly with procedures like posix_spawn.
Not all platforms implement fork model, and spawn model has its own merits.

pkgsrc relies heavily on launching subprocesses when building software.
NetBSD posix_spawn support was implemented in GSoC 2011, it is included
in NetBSD 6.0. Now that NetBSD supports both ways, it would be nice to
compare the efficiency of both ways of launching subprocesses and measure
its effect when using pkgsrc (both in user and developer mode).
In order to accomplish that, the following tools should support posix_spawn:
devel/bmake, NetBSD base make, shells/pdksh, NetBSD sh, NetBSD base ksh,
potentially some other tools (e.g. land/nawk, shells/bash, lang/perl5).

Optionally, MinGW spawn support could be added as well.

The main goal of this project is to support starting processes and
subprocesses by posix_spawn in devel/bmake and in shells/pdksh,
measure its efficiency and compare it to traditional fork+exec.

CVSweb for NetBSD wikisrc <> software: FreeBSD-CVSweb