* bug#17872: 24.4.50; "primitive" in (elisp) `Advising Functions' and similar nodes
@ 2014-06-29 14:35 Drew Adams
2019-08-04 11:56 ` Lars Ingebrigtsen
0 siblings, 1 reply; 3+ messages in thread
From: Drew Adams @ 2014-06-29 14:35 UTC (permalink / raw)
To: 17872
Please use some other term than "primitive" for what is intended here.
The term "primitive" already has a different meaning in Emacs, which you
can find by using `i primitive RET' in the Elisp manual:
"primitive"
A function which is callable from Lisp but is actually written in
C. Primitives are also called "built-in functions", or "subrs".
Examples include functions like `car' and `append'. In addition,
all special forms (see below) are also considered primitives.
Usually, a function is implemented as a primitive because it is a
fundamental part of Lisp (e.g., `car'), or because it provides a
low-level interface to operating system services, or because it
needs to run fast. Unlike functions defined in Lisp, primitives
can be modified or added only by changing the C sources and
recompiling Emacs. See *note Writing Emacs Primitives::.
The things being referred to in node `Advising Functions' and other
nodes (its children, at least) as "primitives", are NOT primitives.
They are either macros (e.g. `add-function') or ordinary Lisp functions
(e.g. `advice-add'). This confuses rather than helps Emacs users.
In GNU Emacs 24.4.50.1 (i686-pc-mingw32)
of 2014-06-17 on ODIEONE
Bzr revision: 117359 monnier@iro.umontreal.ca-20140617193358-2t1nl1te9gc2mqrx
Windowing system distributor `Microsoft Corp.', version 6.1.7601
Configured using:
`configure --prefix=/c/Devel/emacs/snapshot/trunk
--enable-checking=yes,glyphs 'CFLAGS=-O0 -g3'
LDFLAGS=-Lc:/Devel/emacs/lib 'CPPFLAGS=-DGC_MCHECK=1
-Ic:/Devel/emacs/include''
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#17872: 24.4.50; "primitive" in (elisp) `Advising Functions' and similar nodes
2014-06-29 14:35 bug#17872: 24.4.50; "primitive" in (elisp) `Advising Functions' and similar nodes Drew Adams
@ 2019-08-04 11:56 ` Lars Ingebrigtsen
2019-08-05 0:56 ` Drew Adams
0 siblings, 1 reply; 3+ messages in thread
From: Lars Ingebrigtsen @ 2019-08-04 11:56 UTC (permalink / raw)
To: Drew Adams; +Cc: 17872
Drew Adams <drew.adams@oracle.com> writes:
> Please use some other term than "primitive" for what is intended here.
> The term "primitive" already has a different meaning in Emacs, which you
> can find by using `i primitive RET' in the Elisp manual:
>
> "primitive"
> A function which is callable from Lisp but is actually written in
> C. Primitives are also called "built-in functions", or "subrs".
> Examples include functions like `car' and `append'. In addition,
> all special forms (see below) are also considered primitives.
Are you referring to (for instance) this text?
---
Emacs's advice system provides two sets of primitives for that: the core set,
for function values held in variables and object fields (with the corresponding
primitives being @code{add-function} and @code{remove-function}) and another
set layered on top of it for named functions (with the main primitives being
@code{advice-add} and @code{advice-remove}).
---
Nowhere in this node (and the subsequent nodes) is the word "primitive"
used in reference to a function or the like, but in the phrase "Core
Advising Primitives" or similar. I don't think there's much scope for
confusion with the other use of the word, so I'm closing this bug report.
--
(domestic pets only, the antidote for overdose, milk.)
bloggy blog: http://lars.ingebrigtsen.no
^ permalink raw reply [flat|nested] 3+ messages in thread
* bug#17872: 24.4.50; "primitive" in (elisp) `Advising Functions' and similar nodes
2019-08-04 11:56 ` Lars Ingebrigtsen
@ 2019-08-05 0:56 ` Drew Adams
0 siblings, 0 replies; 3+ messages in thread
From: Drew Adams @ 2019-08-05 0:56 UTC (permalink / raw)
To: Lars Ingebrigtsen; +Cc: 17872
> > Please use some other term than "primitive" for what is intended
> > here. The term "primitive" already has a different meaning
> > in Emacs, which you can find by using `i primitive RET' in the
> > Elisp manual:
> >
> > "primitive"
> > A function which is callable from Lisp but is actually written
> > in C. Primitives are also called "built-in functions", or
> > "subrs".
> > Examples include functions like `car' and `append'. In
> > addition, all special forms (see below) are also considered
> > primitives.
>
> Are you referring to (for instance) this text?
>
> ---
> Emacs's advice system provides two sets of primitives for that: the
> core set, for function values held in variables and object
> fields (with the corresponding primitives being @code{add-function}
> and @code{remove-function}) and another set layered on top of it
> for named functions (with the main primitives being
> @code{advice-add} and @code{advice-remove}).
Yes, and as the bug title says, "and similar nodes".
> Nowhere in this node (and the subsequent nodes) is the word "primitive"
> used in reference to a function or the like,
^^^^^^^^^^^^^^^^^^^^^^
Uh, I beg to differ. All of the "primitives" in the
text you just quoted are functions. And that text
explicitly refers to them as functions.
They are _functions_, and they are not coded in C.
> but in the phrase "Core Advising Primitives" or similar.
> I don't think there's much scope for confusion with the
> other use of the word,
The undefined term "core" here presumably means
that these are the basic, or fundamental functions
used for advice. Though undefined here, "core" is
OK. What's not OK (it's misleading) is "primitive".
"Core Advising Functions" or "Basic Advising
Functions" would be clearer, and would not invite
confusion with Emacs primitives, which are callable
from Lisp but written in C.
Either that or perhaps you would like to rewrite
the longstanding text that defines "primitive" as
a function or special form written in C.
> so I'm closing this bug report.
Unfortunate.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-08-05 0:56 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-06-29 14:35 bug#17872: 24.4.50; "primitive" in (elisp) `Advising Functions' and similar nodes Drew Adams
2019-08-04 11:56 ` Lars Ingebrigtsen
2019-08-05 0:56 ` Drew Adams
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.