Path: utzoo!utgpu!news-server.csri.toronto.edu!rpi!zaphod.mps.ohio-state.edu!think.com!hsdndev!cmcl2!lanl!jlg From: jlg@lanl.gov (Jim Giles) Newsgroups: comp.lang.c Subject: Re: low level optimization Message-ID: <21846@lanl.gov> Date: 18 Apr 91 21:35:25 GMT References: <21660@lanl.gov> <1991Apr17.225944.15261@zoo.toronto.edu> <1991Apr18.190403.29049@Think.COM> Organization: Los Alamos Natl Lab, Los Alamos, N.M. Lines: 22 In article <1991Apr18.190403.29049@Think.COM>, barmar@think.com (Barry Margolin) writes: > [...] > I interpreted the section of the standard that you quoted in another > posting as *allowing* separate compilation. This means that the programmer > isn't forced to compile everything together in order to achieve the > semantics specified by the language. [...] The standard _allows_ the _USER_ to decide whether to compile separately or together. In the standard, the word "may" applies to user choices, the corresponding constraint on implementations is that it _must_ work correctly when the user chooses to exercise the feature. In this case, if the user chooses only to recompile one file and not any of the others (which is allowed by the "may" clause), the implementation _must_ allow this to be linked with the previously translated files to produce a program. Sorry, those are the rules. These ANSI standards describe capabilities of the language - the requisite properties of an implementation must be inferred from that. And, as I said, if the standard says you _may_ do something, the implementation _must_ permit you to do it. J. Giles