comp.lang.ada
 help / color / mirror / Atom feed
* How to tell whether program finalization can be suppressed
@ 2017-12-01 21:39 Simon Wright
  2017-12-01 22:43 ` Randy Brukardt
                   ` (2 more replies)
  0 siblings, 3 replies; 15+ messages in thread
From: Simon Wright @ 2017-12-01 21:39 UTC (permalink / 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


^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2017-12-27 15:49 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-12-01 21:39 How to tell whether program finalization can be suppressed Simon Wright
2017-12-01 22:43 ` 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

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