comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Should Inline be private in the private part of a package spec?
Date: Fri, 3 Aug 2012 08:51:28 -0700 (PDT)
Date: 2012-08-03T08:51:28-07:00	[thread overview]
Message-ID: <e416cb92-6ec8-4514-8fa9-c35d6432b117@googlegroups.com> (raw)
In-Reply-To: <501bd285$0$6564$9b4e6d93@newsspool4.arcor-online.net>

On Friday, August 3, 2012 6:30:50 AM UTC-7, Georg Bauhaus wrote:
> The aspect notation of Ada 2012 lets me specify Inline as
> an aspect giving a pragmatic hint to the compiler.
> This hint is very near the declaration:
> 
> package P is
> 
>   procedure Op (X : T)
>     with Inline;
> 
> end P;
> 
> Should the readers of a package spec be bothered with hints
> to the compiler if these hints address optimization, or other
> aspect of how to implement a subprogram?
> 
> The hint does not add to an understanding of what an operation
> is to achieve, IMHO. This understanding is what I'd hope to
> get from reading a spec. Alternatively,
> 
> package P is
>
>   procedure Op (X : T);
>
> private
>   pragma Inline (Op);
> end P;
> 
> still lets the reader take note of inlining, should they
> be so inclined. Am I missing something?

I share your concern.  I sent something to Ada-Comment about this in June 2011, expressing this concern about making the pragmas "obsolescent"; here's part of Randy's response:

# I don't believe that either Inline or Import should be hidden in the private
# part, because both have (subtle) semantic effects that potentially break
# privacy. In particular, inline adds dependencies that might make linking a
# program impossible. (I don't think inline should be allowed to do that,
# either, but that's the way it is.) Import usually requires parameters that
# also have convention C -- it's rarely possible to hide the *entire* thing.

# It's better to hide Import and all of the convention C stuff in a private
# package . . .

Randy also thought it was better to encourage people to stop using the pragmas because using the pragmas on overloaded subprograms is problematic.  (And GNAT doesn't always get it right.  There are several examples of publicly available code that contain illegal Import pragmas on overloaded routines that GNAT didn't catch.  Another reason, I suppose, not to use them.)

Anyway, while I'm with you that I don't want a reader to have to see stuff like this in the package spec, at least Ada is still way ahead of, say, Java or C# in that regard; if I'm not confused, you have to put the whole body of the function right by the point where it's first declared, not just a small hint to the compiler.  Also, since we now have GUIs to work with programs instead of just punch cards and printouts, it's easy to envision a GUI displaying "compiler hints" like this in a lighter color, so that a reader looking at the package spec  because he wants to know how to use the package can focus on the important parts.

                        -- Adam 



  parent reply	other threads:[~2012-08-03 15:59 UTC|newest]

Thread overview: 183+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-03 13:30 Should Inline be private in the private part of a package spec? Georg Bauhaus
2012-08-03 14:34 ` Martin Krischik
2012-08-03 15:51 ` Adam Beneschan [this message]
2012-08-03 18:07   ` Robert A Duff
2012-08-06  3:09     ` Randy Brukardt
2012-08-06 14:33       ` Robert A Duff
2012-08-06 15:50         ` Vasiliy Molostov
2012-08-06 17:58           ` Georg Bauhaus
2012-08-06 21:01             ` Vasiliy Molostov
2012-08-06 21:52               ` Georg Bauhaus
2012-08-06 22:10                 ` Georg Bauhaus
2012-08-06 23:12                   ` Vasiliy Molostov
2012-08-07  8:29                     ` Georg Bauhaus
2012-08-09 21:44                       ` Randy Brukardt
2012-08-08  1:48                   ` Shark8
2012-08-08  7:38                     ` Simon Wright
2012-08-08  8:10                     ` Georg Bauhaus
2012-08-09 21:39                   ` Randy Brukardt
2012-08-10  1:49                     ` Britt
2012-08-10  3:10                       ` Shark8
2012-08-10  6:00                         ` Vasiliy Molostov
2012-08-10 16:34                           ` Shark8
2012-08-10 22:37                             ` Vasiliy Molostov
2012-08-11  3:44                               ` Shark8
2012-08-11  4:42                                 ` Vasiliy Molostov
2012-08-13 11:53                                 ` Jacob Sparre Andersen
2012-08-10  7:37                         ` Dmitry A. Kazakov
2012-08-10 16:45                           ` Shark8
2012-08-10 17:03                             ` Dmitry A. Kazakov
2012-08-10 21:35                               ` Shark8
2012-08-10 22:10                                 ` Dmitry A. Kazakov
2012-08-11  3:27                                   ` Shark8
2012-08-11  5:25                                     ` Dmitry A. Kazakov
2012-08-11  4:48                             ` Vasiliy Molostov
2012-08-11  5:12                               ` Shark8
2012-08-10 17:06                         ` Simon Wright
2012-08-11  0:46                       ` Randy Brukardt
2012-08-11  1:57                         ` Vasiliy Molostov
2012-08-13 22:16                           ` Randy Brukardt
2012-08-14  2:52                             ` Vasiliy Molostov
2012-08-14 14:44                               ` Shark8
2012-08-14 15:09                                 ` Dmitry A. Kazakov
2012-08-14 22:04                                   ` Randy Brukardt
2012-08-15  7:51                                     ` Dmitry A. Kazakov
2012-08-15 11:08                                       ` Georg Bauhaus
2012-08-15 11:55                                         ` Dmitry A. Kazakov
2012-08-15 15:49                                           ` Georg Bauhaus
2012-08-15 16:24                                             ` Dmitry A. Kazakov
2012-08-15 16:53                                               ` Georg Bauhaus
2012-08-15 18:53                                                 ` Dmitry A. Kazakov
2012-08-15 20:39                                                   ` Georg Bauhaus
2012-08-21 22:46                                                     ` Randy Brukardt
2012-08-22 12:49                                                       ` Georg Bauhaus
2012-08-22 13:10                                                         ` Vasiliy Molostov
2012-08-22 21:55                                                         ` Randy Brukardt
2012-08-23  7:56                                                           ` Georg Bauhaus
2012-08-23  9:00                                                             ` Georg Bauhaus
2012-08-24  4:22                                                             ` Randy Brukardt
2012-08-24 10:17                                                               ` Georg Bauhaus
2012-08-24 15:07                                                                 ` Vasiliy Molostov
2012-08-24 22:09                                                                 ` Randy Brukardt
2012-08-15 21:29                                                   ` Georg Bauhaus
2012-08-16  7:30                                                     ` Dmitry A. Kazakov
2012-08-16 11:18                                                       ` Georg Bauhaus
2012-08-16 12:13                                                         ` Vasiliy Molostov
2012-08-16 12:56                                                         ` Dmitry A. Kazakov
2012-08-16 18:31                                                           ` Georg Bauhaus
2012-08-16 19:58                                                             ` Dmitry A. Kazakov
2012-08-16 22:00                                                               ` Vasiliy Molostov
2012-08-17 18:41                                                               ` Georg Bauhaus
2012-08-18  6:24                                                                 ` Dmitry A. Kazakov
2012-08-18  8:05                                                                   ` Vasiliy Molostov
2012-08-18 21:02                                                                     ` Shark8
2012-08-18 21:52                                                                       ` Simon Wright
2012-08-19  1:34                                                                         ` Shark8
2012-08-19 13:03                                                                           ` Simon Wright
2012-08-18 23:33                                                                       ` Vasiliy Molostov
2012-08-20 13:51                                                                   ` Georg Bauhaus
2012-08-20 14:15                                                                     ` Dmitry A. Kazakov
2012-08-20 16:22                                                                       ` Georg Bauhaus
2012-08-20 18:42                                                                         ` Vasiliy Molostov
2012-08-20 19:28                                                                         ` Dmitry A. Kazakov
2012-08-20 20:27                                                                           ` Vasiliy Molostov
2012-08-21 11:49                                                                           ` Georg Bauhaus
2012-08-21 13:12                                                                             ` Dmitry A. Kazakov
2012-08-21 14:17                                                                               ` Georg Bauhaus
2012-08-21 15:06                                                                                 ` Dmitry A. Kazakov
2012-08-21 15:29                                                                                   ` Pascal Obry
2012-08-21 19:12                                                                                     ` Dmitry A. Kazakov
2012-08-21 16:18                                                                                   ` Georg Bauhaus
2012-08-21 19:18                                                                                     ` Dmitry A. Kazakov
2012-08-21 21:35                                                                                       ` Pascal Obry
2012-08-21 23:11                                                                                         ` Randy Brukardt
2012-08-21 23:37                                                                                           ` Vasiliy Molostov
2012-08-22 21:40                                                                                             ` Randy Brukardt
2012-08-21 23:54                                                                                         ` Shark8
2012-08-22  6:14                                                                                           ` Pascal Obry
2012-08-23  2:29                                                                                             ` Shark8
2012-08-22  7:32                                                                                         ` Dmitry A. Kazakov
2012-08-22 13:12                                                                                           ` Georg Bauhaus
2012-08-22 14:30                                                                                             ` Dmitry A. Kazakov
2012-08-22 16:48                                                                                               ` Georg Bauhaus
2012-08-22 17:44                                                                                                 ` Dmitry A. Kazakov
2012-08-22 19:59                                                                                                   ` Georg Bauhaus
2012-08-22 20:08                                                                                                     ` Dmitry A. Kazakov
2012-08-22 20:29                                                                                                       ` Georg Bauhaus
2012-08-23  7:06                                                                                                         ` Dmitry A. Kazakov
2012-08-23  8:08                                                                                                           ` Georg Bauhaus
2012-08-23  8:38                                                                                                             ` Dmitry A. Kazakov
2012-08-23  9:58                                                                                                               ` Georg Bauhaus
2012-08-23 10:27                                                                                                                 ` Dmitry A. Kazakov
2012-08-23 11:30                                                                                                                   ` Georg Bauhaus
2012-08-23 12:28                                                                                                                     ` Dmitry A. Kazakov
2012-08-23  0:12                                                                                                       ` Vasiliy Molostov
2012-08-24  4:40                                                                                                         ` Randy Brukardt
2012-08-24  7:37                                                                                                           ` Vasiliy Molostov
2012-08-24 10:03                                                                                                           ` Georg Bauhaus
2012-08-24 22:06                                                                                                             ` Randy Brukardt
2012-08-22 21:18                                                                                                   ` Georg Bauhaus
2012-08-23  7:23                                                                                                     ` Dmitry A. Kazakov
2012-08-23  8:56                                                                                                       ` Georg Bauhaus
2012-08-23 10:13                                                                                                         ` Dmitry A. Kazakov
2012-08-23 11:33                                                                                                           ` Georg Bauhaus
2012-08-23 12:45                                                                                                             ` Dmitry A. Kazakov
2012-08-23 13:31                                                                                                               ` Vasiliy Molostov
2012-08-23 17:42                                                                                                                 ` Georg Bauhaus
2012-08-23 17:41                                                                                                               ` Georg Bauhaus
2012-08-23 11:35                                                                                                           ` Georg Bauhaus
2012-08-23 11:39                                                                                                           ` Georg Bauhaus
2012-08-23 12:33                                                                                                             ` Dmitry A. Kazakov
2012-08-23 17:33                                                                                                               ` Georg Bauhaus
2012-08-24  4:48                                                                                                             ` Randy Brukardt
2012-08-24  9:56                                                                                                               ` Georg Bauhaus
2012-08-21 16:25                                                                                   ` Georg Bauhaus
2012-08-21 22:40                                             ` Randy Brukardt
2012-08-14 15:11                                 ` Georg Bauhaus
2012-08-14 20:30                                   ` Shark8
2012-08-15 11:47                                     ` Georg Bauhaus
2012-08-15 17:18                                       ` Shark8
2012-08-14 15:19                                 ` Vasiliy Molostov
2012-08-14 20:41                                   ` Shark8
2012-08-14 23:59                                     ` Vasiliy Molostov
2012-08-15  0:50                                       ` Shark8
2012-08-15  3:02                                         ` Vasiliy Molostov
2012-08-14 22:16                               ` Randy Brukardt
2012-08-14 23:55                                 ` Vasiliy Molostov
2012-08-15  6:35                                   ` Simon Wright
2012-08-21 22:31                                   ` Randy Brukardt
2012-08-22  0:15                                     ` Vasiliy Molostov
2012-08-22 22:08                                       ` Randy Brukardt
2012-08-23  0:00                                         ` Vasiliy Molostov
2012-08-23  7:02                                         ` Niklas Holsti
2012-08-24  4:37                                           ` Randy Brukardt
2012-08-13 12:03                         ` Project files (Was: Should Inline be private in the private part of a package spec?) Jacob Sparre Andersen
2012-08-13 22:12                           ` Randy Brukardt
2012-08-10  8:12                     ` Should Inline be private in the private part of a package spec? Georg Bauhaus
2012-08-06 23:09                 ` Vasiliy Molostov
2012-08-07  9:33                   ` Georg Bauhaus
2012-08-07 13:09                     ` Vasiliy Molostov
2012-08-07 13:41                       ` Georg Bauhaus
2012-08-07 14:06                         ` Vasiliy Molostov
2012-08-09 22:32                         ` Randy Brukardt
2012-08-07 13:45                     ` Vasiliy Molostov
2012-08-07 13:55                       ` Georg Bauhaus
2012-08-07 14:12                         ` Vasiliy Molostov
2012-08-09 21:56                     ` Randy Brukardt
2012-08-07  0:25                 ` Vasiliy Molostov
2012-08-07 10:01                 ` Simon Wright
2012-08-07 13:21                   ` Vasiliy Molostov
2012-08-07 17:28                     ` Simon Wright
2012-08-07 19:26                       ` Vasiliy Molostov
2012-08-07 13:34                   ` Vasiliy Molostov
2012-08-07 17:31                     ` Simon Wright
2012-08-07 13:48                   ` Georg Bauhaus
2012-08-07 17:47                     ` Simon Wright
2012-08-09 22:34                   ` Randy Brukardt
2012-08-10 14:26                     ` Simon Wright
2012-08-09 21:33                 ` Randy Brukardt
2012-08-09 22:18         ` Randy Brukardt
2012-08-09 22:29           ` Shark8
2012-08-10  0:12             ` Randy Brukardt
2012-08-12 21:35           ` Robert A Duff
2012-08-03 16:15 ` Dmitry A. Kazakov
replies disabled

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