Re: [squid-users] Adding Header file

From: Amos Jeffries <squid3@dont-contact.us>
Date: Fri, 18 Apr 2008 01:57:26 +1200

Paras Fadte wrote:
> Hi,
>
> I tried "Stack<char> test" and used test.push_back() method instead
> of test.push() which is what standard STL stack provides I guess and
> it seems to work. Alex, may be I should have said "When I try to
> declare a stack of type char/int/string" .
>
> Also can I get any help regarding development of ESI in squid ?

I'm willing to throw my 2c in but I have no prior ESI knowledge. All I
can help with is the C/C++ design and logic flows, maybe some testing.

Regarding the char/strings stuff. What I have seen of the old code it
tries to use the Squid 'String' type over general char* strings. That
was apparently the cause of several bugs. String has since been tested
better and fixed a fair bit, so it should be okay, and any new bugs
found will be a net positive.

Amos

>
> Thanks Amos,Alex.
>
> -Paras
>
>
> On Wed, Apr 16, 2008 at 9:08 PM, Alex Rousskov
> <rousskov@measurement-factory.com> wrote:
>> On Wed, 2008-04-16 at 13:37 +1200, Amos Jeffries wrote:
>> > >
>> > > Thanks for the reply. The header file that I want to include is
>> > > "stack" which is already available in C++ just like "iostream" . When
>> > > I include it in a squid source file and try to create a stack
>> > > datatype, it gives an error saying "error: `stack' undeclared (first
>> > > use this function) " .
>> >
>> > Ah. That is an entirely different issue to what you described in your
>> > first mail. There are now a couple of issues here to consider.
>> >
>> > 1) why you are needing to add it to squid.
>> > 2) why you are trying to re-invent a type that is already well-known and
>> > available for use in probably all OS.
>> > 3) how to protect your new code against other types.
>> >
>> > A good think about 1 and 2 usually comes up with its not worth the work,
>> > just use the STL version provided.
>>
>> I believe Paras is trying to use the existing STL stack type even though
>> he is saying that he is trying to "create a stack datatype" :-).
>>
>> Cheers,
>>
>> Alex.
>>
>>
>>
>> > I'm not familiar with the specific guidelines in squid-2 (they are in the
>> > wiki somewhere IIRC). But for squid-3 when we need to add a standard type
>> > like this locally we name it like 'SquidStack' and the files the same.
>> > That way there is no clash to worry about.
>> >
>> > Also there is basic code-wrapping. Any new experimental code needs to have
>> > a configure option to enable it, with a matching macro USE_... which is
>> > used to protect normal builds against the new code.
>> >
>> > If you are going to insist on using a clashing type, you will force
>> > yourself to go through the OS provided <stack> and dependencies and
>> > un-define all the symbols that might cause problems. Its a big problem,
>> > and _really_ not worth it.
>> >
>> > >
>> > >
>> > > Example:
>> > >
>> > > #include <stack>
>> >
>> > <> in C/C++ means the compiler is specifically asked to find an OS
>> > provided file before testing the local ones. Not your new one.
>> > You MUST have double-quotes (") for local files. And preferably a unique
>> > localised name as I mention above.
>> >
>> > >
>> > > stack<char> test; - -> gives error.
>> > >
>> > > Thank you.
>> > >
>> > > -Plf
>> > >
>> > > On 4/15/08, Amos Jeffries <squid3@treenet.co.nz> wrote:
>> > >> Paras Fadte wrote:
>> > >>
>> > >> > Hi,
>> > >> >
>> > >> > I was trying to add header file "stack.h" in one of the squids source
>> > >> > code file so that I could define stack data types. But it doesn't
>> > >> > seem to work . Can anybody help me out with this please?
>> > >> >
>> > >> >
>> > >>
>> > >> Code discussions in squid-dev please.
>> > >>
>> > >> You need to:
>> > >> - add the files to the right sub-directory in the source,
>> > >> - add to teh matching Makefile.am in all the right places,
>> > >> - run bootstrap.sh,
>> > >> - run configure,
>> > >> - run make check,
>> > >> - ... and fix any of the errors that come up about your files.
>> > >> - test it works, and then submit a patch and request to have it used.
>> > >>
>> > >> NP: other errors in existing code. If any occur, please mention to
>> > >> squid-dev so we can check and fix.
>> > >>
>> > >> Amos
>> > >> --
>> > >> Please use Squid 2.6.STABLE19 or 3.0.STABLE4
>> > >>
>> > >
>> >
>>
>>

-- 
Please use Squid 2.6.STABLE19 or 3.0.STABLE4
Received on Tue Apr 22 2008 - 14:57:05 MDT

This archive was generated by hypermail 2.2.0 : Wed Apr 30 2008 - 12:00:07 MDT