Deutsch English Français Italiano |
<vsisgt$1bk1v$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: David Brown <david.brown@hesbynett.no> Newsgroups: comp.lang.c++ Subject: Re: Pre-main construction order in modules Date: Wed, 2 Apr 2025 10:29:17 +0200 Organization: A noiseless patient Spider Lines: 50 Message-ID: <vsisgt$1bk1v$1@dont-email.me> References: <vsb12i$2mv42$1@dont-email.me> <vsbl21$1jsvi$1@dont-email.me> <vsbo2p$1p5ov$1@dont-email.me> <vse8sj$f9o2$1@dont-email.me> <vsfq2q$26s1t$1@dont-email.me> <vsh9av$362k4$1@dont-email.me> <20250401231040.00007eeb@yahoo.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Injection-Date: Wed, 02 Apr 2025 10:29:18 +0200 (CEST) Injection-Info: dont-email.me; posting-host="74a97941b726b117bb180f881e003081"; logging-data="1429567"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/QoYMZaEcz4GXMTj0wjOYE0/247YmqnsY=" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.11.0 Cancel-Lock: sha1:qo5WcG7MnTCSZ8U+y9szbqXrx/Y= In-Reply-To: <20250401231040.00007eeb@yahoo.com> Content-Language: en-GB Bytes: 3633 On 01/04/2025 22:10, Michael S wrote: > On Tue, 1 Apr 2025 13:55:43 -0400 > James Kuyper <jameskuyper@alumni.caltech.edu> wrote: > >> On 4/1/25 00:29, Jakob Bohm wrote: > >> >>> However treating the standard text as an imperfect description of >>> traditional compiler techniques used for 2nd. Edition compilers >>> makes much more sense . >> >> No, that does not. The standard was never intended as a description of >> how compilers actually work, it was always intended to be a >> description of requirements on how they should work. > > > It sounds to me like a revisionisms. > Most language standards are intended to codify commonalities of work of > existing compilers. That applies to C++98 and mostly, although not > completely, to the following C++ standards. > There exist exceptions, for example, Ada83. But they are exceptions. > Most language standards /started/ with a codification of existing tools. Making a language standard is a lot of effort, and is rarely done until there is at least one implementation and it has been used for a while - there's little point spending a lot of time defining a language that might never be used, or might turn out to be impractical or inefficient to implement. Initial standards are often books - K&R "The C Programming Language" and Stroustrup "The C++ Programming Language" being fine examples. More official standards can come later. Sometimes there is a "reference implementation" and the documentation for that becomes, in effect, the standard. But once the process is in place, it is now the standard that defines the language, and future implementations are intended to conform to the standard. Implementations can have extensions and extra features, and those can strongly influence future versions of the standard, but the standard defines how the language works. Thus many features that were added to C and C++ after their initial standardisation began as extensions in compilers - especially gcc. But the standardised features were what the language committees felt were best for the language going forward - /not/ a codification of existing practice. There are countless examples of new features in language standards that are clearly inspired by, but noticeably different from, extensions in compilers.