comp.lang.ada
 help / color / mirror / Atom feed
From: guillaume.portail@grospied.enanglais.com
Subject: Re: Conditional compilation of debug traces without cpp
Date: Thu, 06 Jul 2006 22:25:10 +0200
Date: 2006-07-06T22:25:00+02:00	[thread overview]
Message-ID: <44ad719c$0$5389$626a54ce@news.free.fr> (raw)
In-Reply-To: <4ufi8e.ig7.ln@hunter.axlog.fr>

Jean-Pierre Rosen wrote:

> Therefore yes, the *execution*  of the call will always involve the 
> *evaluation* of the parameters (unless the compiler can prove that this 
> evaluation has no side-effects - like a call to a function declared in a 
> pure package).

Ah yes, I just read LRM95-10.2.1(18), it seems to be what I want (I 
forgot this point). But Pure is applicable only to library units. And I 
need to apply it to functions of packages :

package Data is
   type T is private
   procedure ...
private
   type T is ...
end;

package Data.Image
   subtype T_String is String(...);
   function "+" (R : T) return T_String;
   ...
end;


- Data.Image."+" has really no side effect, but it cannot be declared 
Pure. Why ? The legality of such a pragma seems statically computable 
(the body of "+" should not access 'global' variables, etc).
- "+" is located in its own package, where UI resources are grouped, as 
to facilitate their potential elimination/counting (all are named 
*.*...*.Image).

--
Thierry Bernier




  reply	other threads:[~2006-07-06 20:25 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-07-04 18:06 Conditional compilation of debug traces without cpp guillaume.portail
2006-07-04 19:07 ` Ludovic Brenta
2006-07-04 19:14   ` guillaume.portail
2006-07-04 21:39     ` Björn Persson
2006-07-04 21:43       ` guillaume.portail
2006-07-04 22:01         ` Björn Persson
2006-07-05  3:10     ` Matthew Goulet
2006-07-04 20:24 ` Gautier
2006-07-04 20:54 ` Simon Wright
2006-07-05 13:03 ` Jean-Pierre Rosen
2006-07-05 19:39   ` guillaume.portail
2006-07-06  5:53     ` Martin Krischik
2006-07-07 10:32       ` Stephen Leake
2006-07-07 14:08         ` M E Leypold
2006-07-06  7:59     ` Jean-Pierre Rosen
2006-07-06 20:25       ` guillaume.portail [this message]
2006-07-07  5:00         ` Matthew Goulet
2006-07-07 13:57           ` Thierry Bernier
2006-07-07 21:08           ` Randy Brukardt
replies disabled

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