As many are probably aware, Bash 4.2 adds a shopt feature to enable not running the last command of a pipeline in a subshell (POSIX leaves it up to the shell to decide). Aside from being a slight optimization, it allows some syntactic convenience such as reduced reliance upon process substitutions and redundant command grouping workarounds. I believe it is generally considered that the lastpipe behavior is superior. zsh and ksh do this by default, while mksh, bash, and dash do not. Only Bash has it as a configurable option.
If it were made a policy now that ebuilds and eclasses cannot depend upon the subshell (for example, to set temporary positional parameters or isolate temporary variables), then maybe someday in the distant future this could be made the default, and in the meantime, an option for those with new enough shells. Since dependence on the subshell isn't very common, I think this should be feasible, and of course as a workaround all that's required is to wrap any such commands in parentheses. Any opinions? -- Dan Douglas
signature.asc
Description: This is a digitally signed message part.