unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#47862: 26.3; (elisp) `Eval During Compile'
@ 2021-04-18  4:09 Drew Adams
  2021-04-18  4:14 ` Drew Adams
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Drew Adams @ 2021-04-18  4:09 UTC (permalink / raw)
  To: 47862

This node says that `eval-when-compile' is a special form.

However, `C-h f' says that it's a macro, defined in byte-run.el,
and that's the case.  Please consider correcting the manual.


In GNU Emacs 26.3 (build 1, x86_64-w64-mingw32)
 of 2019-08-29
Repository revision: 96dd0196c28bc36779584e47fffcca433c9309cd
Windowing system distributor `Microsoft Corp.', version 10.0.19041
Configured using:
 `configure --without-dbus --host=x86_64-w64-mingw32
 --without-compress-install 'CFLAGS=-O2 -static -g3''






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47862: 26.3; (elisp) `Eval During Compile'
  2021-04-18  4:09 bug#47862: 26.3; (elisp) `Eval During Compile' Drew Adams
@ 2021-04-18  4:14 ` Drew Adams
  2021-04-18  4:24   ` Drew Adams
  2021-04-18  8:21 ` Philipp Stephani
  2021-05-04  9:30 ` Lars Ingebrigtsen
  2 siblings, 1 reply; 8+ messages in thread
From: Drew Adams @ 2021-04-18  4:14 UTC (permalink / raw)
  To: Drew Adams, 47862

Should have mentioned that this was reported by a
user of emacs.StackExchange, here:

https://emacs.stackexchange.com/q/64469/105






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47862: 26.3; (elisp) `Eval During Compile'
  2021-04-18  4:14 ` Drew Adams
@ 2021-04-18  4:24   ` Drew Adams
  0 siblings, 0 replies; 8+ messages in thread
From: Drew Adams @ 2021-04-18  4:24 UTC (permalink / raw)
  To: 47862

And the same is true of `eval-and-compile'.

And `with-no-warnings', which is in face a defun.

___

`define-obsolete-(function|variable|face)-alias',
and `defsubst', (other macros defined in
`byte-run.el') are handled correctly in the manual.






^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47862: 26.3; (elisp) `Eval During Compile'
  2021-04-18  4:09 bug#47862: 26.3; (elisp) `Eval During Compile' Drew Adams
  2021-04-18  4:14 ` Drew Adams
@ 2021-04-18  8:21 ` Philipp Stephani
  2021-04-18 15:20   ` bug#47862: [External] : " Drew Adams
  2021-05-04  9:30 ` Lars Ingebrigtsen
  2 siblings, 1 reply; 8+ messages in thread
From: Philipp Stephani @ 2021-04-18  8:21 UTC (permalink / raw)
  To: Drew Adams; +Cc: 47862

Am So., 18. Apr. 2021 um 06:11 Uhr schrieb Drew Adams <drew.adams@oracle.com>:
>
> This node says that `eval-when-compile' is a special form.
>
> However, `C-h f' says that it's a macro, defined in byte-run.el,
> and that's the case.  Please consider correcting the manual.
>

Could we instead redefine "special form" to mean "any form that
doesn't evaluate its arguments like a function does, no matter whether
it's implemented in C or as an ELisp macro"? It normally doesn't
matter for users how such forms are implemented.





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47862: [External] : Re: bug#47862: 26.3; (elisp) `Eval During Compile'
  2021-04-18  8:21 ` Philipp Stephani
@ 2021-04-18 15:20   ` Drew Adams
  0 siblings, 0 replies; 8+ messages in thread
From: Drew Adams @ 2021-04-18 15:20 UTC (permalink / raw)
  To: Philipp Stephani; +Cc: 47862

> Could we instead redefine "special form" to mean "any form that
> doesn't evaluate its arguments like a function does, no matter whether
> it's implemented in C or as an ELisp macro"? It normally doesn't
> matter for users how such forms are implemented.

No, please don't.  Both macro and special form have
established meanings in Emacs.

And neither necessarily does not evaluate its args.
It's incorrect to give the impression that that's
the case.

What's the case is that neither necessarily evals
its args - any or all of its args, and if it does
evaluate any args it doesn't necessarily eval them
in any particular order.

A macro should be referred to in the doc as a macro.
A special form isn't implemented as a macro, and it
should be referred to in the doc as a special form.

Beyond that, we should not be calling `foo' a macro
in some help (e.g. doc string) and calling it a
special form in other help (e.g. Elisp manual).



^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47862: 26.3; (elisp) `Eval During Compile'
  2021-04-18  4:09 bug#47862: 26.3; (elisp) `Eval During Compile' Drew Adams
  2021-04-18  4:14 ` Drew Adams
  2021-04-18  8:21 ` Philipp Stephani
@ 2021-05-04  9:30 ` Lars Ingebrigtsen
  2021-05-04 11:05   ` Stephen Berman
  2 siblings, 1 reply; 8+ messages in thread
From: Lars Ingebrigtsen @ 2021-05-04  9:30 UTC (permalink / raw)
  To: Drew Adams; +Cc: 47862

Drew Adams <drew.adams@oracle.com> writes:

> This node says that `eval-when-compile' is a special form.

It doesn't in Emacs 28, at least -- the word "special" doesn't exist in
that node.

It doesn't say that it's a macro either, but just uses the neutral
"form", which is correct.  Closing.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47862: 26.3; (elisp) `Eval During Compile'
  2021-05-04  9:30 ` Lars Ingebrigtsen
@ 2021-05-04 11:05   ` Stephen Berman
  2021-05-05  8:32     ` Lars Ingebrigtsen
  0 siblings, 1 reply; 8+ messages in thread
From: Stephen Berman @ 2021-05-04 11:05 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: 47862

On Tue, 04 May 2021 11:30:38 +0200 Lars Ingebrigtsen <larsi@gnus.org> wrote:

> Drew Adams <drew.adams@oracle.com> writes:
>
>> This node says that `eval-when-compile' is a special form.
>
> It doesn't in Emacs 28, at least -- the word "special" doesn't exist in
> that node.

Not in the compile.texi source file, but its definition uses @defspec,
which appears as `Special Form' in the elisp.info file.

> It doesn't say that it's a macro either, but just uses the neutral
> "form", which is correct.  Closing.

Steve Berman





^ permalink raw reply	[flat|nested] 8+ messages in thread

* bug#47862: 26.3; (elisp) `Eval During Compile'
  2021-05-04 11:05   ` Stephen Berman
@ 2021-05-05  8:32     ` Lars Ingebrigtsen
  0 siblings, 0 replies; 8+ messages in thread
From: Lars Ingebrigtsen @ 2021-05-05  8:32 UTC (permalink / raw)
  To: Stephen Berman; +Cc: 47862

Stephen Berman <stephen.berman@gmx.net> writes:

> Not in the compile.texi source file, but its definition uses @defspec,
> which appears as `Special Form' in the elisp.info file.

Ah, I missed that; thanks.  I've now changed them to use @defmac.

-- 
(domestic pets only, the antidote for overdose, milk.)
   bloggy blog: http://lars.ingebrigtsen.no





^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2021-05-05  8:32 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-04-18  4:09 bug#47862: 26.3; (elisp) `Eval During Compile' Drew Adams
2021-04-18  4:14 ` Drew Adams
2021-04-18  4:24   ` Drew Adams
2021-04-18  8:21 ` Philipp Stephani
2021-04-18 15:20   ` bug#47862: [External] : " Drew Adams
2021-05-04  9:30 ` Lars Ingebrigtsen
2021-05-04 11:05   ` Stephen Berman
2021-05-05  8:32     ` Lars Ingebrigtsen

unofficial mirror of bug-gnu-emacs@gnu.org 

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://yhetil.org/emacs-bugs/0 emacs-bugs/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 emacs-bugs emacs-bugs/ https://yhetil.org/emacs-bugs \
		bug-gnu-emacs@gnu.org
	public-inbox-index emacs-bugs

Example config snippet for mirrors.
Newsgroups are available over NNTP:
	nntp://news.yhetil.org/yhetil.emacs.bugs
	nntp://news.gmane.io/gmane.emacs.bugs


code repositories for project(s) associated with this inbox:

	https://git.savannah.gnu.org/cgit/emacs.git

AGPL code for this site: git clone http://ou63pmih66umazou.onion/public-inbox.git