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

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="""
                     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:
1.7     ! asau       29: 
1.6       asau       30: * devel/bmake
                     31: * shells/pdksh
                     32: * NetBSD base make
                     33: * NetBSD sh
                     34: * NetBSD base ksh
                     35: * potentially some other tools (e.g. land/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: 
                     39: The main goal of this project is to support starting processes and
                     40: subprocesses by posix_spawn in devel/bmake and in shells/pdksh,
                     41: measure its efficiency and compare it to traditional fork+exec.
                     42: """
                     43: ]]
1.4       asau       44: 
                     45: [[!tag gsoc]]

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