<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><div><br></div><div>A few comments.</div><br><div><div>On 2014/09/02, at 21:13, Vlad Dumitrescu <<a href="mailto:vladdu55@gmail.com">vladdu55@gmail.com</a>> wrote:</div><blockquote type="cite"><div dir="ltr"><div class="markdown-here-wrapper" style=""><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><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></blockquote><div>As an example, the implementation of UBF on GitHub (<a href="http://ubf.github.io/ubf/ubf-user-guide.en.html">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">https://github.com/ubf/ubf/blob/master/src/contracts.erl#L108</a>).</div><div><br></div><blockquote type="cite"><div dir="ltr"><div class="markdown-here-wrapper" style=""><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>Yes, agreed.</div><br><blockquote type="cite"><div dir="ltr"><div class="markdown-here-wrapper" style=""><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>Yes, agreed.</div><br></body></html>