comp.lang.ada
 help / color / mirror / Atom feed
From: Ed Falis <falis@verizon.net>
Subject: Re: Q: Profiles
Date: Fri, 5 Nov 2010 16:11:37 -0700 (PDT)
Date: 2010-11-05T16:11:37-07:00	[thread overview]
Message-ID: <35bf03b0-b251-4e14-b0cb-d8cec31b7380@35g2000prt.googlegroups.com> (raw)
In-Reply-To: op.vlpu99t60k3wt7@jellix.jlfencey.com

On Nov 5, 5:28 pm, "Vinzent Hoefler" <nntp-2010...@t-
domaingrabbing.de> wrote:
> On Fri, 05 Nov 2010 21:59:00 +0100, Georg Bauhaus <rm-host.bauh...@maps.futureapps.de> wrote:
> > On 11/5/10 9:14 PM, Vinzent Hoefler wrote:
> >> On Fri, 05 Nov 2010 12:05:42 +0100, Georg Bauhaus <rm-host.bauh...@maps.futureapps.de> wrote:
>
> >>> The Ravenscar profile (and the Restricted profile in GNAT)
> >>> assume we want our tasks to run forever. Programs will be
> >>> supported by a lean and efficient run-time.
>
> >>> What if I just want the lean and efficient Ravenscar run-time
> >>> but do want my tasks to terminate?
>
> >> I'd suggest to use the appropriate list of Restriction pragmas then.
>
> > I think I need to place a pragma Profile (Ravenscar)
> > or (Restricted) (in the case of GNAT) to make the compiler pick
> > the desired run-time.  But then tasks won't terminate.
>
> If you can stick to GNAT only, this isn't true. "No_Task_Termination" is an additional
> restriction for the Ravenscar profile which isn't in the original set. See GNAT RM:
>
> |The above set is a superset of the restrictions provided by pragma Profile (Restricted),
> |it includes six additional restrictions (Simple_Barriers, No_Select_Statements,
> |No_Calendar, No_Implicit_Heap_Allocations, No_Relative_Delay and No_Task_Termination).
>                                                                ^^^^^^^^^^^^^^^^^^^^^^^
> |This means that pragma Profile (Ravenscar), like the pragma Profile (Restricted),
> |automatically causes the use of a simplified, more efficient version of the tasking
> |run-time system.
>
> Maybe I am wrong, but I would expect the binder to use the "simplified, more efficient
> version" as soon as the proper set of restrictions is met, no matter if they are given
> in a "pragma Profile (...)" or as an explicit list of "pragma Restrictions (...)".
>
> And BTW, the "tasks won't terminate" is probably not true in its literal sense, it's
> just erroneous behaviour if they do in a Ravenscar profile restricted program. ;)
>
> Vinzent.
>
> --
> There is no signature.

The --RTS= switch for gnatmake or --config=,,,, switch to gprconfig is
your friend.  You generally would need to designate the run-time
library through one of these mechanisms.  pragma Profile (Ravenscar)
will remove some overhead, but not as much as the former in versions
of GNAT that support the specialized libraries.

As far as termination goes, it's erroneous as you stated, but there
are a variety of unusual ways to terminate tasks, typically being
system calls.

- Ed



  reply	other threads:[~2010-11-05 23:11 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-05 11:05 Q: Profiles Georg Bauhaus
2010-11-05 11:37 ` Yannick Duchêne (Hibou57)
2010-11-05 11:50   ` Georg Bauhaus
2010-11-05 20:14 ` Vinzent Hoefler
2010-11-05 20:59   ` Georg Bauhaus
2010-11-05 21:28     ` Vinzent Hoefler
2010-11-05 23:11       ` Ed Falis [this message]
2010-11-06  0:03         ` Georg Bauhaus
2010-11-06  3:27         ` Yannick Duchêne (Hibou57)
2010-11-06 14:43           ` Ed Falis
2010-11-06 14:53             ` Ludovic Brenta
2010-11-06 18:51               ` Ed Falis
2010-11-09 11:04 ` Matteo Bordin
2010-11-09 11:40   ` Georg Bauhaus
2010-11-09 13:09     ` Matteo Bordin
replies disabled

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