From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,8201deea80f1752a X-Google-Attributes: gid103376,public From: Tucker Taft Subject: Re: 3-bit array ... Date: 1999/12/06 Message-ID: <384BE868.DCBF6814@averstar.com>#1/1 X-Deja-AN: 557332350 Content-Transfer-Encoding: 7bit Sender: news@inmet.camb.inmet.com (USENET news) X-Nntp-Posting-Host: houdini.burl.averstar.com References: <382386fe.85782690@news.uswest.net> <384728ff.588431360@news.uswest.net> <3847EF64.EBD41169@callnetuk.com> X-Accept-Language: en Content-Type: text/plain; charset=us-ascii Organization: AverStar (formerly Intermetrics) Burlington, MA USA Mime-Version: 1.0 Newsgroups: comp.lang.ada Date: 1999-12-06T00:00:00+00:00 List-Id: Robert A Duff wrote: > > Nick Roberts writes: > > > Just out of curiosity ... what is a 3-bit array? > > People are using that to refer to a packed array of 3-bit components. > For example: > > type T1 is range 1..5; > type T2 is array(Integer range <>) of T1; > pragma Pack(T2); > > In Ada 95, T1'Size = 3 -- a statement that will no doubt elicit the > usual complaints from Robert Dewar about loose-cannon language design > teams run amok. ;-) ;-) > > Also in Ada 95, T2'Component_Size will be either 3 or 4, depending on > the whim of the compiler writer, which doesn't seem like a good language > design decision. I'm assuming a 32-bit machine, here. GNAT has always > supported packing to the 3-bit level. AverStar's front end, and the > Green Hills compiler that uses AverStar's FE, used to use 4, but now > uses 3, due to customer demand for it. Oh dear, I hate to correct Bob on this one, but our front end still uses 4 given a pragma Pack. We only use "odd ball" sizes if the user asks for them explicitly via specifying the 'Component_Size. This is pretty important, because there is already code out there with pragma Packs, and we don't want it to suddenly start packing differently... > ... That's what this whole > discussion has been about. > > There's also the issue of whether you can say: > > for T2'Component_Size use 3; > > instead of the pragma Pack above. That is the only way to get packing to 3-bits-per-element with the AverStar front end (unless you happen to have a 24-bit word, like the Raytheon Patriot Missile Ground Support computer, where 3-bits-per-element is a "natural" size ;-). > > - Bob -- -Tucker Taft stt@averstar.com http://www.averstar.com/~stt/ Technical Director, Distributed IT Solutions (www.averstar.com/tools) AverStar (formerly Intermetrics, Inc.) Burlington, MA USA