On Mon, Jul 05, 2021 at 09:48:51PM +0300, Eli Zaretskii wrote:
> > From: Philipp
> > Date: Mon, 5 Jul 2021 20:41:58 +0200
> > Cc: Help Gnu Emacs mailing list
[...]
> > You can mutate all objects, because all of them are stored in mutable memory.
>
> Not if you put it in read-only memory: you'd get a segfault with any
> modern OS.
>
> > For a reference manual, "you're asking for trouble" isn't a terribly useful statement.
>
> And "you must not mutate them" is? At least "you're asking for
> trouble" explains why not, especially if it actually describes some of
> the trouble.
I think putting things into absolute terms is what creates trouble here.
Mutable makes sense wit respect to a language model. In Python, for
example, strings are immutable because the language model doesn't provide
mutating operations. If you write a C library to poke holes in a Python
string, you are extending the language model and thus moving the
goalposts. Your game, have fun :-)
In Emacs Lisp, typical immutable objects are symbols, keywords, numbers
(although bignums technically could be made mutable, I don't think it'd
make much sense :)
Perhaps there are some I missed.
Cheers
- t