comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Ada 2012: In-out parameters for functions
Date: Mon, 6 May 2013 19:30:47 -0500
Date: 2013-05-06T19:30:47-05:00	[thread overview]
Message-ID: <km9hvr$dbd$1@munin.nbi.dk> (raw)
In-Reply-To: aunb0nFir95U1@mid.individual.net

"Niklas Holsti" <niklas.holsti@tidorum.invalid> wrote in message 
news:aunb0nFir95U1@mid.individual.net...
...
> However, the use of parameter mode notations in Ada calls is not likely
> to become a nuisance. If the profile of the subprogram being called is
> changed so that some parameter modes change, it seems to me highly
> likely that all call sites must at least be inspected to see if they
> still have the intended effects, and most call sites must probably be
> modified to take the new parameter modes into account. Without parameter
> modes in calls, the compiler can point out only some kinds of mode
> conflicts, such as an uninitialized variable as the actual parameter for
> an "in" or "in out", or a constant object as the actual parameter for an
> "out" or "in out". If the calls specify parameter modes, the compiler
> can point out all mode conflicts.

Right. But the flip side to this is that it would be impossible to 
compatibly change a subprogram specification. Today, we can change "in out" 
to "in" and "in out" to "out" without breaking any calls -- and I've had to 
do both. Having the modes everywhere would definitely make the code more 
fragile.

OTOH, there clearly are cases where having the mode explicitly mentioned 
would help readability (i.e. "in out" in functions).

I don't think it is clear-cut either way. But I would like to see some nice 
syntax, none of which seems possible for Ada.

                                           Randy.


  parent reply	other threads:[~2013-05-07  0:30 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-01 16:28 Ada 2012: In-out parameters for functions dptrash
2013-05-01 17:27 ` Shark8
2013-05-01 19:04 ` Yannick Duchêne (Hibou57)
2013-05-01 19:37   ` Dmitry A. Kazakov
2013-05-01 19:58     ` Yannick Duchêne (Hibou57)
2013-05-02  6:41       ` Dmitry A. Kazakov
2013-05-02  7:11         ` Yannick Duchêne (Hibou57)
2013-05-01 23:37 ` Peter C. Chapin
2013-05-03 10:48 ` anon
2013-05-03 11:04   ` Simon Clubley
2013-05-03 11:32   ` Simon Wright
2013-05-03 11:42   ` Yannick Duchêne (Hibou57)
2013-05-03 11:54     ` Yannick Duchêne (Hibou57)
2013-05-03 23:29       ` Randy Brukardt
2013-05-04  1:02         ` Adam Beneschan
2013-05-05  5:16           ` Randy Brukardt
2013-05-05 10:24         ` Niklas Holsti
2013-05-05 11:11           ` Yannick Duchêne (Hibou57)
2013-05-05 12:52             ` Bill Findlay
2013-05-05 15:09               ` Niklas Holsti
2013-05-05 19:23                 ` Yannick Duchêne (Hibou57)
2013-05-05 20:37                   ` Niklas Holsti
2013-05-07  0:30                 ` Randy Brukardt [this message]
2013-05-07  2:36                   ` Yannick Duchêne (Hibou57)
2013-05-05 19:45               ` Yannick Duchêne (Hibou57)
2013-05-06 15:40               ` Adam Beneschan
2013-05-06 16:17                 ` Bill Findlay
2013-05-06 16:47                   ` Adam Beneschan
2013-05-06 18:43                     ` Bill Findlay
2013-05-07  0:07                     ` Dennis Lee Bieber
2013-05-07  2:34                       ` Yannick Duchêne (Hibou57)
2013-05-07  0:26             ` Randy Brukardt
2013-05-06 15:26           ` Adam Beneschan
2013-05-07  0:36             ` Randy Brukardt
2013-05-07  3:59           ` Yannick Duchêne (Hibou57)
2013-05-07  4:13             ` Yannick Duchêne (Hibou57)
2013-05-07 11:52             ` Yannick Duchêne (Hibou57)
2013-05-03 11:45   ` AdaMagica
2013-05-03 23:54     ` Randy Brukardt
2013-05-04  6:58       ` J-P. Rosen
2013-05-04  7:21         ` Dmitry A. Kazakov
2013-05-04 17:58           ` J-P. Rosen
2013-05-04  7:40         ` Yannick Duchêne (Hibou57)
2013-05-04  8:05           ` Simon Wright
2013-05-04 17:55           ` J-P. Rosen
2013-05-04  0:40   ` Keith Thompson
replies disabled

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