comp.lang.ada
 help / color / mirror / Atom feed
From: Francois Godme <fgodme@magic.fr>
Subject: Re: Function Calls by Address
Date: 1999/09/05
Date: 1999-09-05T00:00:00+00:00	[thread overview]
Message-ID: <37D2E1A7.CAC3F923@magic.fr> (raw)
In-Reply-To: 7qptoa$cul$1@nnrp1.deja.com

Robert Dewar wrote:

> In article <7qp5oo$2un@hobbes.crc.com>,
>   "David C. Hoos, Sr." <david.c.hoos.sr@ada95.com> wrote:
> > As far as separates go.. it's frequently wise to use separates
> for target-
> > dependent code.  I also use them to keep down the size of
> package body
> > files -- e.g., for procedures that have long case constructs,
> or whatever.
>
> This is indeed a useful application. Have a look at the files
> ??emstop.adb in the GNAT sources as an example ...
>
> Sent via Deja.com http://www.deja.com/
> Share what you know. Learn what you don't.

Yes, back in the Ada83 days, this was a good use (you were almost
forced) but now, you can do it in better ways. One way would be to
define an abstract tagged type that abstracts what you want to do and to
implement several concrete subclasses of this abstraction, one for each
target. Only the main subprogram will know on which target it is running
and will pass down to the application the appropriate instance or the
appropriate factory to build instances.

With pragma Linker_Options carefully set, by "with"ing units from the
main to select the factories, you define, at the same time, the link
command.

This does not apply to compiler builders.






  reply	other threads:[~1999-09-05  0:00 UTC|newest]

Thread overview: 50+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1999-08-30  0:00 Function Calls by Address Craig Jameson
1999-08-30  0:00 ` Marin David Condic
1999-08-30  0:00   ` Robert Dewar
1999-08-30  0:00   ` Marin David Condic
1999-08-30  0:00     ` Larry Kilgallen
1999-08-30  0:00 ` Robert Dewar
1999-08-31  0:00   ` Martin Gangkofer
1999-08-30  0:00 ` Robert Dewar
1999-08-31  0:00 ` Matthew Heaney
1999-08-31  0:00 ` David Kristola
1999-09-01  0:00 ` Simon Wright
1999-09-02  0:00 ` Francois Godme
1999-09-03  0:00   ` Robert Dewar
1999-09-03  0:00     ` Francois Godme
1999-09-03  0:00       ` Marin David Condic
1999-09-14  0:00         ` Robert I. Eachus
     [not found]           ` <wcc3dwgb7ii.fsf@world.std.com>
     [not found]             ` <37E81079.CC2566D9@mitre.org>
1999-09-22  0:00               ` Robert A Duff
1999-09-22  0:00                 ` Robert I. Eachus
1999-09-23  0:00                 ` Robert Dewar
1999-09-23  0:00                   ` Robert A Duff
1999-09-03  0:00       ` David C. Hoos, Sr.
1999-09-04  0:00         ` Robert Dewar
1999-09-05  0:00           ` Francois Godme [this message]
1999-09-06  0:00             ` Robert Dewar
1999-09-06  0:00               ` Francois Godme
1999-09-06  0:00                 ` Robert Dewar
1999-09-06  0:00                 ` Robert Dewar
1999-09-06  0:00                   ` Bob Collins
1999-09-07  0:00                     ` Pascal Obry
1999-09-07  0:00                 ` Pascal Obry
1999-09-07  0:00                   ` Francois Godme
1999-09-08  0:00                   ` Francois Godme
1999-09-03  0:00       ` Simon Wright
1999-09-03  0:00       ` Robert Dewar
1999-09-03  0:00         ` Ted Dennison
1999-09-04  0:00           ` Jean-Pierre Rosen
1999-09-05  0:00             ` Ehud Lamm
1999-09-05  0:00             ` Matthew Heaney
1999-09-04  0:00         ` Brian Rogoff
1999-09-05  0:00           ` Robert Dewar
1999-09-05  0:00           ` Robert Dewar
1999-09-05  0:00           ` Robert Dewar
1999-09-04  0:00       ` Mario Klebsch
1999-09-05  0:00         ` Robert Dewar
1999-09-06  0:00           ` Francois Godme
1999-09-05  0:00             ` Brian Rogoff
1999-09-06  0:00             ` Robert Dewar
1999-09-08  0:00               ` Georg Bauhaus
1999-09-05  0:00       ` Geoff Bull
1999-09-07  0:00       ` Michael F. Yoder
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox