<div dir="ltr"><div>> Why keep around a deprecated high-level interface and recommend people use the low level one.</div><div><br></div><div>How about a third option: deprecate the old high-level interface, and add a new, better designed high-level interface? That way you keep backwards compatibility for existing code, while allowing a new API to come into existence.</div><div><br></div><div>Personally, in these kinds of situations, I usually recommend starting the new API off in a separate package to allow for more rapid API iteration without inflicting breaking API changes on the original package, and then—once the API has stabilized—consider including it in the original package.</div><div><br></div><div>Michael<br></div></div><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Oct 10, 2017 at 5:36 PM, Merijn Verstraaten <span dir="ltr"><<a href="mailto:merijn@inconsistent.nl" target="_blank">merijn@inconsistent.nl</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Dan,<br>
<br>
The long term goal is not to revamp the entire API of network, just the high-level interface in the Network module. Currently (actually, for the entire past, like, 5 years I've been using network), the documentation of the Network module has stated:<br>
<br>
"This module is kept for backwards-compatibility. New users are encouraged to use Network.Socket instead.<br>
<br>
Network was intended as a "higher-level" interface to networking facilities, and only supports TCP."<br>
<br>
Why keep around a deprecated high-level interface and recommend people use the low level one. Seems much better (long-term) to overhaul the high-level interface in Network so that it actually becomes recommend over writing code using Network.Socket itself.<br>
<br>
Cheers,<br>
Merijn<br>
<div class="HOEnZb"><div class="h5"><br>
> On 10 Oct 2017, at 15:51, Dan Burton <<a href="mailto:danburton.email@gmail.com">danburton.email@gmail.com</a>> wrote:<br>
><br>
> If the long term goal is to completely revamp the api, why not just write a new library?<br>
><br>
> On Oct 10, 2017 04:29, "Merijn Verstraaten" <<a href="mailto:merijn@inconsistent.nl">merijn@inconsistent.nl</a>> wrote:<br>
> Hi hackage admins & libraries@ readers,<br>
><br>
> So, to the best of my knowledge 'network' is currently maintained by libraries@/the community, which is code for "not maintained". I've previously entertained the thought of taking up maintainership, but so far was held back by the fact that I don't do windows dev experience. I've discussed this in #ghc before and the consensus was that *nix only maintenance is probably still better than no maintenance.<br>
><br>
> I was inspired to finally write this email and try to take up maintenance after spending all day yesterday tomorrow debugging an issue in my code, only to realise that Network.ByteString.Lazy.<wbr>getContents will literally *always* crash/throw an exception when used.<br>
><br>
> My plans are to:<br>
> Short term: fix obvious errors like getContents, cut through the PR backlog on github to see what can be merged, what needs work, etc.<br>
><br>
> Medium term: Improve exception/error handling (network specific exception type that people can catch), better (async) exceptions safety guarantees/documentation of safety<br>
><br>
> Long term: I would like ditch the current (deprecated) high-level interface and replace it with modern high level API.<br>
><br>
> Now, the biggest problem is that I don't have experience developing on Windows and neither the time nor the motivation to get started with that, so I will need someone to take up co-maintainership of the windows parts (I'll probably send an email about this to -cafe if people are supportive of me taking up maintenance).<br>
><br>
> Cheers,<br>
> Merijn<br>
><br>
> ______________________________<wbr>_________________<br>
> Libraries mailing list<br>
> <a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
> <a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/libraries</a><br>
><br>
<br>
</div></div><br>______________________________<wbr>_________________<br>
Libraries mailing list<br>
<a href="mailto:Libraries@haskell.org">Libraries@haskell.org</a><br>
<a href="http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries" rel="noreferrer" target="_blank">http://mail.haskell.org/cgi-<wbr>bin/mailman/listinfo/libraries</a><br>
<br></blockquote></div><br></div>