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

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

bug#40671: [DOC] modify literal objects


From: Paul Eggert
Subject: bug#40671: [DOC] modify literal objects
Date: Fri, 24 Apr 2020 19:21:17 -0700
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0

On 4/24/20 9:46 AM, Dmitry Gutov wrote:
> On 24.04.2020 19:39, Mattias EngdegÄrd wrote:
>> That is an interesting point. What is the difference between CANNOT and 
>> SHOULD
>> NOT, operationally? To the user, nothing; there is no gain from disobeying 
>> our
>> advice.
> 
> The difference is at runtime, obviously. And the problem is using the words 
> in a
> way that differs from other programming languages, for instance.

That depends on what other programming languages we're talking about. The
current use of 'constant' in the manual corresponds reasonably closely to
'const' objects in C and C++.

>> It's useful to have the option to add strong checks, so that (setcar '(1 . 2)
>> 3) throws an error. Then, what used to be SHOULD NOT turns into CANNOT, but
>> the attentive user has no reason to change behaviour.
> 
> *If* we do that, we could call them constants. But I imagine we never will, 
> for
> backward compatibility reasons. Emacs core itself modifies these "constants" 
> at
> runtime in quite a few places, I'm sure.

Actually Emacs formerly was more careful about this sort of thing: more objects
were constant and Emacs reliably signaled an error if you tried to change them.
If we brought back this feature we'd actually be more backwards-compatible than
we already are, at least in some sense. I expect it'd be a good thing to do if
it didn't hurt performance, as it should help reliability/safety a bit.





reply via email to

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