[Pkg-zsh-devel] Bug#898619: Bug#898619: Bug#898619: zsh autocompletion does not deal gracefully with upgrades in the background
Philipp Kern
pkern at debian.org
Mon May 14 23:40:24 BST 2018
Hi,
On 2018-05-15 00:09, Frank Terbeck wrote:
> Axel Beckert wrote:
>> Philipp Kern wrote:
> [...]
>>> My gut feeling is that this is because I did not autocomplete in the
>>> old shell yet but now the module is gone.
>>
>> Yes, that's the same conclusion I came to.
>>
>>> At least with a new shell complist.so is only in /proc/$$/maps after
>>> an attempted completion.
>
> Yes, modules are loadable at run-time.
>
>>> Would it be possible to make sure that the autocompletion system
>>> loads the module on startup rather than on-demand?
>
> Zsh is setup to do lots of things on demand. It would certainly
> be
> conceivable to be more gracious about the issue. But when
> versions
> upgrade, I don't think it's unreasonable to restart a shell, like
> Axel
> mentioned via "exec zsh".
>
> If you'd really like that module loaded all the time, you can load it
> in
> your setup. Personally, I'm loading a bunch of modules at startup time.
I'm caring about a large setup rather than a personal installation,
though, which sort of shifts as to what's reasonable and what isn't. ;-)
Let's say I'm using /etc/zsh/newuser.zshrc.recommended (which is
actually what I'm using verbatim). Could we at least fix it for that
configuration? That one does this:
| # Use modern completion system
| autoload -Uz compinit
| compinit
/usr/share/zsh/functions/Completion/compinit does not invoke "zmodload
-i zsh/complist" whereas the first invocation of the completion menu
would. How bad would it be to add the module loading to the
initialization? Is there a benefit to not doing that specific call on
startup? The module itself is a 63k .so file.
In a very non-scientific test I get a VM increase from 37076 kB -> 43968
kB (+18%), anon pages from 1840 -> 2148 kB (+16%) and file pages from
3912 -> 4508 kB (+15%) on amd64 when running a full completion for
l<tab> on my system. And that loads even more than just the module,
because it goes through the whole setup.
I mean sure, I could add a zmodload call to our system-wide config. But
I'd rather we solve this problem for all of Debian's users rather than
just us. (This is assuming that people are on some variant of a rolling
testing and don't reboot their machines all the time after updates -
which currently violates other Debian assumptions like the kernel's as
well.)
Kind regards and thanks for your consideration
Philipp Kern
More information about the Pkg-zsh-devel
mailing list