Liste des Groupes | Revenir à cl c |
On 2024-03-24, David Brown <david.brown@hesbynett.no> wrote:Users and implementers can agree on requirements that are outside the requirements of the standards - that is certainly true. A user will require many things of a compiler that are not in the standard - the system it runs on, its speed, its cost, the quality of the error messages, and countless other things.On 24/03/2024 17:02, Kaz Kylheku wrote:Sure there is; just not in a way that speaks to the formal notion ofOn 2024-03-24, David Brown <david.brown@hesbynett.no> wrote:>On 24/03/2024 06:50, Kaz Kylheku wrote:>(So why bother looking.) I mean,>
the absolute baseline requirement any LTO implementor strives toward is
no change in observable behavior in a strictly conforming program, which
would be a showstopper.
>
Yes.
>
I don't believe anyone - except you - has said anything otherwise. A C
implementation is conforming if and only if it takes any correct C
source code and generates a program image that always has correct
observable behaviour when no undefined behaviour is executed. There are
no extra imaginary requirements to be conforming, such as not being
allowed to use extra information while compiling translation units.
But the requirement isn't imaginary. The "least requirements"
paragraph doesn't mean that all other requirements are imaginary;
most of them are necessary to describe the language so that we know
how to find the observable behavior.
>
The text is not imaginary - your reading between the lines /is/. There
is no rule in the C standards stopping the compiler from using
additional information or knowledge about other parts of the program.
conformance. The text is there, and a user and implementor can use
that as a touchstone for agreeing on something outside of conformance.
No, not remotely.So, in that situation, your requirement can be articulated in a way thatIn safety critical coding, we might want to conduct a code review of>
the disassembly of an object file (does it correctly implement the
intent we believe to be expressed in the source), and then retain that
exact file until wit needs to be recompiled.
Sure. And for that reason, some developers in that field will not use
LTO. I personally don't make much use of LTO because it makes software
a pain to debug.
refers to the descriptions in ISO C.
You're having your translationThat is completely irrelevant to me. What /is/ relevant, is that code is not moved around too much and it is thus easier to follow when single-stepping or doing other debugging. I may also disable inlining and other inter-procedural optimisations within units - something that clearly has no relevance to conformity.
units semantically analyzed according to the abstract separation between
phase 7 and 8 (which is not required to be followed for conformance).
We can identify the LTO switch in the compiler as hinging aroundNo, we can't. LTO is fully valid, conforming optimisation that does not affect the abstract semantics of the language in any way.
whether the abstract semantics is followed or not. (Just we can't tell
using observable behavior.)
This seems like a good thing.It's a good thing that people get the choice to balance different requirements beyond the C standards. (And they even get some options that affect conformity, because that is not always important to all users.)
OK. Let's try to be clear - "conformance" on its own, in c.l.c., means conformity to the C standards. If you or I are talking about conforming to a different set of requirements, we need to be explicit about it.Certainly not! I was wrongly talking about that one and onlyWe just may not confuse that conformance (private contract between>
implementor and user) with ISO C conformance, as I have.
Sorry about that!
>
Are you saying that after dozens of posts back and forth where you made
claims about non-conformity of C compilers handling of C code in
comp.lang.c, with heavy references to the C standards which define the
term "conformity", you are now saying that you were not talking about C
standard conformity?
conformance.
Once again, sorry about that.
Les messages affichés proviennent d'usenet.