Subject: Re: bug#34094: 27.0.50; (wrong-type-argument stringp (require . elec-pair)) with describe-function (and other commands)

From: "Daniel Colascione" <[email-masked]>
Date: Thu, 17 Jan 2019 11:29:37 -0800

> Eli Zaretskii <[email-masked]> writes:
>
>>> >> Starting program: /home/horn/Repos/el/emacs/src/emacs
>>> >> [Thread debugging using libthread_db enabled]
>>> >> Using host libthread_db library "/usr/lib/libthread_db.so.1".
>>> >> [New Thread 0x7fffeea70700 (LWP 25211)]
>>> >> [Detaching after vfork from child process 25212]
>>> >> [New Thread 0x7fffee22d700 (LWP 25213)]
>>> >> [New Thread 0x7fffed2b2700 (LWP 25214)]
>>> >> [Detaching after vfork from child process 25215]
>>> >> [Detaching after vfork from child process 25216]
>>> >> [Detaching after vfork from child process 25217]
>>> >> [Detaching after vfork from child process 25218]
>>> >> [Detaching after vfork from child process 25219]
>>> >
>>> > Any idea what are all those vforks about?  Is this something caused
>>> > by your init files?
>>>
>>> I don't get them with run -Q, so I guess it's something in my init
>>> file.  When I try again, now I only get 21 vforks instead of the 132
>>> I've had before.
>>>
>>> If I were keen to know what's the cause, how would I find out?
>>
>> If your customizations cause a lot of processes to be launched at
>> startup, then the above is expected.  Otherwise, I'd suggest to look
>> for some code which might launch such processes which you didn't
>> intend.
>
> I temporarily added
>
>   (advice-add 'call-process :before #'debug)
>   (advice-add 'start-process :before #'debug)
>
> to my ~/.emacs and restarted, and there are several packages which
> invoke external commands at startup, e.g., Magit trying to figure out
> the defaults I've set in my ~/.gitconfig.  So that seems to be expected.

IMHO, every time a package does this, it's a bug. Launching programs is
way too expensive to do on every startup. Packages should be caching the
results of system introspection somehow.