From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.5-pre1 (2020-06-20) on ip-172-31-74-118.ec2.internal X-Spam-Level: X-Spam-Status: No, score=-1.9 required=3.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.5-pre1 Path: eternal-september.org!reader02.eternal-september.org!gandalf.srv.welterde.de!news.jacob-sparre.dk!franka.jacob-sparre.dk!pnx.dk!.POSTED.rrsoftware.com!not-for-mail From: "Randy Brukardt" Newsgroups: comp.lang.ada Subject: Re: Specify priority of main program Date: Tue, 26 Jan 2021 20:52:50 -0600 Organization: JSA Research & Innovation Message-ID: References: Injection-Date: Wed, 27 Jan 2021 02:52:51 -0000 (UTC) Injection-Info: franka.jacob-sparre.dk; posting-host="rrsoftware.com:24.196.82.226"; logging-data="27615"; mail-complaints-to="news@jacob-sparre.dk" X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2900.5931 X-RFC2646: Format=Flowed; Original X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.7246 Xref: reader02.eternal-september.org comp.lang.ada:61216 List-Id: "Simon Wright" wrote in message news:lya6szl448.fsf@pushface.org... > Simon Wright writes: > >> GNAT allows you to specify the main program's priority (actually, I >> suspect it'd allow it on any parameterless library-level procedure, but >> only the one actually used as main will count); >> >> procedure Main with Priority => 6 is >> >> This is handy for embedded code where you don't want to waste the >> environment task's stack space but need to run that code at a >> non-default priority. >> >> However, I can't see this use in the ARM; is it an extension? > > Found it now: ARM D.1(18). I believe that CPU also can be specified for a subprogram in this way. > This isn't mentioned in Annex J, Language Defined Aspects: (46), > > "Priority of a task object or type, or priority of a protected object > or type; the priority is not in the interrupt range. See D.1." These were intended to be super-short descriptions of the aspect; this one seems too long already. They're not trying to describe how the aspect is specified, just what it is. And it *is* true, since a subprogram aspect Priority is setting the priority of the environment task object. >> If it's not a GNAT extension, what would the ARG view be likely to be >> for similar permission for Storage_Size (and Secondary_Stack_Size, but >> that is definitely a GNAT extension)? > > But this still stands. I don't think the definition of Storage_Size would work out-of-the-box for a subprogram, since there wouldn't be an obvious place for it to get evaluated. So there's more work here than just slapping "for a subprogram" on the header. (Priority has to be static for a subprogram, and there is an additional rule explaining where it applies.) But I don't see any other reason that Storage_Size shouldn't be allowed for a main subprogram. Probably it would take someone asking... :-) Randy.