>> The difference is that while Emacs is being built, especially >> bootstrapped, calls to Lisp code that isn't preloaded by autoload.el >> could fail. So such calls need to be careful not to call a symbol if >> the call could fail, or at least use internal_condition_case* functions >> to protect themselves against failure. > > Basically, you should use safe_call and its ilk. > Thank you for that clarification, done. > > Even then, some people will frown on 20% slowdown of the startup. > It is not a slowdown of the startup, it is a slowdown of setq, which becomes visible for the user when say 100 million setq's are executed. Anyway, given your remark, I improved the patch. With this optimized version, there is no noticeable difference for variables without a plist (~40 nanoseconds for each call to setq, with and without the patch), and a small difference for variables with a plist (~40 nanoseconds for each call to setq without the patch, ~42 nanoseconds with the patch).