comp.lang.ada
 help / color / mirror / Atom feed
From: "Marin David Condic" <marin.condic.auntie.spam@pacemicro.com>
Subject: Re: RISC
Date: Tue, 20 Mar 2001 09:34:27 -0500
Date: 2001-03-20T14:34:44+00:00	[thread overview]
Message-ID: <997pq4$i35$1@nh.pace.co.uk> (raw)
In-Reply-To: 3ab72c8f$1@pull.gecm.com

"Martin Dowie" <martin.dowie@baesystems.com> wrote in message
news:3ab72c8f$1@pull.gecm.com...
> I have to confess to using checked conversion - I hadn't concidered
> overlays.
>
Do you mean unchecked conversion? That works, but it forces you to move the
data twice just to satisfy language rules & may be too inefficient for some
apps. Its not A Bad Thing in my estimation, but I'd rather not have to.


> Thinking about it I'm not sure I could as we try and avoid having _any_
> representation clauses on any of the type that we use within the
> application.
>
Well, that's fine for everything used internal to the system. The moment
data enters/leaves the system from/to some other source, you *really* want
to guarantee the representation is what is expected. How would you do this
without representation clauses?


> If I were to use an overlay, is it possible to use a 'Valid check on the
> resulting
> object and verify it that way?
>
You'd have to check with a language lawyer. My impression is that this is
what the attribute is for. Go ahead and declare a stream of bytes for the
I/O part to work. Once you get the data, you reference an overlaid record to
pull the data apart. I think the 'Valid attribute should force a check of
the data "assigned" to the record. (Probably works with Unchecked_Conversion
as well...) Of course, you just do all this stuff backwards to handle
output.


> Am I right in thinking that overlays are now 'guarenteed' to work as we
> lay-people
> expect? I know in '83 they were 'a bad thing' although they worked in
every
> case I ever saw them used.

I don't think overlays were ever not "guaranteed to work" in Ada83 - at
least no more or less so than in Ada95. (You may have cases where the
compiler or linker pukes on you. I've had this happen attempting to overlay
things from different contexts.) They were/are considered to be "A Bad
Thing" because of the inherent lack of safety involved. (Much like the use
of gotos is frowned upon, but they are still supported.) It is recognized
that overlays can provide an elegant and effective solution to a number of
problems (such as this one!) if they are used carefully and judiciously. The
language attempts to discourage their use because programmers will, like
most normal people, abuse the privilege if left unrestrained.

I think the ARM probably says something about programs relying on overlays
being "erroneous" or some other carefully defined term that basically means
"it may work but all bets are off from a language lawyer's perspective."
This is probably because there is no good universal way of defining behavior
across all hardware and compiler implementations.

So go ahead and use overlays, but realize you're operating without a net.

MDC
--
Marin David Condic
Senior Software Engineer
Pace Micro Technology Americas    www.pacemicro.com
Enabling the digital revolution
e-Mail:    marin.condic@pacemicro.com
Web:      http://www.mcondic.com/





  reply	other threads:[~2001-03-20 14:34 UTC|newest]

Thread overview: 82+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-14 20:23 RISC chris.danx
2001-03-14 21:57 ` RISC Tucker Taft
2001-03-14 22:36   ` RISC chris.danx
2001-03-14 23:03     ` RISC Fraser Wilson
2001-03-15  1:30       ` RISC Corey Ashford
2001-03-15  9:19       ` RISC chris.danx
2001-03-15 12:37 ` RISC chris.danx
2001-03-15 13:03   ` RISC Tarjei T. Jensen
2001-03-15 18:29     ` RISC Robert A Duff
2001-03-15 14:40   ` RISC Ted Dennison
2001-03-15 14:49     ` RISC Robert A Duff
2001-03-15 17:37       ` RISC Marin David Condic
2001-03-15 18:28         ` RISC Robert A Duff
2001-03-15 19:16           ` RISC Marin David Condic
2001-03-16  8:44             ` RISC Martin Dowie
2001-03-16 14:40               ` RISC Marin David Condic
2001-03-20 10:17                 ` RISC Martin Dowie
2001-03-20 14:34                   ` Marin David Condic [this message]
2001-03-20 15:45                     ` RISC Ted Dennison
2001-03-20 16:39                       ` RISC Robert A Duff
2001-03-20 18:10                       ` RISC Martin Dowie
2001-03-20 18:56                         ` RISC Ted Dennison
2001-03-22  9:16                       ` RISC - largish (code listed) Martin Dowie
2001-03-22  9:34                         ` Martin Dowie
2001-03-20 18:09                     ` RISC Martin Dowie
2001-03-20 20:00                       ` RISC Marin David Condic
2001-03-20 22:30                         ` RISC Robert A Duff
2001-03-20 22:48                           ` RISC Ted Dennison
2001-03-20 23:10                           ` RISC Marin David Condic
2001-03-21  0:18                             ` RISC Robert A Duff
2001-03-21 14:31                               ` RISC Marin David Condic
2001-03-21 16:47                                 ` RISC Ted Dennison
2001-03-21 17:36                                   ` RISC Marin David Condic
2001-03-16 15:09             ` RISC Tucker Taft
2001-03-16 17:10               ` RISC Robert A Duff
2001-03-16 19:02                 ` RISC Marin David Condic
2001-03-16 20:58                   ` RISC Robert A Duff
2001-03-19 16:17                     ` RISC Marin David Condic
2001-03-19 16:45                       ` RISC Florian Weimer
2001-03-19 17:14                         ` RISC Marin David Condic
2001-03-19 17:33                           ` RISC Florian Weimer
2001-03-21  5:57                           ` RISC Lao Xiao Hai
2001-03-16 22:19                   ` RISC Ted Dennison
2001-03-16 19:13                 ` RISC Laurent Guerby
2001-03-16 20:30                   ` RISC Robert A Duff
2001-03-16 20:51                 ` RISC Ole-Hjalmar Kristensen
2001-03-16 18:33               ` RISC Marin David Condic
2001-03-16 20:45                 ` RISC Robert A Duff
2001-03-17  1:13                   ` RISC Randy Brukardt
2001-03-19 16:34                   ` RISC Marin David Condic
2001-03-19 17:49                     ` RISC Robert A Duff
2001-03-16 20:08 ` RISC chris.danx
2001-03-16 20:31   ` RISC Marin David Condic
2001-03-17 21:51     ` RISC Robert A Duff
2001-03-18  6:37       ` RISC Charles Hixson
2001-03-19 15:42         ` RISC Robert A Duff
2001-03-19 17:02         ` RISC Marin David Condic
2001-03-19 17:45           ` RISC Robert A Duff
2001-03-19 18:48             ` RISC Marin David Condic
2001-03-19 16:45       ` RISC Marin David Condic
2001-03-16 22:27 ` RISC chris.danx
2001-03-17  2:49   ` RISC Jeffrey Carter
2001-03-19  9:43   ` RISC Martin Dowie
2001-03-19 11:06     ` RISC chris.danx
2001-03-28 22:24     ` RISC chris.danx
2001-03-29  0:52       ` RISC Corey Ashford
2001-03-29 12:42       ` RISC John English
2001-03-22 20:11 ` RISC chris.danx
2001-03-22 20:51   ` RISC Marin David Condic
2001-03-22 21:02   ` RISC tmoran
2001-03-22 21:18     ` RISC chris.danx
2001-03-22 21:45   ` RISC Britt Snodgrass
2001-03-22 22:43     ` RISC chris.danx
2001-03-28 11:37   ` RISC chris.danx
  -- strict thread matches above, loose matches on Subject: below --
2001-03-16 23:25 RISC Beard, Frank
2001-03-17 11:39 ` RISC chris.danx
2001-03-29  3:12 RISC Beard, Frank
2001-03-29  7:28 ` RISC Martin Dowie
2001-03-29 12:38 ` RISC chris.danx
2001-03-29 19:07 ` RISC Chad R. Meiners
2001-03-29 17:52 RISC Beard, Frank
2001-03-30 17:31 RISC Kent Paul Dolan
replies disabled

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