* Interesting and possible buggy behavior in GNAT regarding Annex E pragmas.
@ 2011-05-25 14:54 Shark8
2011-05-25 20:21 ` Ludovic Brenta
0 siblings, 1 reply; 5+ messages in thread
From: Shark8 @ 2011-05-25 14:54 UTC (permalink / raw)
Hi everyone.
I was experimenting with partitioning-pragmas trying to decide on a
good way to set up my PostScript interpreter so that the parser could
be a remote object possibly servicing multiple clients and I came
across a possible bug that is bothering me. In certain instances using
one of the pragmas will cause the compiler to error-out, as is
expected, but in other cases the compiler does not error out.
The only way I can see this happening is if, by WITH-ing these
children units, the parent units are LIMITED WITH-ed; but that is
counter-intuitive and does not allow for USES (which still compile) of
the parent unit.
I have reduced things to the minimal compilable example and the source
is as follows:
---------------------- Example_1
With Ada.Tags;
Package Example_1 is
-- Simple package spec which has a Stub function using the
Ada.Tags.Tag-type
-- in a parameter; compiles.
Procedure Stub( This_Tag : In Ada.Tags.Tag );
End Example_1;
---------------------- Example_2
With Ada.Tags;
Package Example_2 is
-- Simple package spec which has a Stub function using the
Ada.Tags.Tag-type
-- in a parameter and the Pragma Remote_Types has been added;
-- THIS DOES NOT COMPILE
-- example_2.ads:1:06: cannot depend on "Tags" (wrong
categorization)
Pragma Remote_Types;
Procedure Stub( This_Tag : In Ada.Tags.Tag );
End Example_2;
---------------------- Example_3
With Ada.Tags.Generic_Dispatching_Constructor;
--Use Ada.Tags; -- Uncomment this line and it STILL compiles...
Package Example_3 is
-- Simple package spec which has a Stub function using the
Ada.Tags.Tag-type
-- in a parameter and the Pragma Remote_Types has been added; but
the WITH
-- for that tipe is implicit in the WITH-ing of the Dispatching
Constructor.
-- THIS DOES NOT COMPILE
-- example_2.ads:1:06: cannot depend on "Tags" (wrong
categorization)
Pragma Remote_Types;
Procedure Stub( This_Tag : In Ada.Tags.Tag );
End Example_3;
---------------------- Example Bodies
With Ada.Text_IO;
Package Body Example_# is
-- Simple package body which has a Stub function using the
Ada.Tags.Tag-type
-- in a parameter; this is the same (excepting the name) for all
examples.
Procedure Stub( This_Tag : In Ada.Tags.Tag ) is
S : String:= Ada.Tags.External_Tag( This_Tag );
begin
Ada.Text_IO.Put_Line( S );
end Stub;
End Example_#;
---------------------- Experiment.adb
With
Ada.Text_IO,
Example_1, -- This compiles, there is nothing special about
it
-- Example_2, -- This does not compile, as expected, the
Categorization is wrong
Example_3 -- This *DOES* compile though...
;
with ada.Integer_Text_IO;
Procedure Experiment is
Use Ada.Text_IO;
Begin
Put_Line( "Terminating." );
End Experiment;
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Interesting and possible buggy behavior in GNAT regarding Annex E pragmas.
2011-05-25 14:54 Interesting and possible buggy behavior in GNAT regarding Annex E pragmas Shark8
@ 2011-05-25 20:21 ` Ludovic Brenta
2011-05-26 6:40 ` Michael R
2011-06-06 23:43 ` Shark8
0 siblings, 2 replies; 5+ messages in thread
From: Ludovic Brenta @ 2011-05-25 20:21 UTC (permalink / raw)
Shark8 writes on comp.lang.ada:
> Hi everyone.
> I was experimenting with partitioning-pragmas trying to decide on a
> good way to set up my PostScript interpreter so that the parser could
> be a remote object possibly servicing multiple clients and I came
> across a possible bug that is bothering me. In certain instances using
> one of the pragmas will cause the compiler to error-out, as is
> expected, but in other cases the compiler does not error out.
>
> The only way I can see this happening is if, by WITH-ing these
> children units, the parent units are LIMITED WITH-ed; but that is
> counter-intuitive and does not allow for USES (which still compile) of
> the parent unit.
>
> I have reduced things to the minimal compilable example and the source
> is as follows:
I've been able to reproduce this with gnat-4.4 (=4.4.6-1) on Debian
unstable. This looks like a genuine bug to me; please report it on
http://gcc.gnu.org/bugzilla/. What version of GNAT are you using?
--
Ludovic Brenta.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Interesting and possible buggy behavior in GNAT regarding Annex E pragmas.
2011-05-25 20:21 ` Ludovic Brenta
@ 2011-05-26 6:40 ` Michael R
2011-05-27 11:40 ` Stephen Leake
2011-06-06 23:43 ` Shark8
1 sibling, 1 reply; 5+ messages in thread
From: Michael R @ 2011-05-26 6:40 UTC (permalink / raw)
Hi,
I've noticed the same behaviour on Ubuntu 11.04 (recently upgraded from 10.10 where I was using the AdaCore distribution). For AUnit, I worked around it by replacing "gprbuild" with "gnat make" and "gprclean" with "gnat clean" in it's Makefile's.
Take care,
Michael.
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Interesting and possible buggy behavior in GNAT regarding Annex E pragmas.
2011-05-26 6:40 ` Michael R
@ 2011-05-27 11:40 ` Stephen Leake
0 siblings, 0 replies; 5+ messages in thread
From: Stephen Leake @ 2011-05-27 11:40 UTC (permalink / raw)
Michael R <michael@zanyblue.com> writes:
> I've noticed the same behaviour on Ubuntu 11.04 (recently upgraded
> from 10.10 where I was using the AdaCore distribution). For AUnit, I
> worked around it by replacing "gprbuild" with "gnat make" and
> "gprclean" with "gnat clean" in it's Makefile's.
As Ludovic pointed out, both AUnit and gprbuild are now Debian packages,
making installation even easier.
--
-- Stephe
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: Interesting and possible buggy behavior in GNAT regarding Annex E pragmas.
2011-05-25 20:21 ` Ludovic Brenta
2011-05-26 6:40 ` Michael R
@ 2011-06-06 23:43 ` Shark8
1 sibling, 0 replies; 5+ messages in thread
From: Shark8 @ 2011-06-06 23:43 UTC (permalink / raw)
On May 25, 3:21 pm, Ludovic Brenta <ludo...@ludovic-brenta.org> wrote:
> Shark8 writes on comp.lang.ada:
>
> > Hi everyone.
> > I was experimenting with partitioning-pragmas trying to decide on a
> > good way to set up my PostScript interpreter so that the parser could
> > be a remote object possibly servicing multiple clients and I came
> > across a possible bug that is bothering me. In certain instances using
> > one of the pragmas will cause the compiler to error-out, as is
> > expected, but in other cases the compiler does not error out.
>
> > The only way I can see this happening is if, by WITH-ing these
> > children units, the parent units are LIMITED WITH-ed; but that is
> > counter-intuitive and does not allow for USES (which still compile) of
> > the parent unit.
>
> > I have reduced things to the minimal compilable example and the source
> > is as follows:
>
> I've been able to reproduce this with gnat-4.4 (=4.4.6-1) on Debian
> unstable. This looks like a genuine bug to me; please report it onhttp://gcc.gnu.org/bugzilla/. What version of GNAT are you using?
>
> --
> Ludovic Brenta.
I'm using 4.4
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2011-06-06 23:43 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-05-25 14:54 Interesting and possible buggy behavior in GNAT regarding Annex E pragmas Shark8
2011-05-25 20:21 ` Ludovic Brenta
2011-05-26 6:40 ` Michael R
2011-05-27 11:40 ` Stephen Leake
2011-06-06 23:43 ` Shark8
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox