comp.lang.ada
 help / color / mirror / Atom feed
From: Simon Wright <simon@pushface.org>
Subject: How to tell whether program finalization can be suppressed
Date: Fri, 01 Dec 2017 21:39:21 +0000
Date: 2017-12-01T21:39:21+00:00	[thread overview]
Message-ID: <lyzi729lh2.fsf@pushface.org> (raw)

In Cortex GNAT RTS[1] (a Ravenscar RTS), I've wanted to support
finalization (at present, I have the possibly GNAT-specific
restriction No_Finalization).

Unfortunately, as reported in PR66205[2], without No_Finalization and
in the presence of other RTS-limiting features, gnatbind generates
binding code which won't compile.

I need to find a way of determining whether the RTS actually needs
program-level finalization (that is, finalization called on program
exit), because that's where the bad code is generated.

Clearly, if the program never exits, there will be no need for
program-level finalization.

Amongst other things, I can test for specific restrictions, and I'm
wondering whether No_Task_Termination would be appropriate for this?
(I'm assuming that the environment task mustn't terminate, even if the
main program exits; and in this RTS, exceptions can't be propagated).

[1] https://github.com/simonjwright/cortex-gnat-rts
[2] https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66205


             reply	other threads:[~2017-12-01 21:39 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-01 21:39 Simon Wright [this message]
2017-12-01 22:43 ` How to tell whether program finalization can be suppressed Randy Brukardt
2017-12-02  9:48   ` Simon Wright
2017-12-04 20:18     ` Randy Brukardt
2017-12-04 22:41     ` Simon Wright
2017-12-02 11:12   ` AdaMagica
2017-12-03 17:16     ` Robert Eachus
2017-12-04 11:58       ` AdaMagica
2017-12-04 14:36         ` Robert Eachus
2017-12-04 17:16           ` AdaMagica
2017-12-04 18:21             ` Jeffrey R. Carter
2017-12-04 20:25             ` Randy Brukardt
2017-12-04 20:22         ` Randy Brukardt
2017-12-02  3:08 ` Robert Eachus
2017-12-27 15:49 ` Simon Wright
replies disabled

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