From: Ludovic Brenta <ludovic.brenta@insalien.org>
Subject: Re: Binding and linking non-withed packages into an executable
Date: 28 Jan 2004 01:44:27 +0100
Date: 2004-01-28T01:44:27+01:00 [thread overview]
Message-ID: <m3brooj40k.fsf@insalien.org> (raw)
In-Reply-To: mailman.43.1075245947.2270.comp.lang.ada@ada-france.org
Stephen Leake <stephen_leake@acm.org> writes:
> "Marc A. Criley" <mcNOSPAM@mckae.com> writes:
>
> > Obviously I can have a "configuration package" that with's the
> > "peripheral" packages and is withed by the main, but I'd like to
> > make the inclusion of such packages a build, rather than compile,
> > issue. This way new callback packages can be brought in or omitted
> > as needed (the actual app is of course more sophisticated than the
> > above toy), so no actual software would have to change.
>
> I define "actual software" as "anything in CVS". In your desired
> system, the Makefile would have to change. In standard Ada, one .adb
> file would have to change. Either way, it's one file in CVS.
>
> What is the actual gain over doing it in a non-standard way?
Allowing customers to provide their own callbacks, without recompiling
the app or having access to the source code? Like in a plug-in
system?
How about compiling the plug-ins separately from the application?
Then the application reads some sort of configuration file, or
directory, or registry of plug-ins, and dlopen()s the appropriate
library at run time. I understand there exists an Ada binding to
dlopen() already. Would this solve your problem?
--
Ludovic Brenta.
next prev parent reply other threads:[~2004-01-28 0:44 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-01-27 21:56 Binding and linking non-withed packages into an executable Marc A. Criley
2004-01-27 23:25 ` Stephen Leake
2004-01-28 0:44 ` Ludovic Brenta [this message]
2004-01-28 2:55 ` Stephen Leake
2004-01-28 0:44 ` Robert A Duff
-- strict thread matches above, loose matches on Subject: below --
2004-02-05 18:53 Lionel.DRAGHI
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox