Version 1.1 of ais/ai-00226.txt

Unformatted version of ais/ai-00226.txt version 1.1
Other versions for file ais/ai-00226.txt

!standard E.1 (10)          99-12-09 AI95-00226/01
!class ramification 99-12-09
!status work item 99-12-09
!status received 99-12-09
!priority Low
!difficulty Medium
!subject Cyclic Elaboration Dependences
!summary
If there is a cyclic elaboration dependences between the active partitions of a single distributed program, any partitions involved must either deadlock or raise Program_Error.
!question
Paragraph E.1(10) in full reads:
"It is a bounded error for there to be cyclic elaboration dependences between the active partitions of a single distributed program. The possible effects are deadlock during elaboration, or the raising of Program_Error in one or all of the active partitions involved."
This seems to allow some partitions to do anything, so long as Program_Error is raised in at least one other partition. Is this the intent? (No.)
!response
An important property of Ada is that, if elaboration checks aren't suppressed, an Ada partition cannot execute a subprogram with an unelaborated body.
Paragraph E.1(10) is intended to give an additional permission for a deadlock to occur in a distributed Ada program. It is not intended to override the elaboration rules given in the rest of the ARM, so it is still true that a partition with an elaboration failure must either raise Program_Error or deadlock. It would be unreasonable to interpret it in any other way.
!ACATS test
An ACATS test needs to be constructed for RM E.1(10).
!appendix

!topic Cyclic elaboration dependences
!reference RM95 E.1(10)
!from Michael Yoder  99-07-08
!discussion

Paragraph E.1(10) in full reads:

"It is a bounded error for there to be cyclic elaboration dependences between
the active partitions of a single distributed program.  The possible effects
are deadlock during elaboration, or the raising of Program_Error in one or all
of the active partitions involved."

This seems to allow the infamous nasal demons effect in some partitions, so
long as Program_Error is raised in at least one other partition.  I believe (or
perhaps I should say I hope) that the intent of this paragraph is to make the
stricter requirement that each partition individually must either stop
execution or raise Program_Error.  This would preserve the property that, if
elaboration checks aren't suppressed, an Ada partition cannot execute a
subprogram with an unelaborated body.

Is this the intent?  If not, why not?  If so, do the other distinguished
reviewers agree the wording should be improved?

***********************************************************

From: Robert A Duff
Sent: Wednesday, December 08, 1999 11:19 AM

Mike, the mailing list has been messed up for some time.
Randy Brukardt has fixed things.

Randy, note Mike Yoder's address on the cc: list.  He's working at
TopLayer now -- same place as Mike Kamrad.

> Here is another message that appears to have been lost. This one was sent
> Thu, 8 Jul 1999.
>
>                 Randy.
>
> ---------
> !topic Cyclic elaboration dependences
> !reference RM95 E.1(10)
> !from Michael Yoder  99-07-08
> !discussion
>
> Paragraph E.1(10) in full reads:
>
> "It is a bounded error for there to be cyclic elaboration dependences
> between the active partitions of a single distributed program.  The
> possible effects are deadlock during elaboration, or the raising of
> Program_Error in one or all of the active partitions involved."
>
> This seems to allow the infamous nasal demons effect in some partitions,
> so long as Program_Error is raised in at least one other partition.  I
> believe (or perhaps I should say I hope) that the intent of this
> paragraph is to make the stricter requirement that each partition
> individually must either stop execution or raise Program_Error.  This
> would preserve the property that, if elaboration checks aren't
> suppressed, an Ada partition cannot execute a subprogram with an
> unelaborated body.
>
> Is this the intent?

I think so.

> If not, why not?  If so, do the other distinguished
> reviewers agree the wording should be improved?

Well, if we didn't say "nasal demons" (or "erroneous" or "unpredictable")
then we probably didn't mean that. But I suppose you're correct that it's
not absolutely clear as is.

- Bob

***********************************************************


Questions? Ask the ACAA Technical Agent