GNU bug report logs - #32284
special form documentation

Previous Next

Package: emacs;

Reported by: Nicholas Drozd <nicholasdrozd <at> gmail.com>

Date: Thu, 26 Jul 2018 23:35:02 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: help-debbugs <at> gnu.org (GNU bug Tracking System)
To: Nicholas Drozd <nicholasdrozd <at> gmail.com>
Subject: bug#32284: closed (Re: bug#32284: special form documentation)
Date: Sat, 28 Jul 2018 07:27:01 +0000
[Message part 1 (text/plain, inline)]
Your bug report

#32284: special form documentation

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to 32284 <at> debbugs.gnu.org.

-- 
32284: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32284
GNU Bug Tracking System
Contact help-debbugs <at> gnu.org with problems
[Message part 2 (message/rfc822, inline)]
From: Eli Zaretskii <eliz <at> gnu.org>
To: Brett Gilio <brettg <at> posteo.net>
Cc: 32284-done <at> debbugs.gnu.org, nicholasdrozd <at> gmail.com
Subject: Re: bug#32284: special form documentation
Date: Sat, 28 Jul 2018 10:26:43 +0300
> From: Brett Gilio <brettg <at> posteo.net>
> Date: Thu, 26 Jul 2018 19:04:32 -0500
> Cc: 32284 <at> debbugs.gnu.org
> 
> Anybody else have any input?

I do: the point about track-mouse is correct: it used to be a special
form (implemented in C), but nowadays is a macro.  So I removed it
from the list of special forms.

I didn't do anything about 'lambda', because its user-facing behavior
is that of a special form, and the fact that it is a thin wrapper
around 'function' is an implementation detail that doesn't necessarily
matter in this context.

With that, I'm closing this bug report.

Thanks.

[Message part 3 (message/rfc822, inline)]
From: Nicholas Drozd <nicholasdrozd <at> gmail.com>
To: bug-gnu-emacs <at> gnu.org
Subject: special form documentation
Date: Thu, 26 Jul 2018 17:44:17 -0500
[Message part 4 (text/plain, inline)]
The Elisp manual section on Special Forms (10.2.7) lists around two dozen
special forms, but two of them aren't special forms.

* `lambda', it turns out, is not a special form, but a macro that wraps
itself in a call to the special form `function'. (The documentation for
`lambda' refers to it as "self-quoting"; this might be better changed to
"self-evaluating".)

* `track-mouse' isn't a special form, but a macro wrapper around the
primitive function `internal--track-mouse', which isn't a special form
either. (Section 29.15 on Mouse Tracking also inaccruately refers to
`track-mouse' as a special form.)

On the other hand, the special form `inline' is not listed in the Special
Forms section.

A list of all special forms can be gotten with

(let (special-forms)
  (mapatoms
   (lambda (sym)
     (when (special-form-p sym)
       (push sym special-forms))))
  (sort special-forms #'string<))
[Message part 5 (text/html, inline)]

This bug report was last modified 6 years and 304 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.