comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Gnat 2013 is out!
Date: Thu, 30 May 2013 14:53:43 -0500
Date: 2013-05-30T14:53:43-05:00	[thread overview]
Message-ID: <ko8ao8$55i$1@loke.gir.dk> (raw)
In-Reply-To: 32d94173-533a-471e-95a0-abb73a6cdcc2@googlegroups.com

"Adam Beneschan" <adam@irvine.com> wrote in message 
news:32d94173-533a-471e-95a0-abb73a6cdcc2@googlegroups.com...
On Wednesday, May 29, 2013 3:39:44 PM UTC-7, Randy Brukardt wrote:

>I've always wanted some kind of feature in Ada that would allow a caller to 
>provide a
>"dummy" for OUT parameters, without having to declare a new variable.  The 
>compiler
>would allocate a temporary object (and a separate one for each use of a 
>"dummy") and
>then discard it after the call.  It wouldn't work well when parameter types 
>are
>unconstrained array or discriminant records, though.

Hmm, that seems like a good idea to me. But what would the syntax be? <> 
maybe?

         My_Proc (Obj1, Obj2, Result => <>);

Someone should seriously propose something on this line on Ada-Comment. I 
can see objections about making it too easy to ignore errors -- but errors 
shouldn't be returned in parameters in the first place, so I don't find that 
terribly compelling.

Anyway, this problem was a significant annoyance in the design of Claw. We 
have routines that return rarely used values that would normally just be 
discarded. That's especially an issue for call-back routines, where we have 
to provide all of the parameters that you could possibly use, even if you 
have no need for half of them. (And the typical solutions using overloading 
and/or default parameters is impractical.)

I tried to work out a solution based on default parameters for all modes 
(which would provide your dummy result along with other uses), but it didn't 
work out very well. The main problem was that the default objects usually 
had to be globals, and that could cause an unsafe use of shared variables in 
a tasking environment. The <> solution doesn't suffer from this, and it also 
would make the dummy--ness of the parameter visible to the reader, which 
would reduce two of the major objections. (The latter means that style 
checkers could prevent the use of such dummies if it was considered a 
problem -- and it would make the fact that they're dummies much more visible 
than a regular declaration does.)

                                  Randy.


  parent reply	other threads:[~2013-05-30 19:53 UTC|newest]

Thread overview: 55+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-29 13:36 Gnat 2013 is out! J-P. Rosen
2013-05-29 15:03 ` Simon Wright
2013-05-29 16:13   ` Simon Wright
2013-05-29 22:39     ` Randy Brukardt
2013-05-30  2:01       ` Adam Beneschan
2013-05-30  8:01         ` Bill Findlay
2013-05-30 23:09           ` Dennis Lee Bieber
2013-05-31  5:02             ` J-P. Rosen
2013-05-31 18:35             ` Bill Findlay
2013-05-30 10:39         ` Simon Wright
2013-05-30 16:21           ` Adam Beneschan
2013-05-30 19:53         ` Randy Brukardt [this message]
2013-05-31  7:41           ` Dmitry A. Kazakov
2013-05-31 11:30           ` Stefan.Lucks
2013-05-31 12:03             ` Niklas Holsti
2013-05-31 22:07             ` Randy Brukardt
2013-06-01 11:51               ` Georg Bauhaus
2013-06-03 14:52                 ` Adam Beneschan
2013-06-04 17:42                   ` Wesley Pan
2013-06-04 18:34                     ` Adam Beneschan
2013-06-04 19:00                       ` Wesley Pan
2013-06-05 15:40                     ` Eryndlia Mavourneen
2013-06-11  2:39                   ` Randy Brukardt
2013-06-11  6:31                     ` Georg Bauhaus
2013-06-19 21:57                       ` Randy Brukardt
2013-05-30  0:31 ` Dennis Lee Bieber
2013-05-31 16:12 ` dptrash
2013-06-01  5:10   ` Stephen Leake
2013-06-01  6:00   ` Per Sandberg
2013-06-01  6:46   ` J-P. Rosen
2013-06-01 15:22     ` Bill Findlay
2013-08-27 14:08   ` Yannick Duchêne (Hibou57)
2013-08-27 20:05     ` wilson
2013-08-27 22:59       ` Dennis Lee Bieber
2013-08-28  7:35         ` Dmitry A. Kazakov
2013-08-28 23:39           ` Dennis Lee Bieber
2013-06-07  2:41 ` gautier_niouzes
2013-06-07 15:52 ` mjsilva
2013-06-07 20:15   ` Dmitry A. Kazakov
2013-06-09 18:51     ` MatthiasR
2013-06-08  6:22   ` Simon Wright
2013-06-08 23:23     ` mjsilva
2013-06-10 11:07   ` Rego, P.
2013-06-13 13:30     ` Rego, P.
2013-06-17  6:35       ` Jacob Sparre Andersen
2013-06-22  8:17         ` MatthiasR
2014-03-18  0:04           ` Rego, P.
2013-06-11  7:52 ` Maciej Sobczak
2013-06-11  9:35   ` J-P. Rosen
2013-06-11 12:09   ` John Doe
2013-06-12  7:58 ` Maciej Sobczak
2013-06-12 11:01   ` G.B.
2013-06-12 20:01   ` Robert A Duff
2013-06-12 20:36     ` Georg Bauhaus
2013-06-13  7:38     ` Maciej Sobczak
replies disabled

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