bash completion needs to be rewritten from the ground up.
---------------------------------------------------------

bash completion really needs to be rewritten from the ground up, using all of
the features available in bash 3.2+ and without regard for compatibility with
earlier versions.

At that time, it should be split into multiple files for easier source
management. Whether or not it is actually installed on the destination
computer as separate files is a matter for future debate.

If it were installed as tens or even hundreds of files, each of which had to
be opened to decide whether it should be sourced in its entirety, that could
prove very expensive on some systems.

Alternatively, a master file could decide which of the individual completion
files should be sourced. In that way, we wouldn't need to open extra files
just to ascertain that the commands for those functions aren't on the system,
anyway.

A further alternative is that a build process be created, which would
concatenate the various files into a single completion file, similar to what
we have now. This option is my least favourite, because a system with a lot of
packages installed currently has to deal with sourcing over 200 kB of bash
code for each invocation of an interactive shell.

An even better alternative would be if bash supported dynamic loading of shell
functions (in the manner of zsh), but I don't believe there are any plans to
add this feature.

-- 
Ian Macdonald
Amsterdam, March 2006
