From: "(see below)" <yaldnif.w@blueyonder.co.uk>
Subject: Re: Efficiency of code generated by Ada compilers
Date: Sun, 08 Aug 2010 23:10:38 +0100
Date: 2010-08-08T23:10:38+01:00 [thread overview]
Message-ID: <C884E9EE.14C8B6%yaldnif.w@blueyonder.co.uk> (raw)
In-Reply-To: wcchbj4j09y.fsf@shell01.TheWorld.com
On 08/08/2010 21:51, in article wcchbj4j09y.fsf@shell01.TheWorld.com,
"Robert A Duff" <bobduff@shell01.TheWorld.com> wrote:
> csampson@inetworld.net (Charles H. Sampson) writes:
>
>> Robert A Duff <bobduff@shell01.TheWorld.com> wrote:
>>
>> I'm surprised, Bob. Are you saying that you signed integers in
>> preference to a modular type for a variable that cycles?
>
> Yes. Unless I'm forced to use modular for some other reason
> (e.g. I need one extra bit).
>
>> ...I use
>> modular-typed variables and, if I've got my engineer's hat on, write
>>
>> I := I + 1; -- Modular variable. Wraps.
>
> You're not alone. Even Tucker has advocated using modular
> types for this sort of thing.
>
> But I think an explicit "mod N" is clearer than a comment.
>
> Variables that cycle are rare, so should be noted explicitly
> in the code. And, as Dmitry noted, modular types only work
> when the lower bound is 0. It's not unreasonable to have
> a circular buffer indexed by a range 1..N.
>
> See my point? Still "surprised"?
>
>> but I have to admit that in the heat of battle the comment might be
>> omitted. Even in that case, the variable name probably indicates that
>> wrapping should be expected.
>
> - Bob
>
> P.S. Can anybody recall the definition of "not" on modular
> types, when the modulus is not a power of 2, without
> looking it up? Hint: It makes no sense. The only feature
> that's worse than "modular types" is "modular types with a
> non-power-of-2 modulus". ;-)
I don't use non-power-of-2 mod types, but I write emulators, and I would be
stuffed if I could not declare, e.g.:
type KDF9_word is mod 2**48;
--
Bill Findlay
<surname><forename> chez blueyonder.co.uk
next prev parent reply other threads:[~2010-08-08 22:10 UTC|newest]
Thread overview: 94+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-08-06 20:21 Efficiency of code generated by Ada compilers Elias Salomão Helou Neto
2010-08-06 20:24 ` (see below)
2010-08-06 23:14 ` Shark8
2010-08-07 7:53 ` Dmitry A. Kazakov
2010-08-10 13:52 ` Elias Salomão Helou Neto
2010-08-10 14:24 ` Shark8
2010-08-10 14:28 ` Shark8
2010-08-10 15:01 ` Robert A Duff
2010-08-10 15:14 ` Yannick Duchêne (Hibou57)
2010-08-10 18:32 ` Robert A Duff
2010-08-10 15:10 ` Georg Bauhaus
2010-08-10 15:32 ` Dmitry A. Kazakov
2010-08-10 22:26 ` Randy Brukardt
2010-08-20 7:22 ` Yannick Duchêne (Hibou57)
2010-08-08 14:03 ` Gene
2010-08-08 15:49 ` Robert A Duff
2010-08-08 17:13 ` Charles H. Sampson
2010-08-08 18:11 ` Dmitry A. Kazakov
2010-08-08 20:51 ` Robert A Duff
2010-08-08 22:10 ` (see below) [this message]
2010-08-08 22:22 ` Robert A Duff
2010-08-09 4:46 ` Yannick Duchêne (Hibou57)
2010-08-09 5:52 ` J-P. Rosen
2010-08-09 13:28 ` Robert A Duff
2010-08-09 18:42 ` Jeffrey Carter
2010-08-09 19:05 ` Robert A Duff
2010-08-10 10:00 ` Jacob Sparre Andersen
2010-08-10 12:39 ` Robert A Duff
2010-08-09 19:33 ` Yannick Duchêne (Hibou57)
2010-08-09 21:42 ` Robert A Duff
2010-08-10 12:26 ` Phil Clayton
2010-08-10 12:57 ` Yannick Duchêne (Hibou57)
2010-08-10 14:03 ` Elias Salomão Helou Neto
2010-08-10 14:27 ` Yannick Duchêne (Hibou57)
2010-08-10 22:50 ` anon
2010-08-10 23:28 ` Yannick Duchêne (Hibou57)
2010-08-10 23:38 ` Yannick Duchêne (Hibou57)
2010-08-11 7:06 ` Niklas Holsti
2010-08-11 11:58 ` anon
2010-08-11 12:37 ` Georg Bauhaus
2010-08-11 13:13 ` Robert A Duff
2010-08-11 23:49 ` Randy Brukardt
2010-08-10 14:31 ` Shark8
2010-08-11 7:14 ` Charles H. Sampson
2010-08-11 6:42 ` Charles H. Sampson
2010-08-08 22:35 ` tmoran
2010-08-09 13:53 ` Robert A Duff
2010-08-09 17:59 ` tmoran
2010-08-09 19:36 ` Yannick Duchêne (Hibou57)
2010-08-09 21:38 ` Robert A Duff
2010-08-11 7:42 ` Charles H. Sampson
2010-08-11 13:38 ` Robert A Duff
2010-08-12 7:48 ` Charles H. Sampson
2010-08-12 8:08 ` Ludovic Brenta
2010-08-12 17:10 ` Charles H. Sampson
2010-08-12 18:06 ` Jeffrey Carter
2010-08-11 18:49 ` Simon Wright
2010-08-12 7:54 ` Charles H. Sampson
2010-08-12 8:36 ` Dmitry A. Kazakov
2010-08-12 11:04 ` Brian Drummond
2010-08-12 19:23 ` Simon Wright
2010-08-12 20:21 ` (see below)
2010-08-13 15:08 ` Elias Salomão Helou Neto
2010-08-13 15:10 ` Elias Salomão Helou Neto
2010-08-13 18:01 ` Georg Bauhaus
2010-08-13 19:52 ` Robert A Duff
2010-08-14 9:44 ` Georg Bauhaus
2010-08-13 20:22 ` Robert A Duff
2010-08-14 1:34 ` Randy Brukardt
2010-08-14 7:18 ` anon
2010-08-13 21:57 ` Jeffrey Carter
2010-08-13 22:37 ` Yannick Duchêne (Hibou57)
2010-08-13 22:43 ` Yannick Duchêne (Hibou57)
2010-08-13 23:29 ` tmoran
2010-08-14 0:02 ` Yannick Duchêne (Hibou57)
2010-08-14 0:16 ` (see below)
2010-08-14 10:47 ` Brian Drummond
2010-08-14 13:58 ` Yannick Duchêne (Hibou57)
2010-08-15 0:23 ` Brian Drummond
2010-08-14 14:51 ` (see below)
2010-08-15 0:58 ` Brian Drummond
2010-08-15 1:58 ` (see below)
2010-08-15 10:31 ` Brian Drummond
2010-08-13 15:37 ` Dmitry A. Kazakov
2010-08-16 13:29 ` Elias Salomão Helou Neto
2010-08-16 14:09 ` Dmitry A. Kazakov
2010-08-18 14:00 ` Elias Salomão Helou Neto
2010-08-18 16:38 ` Dmitry A. Kazakov
2010-08-19 18:52 ` Elias Salomão Helou Neto
2010-08-19 19:48 ` Dmitry A. Kazakov
2010-08-13 16:58 ` (see below)
2010-08-14 16:13 ` Charles H. Sampson
2010-08-16 13:45 ` Elias Salomão Helou Neto
2010-08-15 12:32 ` Florian Weimer
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox