comp.lang.ada
 help / color / mirror / Atom feed
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

      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