<div dir="ltr">On Wed, Oct 8, 2008 at 12:20 AM, Don Stewart <span dir="ltr">&lt;<a href="mailto:dons@galois.com">dons@galois.com</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
lrpalmer:<br>
<div class="Ih2E3d">&gt; &nbsp; &nbsp;Several very elegant FRP approaches are emerging, most visibly<br>
&gt; &nbsp; &nbsp;FRP.Reactive, which rely on blocking on multiple variables at once,<br>
&gt; &nbsp; &nbsp;continuing when the *first* of them is available. . . inside an<br>
&gt; &nbsp; &nbsp;unsafePerformIO, so the beautiful STM &quot;orElse&quot; solution is not available.<br>
&gt; &nbsp; &nbsp; The current solution is to race threads against each other, and have the<br>
&gt; &nbsp; &nbsp;one that finishes first kill the other one. &nbsp;This is implemented, for<br>
&gt; &nbsp; &nbsp;example, in Data.Unamb. &nbsp;However, our empirical tests have shown that the<br>
&gt; &nbsp; &nbsp;GHC scheduler is not *quite* good enough to handle this efficiently, and<br>
&gt; &nbsp; &nbsp;ends up introducing too much latency and nondeterminacy.<br>
<br>
</div>Cool! Does you IVar implementation have anything in common with previous<br>
proposals for things called IVar (or say, &#39;ports&#39;,<br>
<a href="http://www.cse.unsw.edu.au/%7Echak/haskell/ports/" target="_blank">http://www.cse.unsw.edu.au/~chak/haskell/ports/</a>)?</blockquote><div><br>Yes, I picked up the name from haskell-cafe discussions a while back.&nbsp; Various forms have been popping in and out of the reactive libraries. <br>
<br>I hadn&#39;t seen ports before.<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
What&#39;s the background for this abstraction?<br></blockquote><div><br>So like I said, I&#39;m not too sure, I just stole the name and vague idea from discussions about it.&nbsp; As is easily noticed from the jive above, it&#39;s motivated by the continuous barrage of suboptimal FRP libraries.&nbsp; While I&#39;m working on reactive from the top down, this is the beginning of one I have planned, taking baby steps from the bottom up&nbsp; (and it&#39;ll likely get incorporated into reactive too). <br>
<br>Luke<br></div></div></div>