|Re: emacs.pdmp not always rebuilt
|Mon, 04 Oct 2021 16:02:18 +0000
What do you mean by "debugged or updated", and how would that affect what we do at loadup time, but not what we do at any other time, including in interactive sessions?The problem that Lars, you and possibly others experienced (make continuing when it should have stopped) was due to the fact that "call1 (Qsubstitute_command_keys, Fget (errname, Qerror_message));" in print_error_message() failed when it was called while loading the first files in loadup. Are you sure that this call to call1 cannot possibly fail when fboundp is t?If fboundp returns non-nil, it means the symbol's function cell is not void, i.e. the symbol can be used as a function. Right? So the call can only fail if the function itself has a bug, right? And in the latter case, how is that different from any other Lisp function called during loadup?
It's different, precisely because it is not a function among other functions, it's the function that signals an error. And as we've just seen, if the function that signals an error itself fails, unexpected behavior can happen, especially when this happens during bootstrap.
I would have taken extra care to avoid that possibility, especially given that the importance of substitute-command-keys on error messages during bootstrap is close to zero. Perhaps I did not look close enough, but I could not find a single error message where substitute-command-keys would have had an effect, and even if there are a few, seeing "Command \[foobar\] blah blah" instead of "Command M-x foobar blah blah" or "Command C-x % blah blah" does not make a big difference.
|[Prev in Thread]
|[Next in Thread]