[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: |
Tue, 28 Apr 2020 17:04:59 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 |
On 4/28/20 4:53 PM, Dmitry Gutov wrote:
> const object - an object whose type is const-qualified, or a non-mutable
> subobject of a const object. Such object _cannot_ be modified: attempt to do
> so
> directly is a _compile-time error_, and attempt to do so indirectly (e.g., by
> modifying the const object through a reference or pointer to non-const type)
> results in undefined behavior.
It's reasonable to have compile-time checking in a statically-typed language,
though (as the above quote notes) the checking isn't adequate for C++ and one
can get undefined behavior anyway in that language. And we could add some
similar compile-time checking for the Elisp byte-compiler: it could warn about
misuses like (aset "abc" 0 ?d), for example.
However, any such compile-time checking would be either too restrictive (with
false positives) or only partial (with false negatives) or both (as in C++). So
it wouldn't be an adequate substitute for documenting that some objects should
not be changed.
> I gave a couple of options.
I recall your using "literal object" but that's not a good choice of wording
because the problem can occur with objects that are not literally present in any
source code.
>> there's clear precedent
>> elsewhere for the terminology now in use in the emacs-27 manual.
>
> Any particular example?
By "elsewhere" I meant in other language documentation (C/C++/etc.), not
elsewhere in the emacs-27 manual.
- bug#40671: [DOC] modify literal objects, (continued)
- bug#40671: [DOC] modify literal objects, Dmitry Gutov, 2020/04/28
- bug#40671: [DOC] modify literal objects, Paul Eggert, 2020/04/28
- bug#40671: [DOC] modify literal objects, Dmitry Gutov, 2020/04/28
- bug#40671: [DOC] modify literal objects, Paul Eggert, 2020/04/28
- bug#40671: [DOC] modify literal objects, Dmitry Gutov, 2020/04/28
- bug#40671: [DOC] modify literal objects, Paul Eggert, 2020/04/28
- bug#40671: [DOC] modify literal objects, Dmitry Gutov, 2020/04/28
- bug#40671: [DOC] modify literal objects, Paul Eggert, 2020/04/28
- bug#40671: [DOC] modify literal objects, Dmitry Gutov, 2020/04/28
- bug#40671: [DOC] modify literal objects, Dmitry Gutov, 2020/04/28
- bug#40671: [DOC] modify literal objects,
Paul Eggert <=
- bug#40671: [DOC] modify literal objects, Dmitry Gutov, 2020/04/28
- bug#40671: [DOC] modify literal objects, Drew Adams, 2020/04/28
- bug#40671: [DOC] modify literal objects, Dmitry Gutov, 2020/04/28
- bug#40671: [DOC] modify literal objects, Drew Adams, 2020/04/28
- bug#40671: [DOC] modify literal objects, Michael Heerdegen, 2020/04/28
- bug#40671: [DOC] modify literal objects, Paul Eggert, 2020/04/28
- bug#40671: [DOC] modify literal objects, Drew Adams, 2020/04/29
- bug#40671: [DOC] modify literal objects, Paul Eggert, 2020/04/29
- bug#40671: [DOC] modify literal objects, Richard Stallman, 2020/04/30
- bug#40671: [DOC] modify literal objects, Dmitry Gutov, 2020/04/30