Path: csiph.com!weretis.net!feeder6.news.weretis.net!news.misty.com!news.iecc.com!.POSTED.news.iecc.com!nerds-end From: gah4 Newsgroups: comp.compilers Subject: Re: Wrestling with phase 1 of a C compiler Date: Wed, 14 Sep 2022 15:40:33 -0700 (PDT) Organization: Compilers Central Lines: 26 Sender: news@iecc.com Approved: comp.compilers@iecc.com Message-ID: <22-09-009@comp.compilers> References: <22-09-001@comp.compilers> <22-09-004@comp.compilers> <22-09-005@comp.compilers> <22-09-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="98209"; mail-complaints-to="abuse@iecc.com" Keywords: performance, history Posted-Date: 15 Sep 2022 12:18:26 EDT X-submission-address: compilers@iecc.com X-moderator-address: compilers-request@iecc.com X-FAQ-and-archives: http://compilers.iecc.com In-Reply-To: <22-09-006@comp.compilers> Xref: csiph.com comp.compilers:3161 On Wednesday, September 14, 2022 at 1:25:39 PM UTC-7, christoph...@compiler-resources.com wrote: (snip) > On a related note, I have heard stories from C++ compiler > implementors about the various template libraries that have been created > which attempt to do "Turing machine" style (NP-complete) computations via > types and parameters, where the users wonder why the compilation process > takes much longer than running the resultant program. Many years ago, there was a story about a Fortran benchmark program, very complicated with lots of statement functions evaluating many complicated expressions. (I probably don't have to mention the problems with designing good benchmarks here. This was years ago.) Then it was run though the IBM OS/360 Fortran H compiler. Among others, it expands statement functions inline, and does constant expression evaluation. It did the whole thing at compile time, except printing out a single number. Fortran now requires many complicated constant expressions be evaluated at compile time, and some have come up with some, though not intentionally, that evaluate very slowly. (OK, maybe some were intentional.)