|
From: | Dmitry Gutov |
Subject: | bug#40671: [DOC] modify literal objects |
Date: | Fri, 24 Apr 2020 19:46:38 +0300 |
User-agent: | Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.4.1 |
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.
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.
[Prev in Thread] | Current Thread | [Next in Thread] |