comp.lang.ada
 help / color / mirror / Atom feed
From: Jeffrey Carter <jrcarter@acm.org>
Subject: Re: Placement of pragma Import
Date: Sun, 08 Dec 2002 18:44:54 GMT
Date: 2002-12-08T18:44:54+00:00	[thread overview]
Message-ID: <3DF39358.1020903@acm.org> (raw)
In-Reply-To: mailman.1039342442.1805.comp.lang.ada@ada.eu.org

Michal Nowak wrote:
> Hello all,
> 
> I have a little question coming out of curiosity.
> 
> I have an assembly routine (in fact it may be a C code,
> or something other, it does not matter).
> I'm importing this subroutine in a package. It is possible
> to place pragma Import in two (maybe more?) places:
> 
> -- Possibility 1:
> 
> package Import_Test is
>    
>    procedure Asm_Coded;
> 
>    pragma Import (Assembler, Asm_Coded, "donothing");   
>    pragma Linker_Options ("nothing_asm.s");      
>    
> end Import_Test;
> 
> -- Possibility 2:
> package Import_Test is
>    
>    procedure Asm_Coded;
> 
> private   -- Imported in private section
> 
>    pragma Import (Assembler, Asm_Coded, "donothing");
>    pragma Linker_Options ("nothing_asm.s");      
>    
> end Import_Test;
> 

As far as I can see, it makes absolutely no difference. Things in the 
private part are not visible to clients in the Ada sense, but clients 
cannot refer to the pragmata even if they are visible. The human reader 
can see the private part, so putting them there does not hide them in 
any way.

If you could put them in the body, that would hide them from the human 
reader, who should only have to refer to the spec to learn what the 
package does and how to use it. But you can't do that, so it seems to 
make no difference at all.

Perhaps putting them in the private part will signal to human readers 
that the information is not needed to understand the package. That is 
the only reason I can see to prefer one over the other.

-- 
Jeff Carter
"Death awaits you all, with nasty, big, pointy teeth!"
Monty Python & the Holy Grail




  parent reply	other threads:[~2002-12-08 18:44 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-12-08 10:23 Placement of pragma Import Michal Nowak
2002-12-08 12:26 ` Simon Wright
2002-12-08 15:08   ` Michal Nowak
2002-12-08 18:46     ` Jeffrey Carter
2002-12-08 19:46       ` Dennis Lee Bieber
2002-12-08 21:08         ` James S. Rogers
2002-12-09  1:21         ` Jeffrey Carter
2002-12-09  4:47           ` Dennis Lee Bieber
2002-12-09 21:56         ` Michal Nowak
2002-12-08 22:40       ` Martin Dowie
2002-12-09  1:42         ` Jeffrey Carter
2002-12-09  7:00           ` Martin Dowie
2002-12-10  2:04           ` Randy Brukardt
2002-12-09 21:55       ` Michal Nowak
2002-12-10  1:32         ` Jeffrey Carter
2002-12-09 14:34     ` Wes Groleau
2002-12-09 21:56       ` Michal Nowak
2002-12-08 18:44 ` Jeffrey Carter [this message]
2002-12-09 21:55   ` Michal Nowak
     [not found] <200212081123160930.0047D332@smtp-po.inetia.pl>
2002-12-08 11:12 ` David C. Hoos, Sr.
2002-12-08 18:49   ` tmoran
     [not found] ` <053001c29eaa$ad9b72f0$6500000a@dhoos>
2002-12-08 15:07   ` Michal Nowak
replies disabled

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