Path: csiph.com!weretis.net!feeder9.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: Martin Ward Newsgroups: comp.compilers Subject: Re: Undefined behaviour in C23 Date: Thu, 21 Aug 2025 15:11:08 +0100 Organization: Compilers Central Sender: johnl%iecc.com Approved: comp.compilers@iecc.com Message-ID: <25-08-006@comp.compilers> MIME-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Injection-Info: gal.iecc.com; posting-host="news.iecc.com:2001:470:1f07:1126:0:676f:7373:6970"; logging-data="28588"; mail-complaints-to="abuse@iecc.com" Keywords: C, standards Posted-Date: 21 Aug 2025 12:05:54 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com Xref: csiph.com comp.compilers:3680 On 20/08/2025 14:06, John wrote: > When a language is 50 years old and there is a mountain of legacy code that > they really don't want to break, it accumulates a lot of cruft. If we were > starting now we'd get something more like Go. > > On the other hand, there's the python approach in which they deprecate and > remove little used and crufty features, but old python code doesn't work any > more unless you go back and update it every year or two. -John] Legacy behaviour and undefined behaviour are orthogonal concepts. Any language ought to have fully defined behaviour: even if the definition is simply "syntax error" or "the program exits with a suitable error message". A language can be extended with new constructs and new functions: then the behaviour changes from "syntax error" or "error message" to the new functionality. Whether or not old behaviour is preserved is a completely separate issue. \-- Martin Dr Martin Ward | Email: [martin@gkc.org.uk](mailto:martin@gkc.org.uk) | G.K.Chesterton site: | Erdos number: 4