[Swift-devel] problems with external dependencies

Ian Foster foster at anl.gov
Sun Mar 22 18:35:03 CDT 2009


Ben:

I can't recall whether we talked about this before, but if we could  
choose to run in a mode whereby compound procedures wait for all input  
parameters, that could simplify debugging. But maybe the semantics are  
now rich enough that this would not necessarily be correct.

Ian.


On Mar 22, 2009, at 4:47 PM, Ben Clifford wrote:

>
> As far as I can tell from a brief poke around, this is what is  
> happening
> for you:
>
> Compound procedures do not themselves wait for their input parameters
> to all be ready to use. instead, they start trying to run all  
> component
> pieces.
>
> If some data necessary for some component piece is not ready yet, that
> component piece will wait, so the compound procedure doesn't need to  
> (and
> indeed shouldn't, because that reduces potential parallelism in some
> cases)
>
> You say this:
>
> analyseDatabase(external i) {
>  trace("i am analyseDatabase");
> }
>
> The trace call does not have any need to wait for i to be ready. So it
> doesn't wait for i to be ready.
>
> If you say this:
>
> analyseDatabase(external i) {
>  trace("i am analyseDatabase", i);
> }
>
> then the trace call must wait for i to be ready (and fortuitously in  
> the
> present implementation doesn't explode even though i cannot be
> meaningfully traced).
>
> With that change, you'll see the behaviour you want.
>
> -- 
>
> _______________________________________________
> Swift-devel mailing list
> Swift-devel at ci.uchicago.edu
> http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/swift-devel/attachments/20090322/5735e7f4/attachment.html>


More information about the Swift-devel mailing list