From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,fd63afa4dc364b7e X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-03-26 14:14:07 PST Path: supernews.google.com!sn-xit-03!supernews.com!freenix!fr.usenet-edu.net!usenet-edu.net!news.tele.dk!151.189.0.75!newsfeed.germany.net!newsfeed2.easynews.net!easynews.net!news.cid.net!news.enyo.de!news1.enyo.de!not-for-mail From: Florian Weimer Newsgroups: comp.lang.ada Subject: Re: Implementing C/C++ style #include... Date: 27 Mar 2001 00:25:00 +0200 Organization: Enyo's not your organization Message-ID: <87u24gmamb.fsf@deneb.enyo.de> References: <98m938$2iod0$1@ID-25716.news.dfncis.de> <99alrr$itf$1@nh.pace.co.uk> <99d5dj$fi4$1@nh.pace.co.uk> <99nuii$8q61@news.cis.okstate.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Xref: supernews.google.com comp.lang.ada:6082 Date: 2001-03-27T00:25:00+02:00 List-Id: dvdeug@x8b4e53cd.dhcp.okstate.edu (David Starner) writes: > >Even for medium-sized projects, it doesn't. For example, Linux kernel > >development is quite difficult because no developer can build the kernel in > >more than a few configurations, but there are more then 2**50 possible > >configurations. As a result, it happens all the time that one change breaks > >some special configurations, and there's really no way to test automatically > >for such problems. > > Which has what to do with a pre-processor? The Linux kernel would be > able to be built in 2**50 possible configurations in any case, with or > without a pre-processor. If you use a preprocessor, only the code which is activated in a given configuration will be passed through the compiler. Syntax errors, type errors, name clashes, references to renamed identifiers in other configurations won't be detected. IMHO, that's the strongest argument against a preprocessor. If you don't use a preprocessor, you can be sure that your code compiles in all configurations (if it works is another question, of course).