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: Project files ads/adb organization Date: Thu, 15 Dec 2016 16:30:29 -0600 Organization: JSA Research & Innovation Message-ID: References: NNTP-Posting-Host: rrsoftware.com X-Trace: franka.jacob-sparre.dk 1481841029 5941 24.196.82.226 (15 Dec 2016 22:30:29 GMT) X-Complaints-To: news@jacob-sparre.dk NNTP-Posting-Date: Thu, 15 Dec 2016 22:30:29 +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; Response Xref: news.eternal-september.org comp.lang.ada:32860 Date: 2016-12-15T16:30:29-06:00 List-Id: "Alejandro R. Mosteo" wrote in message news:o2u9tf$9j0$1@dont-email.me... > I'm overthinking how to organize a library source and have come to this > idea (Gnat-specific due to ads/adb files): > > - An /spec/ folder with ads files exposing the client interface. > - An /priv/ folder with ads files for support packages, not intended for > direct client use. > - A /body/ folder for all the bodies. > > A variant could be to separate public spec from bodies, but keep private > parts together. > > I wonder if the idea of separating specs from their bodies could be seen > as a poor choice. Certainly it requires developers to use an Ada-aware > editor like GPS, but for clients seems appropriate not to mix things they > don't need to see. > > Opinions? Or "whatever floats your boat?" I don't think its necessarily "overthinking". For the Janus/Ada runtime, we only provide the specifications in the non-embedded packages (don't support recompiling the runtime for those). Usually, that's all you need. For Claw, we just provided it in one bunch, but there aren't very many private packages, so almost every .ads is a public specification. I'd suggest not making it too complicated, but some sort of separation of "public" stuff that clients are supposed to use, and the rest of it, seems reasonable. Randy.