From: dale@cs.rmit.edu.au (Dale Stanbrough)
Subject: Re: Preprocessing Ada
Date: 1999/05/26
Date: 1999-05-26T02:38:56+00:00 [thread overview]
Message-ID: <dale-2605991238560001@dale.bu.cs.rmit.edu.au> (raw)
In-Reply-To: 374B3689.33FF57B4@aasaa.ofe.org
David Starner wrote:
" I'm writing a library in Ada and I've hit a couple things where I would
use #ifdef's in C. I would like to offer alternate algorithims for the
same function that can be chosen at compile time."
Use different packages and use package renames...
package Fast_Algorithms is...
package Small_Alogrithms is...
package Chosen_Package renames Fast_Algorithms;
Alternatively get your sccs to select the appropriate package, and have
two different versions of the same named package.
I would also like to
> add an expensive verification call to the front of each function that
> can be turned on and off at compile time (expensive enough that I want
> it to be seperate from Pragma Assert.)
package Verification_Control is
Do_Verification : constant Boolean := true; -- or false!
procedure Verify (Item : boolean; Message : String);
pragma Inline (Verify);
end;
package body...
procedure Verify (...) is
begin
if Do_Verification then...
end;
end;
Even a 1/2 sensible compiler should be able to eliminate calls to the
routine, I would guess that they can completely eliminate this routine.
> 2. Will cpp (the C pre-processor) work cleanly with Ada?
no, it gets caught on attributes (the single ') i believe.
" 3. Is there a DFSG-free preprocessor for Ada? (I hate to go this way,
because that means that everyone who compiles the program needs a
special preprocessor.)"
ACT supply a preprocessor that works with Ada. See the documentation
for details.
Dale
next prev parent reply other threads:[~1999-05-26 0:00 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-05-25 0:00 Preprocessing Ada David Starner
1999-05-25 0:00 ` David Botton
1999-05-26 0:00 ` fraser
1999-05-26 0:00 ` Dale Stanbrough [this message]
1999-05-26 0:00 ` Marin David Condic
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox