Annotation of wikisrc/projects/project/pkgsrc_spawn_support.mdwn, revision 1.3

1.1       asau        1: [[!template id=project
                      2: 
1.2       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="""
                     10: [Aleksej Saushev](mailto:asau@NetBSD.org)
                     11: """
                     12: 
                     13: category="pkgsrc"
1.3     ! asau       14: difficulty="medium"
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:
                     29: devel/bmake, NetBSD base make, shells/pdksh, NetBSD sh, NetBSD base ksh,
                     30: potentially some other tools (e.g. land/nawk, shells/bash, lang/perl5).
                     31: 
                     32: Optionally, MinGW spawn support could be added as well.
                     33: 
                     34: The main goal of this project is to support starting processes and
                     35: subprocesses by posix_spawn in devel/bmake and in shells/pdksh,
                     36: measure its efficiency and compare it to traditional fork+exec.
                     37: """
                     38: ]]

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb