On 6/4/24 2:10 AM, konsolebox wrote:
I haven't looked at this but it will keep lazy functions safe to
implement right?
Yes.
--
``The lyf so short, the craft so long to lerne.'' - Chaucer
``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRUc...@case.eduhttp
2024年6月4日(火) 15:11 konsolebox :
> I haven't looked at this but it will keep lazy functions safe to
> implement right?
Right. The fix shouldn't change the observable behavior.
The functions are saved in two hash tables, `shell_functions' and
`shell_function_defs'. The function bodies are supposed
On Sat, Jun 1, 2024 at 7:16 PM Koichi Murase wrote:
>
> ---
> variables.c | 4
> 1 file changed, 4 insertions(+)
>
> diff --git a/variables.c b/variables.c
> index 84b30d93..0e785742 100644
> --- a/variables.c
> +++ b/variables.c
> @@ -3507,7 +3507,11 @@ bind_function_def (const char *name,
On 6/1/24 7:15 AM, Koichi Murase wrote:
This patch fixes `bind_function_def' so that it skips the function
body also for the second and later calls. This reduces the memory
uses of Bash for shell functions by almost half.
Thanks for the analysis and patch. This should not have any negative si
To add some contexts not in the commit message, I knew that recent
versions of Bash consume more memory when the same shell script is
loaded. After bisecting, I realized that the increase in memory use
was actually caused by a single commit ba4ab055 (see the attached
image. The vertical axis is t
The function `bind_function_def' (variables.c) stores the function
metadata in the hash map `shell_function_defs' in variables.c. The
saved information is used by BASH_SOURCE (execute_cmd.c) and the
output of `declare -F func' with `shopt -s extdebug'
(builtin/declare.def) through the interface `f