From: Dean M. B. <mik...@gm...> - 2010-09-13 02:56:56
|
Hi Jeroen! Sorry about the late response, it was the long weekend here in the Philippines and I took some time off to have fun with the family. See some of my thoughts below. :) On Fri, Sep 10, 2010 at 5:30 AM, Jeroen Habraken <vex...@gm...> wrote: > > Hi Dean, > > Brilliant! I've personally always considered this to be a weak spot in > cpp-netlib and given how important it is, I'm glad it's getting some > attention. Thanks, it has been in the back of my mind for a while and I think there's no better way to address it than to actually do something about it. > Having said that, I'm surprised you're starting from > scratch given that there are some very good and tested HTTP parsers > out there (mongrel comes to mind). Ah, yes. The rationale is really simple: 1. I'd like it done test-driven, meaning actual requirements dictate the implementation. This is hard to do if you're going to be basing the implementation on something already existing. At least this is my personal view on it. 2. The license might be an issue if I base the implementation on something existing. Given that cpp-netlib is licensed under the Boost Software License, anything that is licensed under a non-BSL compatible license is a non-starter. 3. I'd like to gain more experience writing more parsers by hand to get a better understanding and get a better chance at optimizing the implementation at any given point in the future. ;) So if you can suggest anything that is already Boost Software Licensed that I can just tweak -- something like what is already in Boost.Asio examples, which BTW, we already use in the HTTP Server implementation -- then it might be something I'd be willing to look into. :D > Secondly I must ask you to read, > and re-read the RFC and to make sure you follow it (I've had a quick > glance at the code you've committed and already spotted a deviation, > for which I've filed an issue at github). > Yes, thanks. I however would like to deal with the RFC issues later, just as soon as I can parse a valid narrow subset of the RFC. My aim is really to get something that will allow me to just parse the "known good" incoming data in an incremental manner. I will however base test inputs on the RFC, so that might allow me to go RFC-compliant in the tests, while the implementation might be narrower than the full RFC implementation. > Currently I've got little time to spend on cpp-netlib since I'm busy > with a project of my own (shameless plug, > http://github.com/VeXocide/construe_cast) but I'll definitely be > following this closely. > No worries -- I'm looking forward to construe_cast be proposed and included in Boost myself ;). I will try to post more about the progress and discoveries I make along the way. > Regards, > Jeroen Habraken > Thanks Jeroen and I definitely look forward to more of your insights as I continue working on this particular part of the library! :) -- Dean Michael Berris deanberris.com |