2022年11月22日(火) 9:36 Emanuele Torre <torreemanue...@gmail.com>: > No, actually later, I said that it has probably been introduced earlier > since I tried running 'time (sleep 1)' in a version of bash that > preceeds that change (namely 6711d2dc7793ed3d35e91b2bd4ecbdfccfcf469f > (2022-10-24)), and it still didn't print the timing report.
`git bisect' finds the following commit (2022-01-31) which introduced the behavior: > commit b325b0e96bd05c76bbfc4d60d0707fc93d58f03f (HEAD, refs/bisect/bad) > Author: Chet Ramey <chet.ra...@case.edu> > Date: Mon Jan 31 09:53:03 2022 -0500 > > more changes for here-docs and $'...'; command optimization updates > > [CWRU/CWRU.chlog] > > 1/25 > ---- > parse.y > - parse_matched_pair: ansi-expand $'...' in WORD for ${PARAM OP WORD} > and single-quote the result if dolbrace_state == DOLBRACE_QUOTE > (posix pattern removal operators) even if extended_quote == 0 > > subst.c > - extract_heredoc_dolbrace_string: add logic to align with parse.y: > parse_matched_pair and its $'...' expansion, including handling > extended_quote > > 1/27 > ---- > builtins/evalstring.c > - should_optimize_fork: broke conditions for optimizing away the fork > for a simple command out of optimize_fork into new function, call > from should_suppress_fork and optimize_subshell_command. Call from > optimize_fork if (subshell_environment & SUBSHELL_PAREN), relying > on fact that CMD_TRY_OPTIMIZING is only set in a couple of specific > conditions > - optimize_fork: call should_suppress_fork only if startup_state == 2; > it does the extra checks for that specific case > - optimize_fork: call should_optimize_fork if we're in a (list) > subshell (subshell_environment & SUBSHELL_PAREN) > - optimize_subshell_command: set CMD_TRY_OPTIMIZING on the right side > of a `&&', `||', or `;' list as long as it's a simple command so > we can check with optimize_fork() when it's time to execute it > > execute_cmd.c > - execute_in_subshell: call optimize_subshell_command for (list) > subshells to either set CMD_NO_FORK for simple commands or set > CMD_TRY_OPTIMIZING for likely candidates for later optimization > > builtins/common.h,builtins/evalstring.c > - optimize_fork: renamed to optimize_connection_fork; changed callers