unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#25462: Out of date doc string for "`".
@ 2017-01-16 21:30 Alan Mackenzie
  2017-01-16 21:52 ` Noam Postavsky
  2021-09-25 16:12 ` Stefan Kangas
  0 siblings, 2 replies; 12+ messages in thread
From: Alan Mackenzie @ 2017-01-16 21:30 UTC (permalink / raw)
  To: 25462

Hello, Emacs.

The doc string for "`" has become partial.

It fails to mention that "`" has a radically different meaning when used
in certain parts of a `pcase', and probably quite a few other similar
macros.

-- 
Alan Mackenzie (Nuremberg, Germany).





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

* bug#25462: Out of date doc string for "`".
  2017-01-16 21:30 bug#25462: Out of date doc string for "`" Alan Mackenzie
@ 2017-01-16 21:52 ` Noam Postavsky
  2017-01-17 20:05   ` Alan Mackenzie
                     ` (2 more replies)
  2021-09-25 16:12 ` Stefan Kangas
  1 sibling, 3 replies; 12+ messages in thread
From: Noam Postavsky @ 2017-01-16 21:52 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: 25462

On Mon, Jan 16, 2017 at 4:30 PM, Alan Mackenzie <acm@muc.de> wrote:
> Hello, Emacs.
>
> The doc string for "`" has become partial.
>
> It fails to mention that "`" has a radically different meaning when used
> in certain parts of a `pcase', and probably quite a few other similar
> macros.

I don't think that makes sense. Similarly, we don't add a mention of
`cl-loop's use of `if' in the docstring of `if', because that's not
part of the `if' special form. It's just a use of `if' as a plain
symbol.





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

* bug#25462: Out of date doc string for "`".
  2017-01-16 21:52 ` Noam Postavsky
@ 2017-01-17 20:05   ` Alan Mackenzie
  2017-01-18  2:04     ` npostavs
  2017-01-17 21:17   ` John Mastro
  2017-01-18 20:40   ` Alan Mackenzie
  2 siblings, 1 reply; 12+ messages in thread
From: Alan Mackenzie @ 2017-01-17 20:05 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 25462

Hello, Noam.

On Mon, Jan 16, 2017 at 04:52:36PM -0500, Noam Postavsky wrote:
> On Mon, Jan 16, 2017 at 4:30 PM, Alan Mackenzie <acm@muc.de> wrote:
> > Hello, Emacs.

> > The doc string for "`" has become partial.

> > It fails to mention that "`" has a radically different meaning when used
> > in certain parts of a `pcase', and probably quite a few other similar
> > macros.

> I don't think that makes sense. Similarly, we don't add a mention of
> `cl-loop's use of `if' in the docstring of `if', because that's not
> part of the `if' special form. It's just a use of `if' as a plain
> symbol.

I don't think `if' inside cl-loop is liable to cause much confusion.
pcase, on the other hand, does cause confusion, as it radically changes
the meaning of symbols contained within it, something that other macros
don't do - with the possible minor exception of cl-loop.

If you can think of any other such examples of context dependence
changing the semantics, I think these should be documented too.

The direction I'm coming from is to make the doc strings help users -
not to make them 100% consistent.

-- 
Alan Mackenzie (Nuremberg, Germany).





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

* bug#25462: Out of date doc string for "`".
  2017-01-16 21:52 ` Noam Postavsky
  2017-01-17 20:05   ` Alan Mackenzie
@ 2017-01-17 21:17   ` John Mastro
  2017-01-18 20:55     ` Alan Mackenzie
  2017-01-18 20:40   ` Alan Mackenzie
  2 siblings, 1 reply; 12+ messages in thread
From: John Mastro @ 2017-01-17 21:17 UTC (permalink / raw)
  To: 25462; +Cc: Alan Mackenzie, Noam Postavsky

Noam Postavsky <npostavs@users.sourceforge.net> wrote:
> On Mon, Jan 16, 2017 at 4:30 PM, Alan Mackenzie <acm@muc.de> wrote:
>> Hello, Emacs.
>>
>> The doc string for "`" has become partial.
>>
>> It fails to mention that "`" has a radically different meaning when used
>> in certain parts of a `pcase', and probably quite a few other similar
>> macros.
>
> I don't think that makes sense. Similarly, we don't add a mention of
> `cl-loop's use of `if' in the docstring of `if', because that's not
> part of the `if' special form. It's just a use of `if' as a plain
> symbol.

Since the misunderstanding is believing that "`" is more special than it
is, maybe something calling out its ordinariness could be appropriate
(and throw in a reference to pcase as an example?)

I don't think this is great, but, as an example:

    Note that `\\=`' is any ordinary Lisp symbol and thus may be treated
    as data or given different meanings in particular contexts. For
    instance, it has a special meaning inside `pcase' patterns.





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

* bug#25462: Out of date doc string for "`".
  2017-01-17 20:05   ` Alan Mackenzie
@ 2017-01-18  2:04     ` npostavs
  0 siblings, 0 replies; 12+ messages in thread
From: npostavs @ 2017-01-18  2:04 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: 25462

Alan Mackenzie <acm@muc.de> writes:

> Hello, Noam.
>
> On Mon, Jan 16, 2017 at 04:52:36PM -0500, Noam Postavsky wrote:
>> On Mon, Jan 16, 2017 at 4:30 PM, Alan Mackenzie <acm@muc.de> wrote:
>> > Hello, Emacs.
>
>> > The doc string for "`" has become partial.
>
>> > It fails to mention that "`" has a radically different meaning when used
>> > in certain parts of a `pcase', and probably quite a few other similar
>> > macros.
>
>> I don't think that makes sense. Similarly, we don't add a mention of
>> `cl-loop's use of `if' in the docstring of `if', because that's not
>> part of the `if' special form. It's just a use of `if' as a plain
>> symbol.
>
> I don't think `if' inside cl-loop is liable to cause much confusion.
> pcase, on the other hand, does cause confusion, as it radically changes
> the meaning of symbols contained within it, something that other macros
> don't do - with the possible minor exception of cl-loop.
>
> If you can think of any other such examples of context dependence
> changing the semantics, I think these should be documented too.

`rx' gives new semantics to `and', `or', `any', etc...

`condition-case' changes the meaning of the symbol list at the front of
its handlers.

At one point, the `use-package' macro (note, this is not (yet) part of
Emacs) interpreted `,' to mean eager evaluation.  But people didn't like
it, so it now uses `lambda' for that instead.

> The direction I'm coming from is to make the doc strings help users -
> not to make them 100% consistent.

Well, I guess adding a mention of pcase in backquote's docstring would
be okay.  The way your initial report phrases it, as if the docstring is
incomplete without that, didn't make sense to me.





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

* bug#25462: Out of date doc string for "`".
  2017-01-16 21:52 ` Noam Postavsky
  2017-01-17 20:05   ` Alan Mackenzie
  2017-01-17 21:17   ` John Mastro
@ 2017-01-18 20:40   ` Alan Mackenzie
  2 siblings, 0 replies; 12+ messages in thread
From: Alan Mackenzie @ 2017-01-18 20:40 UTC (permalink / raw)
  To: Noam Postavsky; +Cc: 25462

Hello again, Noam.

On Mon, Jan 16, 2017 at 04:52:36PM -0500, Noam Postavsky wrote:
> On Mon, Jan 16, 2017 at 4:30 PM, Alan Mackenzie <acm@muc.de> wrote:
> > Hello, Emacs.

> > The doc string for "`" has become partial.

> > It fails to mention that "`" has a radically different meaning when used
> > in certain parts of a `pcase', and probably quite a few other similar
> > macros.

> I don't think that makes sense. Similarly, we don't add a mention of
> `cl-loop's use of `if' in the docstring of `if', because that's not
> part of the `if' special form. It's just a use of `if' as a plain
> symbol.

In cl-loop, you might have "if", but you're never going to have "(if
...", are you?  If this is correct, then `if' is not used in a way that
could be confused with the special form.

This doesn't apply to ` as used in pcase.

-- 
Alan Mackenzie (Nuremberg, Germany).





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

* bug#25462: Out of date doc string for "`".
  2017-01-17 21:17   ` John Mastro
@ 2017-01-18 20:55     ` Alan Mackenzie
  2017-01-18 22:14       ` Noam Postavsky
  0 siblings, 1 reply; 12+ messages in thread
From: Alan Mackenzie @ 2017-01-18 20:55 UTC (permalink / raw)
  To: John Mastro; +Cc: 25462, Noam Postavsky

Hello, John.

On Tue, Jan 17, 2017 at 01:17:27PM -0800, John Mastro wrote:
> Noam Postavsky <npostavs@users.sourceforge.net> wrote:
> > On Mon, Jan 16, 2017 at 4:30 PM, Alan Mackenzie <acm@muc.de> wrote:
> >> Hello, Emacs.

> >> The doc string for "`" has become partial.

> >> It fails to mention that "`" has a radically different meaning when used
> >> in certain parts of a `pcase', and probably quite a few other similar
> >> macros.

> > I don't think that makes sense. Similarly, we don't add a mention of
> > `cl-loop's use of `if' in the docstring of `if', because that's not
> > part of the `if' special form. It's just a use of `if' as a plain
> > symbol.

> Since the misunderstanding is believing that "`" is more special than it
> is, maybe something calling out its ordinariness could be appropriate
> (and throw in a reference to pcase as an example?)

"`" is very special.  So special, indeed, that its syntax is handled by
the Lisp reader.

> I don't think this is great, but, as an example:

>     Note that `\\=`' is any ordinary Lisp symbol and thus may be treated
>     as data or given different meanings in particular contexts. For
>     instance, it has a special meaning inside `pcase' patterns.

I think that's objectively wrong.  "`" isn't an ordinary Lisp symbol,
it's a reader macro which is handled in the reader.  There aren't many
of these macros, and only a very few in normal use.

Besides, we don't want to encourage people to reuse existing symbols for
unconnected purposes.

-- 
Alan Mackenzie (Nuremberg, Germany).





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

* bug#25462: Out of date doc string for "`".
  2017-01-18 20:55     ` Alan Mackenzie
@ 2017-01-18 22:14       ` Noam Postavsky
  0 siblings, 0 replies; 12+ messages in thread
From: Noam Postavsky @ 2017-01-18 22:14 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: John Mastro, 25462

On Wed, Jan 18, 2017 at 3:55 PM, Alan Mackenzie <acm@muc.de> wrote:
>
>>     Note that `\\=`' is any ordinary Lisp symbol and thus may be treated
>>     as data or given different meanings in particular contexts. For
>>     instance, it has a special meaning inside `pcase' patterns.
>
> I think that's objectively wrong.

It's correct.

>  "`" isn't an ordinary Lisp symbol,
> it's a reader macro which is handled in the reader.

It's both.  "`" is a reader macro which expands into a list starting
with the ordinary Lisp symbol named "`".

(equal (car (read-from-string "`a"))
       (list (intern "`") 'a)) ;=> t





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

* bug#25462: Out of date doc string for "`".
  2017-01-16 21:30 bug#25462: Out of date doc string for "`" Alan Mackenzie
  2017-01-16 21:52 ` Noam Postavsky
@ 2021-09-25 16:12 ` Stefan Kangas
  2021-09-26  6:46   ` Lars Ingebrigtsen
  1 sibling, 1 reply; 12+ messages in thread
From: Stefan Kangas @ 2021-09-25 16:12 UTC (permalink / raw)
  To: Alan Mackenzie; +Cc: 25462

Alan Mackenzie <acm@muc.de> writes:

> Hello, Emacs.
>
> The doc string for "`" has become partial.
>
> It fails to mention that "`" has a radically different meaning when used
> in certain parts of a `pcase', and probably quite a few other similar
> macros.

How about adding this at the very end of the ` docstring:

    Note that some macros, such as `pcase', change the meaning of this
    symbol.





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

* bug#25462: Out of date doc string for "`".
  2021-09-25 16:12 ` Stefan Kangas
@ 2021-09-26  6:46   ` Lars Ingebrigtsen
  2021-09-26  7:17     ` Stefan Kangas
  0 siblings, 1 reply; 12+ messages in thread
From: Lars Ingebrigtsen @ 2021-09-26  6:46 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Alan Mackenzie, 25462

Stefan Kangas <stefan@marxist.se> writes:

> How about adding this at the very end of the ` docstring:
>
>     Note that some macros, such as `pcase', change the meaning of this
>     symbol.

I added

Note that some macros, such as `pcase', use this symbol for other
purposes.

to Emacs 28.

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





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

* bug#25462: Out of date doc string for "`".
  2021-09-26  6:46   ` Lars Ingebrigtsen
@ 2021-09-26  7:17     ` Stefan Kangas
  2021-09-26 20:31       ` Alan Mackenzie
  0 siblings, 1 reply; 12+ messages in thread
From: Stefan Kangas @ 2021-09-26  7:17 UTC (permalink / raw)
  To: Lars Ingebrigtsen; +Cc: Alan Mackenzie, 25462

Lars Ingebrigtsen <larsi@gnus.org> writes:

> Stefan Kangas <stefan@marxist.se> writes:
>
>> How about adding this at the very end of the ` docstring:
>>
>>     Note that some macros, such as `pcase', change the meaning of this
>>     symbol.
>
> I added
>
> Note that some macros, such as `pcase', use this symbol for other
> purposes.
>
> to Emacs 28.

Yes, that's even better.  Thanks.





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

* bug#25462: Out of date doc string for "`".
  2021-09-26  7:17     ` Stefan Kangas
@ 2021-09-26 20:31       ` Alan Mackenzie
  0 siblings, 0 replies; 12+ messages in thread
From: Alan Mackenzie @ 2021-09-26 20:31 UTC (permalink / raw)
  To: Stefan Kangas; +Cc: Lars Ingebrigtsen, 25462

Hello, Lars and Stefan.

On Sun, Sep 26, 2021 at 00:17:30 -0700, Stefan Kangas wrote:
> Lars Ingebrigtsen <larsi@gnus.org> writes:

> > Stefan Kangas <stefan@marxist.se> writes:

> >> How about adding this at the very end of the ` docstring:

> >>     Note that some macros, such as `pcase', change the meaning of this
> >>     symbol.

> > I added

> > Note that some macros, such as `pcase', use this symbol for other
> > purposes.

> > to Emacs 28.

> Yes, that's even better.  Thanks.

Thanks for the fix!

-- 
Alan Mackenzie (Nuremberg, Germany).





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

end of thread, other threads:[~2021-09-26 20:31 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-01-16 21:30 bug#25462: Out of date doc string for "`" Alan Mackenzie
2017-01-16 21:52 ` Noam Postavsky
2017-01-17 20:05   ` Alan Mackenzie
2017-01-18  2:04     ` npostavs
2017-01-17 21:17   ` John Mastro
2017-01-18 20:55     ` Alan Mackenzie
2017-01-18 22:14       ` Noam Postavsky
2017-01-18 20:40   ` Alan Mackenzie
2021-09-25 16:12 ` Stefan Kangas
2021-09-26  6:46   ` Lars Ingebrigtsen
2021-09-26  7:17     ` Stefan Kangas
2021-09-26 20:31       ` Alan Mackenzie

Code repositories for project(s) associated with this public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).