From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Project files ads/adb organization
Date: Thu, 15 Dec 2016 16:30:29 -0600
Date: 2016-12-15T16:30:29-06:00 [thread overview]
Message-ID: <o2v5i5$5pl$1@franka.jacob-sparre.dk> (raw)
In-Reply-To: o2u9tf$9j0$1@dont-email.me
"Alejandro R. Mosteo" <alejandro@mosteo.com> 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.
next prev parent reply other threads:[~2016-12-15 22:30 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-15 14:40 Project files ads/adb organization Alejandro R. Mosteo
2016-12-15 20:31 ` Niklas Holsti
2016-12-15 22:30 ` Randy Brukardt [this message]
2016-12-16 12:46 ` Alejandro R. Mosteo
2016-12-16 14:48 ` Egil H H
2016-12-19 9:40 ` Alejandro R. Mosteo
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox