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=-0.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!mx02.eternal-september.org!feeder.eternal-september.org!news.glorb.com!peer01.iad.highwinds-media.com!news.highwinds-media.com!feed-me.highwinds-media.com!post01.iad.highwinds-media.com!fx24.iad.POSTED!not-for-mail From: Shark8 User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:36.0) Gecko/20100101 Thunderbird/36.0a1 MIME-Version: 1.0 Newsgroups: comp.lang.ada Subject: Re: GNAT GPL is not shareware References: <87bnmetex4.fsf@ludovic-brenta.org> <4ae7f0d5-d681-4be9-95bc-b5e789b3ad40@googlegroups.com> <87tx06rve6.fsf@ludovic-brenta.org> <87lhlirpk0.fsf@ludovic-brenta.org> <79f3eff7-2b45-40ae-af94-fa9a17426d82@googlegroups.com> <87bnmd8mg2.fsf@ixod.org> <19cf9bc2-f8b9-4735-b427-7b070dda59da@googlegroups.com> In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Message-ID: X-Complaints-To: abuse@teranews.com NNTP-Posting-Date: Wed, 07 Jan 2015 16:32:22 UTC Organization: TeraNews.com Date: Wed, 07 Jan 2015 09:32:20 -0700 X-Received-Bytes: 5347 X-Received-Body-CRC: 4178644907 Xref: news.eternal-september.org comp.lang.ada:24451 Date: 2015-01-07T09:32:20-07:00 List-Id: On 07-Jan-15 04:00, Björn Lundin wrote: > On 2015-01-06 22:46, Shark8 wrote: >> >> No, because it still contains [and relies upon] "Example.Parent.Child" >> which has had its own dependencies removed. > > So ? How would a db solution stop that? > > "delete from sources where name like 'Example.Parent%'" > would have the same effect. Why would you have the fully-qualified name stored as text? It makes far more sense to break the name into an actual structure itself, in order to show its "lineage"; and once you do that your example simply doesn't work. Again, you're showing that you're thinking of everything in terms of text, not in terms of meaningful structure. > however, in a filesystem (with say svn) I could > > svn stat - to see that Example.Parent.ad? is missing > svn revert Example.Parent.ad? > > and I would have restored it. Showing that you could easily recover from accidentally entering an inconsistent state is *not* the same as preventing the state-change to inconsistency in the first place. -- Here is an example of early development using databases as a form of both version-control and project-management: https://drive.google.com/file/d/0BwQVNNshW39cTXVOdWxQaVJ5WjA/edit >>> How do you do for accomplish linking out-of-date objects ? >>> You seem really hung up on this, so I interpret it as it happens often. >>> Does it? >> >> I've only had it happen a couple times. >> That it can happen at all, when it is preventable, is the issue. > > and exactly _how_ is this more preventable with a db solution? Because with a DB-system you can guarantee that the "system" is not inconsistent or out-of date; and you can associate generated objects with exactly the state that generates them. >> *sigh* -- You completely miss the point. You're storing it [the program] >> not as text, but as a meaningful structure (think AST w/ extra info >> [like, say, static-analysis]). > > I do get your point, but I do not find it so fantastic a you do. Your example of treating the name of the compilation unit as if it were only text proves a counter-example to your claim of understanding my point. >> IOW, the >> textual formatting simply doesn't matter anymore. > > For the source code - yes. for the user - no. > Modification date of a file tells me stuff. > like when was it last fiddled with. In an EASY way. *shrug* -- I'm not saying that every conceivable operation could [or even should] be as easy in a DB-based system. I see no reason, though, why such "last modified on"/"last modified by" meta-data could not be stored in a database... and, indeed, several do have a system like this, generating an audit-trail automatically. >> To illustrate, consider the following: >> Type X is ( >> Apple, >> Orange, >> Grape >> ); >> For X'Size use 8; >> Is this semantically different from the following: >> Type X is (Apple,Orange,Grape) with Size => 8; >> >> If there is no semantic difference, then does it matter which text is >> displayed, other than personal preference? > > no, but YOU don't get the point. > Files are more that holder of text. They carry some > meta-info. Sure the kind and amount could be better. And more, better meta-info can be held in a database-system. > And I still do not see why changing PATH to point to different > compiler installations are considered DISGUSTING Because it is changing a fundamental behavior in a completely invisible-to-the-build-system manner; as someone pointed out you can use make-files to set the path but this is a work-around -- instead of "making it a variable of the function" it's "depending on a global variable" -- instead of making the build-system analogous to a "pure unit", it depends on state.