From: volkert.barr@googlemail.com
Subject: Re: ANN: Paraffin 4.2, Parallelism Generics
Date: Fri, 7 Jun 2013 02:19:28 -0700 (PDT)
Date: 2013-06-07T02:19:28-07:00 [thread overview]
Message-ID: <ed8e6470-092b-412f-8dd6-dba6f6970176@googlegroups.com> (raw)
In-Reply-To: <E91st.572$ql.194@newsfe23.iad>
Brad, thank you for the explanation. It compiles fine now ...
BW,
Volkert
> Yes, I suspect you have just downloaded the new GNAT 2013, as I have.
>
>
>
> I am seeing the same issue. The 2012 GNAT did not complain and compiled
>
> the code, but the code actually should not have compiled. The 2013 GNAT
>
> is detecting the problem.
>
>
>
> The problem is because the package spec, parallel.ads has the
>
> Remote_Types pragma, but it also with's the package
>
> System.Multiprocessors, which is not a Remote_Types, Shared_Passive, or
>
> Pure package. A Remote_Types package spec can only depend on one of the
>
> above types of package specs.
>
>
>
> To fix the problem, delete (or comment out) the Remote Types pragma in
>
> parallel.ads.
>
>
>
> Your code should then compile.
>
>
>
> I was a bit mystified when I first saw the error message.
>
>
>
> I then remembered an AI
>
> http://www.ada-auth.org/cgi-bin/cvsweb.cgi/ai05s/ai05-0206-1.txt?rev=1.6
>
>
>
> Which was one I was particularly involved with, where the rules were
>
> relaxed so that a Remote_Types package spec could depend on a
>
> preelaborated packages so long as the with clause that mentions the
>
> preelaborated package is a private with clause.
>
>
>
> The error message is suggesting that the with for System.Multiprocessors
>
> should be changed to be a private with, but that
>
> wouldn't work, because the public part of parallel.ads uses declarations
>
> from System.Multiprocessors.
>
>
>
> Hopefully Adacore will improve the error message for GNAT 2014, but it
>
> is reporting an actual error in the code. It is not a compiler bug.
>
> Ideally the error message would mention that the Remote_Types pragma is
>
> triggering the error.
>
>
>
> I also found another set of problems in the code. The 2013 compiler is
>
> now checking that the aliased keyword must be present on parameters of
>
> overriding subprograms if it was specified on a parameter of the
>
> interface. It wasn't doing that in 2012.
>
>
>
> I have checked in the changes onto sourceforge, which you can retrieve
>
> using git, but I have not yet created a new bugfix release, which I will
>
> do as soon as I get a chance.
>
>
>
> Thanks for reporting the error.
>
>
>
> Brad
prev parent reply other threads:[~2013-06-07 9:19 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-05-05 17:18 ANN: Paraffin 4.2, Parallelism Generics Brad Moore
2013-06-05 15:39 ` volkert.barr
2013-06-06 14:38 ` Brad Moore
2013-06-07 9:19 ` volkert.barr [this message]
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox