<div dir="ltr"><br><div><div class="gmail_extra"><div class="gmail_quote">On Tue, Sep 2, 2014 at 5:41 PM, Norton Joseph Wayne <span dir="ltr"><<a href="mailto:norton@lovely.email.ne.jp" target="_blank">norton@lovely.email.ne.jp</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div>As an example, the implementation of UBF on GitHub (<a href="http://ubf.github.io/ubf/ubf-user-guide.en.html" target="_blank">http://ubf.github.io/ubf/ubf-user-guide.en.html</a>) supports several network formats including UBF(A), Erlang binary format (a.k.a. EBF), and a local procedure call (a.k.a. LPC).  The network formats share the same contract checker implementation.</div>

<div></div></blockquote></div><br>I saw later your note about the project. Great stuff! It would need a bit more of marketing, though :-)</div><div class="gmail_extra"><br></div><div class="gmail_extra">best regards,</div>

<div class="gmail_extra">Vlad</div></div><div><br></div></div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Sep 2, 2014 at 5:41 PM, Norton Joseph Wayne <span dir="ltr"><<a href="mailto:norton@lovely.email.ne.jp" target="_blank">norton@lovely.email.ne.jp</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><div><br></div><div>A few comments.</div><br><div><div class=""><div>On 2014/09/02, at 21:13, Vlad Dumitrescu <<a href="mailto:vladdu55@gmail.com" target="_blank">vladdu55@gmail.com</a>> wrote:</div>

</div><blockquote type="cite"><div dir="ltr"><div><div class=""><p style="margin:1.2em 0px!important">On Mon, Sep 1, 2014 at 11:06 PM, Wojtek Narczyński <<a href="mailto:wojtek@power.com.pl" target="_blank">wojtek@power.com.pl</a>> wrote:</p>

</div><div class=""><ul style="margin:1.2em 0px;padding-left:2em"><li style="margin:0.5em 0px">should the contract checker be hard-linked to UBF(A), the wire format? If used only internally, it seems reasonable to let it understand the Erlang binary format</li>

</ul></div></div></div></blockquote><div>As an example, the implementation of UBF on GitHub (<a href="http://ubf.github.io/ubf/ubf-user-guide.en.html" target="_blank">http://ubf.github.io/ubf/ubf-user-guide.en.html</a>) supports several network formats including UBF(A), Erlang binary format (a.k.a. EBF), and a local procedure call (a.k.a. LPC).  The network formats share the same contract checker implementation.</div>

<div><br></div><div>This contract checker implementation operates directly on Erlang terms.  There is a lot of surrounding code but the core of the checker is a function that checks Erlang terms against a contract (<a href="https://github.com/ubf/ubf/blob/master/src/contracts.erl#L108" target="_blank">https://github.com/ubf/ubf/blob/master/src/contracts.erl#L108</a>).</div>

<div class=""><div><br></div><blockquote type="cite"><div dir="ltr"><div><ul style="margin:1.2em 0px;padding-left:2em">
<li style="margin:0.5em 0px">since 2002, Erlang got type descriptions and specifications; should these be used for describing the protocols? Again, it seems reasonable to be able to refer to existing types from the source code. </li>

</ul></div></div></blockquote><div><br></div></div><div>Yes, agreed.</div><div class=""><br><blockquote type="cite"><div dir="ltr"><div><ul style="margin:1.2em 0px;padding-left:2em">


<li style="margin:0.5em 0px">should it be possible to turn the contract checker on and off, preferably without performance impact when off? </li>
</ul></div></div></blockquote></div>Yes, agreed.</div><br></div></blockquote></div><br></div>