comp.lang.ada
 help / color / mirror / Atom feed
From: Georg Bauhaus <rm.dash-bauhaus@futureapps.de>
Subject: Re: Should Inline be private in the private part of a package spec?
Date: Mon, 06 Aug 2012 23:52:34 +0200
Date: 2012-08-06T23:52:34+02:00	[thread overview]
Message-ID: <50203ca2$0$9512$9b4e6d93@newsspool1.arcor-online.net> (raw)
In-Reply-To: <op.wim0pbprka8ora@aspire.local>

On 06.08.12 23:01, Vasiliy Molostov wrote:
> Georg Bauhaus <rm.dash-bauhaus@futureapps.de> писал(а) в своём письме Mon, 06 Aug 2012 21:58:25 +0400:
>
>> On 06.08.12 17:50, Vasiliy Molostov wrote:
>>> Robert A Duff <bobduff@shell01.theworld.com> писал(а) в своём письме Mon, 06
>>> Aug 2012 18:33:42 +0400:
>>>
>>>> "Randy Brukardt" <randy@rrsoftware.com> writes:
>>>>
>
>>> So indeed 'inlining' belongs to subprogram specification in the same way as
>>> calling convention.
>>
>> Inlining and convention are aspects typically related to translation,
>> aspects that would not normally affect the resulting
>> executable program except in the way that, say,
>> optimization switches do.
>
> They will affect already compiled modules.

That's not relevant to specifying subprograms in public parts
of a package spec. A subprogram spec is about how to write
correct calls of the public subprogram.

> As you might know Ada aimed to minimize recompilations.

Quality of implementation issue. I think Bob Duff has also explained
a few times that incremental compilation might would be a better
choice if minimizing recompilations is a goal.

> Why you have decided that calling convention is an optinization?

What the program does is not a matter of whether or not
some subprogram needs calling convention Ada or StdCall or
some such. Hence, from the perspective of the caller,
knowing the calling convention of an import is distraction
at best.

>> Optimization switches are not usually
>> part of subprogram's public specifications either.
>
> Why (convention) is not a part? What is usually?

I'd expect aspects to let me know what a subprogram does
if I call it with suitable parameters. Aspects of how that
is going to be done in terms of processor instructions
are of no concern at this point.

> Yesterday I wrote some code and it has specs along with inline, just after subprogram spec.
> Today you said that it is not usual. Not usual for whom?

The focus is on the public part of a package spec, to be read by
other programmers. Information hiding might ask for compiler
hints and the like to be put somewhere they do not clutter
the text that conveys meaning, that is, explains what a
subprogram does, and how to call it. Inline can well be hidden
here. Note that if Inline is in the private part of a package
spec, the compiler can still see it when compiling the spec
separately.

The possible inline status of a subprogram compiled by a certain
compiler controlled by a certain set of switches does not add to
the knowledge of how to write calls of the subprogram properly.


>> So why
>> should inline need to be in the public view of a subprogram's spec?
>
> Because it is a part of the specification. both of them convention and inline are
> not optimisation, but code representation.

Inline gives the compiler permission to inline a subprogram,
but it does not specify anything that a programmer needs to
know in order to call the subprogram.   The calls he or she writes
will be invariably the same, no matter what the inline status
will have turned into in some executable program.


> My choice is to see this as a part of specification. Much convenient.

Writers' convenience usually is a sign of less than co-operative
software design, pardon the expression. The focus is on readers'
convenience.


>> When you c&p a subprogram's spec, when is that?
>
> When I use UML generator and wish to output subprogram specification and its properties
> (e.g. inlining or convention) be printed in one pass (line, stanza, sentence).

When modelling, pragmatic hints seem all the more irrelevant.
When a UML tool starts to dictate how package specifications
should be made, I start to worry a little.


>> Why should
>> aspects like Inline or Convention be part of the copy,
>> which is not to be the original for a reason?
>
> What is an original? Its unclear.
>
> The way that usual works fine is to add brick or remove it. Since the brick is atomic element.
>
> You are asking about how to get two bricks instead of one - a common brick and a small which is a supplement to the first one, being placed somewhere else in a private part.
> And operations you offer are - add one, and then add its extent, searching appropriate place. And otherwise - remove common, and then searching its extent somewhere else.
>
> What is the profit? It costs to much but I do not see any profit.

When I pay a programmer of a package to write a package
that I can use, I couldn't care less about whether he or she
finds it profitable or convenient to have all aspects/pragmata
in one place. I want to be able to read the spec, learn about
how to call the subprograms, and be done.

When I write just the specification and the body should be
written by someone else, then it seems rather premature
to write Inline aspects and request that they be considered
just as much specification as the parameter types or expressions
from predicate calculus stating relations between them.
OTOH, if the writers of the body decide that one of the
subprograms might be expanded inline, they can add a pragma
(or brick, as you say) as needed *without* changing the
specification of this subprogram.




> A good way is to use Inline as a configuration pragma,

Since Inline applies to program units, that won't work.
Moreover, pragma inline, if used heavily, can be counterproductive,
for example, if it makes register allocation be at odds with
the compiler's other ideas. For example, sometimes GCC's vectorizer
seems to require that a function *not* be inlined, in order to
increase overall speed of execution.

The library's developers can only disable inlining if they
removes pragma Inline / aspects, or if the tool chain can be
incapacitated in other ways.




  reply	other threads:[~2012-08-13  9:05 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
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 [this message]
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