From: Jeffrey Carter <spam@spam.com>
Subject: Re: How to Emulate C++ Macro with Static Local Variable?
Date: Tue, 30 Sep 2003 01:32:55 GMT
Date: 2003-09-30T01:32:55+00:00 [thread overview]
Message-ID: <b35eb.8293$RW4.197@newsread4.news.pas.earthlink.net> (raw)
In-Reply-To: <u8yo7v36h.fsf@sandia.gov>
taashlo@sandia.gov wrote:
> Jeffrey Carter <spam@spam.com> writes:
>
>>>1) Use a unique ID for each call. But this turns into a maintenance
>>>nightmare when you get a few hundred calls or more.
>>>2) Use the return address of the call. But there was a short
>>>discussion
>>>about how Ada doesn't currently have a way of accessing the return
>>>address of a subprogram.
>>
>>3. Use a unique instantiation of a generic package for each call. The
>>instantiations of the package must be at a nesting level that ensures
>>that they will exist for the entire lifetime of the executable region
>>in which they are used.
>
> Won't a unique instantiation require a unique name? This is the same
> problem with item 1) above. A single unique instantiation is no
> problem, but try a thousand instantiations whose associated function
> calls are scattered across fifty files. Where using the wrong
> instantiation can lead to subtle and difficult-to-reproduce errors.
> This is not a solution that I'd voluntarily aim for.
We've gone from hundreds to thousands now? I can play that game, too. If
you use millions of identical calls in your code, no one can maintain
it, no matter what language or technique you use.
There are significant differences between using a unique ID and a unique
instantiation name. With IDs you have to add new IDs and modify the code
that interprets the ID as well as insert the new call for a new
location. With an instantiation you add the new instantiation and the
new call. You need never touch the existing code except to delete a
call, and that, of course, is true regardless of the technique used.
With a good process for choosing the next instantiation name, you'll
never create a problem.
All this is sort of irrelevant, though. We don't know what you're trying
to accomplish, just a technique you're trying to use. Without that
knowledge, we can't really tell how to advise you.
--
Jeff Carter
"You've got the brain of a four-year-old boy,
and I bet he was glad to get rid of it."
Horse Feathers
47
next prev parent reply other threads:[~2003-09-30 1:32 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-09-24 22:06 How to Emulate C++ Macro with Static Local Variable? taashlo
2003-09-24 23:44 ` Robert I. Eachus
2003-09-25 3:27 ` Hyman Rosen
2003-09-25 4:53 ` tmoran
2003-09-25 15:57 ` Robert I. Eachus
2003-09-25 19:09 ` tmoran
2003-09-29 14:57 ` taashlo
2003-09-29 18:12 ` Jeffrey Carter
2003-09-29 18:51 ` taashlo
2003-09-30 1:32 ` Jeffrey Carter [this message]
2003-09-30 1:54 ` tmoran
2003-09-30 13:02 ` taashlo
2003-09-30 20:25 ` Jeffrey Carter
2003-09-30 2:45 ` Robert I. Eachus
2003-09-30 3:24 ` tmoran
2003-09-25 13:43 ` Stephen Leake
2003-09-25 12:59 ` Tad Ashlock
2003-09-25 16:11 ` Robert I. Eachus
2003-09-25 18:13 ` Randy Brukardt
2003-09-25 23:40 ` Robert I. Eachus
2003-09-25 11:54 ` Gautier
2003-09-25 16:14 ` Robert I. Eachus
2003-09-25 18:06 ` Tad Ashlock
2003-09-28 8:42 ` Gautier Write-only
2003-09-28 20:06 ` Jeffrey Carter
2003-09-29 2:13 ` Gautier Write-only
2003-09-25 13:41 ` Stephen Leake
2003-09-25 17:23 ` Tad Ashlock
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox