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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,8ee4430d1820a774 X-Google-Attributes: gid103376,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!news2.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!newsfeed.freenet.de!newsfeed01.chello.at!newsfeed.arcor.de!newsspool3.arcor-online.net!news.arcor.de.POSTED!not-for-mail From: "Dmitry A. Kazakov" Subject: Re: GNAT.Sockets: Timeval_Duration is in milliseconds? Newsgroups: comp.lang.ada User-Agent: 40tude_Dialog/2.0.15.1 MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Reply-To: mailbox@dmitry-kazakov.de Organization: cbb software GmbH References: <99906a58-2645-4880-bd13-9b63a30ffb59@e4g2000hsg.googlegroups.com> <11adowbxp1rax$.13d1jgzb1wtsn.dlg@40tude.net> <314aea38-7dc1-462e-b272-31817c147996@p69g2000hsa.googlegroups.com> Date: Sun, 9 Dec 2007 18:25:01 +0100 Message-ID: <1cbxsyun6u33d.1ilz0v47jxl1j$.dlg@40tude.net> NNTP-Posting-Date: 09 Dec 2007 18:25:04 CET NNTP-Posting-Host: 12edce9c.newsspool3.arcor-online.net X-Trace: DXC=@:BjAddma[4^cW`WBF>WQ`PGja[TFeF0_1meJk0cg92 X-Complaints-To: usenet-abuse@arcor.de Xref: g2news1.google.com comp.lang.ada:18818 Date: 2007-12-09T18:25:04+01:00 List-Id: On Sun, 9 Dec 2007 07:55:02 -0800 (PST), gpriv@axonx.com wrote: > On Dec 9, 4:33 am, "Dmitry A. Kazakov" > wrote: >> On Sat, 08 Dec 2007 19:45:53 -0600, tmo...@acm.org wrote: >>> The Ada 95 LRM 9.6(7) says >>> "...; a value of type Duration is used to represent the length of >>> an interval of time, expressed in seconds." >> >>> It would be bad practice to use a value of type Duration to represent, >>> say, the number of gallons of gasoline remaining, and it would be even >>> worse, because even more confusing, to use it to represent a number >>> of milliseconds. >> >> Sorry but this makes no sense. The physical entity being measured is >> duration T. Gallon is a measure of volume L**3. Clearly T /= L**3. As for >> seconds, milliseconds, years, centuries etc, all they fall under the >> category T (duration). They are numbers expressing the *same* physical >> entity. It is rather instructive to use the same type for them when >> possible. > > Conceptually you're right, but many annoying bugs are introduced by > assuming wrong scale when using same entities (feet/meter, T(K)/t(C), > X/Y/Z coordinates, etc.) In order to make the language work for you > one should go with different types. My favorite is X,Y,Z coordinates: > all measure distance but misinterpreting those may case a trouble. So > by introducing the new types for each plus one direction-less Distance > type will be good safety measure while all three are distance > entities. It makes a lot of sense to use distinct types for horizontal and vertical distances as long no rotation operation is used. I do it too. Similarly it makes even more sense to distinguish screen coordinates and ones relative to some window. The same could be true for durations when applied to different, unsynchronized epochs, for instance. But all this just does not apply to the case at hand. Because that deals with exactly the same physical entity as the delay statement does. Therefore using a separate type is just a bad design that slavishly follows OS APIs. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de