Shabtay’s take 04/28 - Need to converge on the recursion issue. a) What level must be supported? What (if any) should be prohibited. I think this could be resolved quite quickly if SCE-MI 2.0 will not impose restrictions on supporting more than what SCE-MI 2.0 requires.

Committee comment: This should have said what SV allows

 

DPI call restrictions

      a) Whether there should be any restrictions on DPI functions calling each other.

      b) Whether imported/exported tasks are supported

      c) Is 'context' keyword required for imported functions ?

      d) What degrees of recursion can you call imports from exports, exports from imports, etc ?

        - Lets keep it limited at first

        - Mentor suggests Russ's proposal as a starting point

 

Should not place a restriction although the standard will state that only a single level of nesting should be provided. Exports cannot call imports. A compliant implementation must also correctly handle SCE-MI 1.1 service loop

 

Shabtay needs to provide a concrete example to show that an extension to this rule is necessary before making the extension.

 

John claims that in 1.1 the only thing we allow in an export function is assignments. How much further should we go. What about exported tasks - allows passage of time? Not a capability in 1.1, but should be a feature of 2.0. It is possible that they could trigger imported tasks. This could complicate things considerably. If we cannot resolve by feature cut off date, then it would go into 2.1

 

Per> Given that 1.1 does not have exported functions, I think you meant to say something along the lines of:

 

  In SCE-MI 1.1 we only allowed the equivalent of assignments in exported functions.

 

John, does this capture what you were saying?  I think the point you were making that if we decide to allow more in exported functions/tasks we are providing new functionality compared to SCE-MI 1.1, right?

 

JohnS> That's precisely my point. Here we touch a bit into the "modeling subset" realm in terms of saying what can be inside an exported function. The point I'm making is that to provide the very basic equivalent SCE-MI 1.1 message input/output port capability, we use exported functions strictly with assignments and nothing more.

 

 

Tasks can trigger other activity but not directly call other imported functions.