* Q: Profiles @ 2010-11-05 11:05 Georg Bauhaus 2010-11-05 11:37 ` Yannick Duchêne (Hibou57) ` (2 more replies) 0 siblings, 3 replies; 15+ messages in thread From: Georg Bauhaus @ 2010-11-05 11:05 UTC (permalink / raw) 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? ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 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-09 11:04 ` Matteo Bordin 2 siblings, 1 reply; 15+ messages in thread From: Yannick Duchêne (Hibou57) @ 2010-11-05 11:37 UTC (permalink / raw) Le Fri, 05 Nov 2010 12:05:42 +0100, Georg Bauhaus <rm-host.bauhaus@maps.futureapps.de> a écrit: > 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? What is the impact of using a system designed to run for ever for an application which is expected to run short or not very long ? Is there a bad significant consequence ? Are you talking from a user's point of view or from a designer's/provider's point of view ? -- Si les chats miaulent et font autant de vocalises bizarres, c’est pas pour les chiens. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-05 11:37 ` Yannick Duchêne (Hibou57) @ 2010-11-05 11:50 ` Georg Bauhaus 0 siblings, 0 replies; 15+ messages in thread From: Georg Bauhaus @ 2010-11-05 11:50 UTC (permalink / raw) On 11/5/10 12:37 PM, Yannick Duchêne (Hibou57) wrote: > Le Fri, 05 Nov 2010 12:05:42 +0100, Georg Bauhaus <rm-host.bauhaus@maps.futureapps.de> a écrit: > >> 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? > What is the impact of using a system designed to run for ever for an application which is expected to run short or not very long ? Part of the system (run-time system?) is that it is lean and efficient. Assume programs tat are designed to run for a few days. Their communication structure is easily expressed since the tasks communicate along very few lines. No fancy tasking things (Ravenscar is on). Basically, the tasks express independent sequences of statement whose results is to be coordinated every once in a while, and when they have finished. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-05 11:05 Q: Profiles Georg Bauhaus 2010-11-05 11:37 ` Yannick Duchêne (Hibou57) @ 2010-11-05 20:14 ` Vinzent Hoefler 2010-11-05 20:59 ` Georg Bauhaus 2010-11-09 11:04 ` Matteo Bordin 2 siblings, 1 reply; 15+ messages in thread From: Vinzent Hoefler @ 2010-11-05 20:14 UTC (permalink / raw) On Fri, 05 Nov 2010 12:05:42 +0100, Georg Bauhaus <rm-host.bauhaus@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. See ARM D13.1(3) f. Vinzent. -- There is no signature. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-05 20:14 ` Vinzent Hoefler @ 2010-11-05 20:59 ` Georg Bauhaus 2010-11-05 21:28 ` Vinzent Hoefler 0 siblings, 1 reply; 15+ messages in thread From: Georg Bauhaus @ 2010-11-05 20:59 UTC (permalink / raw) On 11/5/10 9:14 PM, Vinzent Hoefler wrote: > On Fri, 05 Nov 2010 12:05:42 +0100, Georg Bauhaus <rm-host.bauhaus@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. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-05 20:59 ` Georg Bauhaus @ 2010-11-05 21:28 ` Vinzent Hoefler 2010-11-05 23:11 ` Ed Falis 0 siblings, 1 reply; 15+ messages in thread From: Vinzent Hoefler @ 2010-11-05 21:28 UTC (permalink / raw) On Fri, 05 Nov 2010 21:59:00 +0100, Georg Bauhaus <rm-host.bauhaus@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.bauhaus@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. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-05 21:28 ` Vinzent Hoefler @ 2010-11-05 23:11 ` Ed Falis 2010-11-06 0:03 ` Georg Bauhaus 2010-11-06 3:27 ` Yannick Duchêne (Hibou57) 0 siblings, 2 replies; 15+ messages in thread From: Ed Falis @ 2010-11-05 23:11 UTC (permalink / raw) 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 ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-05 23:11 ` Ed Falis @ 2010-11-06 0:03 ` Georg Bauhaus 2010-11-06 3:27 ` Yannick Duchêne (Hibou57) 1 sibling, 0 replies; 15+ messages in thread From: Georg Bauhaus @ 2010-11-06 0:03 UTC (permalink / raw) On 11/6/10 12:11 AM, Ed Falis wrote: > The --RTS= switch for gnatmake or --config=,,,, switch to gprconfig is > your friend. Thanks for the pointers and a number of hints. Georg ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-05 23:11 ` Ed Falis 2010-11-06 0:03 ` Georg Bauhaus @ 2010-11-06 3:27 ` Yannick Duchêne (Hibou57) 2010-11-06 14:43 ` Ed Falis 1 sibling, 1 reply; 15+ messages in thread From: Yannick Duchêne (Hibou57) @ 2010-11-06 3:27 UTC (permalink / raw) Le Sat, 06 Nov 2010 00:11:37 +0100, Ed Falis <falis@verizon.net> a écrit: > The --RTS= switch for gnatmake or --config=,,,, switch to gprconfig is The --RTS=… option is really useful with GNAT-Pro, isn't it ? -- Si les chats miaulent et font autant de vocalises bizarres, c’est pas pour les chiens. “I am fluent in ASCII” [Warren 2010] ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-06 3:27 ` Yannick Duchêne (Hibou57) @ 2010-11-06 14:43 ` Ed Falis 2010-11-06 14:53 ` Ludovic Brenta 0 siblings, 1 reply; 15+ messages in thread From: Ed Falis @ 2010-11-06 14:43 UTC (permalink / raw) On Nov 5, 11:27 pm, Yannick Duchêne (Hibou57) <yannick_duch...@yahoo.fr> wrote: > Le Sat, 06 Nov 2010 00:11:37 +0100, Ed Falis <fa...@verizon.net> a écrit: > > > The --RTS= switch for gnatmake or --config=,,,, switch to gprconfig is > > The --RTS=… option is really useful with GNAT-Pro, isn't it ? Right, the GNAT Pro line is the may place supporting alternate run- time libraries of the various GNATs. - Ed ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-06 14:43 ` Ed Falis @ 2010-11-06 14:53 ` Ludovic Brenta 2010-11-06 18:51 ` Ed Falis 0 siblings, 1 reply; 15+ messages in thread From: Ludovic Brenta @ 2010-11-06 14:53 UTC (permalink / raw) Ed Falis writes on comp.lang.ada: > On Nov 5, 11:27 pm, Yannick Duchêne (Hibou57) > <yannick_duch...@yahoo.fr> wrote: >> Le Sat, 06 Nov 2010 00:11:37 +0100, Ed Falis <fa...@verizon.net> a écrit: >> >> > The --RTS= switch for gnatmake or --config=,,,, switch to gprconfig is >> >> The --RTS=… option is really useful with GNAT-Pro, isn't it ? > > Right, the GNAT Pro line is the may place supporting alternate run- > time libraries of the various GNATs. No, the gnat-4.4 in Debian also supports both SJLJ and ZCX runtimes :) -- Ludovic Brenta. ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-06 14:53 ` Ludovic Brenta @ 2010-11-06 18:51 ` Ed Falis 0 siblings, 0 replies; 15+ messages in thread From: Ed Falis @ 2010-11-06 18:51 UTC (permalink / raw) On Nov 6, 10:53 am, Ludovic Brenta <ludo...@ludovic-brenta.org> wrote: > Ed Falis writes on comp.lang.ada: > > Right, the GNAT Pro line is the may place supporting alternate run- > > time libraries of the various GNATs. > > No, the gnat-4.4 in Debian also supports both SJLJ and ZCX runtimes :) > > -- > Ludovic Brenta. Yes, and "it is good". ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-05 11:05 Q: Profiles Georg Bauhaus 2010-11-05 11:37 ` Yannick Duchêne (Hibou57) 2010-11-05 20:14 ` Vinzent Hoefler @ 2010-11-09 11:04 ` Matteo Bordin 2010-11-09 11:40 ` Georg Bauhaus 2 siblings, 1 reply; 15+ messages in thread From: Matteo Bordin @ 2010-11-09 11:04 UTC (permalink / raw) On Nov 5, 12:05 pm, 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? Why don't you just let your task suspend forever on an entry whose barrier is never opened? ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-09 11:04 ` Matteo Bordin @ 2010-11-09 11:40 ` Georg Bauhaus 2010-11-09 13:09 ` Matteo Bordin 0 siblings, 1 reply; 15+ messages in thread From: Georg Bauhaus @ 2010-11-09 11:40 UTC (permalink / raw) On 09.11.10 12:04, Matteo Bordin wrote: >> What if I just want the lean and efficient Ravenscar run-time >> but do want my tasks to terminate? > > Why don't you just let your task suspend forever on an entry whose > barrier is never opened? The program is supposed to terminate (and I cannot change that setup). Did I understand correctly? Would there be a difference if the line Never.Enter_Castle were commented out? pragma Profile (Ravenscar); package Demo is pragma Elaborate_Body(Demo); task Ending; end Demo; package body Demo is protected Never is entry Enter_Castle; end Never; protected body Never is entry Enter_Castle when False is begin null; end Enter_Castle; end Never; task body Ending is begin -- ... Never.Enter_Castle; end Ending; begin null; end Demo; ^ permalink raw reply [flat|nested] 15+ messages in thread
* Re: Q: Profiles 2010-11-09 11:40 ` Georg Bauhaus @ 2010-11-09 13:09 ` Matteo Bordin 0 siblings, 0 replies; 15+ messages in thread From: Matteo Bordin @ 2010-11-09 13:09 UTC (permalink / raw) On Nov 9, 12:40 pm, Georg Bauhaus <rm.dash-bauh...@futureapps.de> wrote: > On 09.11.10 12:04, Matteo Bordin wrote: > > >> What if I just want the lean and efficient Ravenscar run-time > >> but do want my tasks to terminate? > > > Why don't you just let your task suspend forever on an entry whose > > barrier is never opened? > > The program is supposed to terminate (and I cannot change > that setup). I thought you needed some kind of dynamic reconfiguration of your tasks set. ^ permalink raw reply [flat|nested] 15+ messages in thread
end of thread, other threads:[~2010-11-09 13:09 UTC | newest] Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 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 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
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox