Re: thank you for squid3 work

From: Henrik Nordstrom <henrik@dont-contact.us>
Date: Fri, 02 Mar 2007 21:30:23 +0100

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

Received on Fri Mar 02 2007 - 13:30:31 MST

This archive was generated by hypermail pre-2.1.9 : Sun Apr 01 2007 - 12:00:01 MDT