Annotation of wikisrc/projects/project/pkgsrc_spawn_support.mdwn, revision 1.11
1.1 asau 1: [[!template id=project
2:
1.5 asau 3: title="Spawn support in pkgsrc tools"
1.1 asau 4:
5: contact="""
6: [tech-pkg](mailto:tech-pkg@NetBSD.org)
7: """
8:
9: mentors="""
1.11 ! kamil 10: [tech-pkg](mailto:tech-pkg@NetBSD.org)
1.1 asau 11: """
12:
13: category="pkgsrc"
1.9 wiki 14: difficulty="easy"
1.1 asau 15: duration="3 months"
16:
17: description="""
18: There exist two ways of launching processes: one is forking them
19: with fork or vfork and replacing the clone with exec-family function,
20: another is spawning process directly with procedures like posix_spawn.
21: Not all platforms implement fork model, and spawn model has its own merits.
22:
23: pkgsrc relies heavily on launching subprocesses when building software.
24: NetBSD posix_spawn support was implemented in GSoC 2011, it is included
25: in NetBSD 6.0. Now that NetBSD supports both ways, it would be nice to
26: compare the efficiency of both ways of launching subprocesses and measure
27: its effect when using pkgsrc (both in user and developer mode).
28: In order to accomplish that, the following tools should support posix_spawn:
1.7 asau 29:
1.6 asau 30: * devel/bmake
31: * shells/pdksh
32: * NetBSD base make
33: * NetBSD sh
34: * NetBSD base ksh
1.8 wiz 35: * potentially some other tools (e.g. lang/nawk, shells/bash, lang/perl5)
1.1 asau 36:
1.6 asau 37: Optionally, MinGW spawn support can be added as well.
1.1 asau 38:
1.10 mspo 39: Milestones:
40:
41: * support starting processes and subprocesses by posix_spawn in devel/bmake
42: * support starting processes and subprocesses by posix_spawn in shells/pdksh,
43: * measure its efficiency and compare it to traditional fork+exec.
1.1 asau 44: """
45: ]]
CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb