emacs-bug-tracker
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debbugs-tracker] bug#32284: closed (special form documentation)


From: GNU bug Tracking System
Subject: [debbugs-tracker] bug#32284: closed (special form documentation)
Date: Sat, 28 Jul 2018 07:27:01 +0000

Your message dated Sat, 28 Jul 2018 10:26:43 +0300
with message-id <address@hidden>
and subject line Re: bug#32284: special form documentation
has caused the debbugs.gnu.org bug report #32284,
regarding special form documentation
to be marked as done.

(If you believe you have received this mail in error, please contact
address@hidden)


-- 
32284: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=32284
GNU Bug Tracking System
Contact address@hidden with problems
--- Begin Message --- Subject: special form documentation Date: Thu, 26 Jul 2018 17:44:17 -0500
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<))


--- End Message ---
--- Begin Message --- Subject: Re: bug#32284: special form documentation Date: Sat, 28 Jul 2018 10:26:43 +0300
> From: Brett Gilio <address@hidden>
> Date: Thu, 26 Jul 2018 19:04:32 -0500
> Cc: address@hidden
> 
> 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.


--- End Message ---

reply via email to

[Prev in Thread] Current Thread [Next in Thread]