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
next 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