From: "Pat Rogers" <progers@classwide.com>
Subject: Re: Joint Strike Fighter
Date: Fri, 30 Nov 2001 17:08:58 GMT
Date: 2001-11-30T17:08:58+00:00 [thread overview]
Message-ID: <K2PN7.877$Nr2.332284033@newssvr30.news.prodigy.com> (raw)
In-Reply-To: x7v667sb4yc.fsf@galadriel.frlngtn.gecm.com
"Simon Wright" <simon.j.wright@amsjv.com> wrote in message
news:x7v667sb4yc.fsf@galadriel.frlngtn.gecm.com...
> Ted Dennison<dennison@telepath.com> writes:
>
> > If it took up more than a register I'd say you have a legitimate
> > gripe with your compiler vendor. However, you definitely should use
> > one of the forms gauranteed to pass by reference if you *need* it
> > passed that way for some reason. If you just want it to do the most
> > efficient thing (which is the ususal rationale I hear from the C
> > refugees), just let the compiler do it.
>
> This was the bug report:
>
> I have a (private) type Socket:
>
> type Socket is record
> Fd : Integer; -- -1 => socket is closed
> end record;
>
<snip>
>
> so making Socket limited would have done as well (I can now see no
> reason why I shouldn't have done that .. this was a while back, may
> have been a reason at the time). Anyway, it really needed to be by
> reference!
One could use the pragma Volatile trick when a limited type is unacceptable:
make a (hidden) null record type, apply pragma Volatile to it, and have a
component of this type in the final exported type (e.g. type Socket). The
enclosing type (Socket) is then required to be passed by reference and no
extra storage is required.
I don't remember where I saw this first, but I suspect it was from J.P.
Rosen -- one of the most clever Ada people around.
--
---
Patrick Rogers Consulting and Training in:
http://www.classwide.com Real-Time/OO Languages
progers@classwide.com Hard Deadline Schedulability Analysis
(281)648-3165 Software Fault Tolerance
next prev parent reply other threads:[~2001-11-30 17:08 UTC|newest]
Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-10-29 4:55 Joint Strike Fighter Richard Riehle
2001-10-29 11:11 ` Ian
2001-10-31 6:38 ` Richard Riehle
2001-10-31 13:38 ` David Botton
2001-10-31 16:15 ` Wes Groleau
2001-10-31 16:25 ` Marin David Condic
2001-11-01 4:44 ` JF Harrison
2001-11-01 14:41 ` Marin David Condic
2001-11-03 16:58 ` Richard Riehle
2001-11-03 18:52 ` Jeffrey Carter
2001-11-05 15:30 ` Ted Dennison
2001-11-06 2:07 ` Jeffrey Carter
2001-11-06 16:46 ` Rex Reges
2001-11-06 18:17 ` Marin David Condic
2001-11-06 19:07 ` Larry Kilgallen
2001-11-06 21:19 ` Rex Reges
2001-11-06 23:01 ` Larry Kilgallen
2001-11-08 14:55 ` Rex Reges
[not found] ` <Wa+tfCvHgQXH@eisner.e <3BEA9CED.8C6BF839@reges.org>
2001-11-08 15:43 ` Ian Wild
2001-11-08 22:18 ` Rex Reges
2001-11-22 6:25 ` David Thompson
2001-11-08 16:23 ` Larry Kilgallen
2001-11-08 13:53 ` Marc A. Criley
2001-11-08 22:15 ` Rex Reges
2001-11-09 12:44 ` Marc A. Criley
2001-11-09 15:41 ` Ted Dennison
2001-11-09 15:35 ` Ted Dennison
2001-11-10 6:56 ` john flynn
2001-11-04 1:08 ` David Botton
2001-11-05 14:59 ` Marin David Condic
2001-11-01 14:55 ` Ted Dennison
2001-11-01 21:47 ` P Norby
2001-11-02 17:02 ` P Norby
[not found] ` <003301c163c0$289f8c60$45d82c41@vaio>
2001-11-02 19:54 ` JF Harrison
[not found] ` <002a01c163d8$25bb4440$2702a8c0@WorkGroup>
2001-11-02 20:40 ` JF Harrison
2001-11-01 11:38 ` Ian
2001-11-01 14:51 ` Marin David Condic
2001-11-02 9:08 ` John McCabe
2001-11-02 16:16 ` Ian
2001-11-02 17:04 ` John McCabe
2001-11-29 16:48 ` Matthew Heaney
2001-11-29 17:12 ` Marin David Condic
2001-11-30 12:49 ` Simon Wright
2001-11-30 14:46 ` Marin David Condic
2001-11-30 16:37 ` Jeffrey Carter
2001-11-30 15:03 ` Ted Dennison
2001-11-30 16:26 ` Simon Wright
2001-11-30 16:39 ` Ted Dennison
2001-11-30 17:08 ` Pat Rogers [this message]
2001-11-30 22:53 ` Chad R. Meiners
2001-12-01 8:08 ` Simon Wright
2001-10-29 15:02 ` Marin David Condic
2001-10-29 17:55 ` Paul A Storm
2001-11-01 4:46 ` Richard Riehle
2001-11-02 20:03 ` Dirk Craeynest
2001-11-07 3:57 ` Vincent Marciante
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox