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=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!nntp-feed.chiark.greenend.org.uk!ewrotcd!reality.xs3.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Ada 2012 Constraints (WRT an Ada IR) Date: Wed, 14 Dec 2016 16:22:10 -0600 Organization: JSA Research & Innovation Message-ID: References: NNTP-Posting-Host: rrsoftware.com X-Trace: franka.jacob-sparre.dk 1481754130 21425 24.196.82.226 (14 Dec 2016 22:22:10 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Wed, 14 Dec 2016 22:22:10 +0000 (UTC) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 X-RFC2646: Format=Flowed; Original Xref: news.eternal-september.org comp.lang.ada:32833 Date: 2016-12-14T16:22:10-06:00 List-Id: "Shark8" wrote in message news:fe2588fe-874d-4826-95a1-02cf5bc4c1e2@googlegroups.com... On Tuesday, December 13, 2016 at 4:19:32 PM UTC-7, Randy Brukardt wrote: >> Ada visibility and resolution sadly take all of the fun out >> of compiler construction. :-) > >That's one of the things that I'd like the IR to do; assuming we have >a DEPENDENCY node (or attribute in the root-node) then it should >be possible to enforce that property so that your problem of "Tags >being visible w/o Ada.Tags being WITH'ed". (This is to say, if we >have the dependencies listed, say as a separate Dependency_Type >then every entity in the source should have a 'handle' pointing to an >item in the DEPENDENCY attribute xor to a local construct.) > >You could then have a "visibility node" (USE) be a sub-tree that has > its own handles into the DEPENDENCY attribute and for represents > the visibility right in the tree-structure. It's never really about implementing something that gets 95% of visibility/resolution right. It's about implementing something that gets 100% of visibility/resolution right. And that last 5% is always a beast, no matter how or where you start. (There are just too many details for anyone to get the initial version right.) The great thing about the ACATS is that it provides a large number of vetted tests for Ada, so the expectations are well-defined. Getting a compiler to handle all of those tests, however, turns into a slog. Typically, fixing one issue in a test or tests just exposes another issue in the tests. It's this error fixing slog (plus, of course, customers sending new issues in) that takes a lot of the fun out of compiler construction. Randy.