Path: csiph.com!usenet.pasdenom.info!aioe.org!.POSTED!not-for-mail From: "Rod Pemberton" Newsgroups: comp.lang.forth Subject: Re: Epic Fail Date: Sat, 26 Apr 2014 09:11:03 -0400 Organization: Aioe.org NNTP Server Lines: 30 Message-ID: References: <64idnem648RzN9jOnZ2dnUVZ8iWdnZ2d@supernews.com> <2014Apr11.192347@mips.complang.tuwien.ac.at> <2014Apr13.181030@mips.complang.tuwien.ac.at> <27ilk9dvau3o08tmi9ccedohs8j8oujac2@4ax.com> <5cb167bf-1408-42d5-b3e9-4b5084b211d2@googlegroups.com> <9ssml9phf0dqnh6drjve8igb4jsqkitmuj@4ax.com> NNTP-Posting-Host: CNsg4fVcCsvs3UaOgZtQCw.user.speranza.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1; format=flowed; delsp=yes Content-Transfer-Encoding: 7bit X-Complaints-To: abuse@aioe.org User-Agent: Opera Mail/12.16 (Linux) X-Notice: Filtered by postfilter v. 0.8.2 Xref: csiph.com comp.lang.forth:29862 On Sat, 26 Apr 2014 06:06:41 -0400, Andrew Haley wrote: > I am arguing for a literalist interpretation of language semantics. > That is to say, believe that the specification means what it says: > when it says something is undefined, it really is undefined. Oh, c'mon! You know full well that's *NOT* remotely how C works. Stop being inciteful and spreading B.S. or F.U.D. C has a historical model of implementation that started with C 1974 and K&R C. All C compilers support this set of undocumented and historical behaviors. Then, C was standardized with ANSI C. That captured some of the required behaviors, but not enough. Some standard behavior couldn't be standardized due to different computing architectures. C was then tweaked slightly to comply with the major changes of the ANSI C standard, but the stuff that was already working for the existing C compilers wasn't changed to match the specifications. C was then tweaked again for the important fixes in the various TCs. A handful of C compilers were tweaked again when ISO C99 came about, but not all. If you don't implement those historical and undocumented behaviors of K&R C and C 1974, C code will not work. If you don't implement the requirements of the C Rationale, C won't work correctly. If you rely exclusively on the current C specifications, you're going to implement a botched up version of C. You need to understand the C Rationale and the historic behaviors of C. Rod Pemberton