comp.lang.ada
 help / color / mirror / Atom feed
From: Mats Karlssohn <mats@mida.se>
Subject: Re: Compile time executed functions
Date: Thu, 05 Apr 2001 09:06:45 +0200
Date: 2001-04-05T07:07:00+00:00	[thread overview]
Message-ID: <3ACC1985.7CB6D9E8@mida.se> (raw)
In-Reply-To: wcczoe2k25p.fsf@world.std.com

Robert A Duff wrote:
> 
> Mats Karlssohn <mats@mida.se> writes:
> 
> > Maybe you could see my proposed pragma as a representation pragma
> > for code then ?
> 
> OK, but only as a hint.  Rep pragmas or clauses for data can be tested,
> because you can Unchecked_Convert the data, and see if it's represented
> the way you asked.  But how do you test a rep pragma for code?  For
> example, how can you write an Ada program that behaves differently
> depending on whether pragma Inline was obeyed?  No fair looking at the
> generated code.

How to check it... there should't be more than initialize data left
at the place the function was called and since the function is not
(at least in my case) called from anywhee else the body shoule _not_
be included in the output. When writing the previous sentence I
really felt thah my english isn't what it needs to be to discuss
really complicated matters, so maybe I didn't understand your point ? 

As for the test for inlined code... hmmm, I guess it'd be kind of
hard.

> > This leads me to another thing that I've sometimes have found annoy�ng:
> > Why isn't it required by the language that there should be a n option
> > to force the compiler to tell you wich pragma;s it cant obey ?
> > I just hate auditing machine code just to check that the compiler
> > hasn't generated silly code. Although I must admit that this stuff has
> > only occured a few times during the past 7 years.
> 
> But how would you know if *that* option were obeyed?  Suppose the
> compiler says "yes, I inlined your function", how do you know if it's
> lying?  You still have to inspect the generated code.

Well, until proven otherwise I trust the compiler vendor (a trust
that have proven false quite often), so if such an option was
availible I'd trust it (on my own projects, clients may have other
ideas) until I suspect that it lies, then som investigation is
needed.

> In practise, though, compilers do give this kind of information.
> Eg, the documentation will normally tell you "we obey pragma Inline in
> the following circumstances...".

Yes, aside from it beeing inconvenient to have to look for such
things in the documentation, I have found that the documentation
is often buried in some archive somwhere or just missing :(


-- 
Mats Karlssohn, developer                         mailto:mats@mida.se  
Mida Systemutveckling AB                          http://www.mida.se
Box 64, S-732 22 ARBOGA, SWEDEN
Phone: +46-(0)589-89808   Fax: +46-(0)589-89809



  reply	other threads:[~2001-04-05  7:06 UTC|newest]

Thread overview: 86+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-03-27  7:10 Compile time executed functions Mats Karlssohn
2001-03-27 13:30 ` Ken Garlington
2001-03-28  7:08   ` Mats Karlssohn
2001-03-28 19:07     ` Phaedrus
2001-03-29  7:41       ` Mats Karlssohn
2001-03-29  5:02     ` Ken Garlington
2001-03-29  7:58       ` Mats Karlssohn
2001-03-29 14:28         ` Ken Garlington
2001-03-29 14:48           ` Ted Dennison
2001-04-04  7:52             ` Mats Karlssohn
2001-04-04 14:05               ` Ted Dennison
2001-04-05  6:30                 ` Mats Karlssohn
2001-03-29 19:48           ` Simon Wright
2001-03-31 19:30             ` Ken Garlington
2001-04-04  7:53             ` Mats Karlssohn
2001-03-30 10:41           ` Jean-Marc Bourguet
2001-03-30 16:13             ` Ken Garlington
2001-03-30 16:47               ` Jean-Marc Bourguet
2001-03-30 18:54                 ` Stephen Leake
2001-04-01  8:42                   ` Jean-Marc Bourguet
2001-03-31 19:30                 ` Ken Garlington
2001-04-01  8:59                   ` Jean-Marc Bourguet
2001-04-01 18:22                     ` Ken Garlington
2001-04-02  9:30                       ` Jean-Marc Bourguet
2001-04-02 12:42                         ` Robert A Duff
2001-04-02 14:16                           ` Jean-Marc Bourguet
2001-04-03  0:33                           ` Pat Rogers
2001-04-02 13:09                         ` Ken Garlington
2001-04-02 13:40                           ` Robert A Duff
2001-04-02 23:29                             ` Ken Garlington
2001-04-13 23:11                               ` Robert A Duff
2001-04-02 14:32                           ` Jean-Marc Bourguet
2001-04-04  7:59             ` Mats Karlssohn
2001-04-04  7:47           ` Mats Karlssohn
2001-04-06  0:33             ` Ken Garlington
2001-04-09 12:21               ` Mats Karlssohn
2001-04-13 15:51                 ` Tucker Taft
2001-03-27 14:39 ` Ted Dennison
2001-03-27 16:40   ` Mark Biggar
2001-03-27 18:14   ` Florian Weimer
2001-03-27 18:15   ` Florian Weimer
2001-03-27 18:57     ` Ted Dennison
2001-03-27 19:22       ` Florian Weimer
2001-03-27 20:23         ` Ted Dennison
2001-03-27 22:15           ` Florian Weimer
2001-03-27 23:30             ` Georg Bauhaus
2001-03-28  9:54               ` Florian Weimer
2001-03-28 15:20             ` Ted Dennison
2001-03-28 16:12               ` David C. Hoos, Sr.
2001-03-28 21:15               ` Robert A Duff
2001-03-28 21:56                 ` Brian Rogoff
2001-03-29  8:18                 ` Mats Karlssohn
2001-03-29  8:11               ` Mats Karlssohn
2001-03-29 14:37                 ` Ted Dennison
2001-03-29 16:35                   ` Mark Biggar
2001-03-29 19:27                     ` Florian Weimer
2001-03-29 19:28                     ` Florian Weimer
2001-03-30  3:41                       ` Ken Garlington
2001-03-30  4:32                         ` Brian Rogoff
2001-03-30 14:27                           ` Compile time executed functions [OT] Karel Thönissen
2001-03-30 17:30                             ` Scheveningen (Re: Compile time executed functions [OT]) Ray Blaak
2001-03-30 17:39                             ` More {OT] (Was " Brian Rogoff
2001-03-30 23:39                               ` Karel Thönissen
2001-03-30 17:47                         ` Compile time executed functions Brian Hanson
2001-03-30  0:06                     ` Robert A Duff
2001-03-30 15:02                       ` Ted Dennison
2001-03-30 20:57                         ` Robert A Duff
2001-04-02 14:26                           ` Ted Dennison
2001-03-30 17:33                       ` Ray Blaak
2001-03-29  8:25               ` Florian Weimer
2001-03-28  7:17   ` Mats Karlssohn
2001-03-29  1:35   ` Jon S Anthony
2001-03-27 14:39 ` Robert A Duff
2001-03-27 15:09   ` Ted Dennison
2001-03-27 16:33     ` Robert A Duff
2001-03-27 23:36     ` Ken Garlington
2001-03-28 20:47     ` Mark Lundquist
2001-03-28  7:29   ` Mats Karlssohn
2001-03-28 22:15     ` Robert A Duff
2001-03-29  8:43       ` Mats Karlssohn
2001-03-31  4:12         ` Robert A Duff
2001-04-05  7:06           ` Mats Karlssohn [this message]
2001-04-13 23:18             ` Robert A Duff
2001-03-29  5:02     ` Ken Garlington
2001-03-28  7:31 ` Mats Karlssohn
2001-03-30  8:57 ` Georg Bauhaus
replies disabled

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