On Tue, Nov 18, 2014 at 7:32 AM, Wout Mertens <wout.mert...@gmail.com> wrote: > Hi all, > > I'm wondering if it wouldn't be better to make the application wrapper > scripts generated by makeWrapper be binaries that do the environment > massaging and config in binary code before exec() ing the wrapped program. > > The advantages would be that the wrapper itself loads very fast since all > the shell init and shell parsing is skipped. You also get precise control > over the execv() call or other desired factors.
I was discussing this on #nixos yesterday in light of a long standing bug in our wrapper for Hoogle. Hoogle requires its arguments in a very specific order, so it has a custom wrapper which had a bug because I didn't fully understand the vagaries of $@ versus "$@" in bash. My point being, I think precision is the stronger argument here. > The disadvantages are that you can't read what a wrapper does and the > wrapper file is bigger (about 4KB in my tests for a simple execv()). The middle ground here would be to use something like execline [1] which avoids the overhead of loading a traditional shell, but still reads a human-inspectable script. > Thoughts? > > Wout. > > _______________________________________________ > nix-dev mailing list > nix-dev@lists.science.uu.nl > http://lists.science.uu.nl/mailman/listinfo/nix-dev > [1] http://skarnet.org/software/execline/ -- Thomas Tuegel _______________________________________________ nix-dev mailing list nix-dev@lists.science.uu.nl http://lists.science.uu.nl/mailman/listinfo/nix-dev