CVS difference for ais/ai-00297.txt

Differences between 1.3 and version 1.4
Log of other versions for file ais/ai-00297.txt

--- ais/ai-00297.txt	2002/10/01 03:08:54	1.3
+++ ais/ai-00297.txt	2003/01/02 23:58:28	1.4
@@ -1004,3 +1004,38 @@
+From: Randy Brukardt
+Sent: Thursday, January 2, 2003  4:22 PM
+In finishing up the minutes, I came across the discussion about ways to
+force these to be declared at the library level. We dreamt up a complex and
+dangerous mechanism to handle that in AI-303. In thinking about that a bit,
+I wonder if we aren't going about this entirely the wrong way.
+Finalization is a core capability in Ada 95. It is used to perform all sorts
+of tasks when objects go out of scope. For example, the canonical semantics
+for protected objects uses finalization when they are destroyed.
+Some real-time people claim that finalization is too expensive for their
+applications. This is a rare special case (finalization takes very little
+overhead, far less than a rendezvous, so this applies only to the most
+critical applications). Thus, Ada provides ways to eliminate the overhead.
+For example, the Ravenscar profile adds a Restriction
+"No_Local_Protected_Objects" to eliminate this overhead. Why can't we use a
+similar solution for timing objects?
+That is, define the finalization of timing objects to unhook them properly.
+Then, add a restriction "No_Local_Timing_Objects" to eliminate the (small)
+overhead of finalization for critical real-time applications. (Presumably,
+this restriction would be added to the Ravenscar profile).
+Since we've decided to use a package-based approach for timing object, this
+isn't even going to be very expensive to implement: a canonical timing
+object can be derived from Limited_Controlled in the private part with a
+private overriding Finalize. Then the existing language will do all of the
+hard work. Ravenscar runtimes presumably would do something different
+(depending on the restriction), but they typically are completely different
+than a full runtime anyway.

Questions? Ask the ACAA Technical Agent