From: Drew Adams <drew.adams@oracle.com>
To: Dmitry Gutov <dgutov@yandex.ru>,
Michael Heerdegen <michael_heerdegen@web.de>,
Paul Eggert <eggert@cs.ucla.edu>
Cc: ke.vigouroux@laposte.net, 40671@debbugs.gnu.org,
"Richard Stallman" <rms@gnu.org>,
"Mattias Engdegård" <mattiase@acm.org>
Subject: bug#40671: [DOC] modify literal objects
Date: Sun, 10 May 2020 19:33:40 -0700 (PDT) [thread overview]
Message-ID: <19c29f91-b8d6-40bf-a3ee-42d8d84a1013@default> (raw)
In-Reply-To: <0020c4e0-a669-934f-f277-a34b0fd28a65@yandex.ru>
> >> Drew mentioned his dislike for the term "safe" AFAIR
> >
> > I don't recall saying that, but I may have. Not
> > sure what's meant here. I objected to using
> > "dangerous", as if the gotcha was generally
> > hazardous to life.
>
> Would "unsafe mutations" be better?
I didn't really want to get into this with you
guys. I just wanted to reply to Michael's
message. But...
I'd prefer that we speak of "modification",
not "mutation". "Mutation" has a connotation
of something happening on its own. If that
were the case then we wouldn't be trying to
tell people not to do something!
I'm not a big fan of "safe" (or, especially,
"dangerous"), unless it's about human safety
(e.g. an airline maintenance manual).
I'd prefer that we just tell users that if
they do certain things then the behavior of
their code _might not be what they expect_.
Or that the behavior is "undefined". And
let it go at that.
What's important is to give them some idea
of _what_ it is that we're telling them not
to do. I don't have an example, but I think
a simple quoted-list example can get the point
across. And then you can say something about
strings or whatever, if you like, without
bothering with more examples.
My advice: don't try to explain too well
just what happens. See if you can get the
general point across without any exhaustive
rundown of a bunch of different cases or
trying to be too exact.
If a user understands that internal Lisp
structures (objects) can get created by
(1) the Lisp reader, (2) the interpreter, and
(3) the byte compiler, and if s?he understands
that what's seen in the source code does not
necessarily correspond to when a corresponding
Lisp object gets created, then s?he'll get it.
Just when, and how many times does the source
code of a quoted list result in a new cons?
You can't really know. When it's read?
byte-compiled?
A new Lisp user thinks in terms of interpreted
source code. Seeing a quoted list, s?he thinks
that a new cons is created each time it's read,
interpreted, or byte-compiled. But that may
not (typically does not) happen. If you modify
the cons that resulted from a source-code quoted
list then that _same_ cons might be baked into
the internal code thereafter.
next prev parent reply other threads:[~2020-05-11 2:33 UTC|newest]
Thread overview: 170+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-04-16 19:28 bug#40671: [DOC] modify literal objects Kevin Vigouroux via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-04-17 16:09 ` Mattias Engdegård
2020-04-17 16:37 ` Mattias Engdegård
2020-04-17 17:27 ` Eli Zaretskii
2020-04-18 20:10 ` Paul Eggert
2020-04-18 21:54 ` Drew Adams
2020-04-19 2:39 ` Noam Postavsky
2020-04-19 20:39 ` Paul Eggert
2020-04-19 21:01 ` Drew Adams
2020-04-19 21:16 ` Paul Eggert
2020-04-19 22:24 ` Drew Adams
2020-04-19 22:51 ` Paul Eggert
2020-04-20 5:32 ` Drew Adams
2020-04-22 17:36 ` Paul Eggert
2020-05-01 3:03 ` Dmitry Gutov
2020-05-01 5:16 ` Drew Adams
2020-05-01 21:46 ` Paul Eggert
2020-05-01 23:37 ` Dmitry Gutov
2020-04-19 2:26 ` Richard Stallman
2020-04-19 13:56 ` Eli Zaretskii
2020-04-19 16:59 ` Mattias Engdegård
2020-04-19 19:21 ` Eli Zaretskii
2020-04-19 21:02 ` Paul Eggert
2020-04-19 21:11 ` Drew Adams
2020-04-19 21:57 ` Michael Heerdegen
2020-04-19 22:41 ` Paul Eggert
2020-04-19 23:45 ` Michael Heerdegen
2020-04-20 0:24 ` Paul Eggert
2020-04-20 0:53 ` Michael Heerdegen
2020-04-20 3:23 ` Paul Eggert
2020-04-20 3:36 ` Michael Heerdegen
2020-04-22 6:30 ` Paul Eggert
2020-04-20 5:54 ` Drew Adams
2020-04-22 17:21 ` Paul Eggert
2020-04-23 0:49 ` Michael Heerdegen
2020-04-24 2:36 ` Richard Stallman
2020-04-24 15:08 ` Drew Adams
2020-04-25 1:58 ` Paul Eggert
2020-04-24 16:39 ` Mattias Engdegård
2020-04-24 16:46 ` Dmitry Gutov
2020-04-25 2:21 ` Paul Eggert
2020-04-25 2:40 ` Dmitry Gutov
2020-04-25 3:20 ` Paul Eggert
2020-04-25 19:30 ` Dmitry Gutov
2020-04-26 3:49 ` Paul Eggert
2020-04-26 14:03 ` Dmitry Gutov
2020-04-26 14:19 ` Eli Zaretskii
2020-04-26 14:34 ` Dmitry Gutov
2020-04-26 15:46 ` Eli Zaretskii
2020-04-26 16:02 ` Dmitry Gutov
2020-04-26 16:58 ` Eli Zaretskii
2020-04-26 17:39 ` Dmitry Gutov
2020-04-26 18:14 ` Eli Zaretskii
2020-04-26 18:32 ` Dmitry Gutov
2020-04-26 18:41 ` Eli Zaretskii
2020-04-26 18:53 ` Dmitry Gutov
2020-04-26 18:57 ` Paul Eggert
2020-04-26 19:22 ` Philipp Stephani
2020-04-26 20:14 ` Paul Eggert
2020-04-26 21:23 ` Dmitry Gutov
2020-04-26 23:13 ` Paul Eggert
2020-04-27 0:53 ` Dmitry Gutov
2020-04-27 1:49 ` Paul Eggert
2020-04-28 3:05 ` Dmitry Gutov
2020-04-28 8:17 ` Paul Eggert
2020-04-28 13:54 ` Dmitry Gutov
2020-04-28 17:59 ` Paul Eggert
2020-04-28 18:46 ` Dmitry Gutov
2020-04-28 19:20 ` Paul Eggert
2020-04-28 19:33 ` Dmitry Gutov
2020-04-28 20:09 ` Paul Eggert
2020-04-28 21:10 ` Dmitry Gutov
2020-04-28 23:10 ` Paul Eggert
2020-04-28 23:36 ` Dmitry Gutov
2020-04-28 23:53 ` Paul Eggert
2020-04-28 23:57 ` Dmitry Gutov
2020-04-28 23:53 ` Dmitry Gutov
2020-04-29 0:04 ` Paul Eggert
2020-04-29 0:14 ` Dmitry Gutov
2020-04-29 0:55 ` Drew Adams
2020-04-29 1:03 ` Dmitry Gutov
2020-04-29 1:15 ` Drew Adams
2020-04-29 1:27 ` Michael Heerdegen
2020-04-29 1:38 ` Paul Eggert
2020-04-29 4:36 ` Drew Adams
2020-04-29 16:18 ` Paul Eggert
2020-05-01 2:47 ` Richard Stallman
2020-05-01 6:23 ` Eli Zaretskii
2020-05-01 3:13 ` Dmitry Gutov
2020-05-01 5:15 ` Drew Adams
2020-05-01 21:40 ` Paul Eggert
2020-05-01 22:05 ` Drew Adams
2020-05-01 22:28 ` Paul Eggert
2020-05-02 1:07 ` Dmitry Gutov
2020-05-02 6:28 ` Paul Eggert
2020-05-02 15:42 ` Dmitry Gutov
2020-05-02 19:35 ` Paul Eggert
2020-05-03 1:30 ` Dmitry Gutov
2020-05-03 7:40 ` Paul Eggert
2020-05-03 16:44 ` Dmitry Gutov
2020-05-03 20:48 ` Paul Eggert
2020-05-03 22:17 ` Dmitry Gutov
2020-05-03 22:18 ` Dmitry Gutov
2020-05-03 22:39 ` Paul Eggert
2020-05-03 22:53 ` Dmitry Gutov
2020-05-03 23:10 ` Paul Eggert
2020-05-04 10:16 ` Dmitry Gutov
2020-05-04 17:52 ` Paul Eggert
2020-05-05 1:39 ` Dmitry Gutov
2020-05-05 6:09 ` Paul Eggert
2020-05-05 12:38 ` Dmitry Gutov
2020-05-09 6:10 ` Paul Eggert
2020-05-10 3:13 ` Dmitry Gutov
2020-05-10 13:34 ` Dmitry Gutov
2020-05-10 17:29 ` Paul Eggert
2020-05-11 0:00 ` Michael Heerdegen
2020-05-11 0:26 ` Dmitry Gutov
2020-05-11 1:47 ` Drew Adams
2020-05-11 1:54 ` Dmitry Gutov
2020-05-11 2:33 ` Drew Adams [this message]
2020-05-11 2:56 ` Michael Heerdegen
2020-05-11 4:21 ` Drew Adams
2020-05-11 4:51 ` Michael Heerdegen
2020-05-11 6:28 ` Paul Eggert
2020-05-11 13:57 ` Noam Postavsky
2020-05-11 22:36 ` Michael Heerdegen
2020-05-11 22:30 ` Michael Heerdegen
2020-05-12 3:20 ` Richard Stallman
2020-05-12 4:24 ` Michael Heerdegen
2020-05-13 3:57 ` Richard Stallman
2020-05-13 5:05 ` Michael Heerdegen
2020-05-14 5:14 ` Richard Stallman
[not found] ` <05BEF593-F16A-4DEE-98BC-653221F1F9EE@acm.org>
2020-05-17 0:11 ` Paul Eggert
2020-05-17 9:43 ` Mattias Engdegård
2020-05-17 16:38 ` Paul Eggert
2020-05-11 1:53 ` Paul Eggert
2020-05-11 3:18 ` Michael Heerdegen
2020-05-11 0:44 ` Dmitry Gutov
2020-05-11 1:57 ` Paul Eggert
2020-05-12 1:59 ` Dmitry Gutov
2020-05-17 1:28 ` Paul Eggert
2020-05-17 5:02 ` Michael Heerdegen
2020-05-17 16:34 ` Paul Eggert
2020-05-17 12:39 ` Dmitry Gutov
2020-05-17 16:21 ` Paul Eggert
2020-05-05 17:40 ` Drew Adams
2020-05-05 18:49 ` Dmitry Gutov
2020-05-05 19:26 ` Drew Adams
2020-05-05 20:48 ` Kevin Vigouroux via Bug reports for GNU Emacs, the Swiss army knife of text editors
2020-05-09 5:57 ` Paul Eggert
2020-04-28 21:18 ` Dmitry Gutov
2020-04-28 17:25 ` Drew Adams
2020-04-28 17:47 ` Paul Eggert
2020-04-29 0:32 ` Michael Heerdegen
2020-04-29 1:40 ` Paul Eggert
2020-04-29 4:40 ` Michael Heerdegen
2020-04-29 8:01 ` Eli Zaretskii
2020-04-29 16:36 ` Paul Eggert
2020-04-24 17:18 ` Drew Adams
2020-04-25 3:38 ` Richard Stallman
2020-04-25 18:26 ` Paul Eggert
2020-04-25 2:22 ` Paul Eggert
2020-04-25 6:00 ` Andreas Schwab
2020-04-25 18:23 ` Paul Eggert
2020-04-28 23:52 ` Michael Heerdegen
2020-04-21 1:25 ` Michael Heerdegen
2020-04-21 2:20 ` Paul Eggert
2020-04-20 6:02 ` Drew Adams
2020-04-19 20:45 ` Paul Eggert
2020-04-20 14:10 ` Eli Zaretskii
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=19c29f91-b8d6-40bf-a3ee-42d8d84a1013@default \
--to=drew.adams@oracle.com \
--cc=40671@debbugs.gnu.org \
--cc=dgutov@yandex.ru \
--cc=eggert@cs.ucla.edu \
--cc=ke.vigouroux@laposte.net \
--cc=mattiase@acm.org \
--cc=michael_heerdegen@web.de \
--cc=rms@gnu.org \
/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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.