Subject: bug#30241: Emacs 26.0.91: "Generalized variables" are not defined.

From: Alan Mackenzie <[email-masked]>
Date: Wed, 24 Jan 2018 20:06:52 +0000

Hello, Emacs.

Emacs 25.3, Emacs 26.0.91 elisp manual.

In enough places in emacs, we find terms like "generalized variable"
"place form", and "place" being used.  These terms are not defined in
the Elisp manual, or any place where they are used.  This is a bug.

There is a page in elisp which purports to define "generalized
variable", but rather than defining the term, it talks vaguely around
it, saying it is "one of the many places in Lisp memory where values can
be stored".  Does this mean it is different from the other such places?
If so, how does it differ.  WHAT IS IT????

The elisp page then goes on to give examples of "generalized variables",
never defining the term.  It gives no criterion by which the reader can
determine whether some random object is a generalized variable or not.

I want to know whether a function is a "generalized variable".  After a
long time trying to find out, I still don't know.  I've been trying for
over an hour to use add-function, with forms like

    (add-function :before sit-for (lambda () (acm-backtrace 5)))
    (add-function :before 'sit-for (....))
    (add-function :before #'sit-for (.....))
    (add-function :before (symbol-function 'sit-for) (....))

, and got nothing but unhelpful error messages back, such as 

    Symbol's value as variable is void: sit-for

.  The documentation of add-function is likewise vague and unhelpful.
The various inflections of "sit-for" above are at a place in the
add-function form where a "generalized variable" is needed.  Is a
function a generalized variable or not?

-- 
Alan Mackenzie (Nuremberg, Germany).