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,38159b1b5557a2e7 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2004-01-23 14:15:10 PST Path: archiver1.google.com!news2.google.com!newsfeed2.dallas1.level3.net!news.level3.com!crtntx1-snh1.gtei.net!news.gtei.net!newsfeed1.easynews.com!easynews.com!easynews!sn-xit-02!sn-xit-01!sn-post-02!sn-post-01!supernews.com!corp.supernews.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Standard Ada Preprocessor (Was: why ada is so unpopular ?) Date: Fri, 23 Jan 2004 16:14:17 -0600 Organization: Posted via Supernews, http://www.supernews.com Message-ID: <101377e54car5cc@corp.supernews.com> References: <400BDB7C.40100@noplace.com> <400D2150.6000705@noplace.com> <400E72F9.8060501@noplace.com> <100upo7ln5e3k59@corp.supernews.com> <400FC8E8.2040100@noplace.com> <4011127C.4030801@noplace.com> X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 5.50.4807.1700 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4910.0300 X-Complaints-To: abuse@supernews.com Xref: archiver1.google.com comp.lang.ada:4743 Date: 2004-01-23T16:14:17-06:00 List-Id: "Warren W. Gay VE3WWG" wrote in message news:QEcQb.20015$cQ6.817492@news20.bellglobal.com... > Dmitry A. Kazakov wrote: > >>I'd like to be able to hand off a collection of source code and say > > If we could limit variations to compilation units, I think we could, > > then there might be a better way than preprocessing. > > As soon as you start splitting code into different parallel "files", > you are denormalizing and decentralizing your code. This is > maintenance hell. If you find a bug in one of these "portability" > unique files, then you have to edit several files to effect the > same fix. It also much more difficult to view the impact to > other "platforms" for such a fix. I have to agree with Dmitry. This is a configuration management problem, and an editor problem, not a language problem. There's no need to mess with the language here. We of course have this sort of problem managing the various versions of Janus/Ada. Existing version control systems didn't seem to address the problem in a useful way, in that they don't provide a way to get the most current files of a particular target, given that some files are shared, some are related, and some are unique. Tagging and branching just don't do the trick (tagging because that relates to specific versions of a file, wheras I want the most recent, and branching because it generally doesn't allow working on all of the branches at once, nor does it allow identifying which branch belongs to which app). So our solution was to build a wrapper around an existing version control system (originally was PVCS, now is CVS) to track the interelationships, allow grabbing the most recent version of everything (as well as specific tagged versions), and so on. We can get reports of related files changed in one version and not updated in another, so we can mostly avoid "the fix a bug in one version, but not in all versions" problem. But the real problem here is version control is at too large a granule. There is no reason for it to be done at the file level; it would be better to do it at the level of "pieces", where the actual file that is compiled is assembled out of pieces by the tools, and versioned separately. Then, even shared code within related files would change once, and the problems of different versions would be minimized. (If the change is in unshared code, there is no alternative to checking the other versions manually; that's true in a conditional compilation environment as well.) My conclusion is this a tools problem, not a language problem. The problem with Ada is immature programming systems, not a lack of conditional compilation. (And a lot of people who are unwilling to do better -- which of course is the same reason it is hard to get people to use Ada in the first place.) Randy Brukardt