orc-lang / orc

Orc programming language implementation
https://orc.csres.utexas.edu/
BSD 3-Clause "New" or "Revised" License
40 stars 3 forks source link

Implementation deviates from halting semantics #87

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
The implementation uses a left-to-right blocking scan to resolve arguments. 
However, this is incompatible with the correct semantics of the otherwise 
combinator, which requires that a strict call halt immediately if any argument 
halts, regardless of position.

The following program should publish 1, but instead it blocks forever:

def blockForever() = Channel().get()

val x = blockForever()
val y = stop
val z = y+x ; x+y ; 1

z

Fixing the issue will require a reimplementation of the behavior of a token 
waiting on a site call. It will probably require the replacement of 
blockableMap and FutureFrame.

Original issue reported on code.google.com by dkitc...@gmail.com on 24 Oct 2011 at 9:05

GoogleCodeExporter commented 9 years ago

Original comment by dkitc...@gmail.com on 25 Oct 2011 at 6:43

GoogleCodeExporter commented 9 years ago

Original comment by arthur.peters on 29 Nov 2012 at 8:53

GoogleCodeExporter commented 9 years ago
This issue was closed by revision r3166.

Original comment by dkitc...@gmail.com on 23 Jan 2013 at 8:39