<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
But wouldn't the single assignment part prevent your example from
dead-locking? In other words, the compiler should throw an error on
line "b = cat(a)" as its trying to modify an existing value b.<br>
<br>
Mihael Hategan wrote:
<blockquote cite="mid:1266530849.15179.107.camel@localhost" type="cite">
  <pre wrap="">On Thu, 2010-02-18 at 17:08 +0000, Ben Clifford wrote: 
  </pre>
  <blockquote type="cite">
    <blockquote type="cite">
      <pre wrap="">I'm unsure. I have a feeling that static dealdock detection is
undecidable in swift. I need to think some more about that.
      </pre>
    </blockquote>
    <pre wrap="">I think doing it statically (i.e. at compile time) is equivalent to 
executing the code (including external apps) - I think there's probably a 
straightforward example where something depends on an integer read from an 
externally executed app which then influences an if statement that decides 
which of two different arrays is being written to; or something like that.
    </pre>
  </blockquote>
  <pre wrap=""><!---->
Right. So termination is undecidable by virtue of it being a turing
complete language. What I'm unsure is whether deadlocks follow as a
consequence of that. They are a different beast.

We can probably start with simpler things. The following deadlocks with
the current swift:
a = cat(b);
b = cat(a);

So it seems that loops in the graph will create a deadlock and detecting
loops requires knowing the graph. We can probably detect the static
parts and we may be able to handle alternatives by issuing warnings of
the "branch 1 in that 'if' combined with branch 2 in that other 'if'
leads to a deadlock" sort.

Arrays may be a bit tougher.


_______________________________________________
Swift-devel mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Swift-devel@ci.uchicago.edu">Swift-devel@ci.uchicago.edu</a>
<a class="moz-txt-link-freetext" href="http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel">http://mail.ci.uchicago.edu/mailman/listinfo/swift-devel</a>

  </pre>
</blockquote>
<br>
<pre class="moz-signature" cols="72">-- 
=================================================================
Ioan Raicu, Ph.D.
NSF/CRA Computing Innovation Fellow
=================================================================
Center for Ultra-scale Computing and Information Security (CUCIS)
Department of Electrical Engineering and Computer Science
Northwestern University
2145 Sheridan Rd, Tech M384 
Evanston, IL 60208-3118
=================================================================
Cel:   1-847-722-0876
Tel:   1-847-491-8163
Email: <a class="moz-txt-link-abbreviated" href="mailto:iraicu@eecs.northwestern.edu">iraicu@eecs.northwestern.edu</a>
Web:   <a class="moz-txt-link-freetext" href="http://www.eecs.northwestern.edu/~iraicu/">http://www.eecs.northwestern.edu/~iraicu/</a>
       <a class="moz-txt-link-freetext" href="https://wiki.cucis.eecs.northwestern.edu/">https://wiki.cucis.eecs.northwestern.edu/</a>
=================================================================
=================================================================

</pre>
</body>
</html>