comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Default rep specs for record types - documented??
Date: 13 Nov 2005 20:09:32 -0500
Date: 2005-11-13T20:09:32-05:00	[thread overview]
Message-ID: <wccacg8827n.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: uoe4z75o0.fsf@acm.org

Stephen Leake <stephen_leake@acm.org> writes:

> "Frank J. Lhota" <NOSPAM.lhota@adarose.com> writes:
> 
> > Stephen Leake wrote:
> 
> >> I forgot to add Field_0 to the rep clause, and the compiler put it at
> >> the end (where it didn't belong). Most importantly, the compiler
> >> didn't warn me.
> >
> > The fault lies with the code, not the compiler. 
> 
> No, the fault lies with me, who wrote the code. The code is, as you
> point out, wrong.
> 
> Part of the point of using Ada is to make it harder to make mistakes
> like this. That's why I want a warning when I make this mistake.

I agree.  It would be better if you had to explicitly say
"I don't care about field X" if you don't, and the compiler
would complain if you just leave X out of the rep clause.

I'm not even sure the capability to leave out some components is useful
enough to have in the language.

> Compare this to a case statement on an enumeration type; the compiler
> warns you when you add an enumeral but forget to update the case
> statement.

Right, or a record aggregate where you add a component.

> More importantly, I want the compiler to generate the "reasonable
> packed rep clause", not "the most efficient for data storage" or
> whatever other criteria it uses in the absence of a rep clause. 

That would be nice.  Record rep clauses are way too detailed for most
uses.  There ought to be a way to say "use the canonical
representation".

> This matters more when I'm describing bit fields in a register;
> without a rep clause the compiler will use at least a byte for each
> field. So the generated rep clause will not be a very good starting
> point.

You could say "pragma Pack", and then see what the compiler says.

But once you've included the rep clause in your source code, it becomes
difficult to maintain, whether it was compiler generated or hand
written.

- Bob



  reply	other threads:[~2005-11-14  1:09 UTC|newest]

Thread overview: 60+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2005-11-04  2:21 Default rep specs for record types - documented?? Anonymous Coward
2005-11-04  2:36 ` Steve
2005-11-04  4:11   ` Anonymous Coward
2005-11-04  5:30     ` Jeffrey R. Carter
2005-11-05  3:13       ` Steve
2005-11-05  4:45         ` Jeffrey R. Carter
2005-11-06 14:05           ` Steve
2005-11-06 16:08             ` Anonymous Coward
2005-11-07  7:25             ` Jeffrey R. Carter
2005-11-08 13:36               ` Steve
2005-11-14  1:12             ` Robert A Duff
2005-11-14  3:03               ` Anonymous Coward
2005-11-14 18:08                 ` Jeffrey R. Carter
2005-11-14 18:49                 ` Robert A Duff
2005-11-15  1:16                   ` ADA compilers can reject types arbitrarily? Anonymous Coward
2005-11-15  2:10                     ` tmoran
2005-11-15  3:12                     ` Robert A Duff
2005-11-15  6:44                     ` Simon Wright
2005-11-16  0:16                       ` Adaists Deny Acronym. (was: ADA compilers can reject types arbitrarily?) Björn Persson
2005-11-16  5:38                         ` Adaists Deny Acronym Simon Wright
2005-11-16  6:16                         ` Adaists Deny Acronym. (was: ADA compilers can reject types arbitrarily?) Samuel Tardieu
2005-11-15 12:43                     ` ADA compilers can reject types arbitrarily? Jeff Creem
2005-11-14 21:14                 ` Default rep specs for record types - documented?? Simon Wright
2005-11-04 13:26     ` Stephen Leake
2005-11-04 14:33       ` Marc A. Criley
2005-11-04 18:35         ` Georg Bauhaus
2005-11-04 20:07           ` Britt Snodgrass
2005-11-04 14:39       ` Stephen Leake
2005-11-04 15:27         ` Britt Snodgrass
2005-11-04 15:55           ` Lauri Ora
2005-11-04 21:42             ` Larry Kilgallen
2005-11-05  2:26             ` Anonymous Coward
2005-11-05  2:42               ` Frank J. Lhota
2005-11-05  3:27               ` Ed Falis
2005-11-05  3:55                 ` Anonymous Coward
2005-11-05  4:07                 ` Lauri Ora
2005-11-05 13:46                   ` Ed Falis
2005-11-05 10:14                 ` Stephen Leake
2005-11-04 16:52         ` Frank J. Lhota
2005-11-04 16:57           ` Frank J. Lhota
2005-11-04 23:27           ` tmoran
2005-11-05 10:25           ` Stephen Leake
2005-11-14  1:09             ` Robert A Duff [this message]
2005-11-05  3:33       ` Anonymous Coward
2005-11-05 10:34         ` Stephen Leake
2005-11-05 16:35           ` ADA/C interfaces: type representations uncontrollable in C Anonymous Coward
2005-11-05 16:49             ` Ed Falis
2005-11-05 18:24             ` tmoran
2005-11-09  2:12           ` 'Size can mean value size OR object size, depending Anonymous Coward
2005-11-09  3:27             ` Jeffrey R. Carter
2005-11-09  4:04               ` Anonymous Coward
2005-11-05 14:27         ` Default rep specs for record types - documented?? Michael Bode
2005-11-05 16:17           ` pragma convention Anonymous Coward
2005-11-06  1:07             ` Jeffrey R. Carter
2005-11-06 22:22               ` Anonymous Coward
2005-11-07  7:34                 ` Jeffrey R. Carter
2005-11-05 14:39         ` Default rep specs for record types - documented?? Martin Krischik
2005-11-04  9:40   ` Martin Dowie
2005-11-04 14:36   ` Marc A. Criley
2005-11-04 17:45 ` Martin Krischik
replies disabled

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