<div dir="ltr">I think asio being on track to be included in the standard library is a strong point in its favor, but in my opinion there are two strong reasons to prefer libuv:<div><br></div><div>- libuv is entirely a C library. I don't think this is a hard requirement but most of kwsys is C and I suspect there is a reason for this; although maybe it's entirely historical.</div><div>- asio is header only; and a lot of headers at that. With essentially identical functionality, I don't think it makes sense to take the build time hit; which as far as I can tell is substantial. </div><div><br></div><div>If/when ASIO gets into the standard, I think it'd make sense to re-evaluate that, but we are a long time away from that, and even when it gets into the standard it'll take a maddeningly long time for that standard to be properly supported for all the supported platforms for cmake. </div><div><br></div><div>- Justin</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Aug 17, 2017 at 6:46 AM, Ben Boeckel <span dir="ltr"><<a href="mailto:ben.boeckel@kitware.com" target="_blank">ben.boeckel@kitware.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><span class="">On Wed, Aug 16, 2017 at 23:02:52 +0200, Jean-Michaël Celerier wrote:<br>
> @Ben Boeckel :<br>
> > The idea for process creation is to migrate to libuv once all of the<br>
> dependencies are supported.<br>
> Quick question : why not asio instead ? it's bound to end up in the<br>
> standard library at some point (e.g.<br>
> <a href="https://github.com/chriskohlhoff/networking-ts-impl" rel="noreferrer" target="_blank">https://github.com/<wbr>chriskohlhoff/networking-ts-<wbr>impl</a>) and already has an<br>
> event loop.<br>
<br>
</span>CMake uses curl for networking (all sync), but libuv was added for the<br>
server mode's event loop. It also comes with process execution, some<br>
filesystem helpers and other things that kwsys does today that we can<br>
drop once we move to it. AFAICT, asio looks like it's mostly a<br>
networking library and doesn't overlap well with libuv and CMake's<br>
requirements.<br>
<span class=""><br>
> Or even Qt's event loop since it's already here.<br>
<br>
</span>Qt isn't required by core CMake, just cmake-gui.<br>
<div class="HOEnZb"><div class="h5"><br>
--Ben<br>
--<br>
<br>
Powered by <a href="http://www.kitware.com" rel="noreferrer" target="_blank">www.kitware.com</a><br>
<br>
Please keep messages on-topic and check the CMake FAQ at: <a href="http://www.cmake.org/Wiki/CMake_FAQ" rel="noreferrer" target="_blank">http://www.cmake.org/Wiki/<wbr>CMake_FAQ</a><br>
<br>
Kitware offers various services to support the CMake community. For more information on each offering, please visit:<br>
<br>
CMake Support: <a href="http://cmake.org/cmake/help/support.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/<wbr>support.html</a><br>
CMake Consulting: <a href="http://cmake.org/cmake/help/consulting.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/<wbr>consulting.html</a><br>
CMake Training Courses: <a href="http://cmake.org/cmake/help/training.html" rel="noreferrer" target="_blank">http://cmake.org/cmake/help/<wbr>training.html</a><br>
<br>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html" rel="noreferrer" target="_blank">http://www.kitware.com/<wbr>opensource/opensource.html</a><br>
<br>
Follow this link to subscribe/unsubscribe:<br>
<a href="http://public.kitware.com/mailman/listinfo/cmake-developers" rel="noreferrer" target="_blank">http://public.kitware.com/<wbr>mailman/listinfo/cmake-<wbr>developers</a></div></div></blockquote></div><br></div>