From: "João Távora" <joaotavora@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: Stefan Monnier <monnier@iro.umontreal.ca>, 49278@debbugs.gnu.org
Subject: bug#49278: 28.0.50; Lisp Mode is for Common Lisp
Date: Wed, 30 Jun 2021 13:45:58 +0100 [thread overview]
Message-ID: <CALDnm50WVeYeCis-DPQ7K4UXUUw4tMW1vZC2p-+eiPU+RymLjw@mail.gmail.com> (raw)
In-Reply-To: <83v95vmsxy.fsf@gnu.org>
On Wed, Jun 30, 2021 at 1:35 PM Eli Zaretskii <eliz@gnu.org> wrote:
>
> > From: João Távora <joaotavora@gmail.com>
> > Date: Tue, 29 Jun 2021 19:25:45 +0100
> > Cc: 49278@debbugs.gnu.org, Stefan Monnier <monnier@iro.umontreal.ca>
> >
> > > > - Lisp mode is the major mode for editing programs written in
> > > > -general-purpose Lisp dialects, such as Common Lisp. Its mode command
> > > > -is @kbd{M-x lisp-mode}. Emacs uses Lisp mode automatically for files
> > > > -whose names end in @file{.l}, @file{.lsp}, or @file{.lisp}.
> > > > + Lisp mode is the major mode for editing programs written in Common
> > > > +Lisp or its ancestor dialects. Its mode command is @kbd{M-x
> > > > +lisp-mode}. Emacs uses Lisp mode automatically for files whose names
> > > > +end in @file{.l}, @file{.lsp}, or @file{.lisp}.
> > >
> > > This basically doesn't change anything, and the original text does
> > > mention CL. If mentioning the ancestor dialects is important, we
> > > could add that.
> >
> > The point is to make sure that noone is misinformed to think that
> > lisp-mode is a suitable ancestor for, say, scheme-mode or clojure-mode or
> > my-2021-lisp-mode.
>
> We can mention Scheme and Clojure there (as examples of languages that
> are NOT handled), if that's the issue. Or maybe you can describe
> those dialects that you'd like to exempt in some more general way?
Here's a very good way: dialects that are _not_ Common Lisp or its
ancestors. Which is what I wrote. But Stefan goes even farther and
would probably phrase it: dialetcts that are _not_ Common Lisp _period_.
He's probably right. Lisp mode is only for Common Lisp (or for some
language you invent that is a superset of Common Lisp).
> > So it's not true that this doesn't change anything: it removes an
> > ambiguity.
>
> Not in my eyes, no. I think you assign too much significance to the
> "ancestor" part, and rely on the reader to understand that
> significance.
`lisp-mode` shuoldn't be used for editing other things than Common Lisp.
It's _that_ simple. Neither should it be used as an ancestor for derived
modes which aim to edit languages that are not a superset of Common
Lisp. I think it's pretty obvious that current phrasing makes this action
plausible, when in reality it's a mistake. It will bring problems to this
hypothetical developer.
Don't know how else to explain it.
> > > > (define-derived-mode lisp-mode lisp-data-mode "Lisp"
> > > > - "Major mode for editing Lisp code for Lisps other than GNU Emacs Lisp.
> > > > + "Major mode for editing Common Lisp code.
> > >
> > > Here I'd prefer to mention CL without un-mentioning the other Lisps.
> > > There's no reason to deny they exist or existed.
> >
> > That's true, I guess. The point is to make sure that no one gets the
> > temptation to derive new Lisp-ish modes based on lisp-mode for
> > languages that have no relation to CL. So what to you say to:
> >
> > "Major mode for editing Common Lisp and historically related Lisps"
> >
> > "Major mode for editing Common Lisp and its ancestors"
> >
> > "Major mode for editing code historically related to Common Lisp"
>
> Again, I'd like to understand better what misunderstandings are you
> trying to prevent.
Case in point: Phil Hagelberg in this discussion developed a Lisp-like
language, called "fennel" I believe. I believe he developed it in the
recent past. He used `lisp-mode` as the ancestor in `define-derived-mode`.
Because other long-running extensions for Common Lisp specifically
rely on lisp-mode-hook (which again, is for Common Lisp exclusively),
the presence of those extensions introduces problems that Phil has to
work around in this fennel-mode.el file. He also has to write more
code than we would have needed if he had used lisp-data-mode.
As far as I can tell, Phil used lisp-mode as an ancestor because
no lisp-data-mode was available/visible to him and because he
wanted to reuse some Lisp-editing code. A worthy goal. But because
of lisp-mode's proven specificity to Common Lisp, he also bought
himself some conflicts (that somehow the developers of Scheme mode
and Clojure mode managed to avoid). So the docstring fixes aim to
prevent that mistake.
João
next prev parent reply other threads:[~2021-06-30 12:45 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-06-29 18:06 bug#49278: 28.0.50; Lisp Mode is for Common Lisp João Távora
2021-06-29 18:16 ` Eli Zaretskii
2021-06-29 18:25 ` João Távora
2021-06-30 12:35 ` Eli Zaretskii
2021-06-30 12:45 ` João Távora [this message]
2021-06-29 20:46 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-29 20:55 ` João Távora
2021-06-29 22:59 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-30 12:47 ` Eli Zaretskii
2021-06-30 12:37 ` Eli Zaretskii
2021-06-30 13:03 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-30 13:21 ` João Távora
2021-06-30 13:29 ` Eli Zaretskii
2021-06-30 13:32 ` João Távora
2021-06-30 13:51 ` Eli Zaretskii
2021-06-30 14:32 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-30 14:50 ` João Távora
2021-06-30 15:54 ` Eli Zaretskii
2021-06-30 16:02 ` João Távora
2021-06-30 15:52 ` Eli Zaretskii
2021-06-30 16:37 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-30 16:47 ` Eli Zaretskii
2021-06-30 16:50 ` João Távora
2021-06-30 16:55 ` Eli Zaretskii
2021-06-30 16:58 ` João Távora
2021-06-30 14:54 ` João Távora
2021-06-30 15:55 ` Eli Zaretskii
2021-06-30 15:58 ` João Távora
2021-06-30 16:49 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-06-30 3:50 ` Phil Hagelberg
2021-06-30 9:44 ` João Távora
2021-09-24 23:01 ` Stefan Kangas
2021-09-24 23:23 ` João Távora
2021-09-25 0:22 ` Stefan Kangas
2021-09-25 1:26 ` bug#49278: [External] : " Drew Adams
2021-09-25 1:35 ` Lars Ingebrigtsen
2021-09-25 6:42 ` Eli Zaretskii
2021-09-25 1:13 ` bug#49278: [External] : " Drew Adams
2021-09-25 9:02 ` João Távora
2021-09-25 16:03 ` Drew Adams
2021-09-25 16:43 ` Stefan Kangas
2021-09-25 17:24 ` Drew Adams
2021-09-27 20:10 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-09-27 22:05 ` Drew Adams
2021-09-27 22:25 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-09-27 23:24 ` Drew Adams
2021-09-27 23:36 ` João Távora
2021-09-28 2:17 ` Drew Adams
2021-09-28 2:06 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-09-28 2:31 ` Drew Adams
2021-09-28 2:52 ` Stefan Monnier via Bug reports for GNU Emacs, the Swiss army knife of text editors
2021-09-27 14:48 ` Jean Louis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/emacs/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=CALDnm50WVeYeCis-DPQ7K4UXUUw4tMW1vZC2p-+eiPU+RymLjw@mail.gmail.com \
--to=joaotavora@gmail.com \
--cc=49278@debbugs.gnu.org \
--cc=eliz@gnu.org \
--cc=monnier@iro.umontreal.ca \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).