From : Anton Bachin <antronbachin AT gmail.com>

: Anton Bachin <antronbachin AT gmail.com> To : Caml List <caml-list AT inria.fr>

: Caml List <caml-list AT inria.fr> Subject : [Caml-list] [ANN] Lwt 3.0.0 – monadic promises and concurrent I/O

: [Caml-list] [ANN] Lwt 3.0.0 – monadic promises and concurrent I/O Date : Wed, 19 Apr 2017 14:24:09 -0500

: Wed, 19 Apr 2017 14:24:09 -0500 Authentication-results : mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=antronbachin AT gmail.com; spf=Pass smtp.mailfrom=antronbachin AT gmail.com; spf=None smtp.helo=postmaster AT mail-io0-f182.google.com

: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=antronbachin AT gmail.com; spf=Pass smtp.mailfrom=antronbachin AT gmail.com; spf=None smtp.helo=postmaster AT mail-io0-f182.google.com Ironport-phdr: 9a23:L8x6ABG+OFzAvOJQRqZQpJ1GYnF86YWxBRYc798ds5kLTJ7yp82wAkXT6L1XgUPTWs2DsrQf2raQ6/iocFdDyK7JiGoFfp1IWk1NouQttCtkPvS4D1bmJuXhdS0wEZcKflZk+3amLRodQ56mNBXdrXKo8DEdBAj0OxZrKeTpAI7SiNm82/yv95HJbQhFgDWwbaluIBmqsA7cqtQYjYx+J6gr1xDHuGFIe+NYxWNpIVKcgRPx7dqu8ZBg7ipdpesv+9ZPXqvmcas4S6dYDCk9PGAu+MLrrxjDQhCR6XYaT24bjwBHAwnB7BH9Q5fxri73vfdz1SWGIcH7S60/VC+85Kl3VhDnlCYHNyY48G7JjMxwkLlbqw+lqxBm3oLYfJ2ZOP94c6jAf90VWHBBU95RWSNdDY2zYJYBAekPM+hGqIfwvEcOrQK7BQWwBOPj1j1Fi3nr1qM6yeQhFgTG0RQ8EtIIrHTUq9P1P7oPXO+v0KbIzTTDb/VL0jr68ofIdAwhoeuLXbJ2asXe01UgFwPEjlWWsoHlMDaV2f4Ms2if9eZvSeWvi2s+pgx3vzOhyMAsiozTiYIUzFDJ7Sp5wIcpJd24VU50esSoH4dXtyGfL4d2RsIiTHp1uCYk0LEGvoS7fCcMxZ86xBDfc+SKf5aU7h/nTuqcIjd1iGh7dL6hiRu+61Wsx+7iWsWszlpHrzZJnsTJu3wT2BHf9s2KRed880u9xTqC0gPe5fpZLkwokKfWJJ4sz70umZcWrUvOESz7lUTzgaKSaEkr5/Wk5uHmb7n6qJ+QKol5gRzkPKs0gMywG+E4PxAOX2eF/eS806Xu/UjjT7VLiv06i6jZsJfGKcgCqK61HgxY3pg55xawCDem19sYnX0ZI15fZB2HiI3pN0nPIPD+E/i/n0yhnCl3y/3CJLHsAZXAImLdnLv/c7tx8VNQxQktwdxH4pJbELABIPb9Wk/rs9zYCwc0PBayw+b7EtV90YUeVnmVDaCFMKPSsFmI6/kgI+mJfoAVuTL9J+I56P7piH81gUUdcrWx3ZsLdHC4GexrLFmDbnrphtcNCGMKvgslTOz2k1CCSj5SZ3OqX60m/D07CYSmDZ3CRo+3mrCB0j27TdVqYTVtA1WIWVPpbJnMD/wFbSbXJs56jhQFU6KgQskvz0f9mhX9zu9OKPbT/GUyvJnj1d49s+TViQs18zZ9BMSc1UmCSmh1miUDQDpgj/M3mlB01lrWifswuPdfD9EGoqoRCgo=

[Caml-list] [ANN] Lwt 3.0.0 – monadic promises and concurrent I/O, Anton Bachin, 04/19/2017

Greetings fellow Camels,We are pleased to announce release 3.0.0 of Lwt, the concurrentprogramming/promise library.This release makes some minor breaking improvements to the Lwt API,which were previously announced in release 2.7.0. You can see thechangelog here:The non-breaking changes made to date are separated out into a precedingLwt 2.7.1, also released recently. Most notable are compatibility withOCaml 4.05 and the official announcement of Lwt_result:Release 3.0.0 completes the first test of Lwt's "soft" breakagecycle [1]: Lwt warns users about upcoming breakage, provides simpleupgrade paths, and gives time to (optionally) adapt before the breakageactually occurs. Simultaneously, users are invited to visit the Lwtrepository and object to any planned breaking change, or otherwisecontribute their opinions and expertise.We hope that, going forward, this will give us the flexibility to fixcrufty parts of Lwt in a consensual fashion, without causing unjustifiedheadaches and surprises. Of course, we prefer to avoid breakage as muchas possible – but, here and there, some things just need to be broken.3.0.0 factors some of Lwt's optional dependencies fully out into theirown packages [2]. This process will likely continue with factoring outthe Camlp4 extension and the PPX [3]. We are also eyeing the Lwt Unixbindings, though this requires more consideration.On the subject of Unix, we are also considering some kind of "merger,"literal or not, [4] between Lwt and uwt [5], the Lwt-aware binding tolibuv [6]. A combination of a libuv binding and prospective bindings toNode.js [7] might be the best way to create portable, maintainable I/Obindings at once for Unix-like operating systems, Windows, and Node.This work, however, is in an absolutely embryonic stage, and we are notsure how or where it might go.Though not immediately relevant to users, work continues on reducing theinternal technical debt of Lwt. We hope this makes contributing to Lwteasier in the future – that Lwt will not be a forbidding code base.This should help everyone in the longer term, and it goes hand-in-handwith the slow writing of the new manual. It seems writing tests, andrefactoring Lwt in places, are necessary to gain the kind ofunderstanding needed to write a good, thorough manual in the firstplace.The Lwt project welcomes new co-maintainers: Mauricio Fernandez (@mfp)and Simon Cruanes (@c-cube). Their fresh perspectives and expertise,both general and specialized, already help the quality of Lwt greatly.Happy concurrent programming,Anton Bachin[1]: https://github.com/ocsigen/lwt/issues/293 [2]: https://github.com/ocsigen/lwt/issues/41 [3]: https://github.com/ocsigen/lwt/issues/338 [4]: https://github.com/ocsigen/lwt/issues/328 [5]: https://github.com/fdopen/uwt [6]: http://libuv.org/ [7]: https://github.com/ocsigen/lwt/issues/270