<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote">On Tue, Oct 17, 2017 at 1:29 PM, zxq9 <span dir="ltr"><<a href="mailto:zxq9@zxq9.com" target="_blank">zxq9@zxq9.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span>On 2017年10月17日 火曜日 13:19:53 Lukas Larsson wrote:<br>
><br>
> We are planning to rewrite a lot of functionality in erts that today uses<br>
> linked-in driver to use nifs instead. We have already re-written the zlib<br>
> driver, we are in the process of re-writing the efile driver and are<br>
> planning to rewrite the inet driver in the future.<br>
<br>
</span>What is the rationale?<br></blockquote><div><br></div><div>It varies depending on driver. In general we want to be able to write more code in Erlang and less in C than we are able to with linked-in drivers.</div><div><br></div><div>In zlib we wanted to improve how we handle large inputs, i.e. yield back to schedulers etc.</div><div>For efile we want to start using dirty schedulers for file IO, something that is not possible with linked-in drivers.</div><div>For inet the main reasons are maintainability and performance. We want to be able to add and extend functionality more easily. We also think that it should be possible to write a faster implementation using nifs because sometimes we can remove the context switch between process and port that is mandatory today.</div><div><br></div><div>Lukas</div></div></div></div>