On Wed, Mar 21, 2012 at 5:50 PM, John Clements <span dir="ltr">&lt;<a href="mailto:clements@brinckerhoff.org">clements@brinckerhoff.org</a>&gt;</span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div style="word-wrap:break-word"><div>Wait… don&#39;t Racket&#39;s built-in libraries already handle all of those cases?</div><div><br></div><div>This is not a rhetorical question: I&#39;m perfectly happy to be wrong, here, but it looks like I can use get-pure-port or post-pure-port to handle these. I guess I assumed that the original poster wanted something that Racket didn&#39;t already include, but I could be wrong: </div>
</div></blockquote><div><br></div><div>I&#39;m unaware of any specific capability my http client has over standard one included in the Racket library.  In fact I use the out of the box Racket SSL support.  If there are differences,  I&#39;m sure the gaps will be in my library.  From a non-functional perspective my HTTPClient is 100% Typed/Racket but that is of little matter. </div>
<div><br></div><div>To be honest I think I did run into a  small, but specific HTTP/1.1 gap in the Racket standard library long back, but I can&#39;t recall it and odds are it&#39;s there now.</div><div><br></div><div>So how did it happen ....</div>
<div><br></div><div>Originally the library was written on Larceny using R6RS modules and R6RS standard libraries and had some low level hooks into Larceny threading.  For example, I added epoll() and non-blocking to Larceny + HTTPClient years ago.   At one point I decided to migrate the project from Larceny to Racket[1] and after a bit of a think decided to port the HTTPClient library rather then re-write the project to the Racket standard http client.  One need included the ability to have a super tiny minimal HTTP server capability for things like OAuth call backs in a Racket App, so I ended up porting the whole thing.</div>
<div><br></div><div>[1]Please note there was no particular failing with Larceny other then 64-bit support.  I still think Larceny is a fantastic Scheme implementation which is very much under appreciated within the general user community.</div>
<div><br></div><div><br></div><div><br></div></div>