comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: calenday (was Re: IBM Acquires Rational Ada
Date: Fri, 20 Dec 2002 15:49:20 -0600
Date: 2002-12-20T15:49:20-06:00	[thread overview]
Message-ID: <v0742ff230aj4c@corp.supernews.com> (raw)
In-Reply-To: atv5fj$ldi$1@slb5.atl.mindspring.net

Marin David Condic wrote in message ...
> I'd suspect that declaring in the standard that all tags shall start
at
> offset 0 and extend for 32 bits would not cause anyone any rework. I
doubt
> it would come up often that the offset needed to be anything other
than
> zero - I can't think of why I'd want it to or why I couldn't make
things
> work somehow if it were always zero. Having a predefined constant for
size
> and a mandated (dare I use that word?) starting point at the beginning
of
> the record ought to be good enough.

As noted elsewhere, Rational has at least one customer that wants to be
able to place tags, and both Janus/Ada and Rational Apex support
non-zero tag locations. Asking us to remove functionality (with the
possibility for incompatibilities) is not likely to be looked on kindly.

And, as also noted elsewhere, there are machines out there where a
pointer (and thus a tag) is not 32-bits. How would you suggest we
implement that rule on the U2200 with its 36-bit words (and pointers)??

>> The biggest non-portability is in the ability (or lack thereof) to
put
>> extension components into "holes" in the parent. This is useful, but
can
>> be really hard to implement (it causes problems with the predefined
"="
>> operation, and I believe that there are other problems that I don't
>> remember at the moment).
>>
>That starts sounding a bit extreme. The overwhelming bulk of the time,
I'd
>be trying to use rep-clauses because things are packed tightly
together -
>not overlapping things. Most typically for tagged records, you'd have a
>class called "Message" that included message header info then followed
by a
>variety of message formats - very naturally expressed in OO Design. But
if
>you can't control representation, you can't make it work with what
happens
>on the wire. Short of the base class ending in the middle of a byte
(never
>seen that) and wanting the derived class to pick up in the middle of
that
>byte, I can't think of a case where I'd want derived class parts put
into
>holes in the base class. Maybe it happens, but I think you could
probably
>put on my tombstone "He never packed derived class data into holes in
the
>base class..." :-)

Well, it comes up when you're trying to minimize storage of the types,
and the parent has unused bits. Consider:

     type Root_Type is tagged record
         Int : Some_Int_Subtype;
         Is_Valid : Boolean;
    end record;
    for Root_Type use record
        -- We assume the tag is at 0 and is 32 bits. A real rep. clause
would use a constant instead
        -- of assuming the tag size is 4 below.
        Int at 4 range 0 .. 15;
        Is_Valid at 6 range 0 .. 0;
    end record;

The bits 1 .. 7 in byte 6 are unused, as is byte 7. Now, look at the
extension:

     type Day is (Sunday, Monday, ....);

     type Day_Type is new Root_Type with record
            The_Day : Day;
     end record;
     for Day_Type use record
            -- The_Day at 6 range 1 .. 4; -- No extra space needed. But
fills a hole.
            The_Day at 7 range 0 .. 3; -- Extra byte needed.
            -- The_Day at 8 range 0 .. 3; -- Insisting on alignment
makes it worse. Probably a 4 extra
                                                             -- bytes
when allocated.
     end record;

And you waste even more space if some of the extension components need
alignment.

If there are going to be a lot of these (as there might if these are
used in compiler expression trees, for example), the wasted space can
turn into a lot of extra memory overhead (meaning longer compile times
in this example).

         Randy Brukardt.






  parent reply	other threads:[~2002-12-20 21:49 UTC|newest]

Thread overview: 198+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-07  2:47 IBM Acquires Rational Ada Richard Riehle
2002-12-07  8:24 ` achrist
2002-12-08  1:46   ` Richard Riehle
2002-12-08 14:45     ` Steven Deller
2002-12-08 20:20       ` Richard Riehle
2002-12-09 14:26       ` Wes Groleau
2002-12-11 18:25       ` achrist
2002-12-11 19:29         ` Martin Dowie
2002-12-22  2:07           ` faust
2002-12-21 18:08       ` faust
2002-12-08 17:18     ` steve_H
2002-12-08 20:11       ` Steven Deller
2002-12-09 14:24         ` Wes Groleau
2002-12-09 15:23           ` John McCabe
2002-12-09 16:55             ` Wes Groleau
2002-12-08 23:31       ` Christopher Browne
2002-12-09 10:30       ` John McCabe
2002-12-09 14:11         ` Georg Bauhaus
2002-12-09 14:32           ` Pat Rogers
2002-12-09 15:42         ` Simon Wright
2002-12-12 14:41           ` Alvery Grazebrook
2002-12-12 21:13             ` Martin Dowie
2002-12-16 13:24               ` UML to Ada Mapping Alvery Grazebrook
2002-12-17  8:27             ` IBM Acquires Rational Ada Simon Wright
2002-12-10 22:43       ` Andreas Almroth
2002-12-09 13:09     ` Marin David Condic
2002-12-09 22:45       ` steve_H
2002-12-10 13:50         ` Marin David Condic
2002-12-10 17:47           ` Warren W. Gay VE3WWG
2002-12-10 20:21             ` Wes Groleau
2002-12-10 22:05               ` Warren W. Gay VE3WWG
2002-12-11  2:50                 ` steve_H
2002-12-11  8:51                   ` OT: Word processing (was: Re: IBM Acquires Rational Ada) Anders Wirzenius
2002-12-11 13:45                   ` IBM Acquires Rational Ada Marin David Condic
2002-12-11 14:46                     ` Wes Groleau
2002-12-12 13:07                       ` Marin David Condic
2002-12-12 18:19                         ` Warren W. Gay VE3WWG
2002-12-12 19:12                           ` Wes Groleau
2002-12-13 12:25                           ` Marin David Condic
2002-12-13 17:41                             ` Warren W. Gay VE3WWG
2002-12-13 18:20                               ` Wes Groleau
2002-12-13 21:49                                 ` Warren W. Gay VE3WWG
     [not found]                                   ` <KIkL9.2260$c6.2599@bos-service2.ext.raytheon.com>
2002-12-16 18:12                                     ` Warren W. Gay VE3WWG
2002-12-17 21:25                                       ` Wes Groleau
2002-12-16 18:54                                     ` John R. Strohm
2002-12-16 22:23                             ` Randy Brukardt
2002-12-17 14:47                               ` Marin David Condic
2002-12-17 20:17                                 ` Randy Brukardt
2002-12-16 10:11                           ` calenday (was " Peter Hermann
2002-12-16 18:38                             ` Warren W. Gay VE3WWG
2002-12-16 19:04                               ` Bill Findlay
2002-12-16 20:25                                 ` David C. Hoos
2002-12-16 20:37                                   ` Bill Findlay
2002-12-16 21:41                                     ` David C. Hoos
2002-12-16 22:11                                       ` Bill Findlay
2002-12-17 15:47                                         ` Warren W. Gay VE3WWG
2002-12-17 16:26                                           ` Peter Hermann
2002-12-17 16:37                                             ` Bill Findlay
2002-12-16 22:32                                   ` tmoran
2002-12-16 22:21                               ` Hyman Rosen
2002-12-17  8:07                               ` Simon Wright
2002-12-19 12:23                             ` Frank Piron
2002-12-19 12:33                               ` Karel Miklav
2002-12-19 13:24                               ` Marin David Condic
2002-12-17 14:46                           ` Robert A Duff
2002-12-17 19:08                             ` tmoran
2002-12-17 19:15                               ` Bill Findlay
2002-12-17 20:00                               ` Hyman Rosen
2002-12-17 19:48                                 ` Larry Kilgallen
2002-12-17 20:08                               ` David C. Hoos
2002-12-17 20:52                               ` Dennis Lee Bieber
2002-12-17 21:43                               ` Steven Murdoch
2002-12-17 16:39                           ` Robert A Duff
     [not found]                           ` <atk8s0$7dm$1@news.uni <wccn0n4oazy.fsf@shell01.TheWorld.com>
2002-12-18 13:20                             ` Marin David Condic
2002-12-18 15:17                               ` Robert A Duff
2002-12-18 17:58                                 ` Marin David Condic
2002-12-19  8:48                                   ` tmoran
2002-12-19 13:18                                     ` Marin David Condic
2002-12-19 20:46                                       ` Randy Brukardt
2002-12-20 12:23                                         ` Larry Kilgallen
2002-12-20 21:35                                           ` Randy Brukardt
2002-12-20 13:15                                         ` Marin David Condic
2002-12-20 12:19                                           ` Larry Kilgallen
2002-12-21 15:48                                             ` Marin David Condic
2002-12-21 14:54                                               ` Larry Kilgallen
2002-12-20 18:49                                           ` Hyman Rosen
2002-12-20 19:48                                             ` Frank J. Lhota
2002-12-20 21:29                                               ` Randy Brukardt
2002-12-23  2:05                                                 ` AG
2002-12-27 20:43                                                   ` Randy Brukardt
2002-12-21 15:59                                               ` Marin David Condic
2002-12-20 21:49                                           ` Randy Brukardt [this message]
2002-12-18 18:57                           ` Robert A Duff
     [not found]                           ` <atk8s0$7dm$1@news.uni <wcc4r9b40ka.fsf@shell01.TheWorld.com>
2002-12-18 19:16                             ` Warren W. Gay VE3WWG
2002-12-18 22:03                               ` Randy Brukardt
2002-12-18 22:00                             ` Randy Brukardt
2002-12-18 22:39                               ` Robert A Duff
2002-12-19  2:41                             ` Marin David Condic
2002-12-19 11:47                           ` Larry Kilgallen
2002-12-13 14:18                       ` Larry Kilgallen
2002-12-13 17:07                       ` Larry Kilgallen
     [not found]                       ` <ata1n7$g5g$1@slb4.atlOrganization: LJK Software <uaDr7xp1zlGD@eisner.encompasserve.org>
2002-12-13 21:52                         ` Warren W. Gay VE3WWG
2002-12-14 14:01                         ` Marin David Condic
2002-12-14 20:01                           ` tmoran
2002-12-16 18:48                           ` Warren W. Gay VE3WWG
2002-12-16 23:01                             ` Ed Cogburn
2002-12-11 14:59                     ` Hyman Rosen
2002-12-11 18:33                       ` Wes Groleau
2002-12-11 20:51                       ` steve_H
2002-12-11 21:40                         ` Hyman Rosen
2002-12-12 18:24                         ` Warren W. Gay VE3WWG
2002-12-24  4:16                           ` David Thompson
2002-12-11 21:54                       ` Larry Kilgallen
2002-12-11 23:22                       ` Robert A Duff
2002-12-12 16:44                         ` Hyman Rosen
2002-12-12 17:14                           ` Fraser Wilson
2002-12-12 18:33                             ` Hyman Rosen
2002-12-12 19:16                               ` Wes Groleau
2002-12-13 21:26                                 ` Programmer Dude
2002-12-16 19:27                               ` John R. Strohm
2002-12-16 20:08                                 ` Hyman Rosen
     [not found]                       ` <8db3d6c8.0212111251.1ecca62e@po <wccel8of8dv.fsf@shell01.TheWorld.com>
2002-12-12 10:07                         ` John English
2002-12-13  0:53                           ` Zaphod
2002-12-12 13:20                       ` Marin David Condic
2002-12-11 19:04                     ` tmoran
2002-12-11 19:20                     ` Jeffrey Carter
2002-12-12 13:34                       ` Marin David Condic
2002-12-12 17:04                         ` Hyman Rosen
2002-12-12 18:17                           ` Marin David Condic
2002-12-13  9:17                             ` Peter Amey
2002-12-13 12:43                               ` Marin David Condic
2002-12-13 15:46                                 ` Robert Spooner
2002-12-14 14:15                                   ` Marin David Condic
2002-12-15 10:30                                     ` Ingo Marks
2002-12-15 13:54                                       ` Marin David Condic
2002-12-15 19:20                                         ` tmoran
2002-12-16 13:20                                           ` Marin David Condic
2002-12-17 15:41                                             ` steve_H
2002-12-18 13:11                                               ` Marin David Condic
2002-12-16 13:43                                           ` Wes Groleau
2002-12-11 13:33             ` Marin David Condic
2002-12-12 18:43               ` Warren W. Gay VE3WWG
2002-12-12 19:53                 ` tmoran
2002-12-13  6:06                 ` Richard Riehle
2002-12-13 10:22                   ` Ed Cogburn
2002-12-13 13:07                   ` Marin David Condic
2002-12-13 14:16                     ` Wes Groleau
2002-12-13 21:27                       ` Jeffrey Carter
2002-12-13 21:27                       ` Jeffrey Carter
2002-12-14 14:25                       ` Marin David Condic
2002-12-16 13:56                         ` Wes Groleau
2002-12-17 15:04                           ` Marin David Condic
2002-12-17 21:29                             ` Wes Groleau
2002-12-18 13:31                               ` Marin David Condic
2002-12-22  2:41                       ` faust
2002-12-13 14:13                   ` Wes Groleau
2002-12-22  2:47                     ` faust
2002-12-13 17:55                   ` Warren W. Gay VE3WWG
2002-12-13 21:55                     ` Dennis Lee Bieber
2002-12-16 13:58                       ` Wes Groleau
2002-12-14  0:14                     ` steve_H
2002-12-16 19:00                       ` Warren W. Gay VE3WWG
2002-12-14 12:58                     ` Tarjei T. Jensen
2002-12-19  9:53                     ` Ole-Hjalmar Kristensen
2002-12-19 16:17                       ` Tarjei T. Jensen
2002-12-19 17:27                         ` Warren W. Gay VE3WWG
2002-12-19 22:51                       ` Michael Bode
2002-12-13 12:51                 ` Marin David Condic
2002-12-14 19:51               ` GianLuigi Piacentini
2002-12-14 20:35                 ` Dennis Lee Bieber
2002-12-21 17:41     ` faust
2002-12-21 17:40 ` IBM , the kiss of death ( Re: IBM Acquires Rational Ada) faust
2003-01-06 22:24 ` IBM Acquires Rational Ada Don Westermeyer
  -- strict thread matches above, loose matches on Subject: below --
2002-12-17  5:47 calenday (was " Grein, Christoph
2002-12-17 14:43 ` Robert A Duff
2002-12-17 21:35   ` Wes Groleau
2002-12-18  2:09     ` Robert A Duff
2002-12-18  6:32       ` Dennis Lee Bieber
2002-12-18 18:33       ` Wes Groleau
2002-12-18 21:04         ` Larry Kilgallen
2002-12-18  9:10   ` Anders Wirzenius
2002-12-17 20:48 ` Dennis Lee Bieber
2002-12-18 14:52   ` Ted Dennison
2002-12-18 20:19     ` Dennis Lee Bieber
2002-12-18 14:23 ` Karel Miklav
2002-12-17  5:51 Grein, Christoph
2002-12-17 14:50 ` Robert A Duff
2002-12-18  5:58 Grein, Christoph
2002-12-18 15:06 ` Robert A Duff
2002-12-18 20:09   ` Dennis Lee Bieber
2002-12-18 23:57     ` Torsten Poulin
2002-12-19  9:20       ` Anders Wirzenius
2002-12-19 15:33         ` Juanma Barranquero
2002-12-23  2:12         ` AG
2002-12-18 20:57   ` Dale Stanbrough
2002-12-18  6:05 Grein, Christoph
2002-12-18  7:39 Grein, Christoph
2002-12-18  7:52 Grein, Christoph
replies disabled

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