comp.lang.ada
 help / color / mirror / Atom feed
From: Stephen Leake <stephen_leake@acm.org>
Subject: Re: Default rep specs for record types - documented??
Date: Fri, 04 Nov 2005 08:26:06 -0500
Date: 2005-11-04T08:26:06-05:00	[thread overview]
Message-ID: <uacgktuhd.fsf@acm.org> (raw)
In-Reply-To: slrndmlus8.kq0.bogus_addy@tango.mindfuq.org

Anonymous Coward <bogus_addy@bogus_domain.net> writes:

> In article <meKdnXXIJd6tVPfeRVn-vw@comcast.com>, Steve wrote:
>
> What's disappointing is that rep specs add considerable clutter.

Yes. Ada explicitly favors being precise over being concise.

> Readable code avoids redundancy, so having default representation
> aspects that are guaranteed enable less noisey code. 

Representation clauses are not 'redundant'; they provide information
that is not provided by the type declaration.

The compiler ensures that the names are spelled the same, and the
locations do not overlap.

One problem is that the compiler does _not_ warn you if you leave a
component out of the rep clause; a 'pragma Complete_Representation'
would be nice. Specifying the total size can mitigate this, but I
recently had a bug due to this problem.

> I'm not looking forward to rep specing records bit for bit simply to
> enforce the same order of elements that's specified in the operation
> specs.

If 'operation specs' are defining the hardware you are interfacing to,
then yes, you need a rep clause for each hardware register. The time
spent writing those clauses _will_ be repaid later when it comes to
testing on the hardware; there _will_ be fewer bugs.

Someone mentioned a 'pragma Preserve_Layout', which presumably means
"assume a representation clause that puts things in declaration order,
with the base size for each component, and no gaps". That would be
useful, in situations where the type declarations do in fact match the
hardware precisely. Hmm. That is true for most of the rep clauses I've
written recently. I'll have to suggest that to AdaCore as a possible
enhancement; it would have prevented my bug. 

-- 
-- Stephe



  parent reply	other threads:[~2005-11-04 13:26 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 [this message]
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
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