comp.lang.ada
 help / color / mirror / Atom feed
From: Doctor Who <doc@tardis.org>
Subject: Re: Discriminants or Constructor Function for Limited Types
Date: Mon, 09 May 2022 14:05:09 +0200	[thread overview]
Message-ID: <nq0i7hhji09la6rujfl6vidqlag0ogb9ie@4ax.com> (raw)
In-Reply-To: t5at5a$1j08$1@gioia.aioe.org

On Mon, 9 May 2022 13:15:54 +0200, "Dmitry A. Kazakov"
<mailbox@dmitry-kazakov.de> wrote:

>On 2022-05-09 12:19, Doctor Who wrote:
>
>> if you do a check before write there is no need to rise and propagate
>> an exception.
>
>A bad idea.
>
>First it is an unnecessary overhead, because ultimately the check will 
>be repeated.
>
>Secondly it is technically impossible to do for a huge number of reasons:
>
>1. Too complex to do. The modern hardware and software does a lot of 
>bookkeeping, indexing, replicating, compression, encryption, the stuff 
>almost impossible to estimate or predict in advance.
>
>2. Unreliable due to racing conditions, volatile network states etc.
>
>3. Very expensive, e.g. in the case of a networking file system or a 
>database and the asynchronous nature of modern I/O subsystems. When you 
>write a file you normally do not wait for the operation completion. 
>Actual writing continues asynchronously to your application going 
>through dozens of stacks, caches, buffers, buses. If that fails you will 
>learn that later in a consequent operation unless you explicitly call 
>Flush or equivalent. Checking the state is a synchronous operation that 
>would have hundred- to thousandfold performance penalty.
>
>4. Just impossible like when dealing with a stream, a pipe line etc.
>
>As general design rules regarding exceptions consider:
>
>1. Never use return code.
>
>2. Never check anything non-trivial in advance.


we are talking about files, in a local disk right?

  reply	other threads:[~2022-05-09 12:05 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-05-04  9:02 Discriminants or Constructor Function for Limited Types R R
2022-05-04  9:40 ` Jeffrey R.Carter
2022-05-04  9:47 ` Dmitry A. Kazakov
2022-05-04 23:49   ` Randy Brukardt
2022-05-05  6:56     ` Dmitry A. Kazakov
2022-05-06  1:53       ` Randy Brukardt
2022-05-06  8:48         ` Dmitry A. Kazakov
2022-05-07  3:26           ` Randy Brukardt
2022-05-07 14:55             ` Dmitry A. Kazakov
2022-05-08  2:32               ` Randy Brukardt
2022-05-08  8:37                 ` Dmitry A. Kazakov
2022-05-08 17:19                   ` Doctor Who
2022-05-08 18:00                     ` Dmitry A. Kazakov
2022-05-08 18:07                       ` Doctor Who
2022-05-09  8:52                       ` Niklas Holsti
2022-05-09  9:45                         ` Dmitry A. Kazakov
2022-05-09 10:19                       ` Doctor Who
2022-05-09 11:15                         ` Dmitry A. Kazakov
2022-05-09 12:05                           ` Doctor Who [this message]
2022-05-09 12:31                             ` Dmitry A. Kazakov
2022-05-10  4:48                   ` Randy Brukardt
2022-05-10  6:18                     ` Dmitry A. Kazakov
2022-05-04 15:05 ` AdaMagica
2022-05-05  9:59 ` R R
replies disabled

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