Re: Another take on versioning

On 12 Oct 2009, at 20:57, Norman Walsh wrote:
> "Henry S. Thompson" <ht@inf.ed.ac.uk> writes:
>> [anon] writes:
>>
>>>> OK, so we need wording that says that if a pipeline contains a step
>>>> that it doesn't recognise (eg the v2 step in the above) then it  
>>>> must
>>>> not run any steps in the pipeline. Right? But that's a separate  
>>>> issue.
>>>
>>> Right.
>>
>> No, wrong -- only a problem if it has to _run_ that step.  We've
>> already agreed that, I thought.
>
> Right, sorry. Though if it contains an unguarded use of that step,
> it's not clear to me what it should do:
>
>  <p:pipeline>
>     <p:identity ...>
>     <p:split-sequence ...>
>     <p:defined-in-V.next ...>
>
> The implementation design I have in my head right now is going to
> percolate the invalid step up to the top-level pipeline and then
> refuse to even start running it.
>
> Of course, if that was in p:choose/p:when, the situation would be
> different.


Yes to all the above. I was making the point to Vojtech that such a  
pipeline would *not* run the <p:identity> or <p:split-sequence> (or  
somewhat more importantly, wouldn't even run those steps if they had  
side-effects, such as <p:store>) because the whole (sub-pipeline) is  
invalidated by the single v2 step. In other words, that the invalidity  
is on a sub-pipeline basis: you can't just ignore the v2 step because  
you can't see any connections to it.

This is a design choice of course: we could equally say that you *can*  
just ignore the v2 step if you can't see any connections to it, but I  
think doing so is likely to be dangerous given that you can't actually  
work out what inputs/outputs the v2 step is supposed to have without  
its definition.

Jeni
-- 
Jeni Tennison
http://www.jenitennison.com

Received on Monday, 12 October 2009 21:21:49 UTC