comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: The future of Spark . Spark 2014 : a wreckage
Date: Thu, 18 Jul 2013 09:37:08 +0200
Date: 2013-07-18T09:37:08+02:00	[thread overview]
Message-ID: <17i525dc26pat$.1octlzd41c8zm.dlg@40tude.net> (raw)
In-Reply-To: ks7978$47h$1@loke.gir.dk

On Wed, 17 Jul 2013 18:26:31 -0500, Randy Brukardt wrote:

> By your twisted definition, everything is static (including dynamic 
> constraints!) if sufficient information is known at compile-time to reason 
> about them.

Yes.
 
> Absolutely. The sorts of proofs you want would absolutely kill program 
> maintenance, making it impossible to have the sort of reusable libraries 
> that Ada makes so easy.

Maybe. But remember that other proofs will be useless beyond toy cases.

>> Especially the ones crucial for exception contracts. How are you
>> going to prove the caller's contract not to raise? You could not without
>> non-sensual handlers. It would be like the idiotic "function must have a
>> return statement rule."
> 
> You can only provide exception contracts if you have strong preconditions 
> and constraints on the parameters. In the absense of that, you shouldn't be 
> *allowed* to prove anything, because in doing so you force a strong coupling 
> to the contents of the body.

As I said. Useless. 

>>>> Opening readonly file for writing is not a bug it is an error, a  legitime
>>>> state of the program which must be handled. Writing a file opened as
>>>> readonly is a bug. Bug /= error. Errors are handled, bugs are fixed.
>>>
>>> You claim that you can use the file type to eliminate Status_Error and
>>> Mode_Error. But that's impossible, because an Open that fails leaves the
>>> file unopened;
>>
>> This is another issue, i.e. construction and initialization. You should 
>> not be able to create unopened instances of file type.
> 
> Nice theory, impossible to do in practice.

Even if as "practice" you mean broken limited return, it is still quite
possible.

>>> and you have to be able to fall back and open a different
>>> file (or create one instead) on such a condition. It's not practical to 
>>> have a single Open operation as an initializer
>>
>> Why? I certainly want it exactly this way.
> 
> It's impractical to have an Open that somehow encodes every possible 
> sequence of Open-fall back-Open-Create that might come up. In the absense of 
> that, you have to resort to complex program structures (it's not possible to 
> declare objects with the right scope easily) or worse,

It won't be any more complex than it is when handling exceptions
propagating out of Open. In fact it will be much simpler because you forgot
the issue of closing the file on subsequent errors.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  reply	other threads:[~2013-07-18  7:37 UTC|newest]

Thread overview: 68+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-07-08 17:56 The future of Spark . Spark 2014 : a wreckage vincent.diemunsch
2013-07-08 19:24 ` Simon Wright
2013-07-08 20:59 ` Florian Weimer
2013-07-09  7:40   ` Dmitry A. Kazakov
2013-07-09  8:30     ` Georg Bauhaus
2013-07-09  8:58       ` Dmitry A. Kazakov
2013-07-09 10:27         ` G.B.
2013-07-09 11:13         ` G.B.
2013-07-09 15:14     ` Adam Beneschan
2013-07-09 22:51     ` Robert A Duff
2013-07-10  7:49       ` Dmitry A. Kazakov
2013-07-10  8:21         ` Georg Bauhaus
2013-07-08 21:32 ` Randy Brukardt
2013-07-09  7:28   ` Dmitry A. Kazakov
2013-07-09 11:29     ` Simon Wright
2013-07-09 12:22       ` Dmitry A. Kazakov
2013-07-09 20:37     ` Randy Brukardt
2013-07-10 10:03       ` Dmitry A. Kazakov
2013-07-10 23:21         ` Randy Brukardt
2013-07-11  7:44           ` Dmitry A. Kazakov
2013-07-11 22:28             ` Randy Brukardt
2013-07-12  8:02               ` Dmitry A. Kazakov
2013-07-12 21:16                 ` Randy Brukardt
2013-07-14 10:19                   ` Dmitry A. Kazakov
2013-07-14 15:57                     ` Georg Bauhaus
2013-07-16  0:16                       ` Randy Brukardt
2013-07-17  1:30                         ` Shark8
2013-07-17 23:08                           ` Randy Brukardt
2013-07-18  7:19                             ` Dmitry A. Kazakov
2013-07-19  4:36                               ` Randy Brukardt
2013-07-16  0:13                     ` Randy Brukardt
2013-07-16  8:37                       ` Dmitry A. Kazakov
2013-07-16 22:13                         ` Randy Brukardt
2013-07-17  7:59                           ` Dmitry A. Kazakov
2013-07-17 23:26                             ` Randy Brukardt
2013-07-18  7:37                               ` Dmitry A. Kazakov [this message]
2013-07-19  4:32                                 ` Randy Brukardt
2013-07-19  7:16                                   ` Dmitry A. Kazakov
2013-07-20  5:32                                     ` Randy Brukardt
2013-07-20  9:06                                       ` Dmitry A. Kazakov
2013-07-12  1:01           ` Slow? Ada?? Bill Findlay
2013-07-09  7:57   ` The future of Spark . Spark 2014 : a wreckage Stefan.Lucks
2013-07-09 20:46     ` Randy Brukardt
2013-07-10  8:03       ` Stefan.Lucks
2013-07-10 12:46         ` Simon Wright
2013-07-10 23:10         ` Randy Brukardt
2013-07-11 19:23           ` Stefan.Lucks
2013-07-12  0:21             ` Randy Brukardt
2013-07-12  9:12               ` Stefan.Lucks
2013-07-12 20:47                 ` Randy Brukardt
2013-08-05  5:43                 ` Paul Rubin
2013-07-10 12:19   ` vincent.diemunsch
2013-07-10 16:02     ` Simon Wright
2013-07-11  0:36     ` Randy Brukardt
2013-07-11  6:19       ` Simon Wright
2013-07-11 23:11         ` Randy Brukardt
2013-07-11 10:10       ` vincent.diemunsch
2013-07-11 14:23         ` Dmitry A. Kazakov
2013-07-12  0:07           ` Randy Brukardt
2013-07-12  0:00         ` Randy Brukardt
2013-07-12  7:25           ` Simon Wright
2013-07-12 20:07             ` Randy Brukardt
2013-07-12 14:23           ` Robert A Duff
2013-07-12 20:14             ` Randy Brukardt
2013-07-11 23:50       ` Shark8
2013-07-08 23:18 ` Peter C. Chapin
2013-07-09  7:34   ` Stefan.Lucks
2013-07-09 15:21     ` Adam Beneschan
replies disabled

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