CVS difference for ai05s/ai05-0019-1.txt

Differences between 1.2 and version 1.3
Log of other versions for file ai05s/ai05-0019-1.txt

--- ai05s/ai05-0019-1.txt	2006/11/13 08:36:01	1.2
+++ ai05s/ai05-0019-1.txt	2006/11/13 23:47:09	1.3
@@ -519,3 +519,52 @@
+From: Pascal Leroy
+Date: Monday, November 13, 2006  4:47 AM
+> This seems like a hugely incompatible change...
+I hate to say I told you so, but I told you so.  I was the lone "against"
+vote when this AI was discussed in Palma, because I didn't buy the
+argument that "you just move the pragma around".  Messing with the
+freezing rules made me extremely uncomfortable, but unfortunately this AI
+was only discussed at this one meeting, so I didn't have time to look for
+a compelling example that would have killed the proposal.
+Now one thing that I didn't realize is that, being a binding
+interpretation, it applies to Ada 95.  It would have been bad enough to
+ask customers to restructure their code when migrating to Ada 2005, but
+forcing them to do that in Ada 95 is intolerable.
+I am all in favor of maintaining the invariant that dispatching tables may
+be laid out when the type is frozen, but the problem described by the AI
+was a relatively obscure wart, and we fixed it by doing open-heart
+surgery.  And now that open-heart surgery failed we are going to do a
+heart-lung transplant by completely changing the way that tagged types get
+Changing the freezing rules should only be done with the utmost care.  One
+reason is that it's really hard to work out all their consequences.
+Another reason is that they are really hard to implement, and that since
+(some) compilers make many decisions at the freezing point, any change can
+be very destabilizing for implementations.  Finally, these rules are
+rather incomprehensible to users, so it's actively harmful to make them
+more complicated than they already are.
+Incidentally, I implemented this AI fairly recently (for Ada 2005 only),
+and was very surprised to see that it led to incompatibilities in our own
+code.  Only a very small number of the Amendment changes have had that
+effect.  I am not aware of problems in our regression tests, but that must
+be because the change has not percolated far enough yet: I am sure that
+Claw is one of our tests.  At any rate, I am *not* going to apply this
+change to Ada 95, regardless of what the ARG decides: I don't particular
+want to p*ss off customers.
+Since the problem is relatively marginal, we should  fix it by a small
+tweaking of the rules, and drop AI 341.  I believe that something like the
+following would work:
+"A representation_item for a primitive subprogram of a tagged type shall
+appear before the type is frozen."

Questions? Ask the ACAA Technical Agent