fre 2007-03-02 klockan 08:58 -0700 skrev Alex Rousskov:
> Thank you very much for all your Squid3 efforts! Without your work
> Squid3 would not happen. I hope you feel the increased interest in and
> work on Squid3 these days.
Thanks, but probably overrated.
> FWIW, I am very interested in fixing core bugs. For example, I rewrote
> request body handling to fix several core bugs (changes are currently in
> squid3-icap). With the exception of ICAP, I cannot spend time polishing
> optional features like TPROXY, but I am sure there are enough core bugs
> for me :-).
Getting the core stable is the prime criteria for getting Squid-3 to
start walking.
> Also, with the ICAP code becoming stable, I should be able to spend
> more time on core fixes.
Hopefully.
> As for C++, if a willing person cannot understand some C++ concept in
> Squid, it should probably be removed or at least well documented.
removing is a bit hard as that would leave gaping holes in the code..
leaving the choices of fixing up the code to make sense and/or
documenting it..
> Personally, I am against hairy C++ code that only gurus can grok. For
> me, most of the C++ complexity in Squid3 comes from an unfortunate blend
> of C features like cbdata and C++ features like refcounting. Hopefully,
> we will fix that in Squid 3.1.
One good start would be to unify the code.. today there is too many
generations of coding style..
* Old C code, just wrapped up with a .cc extension
* First generation C++ translation adding some classes trying to
divide the code in well more defined units.
* Second generation C++ refactoring, adding some OO properties.
* Third generation C++ refactoring of the refactoring, using different
style.
* Fourth generation of C++ refactoring, where things is mostly done
right and understandable.
* And some parts which looks more like exploring fancy features of C++
rather than trying to make the code more readable or maintainable.
* And some very old C code still left around.. (also plagued Squid-2)
The many different ways cbdata types is defined and implemented is a
good example of this..
- Old C style CBDATA_TYPE
- First C++ translation CBDATA_CLASS, with significant coding overhead
- Refatored version CBDATA_CLASS2.
Refcounting also has a bit of similar heritage.
All fixable, just a matter of developer time and interest..
Regards
Henrik
This archive was generated by hypermail pre-2.1.9 : Sun Apr 01 2007 - 12:00:01 MDT